Telemetrie für Apps mit Application Insights (1)

Hinweis: Schritt 4 hattte ich in der ersten Fassung vergessen – bitte beachten, sonst hagelt es Exceptions!

Wer möchte nicht gerne wissen, wie und insbesondere ob Anwender bestimmte Funktionen innerhalb einer App verwendet. Richtig, das interessiert uns alle! Viel zu oft investieren wir entwicklungsseitig in Funktionen, die niemand benötigt oder wir erstellen großartige Funktionen, die aber so versteckt sind, dass sie niemand findet. Wäre es nicht schön einfach messen & protokollieren zu können, was der Anwender eigentlich tut, um daraus abzuleiten, wie unsere App verbessert werden kann und ob unsere App gut ankommt?

Das geht – mit den Application Insights und Visual Studio Online.

Um eins vorneweg zu nehmen: Keine App sollte mehr ohne die Application Insights veröffentlicht werden! Warum? Weil es so einfach ist, die Application Insights zu konfigurieren, dass es einfach keine valide Ausrede mehr gibt, es nicht zu tun.

Am einfachsten geht man folgendermaßen vor:

1. Visual Studio öffnen – vermutlich ist man mit seinem Microsoft Account eingeloggt, das ist gut und macht alles weitere noch einfacher.

2. Application Insights Visual Studio Extension herunterladen.
Dazu einfach Tools—> Extension & Updates öffen und in der Visual Studio Gallery nach “Application Insights” suchen. Anschließend Visual Studio neustarten. Wir sind fast durch!

image image

3. Nach dem Neustart ein Projekt öffnen – entweder ein bestehendes, oder ein neu angelegtes.
Im Falle eines neu angelegten Windows Phone Projektes, nimmt uns Visual Studio die Arbeit für das Setup der Application Insights Telemetrie komplett ab:

image

Wie Ihr im Screenshot rechts seht, erkennt Visual Studio meinen Microsoft-Account und daher auch meine Visual Studio Online URL. Falls Ihr noch nicht mit Visual Studio Online gearbeitet habt, nimmt Euch Visual Studio hier auch die Arbeit für das Setup ab und führt Euch durch ein paar zusätzliche Dialoge.

4. Analytics Session starten

Diesen Teil hatte ich in der ersten Fassung nicht genannt! Bitte beachten!

 // Start Insights
ClientAnalyticsSession.Default.Start("00000000-0000-0000-0000-00000");

Jetzt müsst Ihr noch die Engine einschalten – das geht über die oben stehende Zeile Code, die Ihr am besten in Eurerem App()-Konstruktor einbaut. Dieser Aufruf muss nach

 InitializeComponent();
 kommen!

Bitte beachtet, dass Ihr noch den richtigen Key angeben müsst! Diesen erfahrt Ihr in der ApplicationInsights.config! Seht einfach nach, was hier bei AccountId bei Euch steht!

image

Das war’s!

Eure App sammelt jetzt Telemetrie Daten für Euch. Natürlich noch nicht alles, was Euch potentiell interessiert, aber Ihr bekommt beispielsweise schon einmal Auswertungen über die Bildschirmauflösungen und Device Information und generelle Benutzerstatistiken, die Ihr über Euer eigenes Dashboard in Visual Studio Online konfigurieren könnt.

image

Wie Ihr zum Dashboard kommt? Am einfachsten direkt aus dem Solution Explorer in Visual Studio: Wie Ihr seht wird hier ein zusätzlicher Knoten ApplicationInsights.config angelegt, den Ihr aufklappen könnt und dann direkt als Zugangspunkt zu Eurem Portal nutzen könnt.

image

Solltet Ihr bereits ein Windows Phone Projekt haben, könnt Ihr über das Kontext-Menü auf dem Projekt die entsprechend Einstellungen vornehmen lassen. Ab sofort werden die Telemetriedaten  gesammelt.

image

In den nächsten Teilen der Serie sehen wir uns an, wie und wann die Telemetrie Daten gesammelt werden, wie Ihr sehen könnt, was eigentlich an den Server geschickt wird und wie Ihr eigene Events, die für Euch im Code besonders spannend sind mitloggen könnt.

An dieser Stelle ein kleiner aber wichtiger Hinweis: Bitte beachtet genau, welche Informationen Ihr hier mitloggt! Im Sinne von Trustworthy Computing sollten dies Daten sein, die nicht dazu führen, dass der Anwender rückwirkend identifiziert werden kann!