diff --git a/lib/Microsoft.VisualStudio.Telemetry.dll b/lib/Microsoft.VisualStudio.Telemetry.dll
new file mode 100644
index 0000000..9de1cd0
Binary files /dev/null and b/lib/Microsoft.VisualStudio.Telemetry.dll differ
diff --git a/src/Package/ExperimentalFeatures.csproj b/src/Package/ExperimentalFeatures.csproj
index 19bc281..55fdd1d 100644
--- a/src/Package/ExperimentalFeatures.csproj
+++ b/src/Package/ExperimentalFeatures.csproj
@@ -88,6 +88,7 @@
+
True
True
@@ -187,6 +188,10 @@
..\..\packages\Microsoft.VisualStudio.Shell.Interop.9.0.9.0.30729\lib\Microsoft.VisualStudio.Shell.Interop.9.0.dll
False
+
+ False
+ ..\..\lib\Microsoft.VisualStudio.Telemetry.dll
+
..\..\packages\Microsoft.VisualStudio.TextManager.Interop.7.10.6070\lib\Microsoft.VisualStudio.TextManager.Interop.dll
False
diff --git a/src/Package/ExperimentalFeaturesPackage.cs b/src/Package/ExperimentalFeaturesPackage.cs
index f2a861a..32b1244 100644
--- a/src/Package/ExperimentalFeaturesPackage.cs
+++ b/src/Package/ExperimentalFeaturesPackage.cs
@@ -1,4 +1,5 @@
-using Microsoft.VisualStudio;
+using ExperimentalFeatures.Telemetry;
+using Microsoft.VisualStudio;
using Microsoft.VisualStudio.ExtensionManager;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.Interop;
@@ -48,6 +49,7 @@ protected override async Tasks.Task InitializeAsync(CancellationToken cancellati
bool hasUpdates = await Installer.CheckForUpdatesAsync();
+ PackageTelemetry.TelemetrySession.PackageLoaded();
#if !DEBUG
if (!hasUpdates)
return;
diff --git a/src/Package/Telemetry/PackageTelemetry.cs b/src/Package/Telemetry/PackageTelemetry.cs
new file mode 100644
index 0000000..dc2c0bf
--- /dev/null
+++ b/src/Package/Telemetry/PackageTelemetry.cs
@@ -0,0 +1,42 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Microsoft.VisualStudio.Telemetry;
+
+namespace ExperimentalFeatures.Telemetry
+{
+ public class PackageTelemetry
+ {
+ public static PackageTelemetry TelemetrySession { get; private set; }
+
+ static PackageTelemetry()
+ {
+ TelemetrySession = new PackageTelemetry();
+ }
+
+ public PackageTelemetry()
+ {
+
+ }
+
+ public void PackageLoaded()
+ {
+ var telEvent = new TelemetryEvent(TelemetryConstants.PackageLoadedEvent);
+ this.PostEventToDefaultSession(telEvent);
+ }
+
+ private void PostEventToDefaultSession(TelemetryEvent vsTelemetryEvent)
+ {
+ TelemetryService.DefaultSession.PostEvent(vsTelemetryEvent);
+ }
+
+ private static class TelemetryConstants
+ {
+ public const string ExperimentsEventPrefix = "WebTools/Experiments/";
+
+ public const string PackageLoadedEvent = ExperimentsEventPrefix + "PackageLoaded";
+ }
+ }
+}