Verwendungsanalyse mit Application Insights

Welche Funktionen Ihrer Web- oder mobilen App sind die beliebtesten? Erreichen die Benutzer mit Ihrer App ihre Ziele? Brechen sie an bestimmten Stellen ab, und kehren sie später zurück? Mit Application Insights erhalten Sie wertvolle Erkenntnisse zur Nutzung Ihrer App durch die Benutzer. Bei jeder Aktualisierung Ihrer App können Sie beurteilen, wie gut sie für Benutzer funktioniert. Mit diesem Wissen können Sie datengesteuerte Entscheidungen über die nächsten Entwicklungszyklen treffen.

Senden von Telemetriedaten aus der App

Die beste Erfahrung erzielen Sie, wenn Sie Application Insights sowohl in Ihrem App-Server-Code als auch auf Ihren Webseiten installieren. Die Client- und die Serverkomponente der App senden Telemetriedaten zur Analyse an das Azure-Portal.

  1. Servercode: Installieren Sie das entsprechende Modul für die ASP.NET-, Azure-, Java-, Node.js-App oder einen anderen Typ von App.

  2. Webseitencode: Verwenden Sie das JavaScript-SDK, um Daten von Webseiten zu sammeln. Siehe Erste Schritte mit dem JavaScript-SDK.

    Hinweis

    Am 31. März 2025 wird der Support für die auf Instrumentierungsschlüsseln basierende Erfassung eingestellt. Die Erfassung von Instrumentierungsschlüsseln funktioniert zwar weiterhin, wir stellen jedoch keine Updates und keinen Support mehr für das Feature bereit. Wechseln Sie zu Verbindungszeichenfolgen, damit Sie neue Funktionen nutzen können.

    Informationen zu komplexeren Konfigurationen für die Websiteüberwachung finden Sie im Referenzartikel zum JavaScript SDK.

  3. Mobiler App-Code: Verwenden Sie das App Center SDK, um Ereignisse aus Ihrer App zu erfassen. Senden Sie dann Kopien dieser Ereignisse zur Analyse an Application Insights, indem Sie dieser Anleitung folgen.

  4. Telemetrie abrufen: Führen Sie Ihr Projekt einige Minuten lang im Debugmodus aus. Suchen Sie dann nach Ergebnissen im Übersichtsbereich in Application Insights.

    Veröffentlichen Sie die App, um die Leistung der App zu überwachen und zu ermitteln, was die Benutzer mit Ihrer App tun.

Untersuchen von demografische Daten und Statistiken zur Nutzung

Finden Sie heraus, wann Nutzer Ihre App verwenden und welche Seiten sie am meisten interessieren. Außerdem erfahren Sie, wo sich Ihre Nutzer befinden und welche Browser und Betriebssysteme sie verwenden.

Die Benutzer- und Sitzungsberichte filtern Ihre Daten nach Seiten oder benutzerdefinierten Ereignissen. Die Berichte segmentieren die Daten nach Eigenschaften wie Standort, Umgebung und Seite. Sie können auch eigene Filter hinzufügen.

Screenshot, der die Registerkarte „Benutzer“ mit einem Balkendiagramm zeigt.

Aus den Informationen auf der rechten Seite gehen interessante Muster im Datensatz hervor.

  • Der Bericht Benutzer zählt die eindeutigen Benutzer, die innerhalb der ausgewählten Zeiträume auf Ihre Seiten zugreifen. Für Web-Apps werden Benutzer mithilfe von Cookies gezählt. Wenn jemand mit unterschiedlichen Browsern oder Client-Computern auf Ihre Website zugreift oder die Person ihre Cookies löscht, wird sie mehr als einmal gezählt.
  • Der Bericht Sitzungen tabelliert die Benutzersitzungen, die auf Ihre Website zugreifen. Eine Sitzung stellt einen Aktivitätszeitraum dar, der von einem Benutzer initiiert wurde und mit einem Zeitraum der Inaktivität von mehr als einer halben Stunde endet.

Weitere Informationen zu den Tools „Benutzer“, „Sitzungen“ und „Ereignisse“ finden Sie unter Analyse von Benutzern, Sitzungen und Ereignissen in Visual Studio Online Application Insights.

Vermerkdauer – wie viele Benutzer kehren zurück?

Anhand der Vermerkdauer können Sie basierend auf Kohorten von Benutzern, die während eines bestimmten Zeitrahmens eine Businessaktion durchgeführt haben, nachvollziehen, wie oft Ihre Benutzer die App erneut verwenden. Ihre Möglichkeiten:

  • Verstehen, welche bestimmten Funktionen dazu führen, dass einige Benutzer häufiger zurückkehren als andere.
  • Bilden von Hypothesen basierend auf echten Benutzerdaten.
  • Bestimmen, ob die Vermerkdauer ein Problem in Ihrem Produkt darstellt.

Screenshot, der die Arbeitsmappe „Aufbewahrung“ zeigt, in der Informationen darüber angezeigt werden, wie oft Benutzer ihre App wieder verwenden.

Sie können die Aufbewahrungssteuerelemente oben verwenden, um bestimmte Ereignisse und Zeiträume zur Berechnung der Aufbewahrung zu definieren. Das Diagramm in der Mitte bietet eine visuelle Darstellung des Prozentsatzes der gesamten Vermerkdauer nach dem angegebenen Zeitbereichs. Die Grafik unten zeigt die individuelle Speicherung in einem bestimmten Zeitraum. Dank dieses Detaillierungsgrads können Sie mit höherer Granularität verstehen, was Ihre Benutzer tun und was sich auf zurückkehrende Benutzer auswirkt.

Weitere Informationen zur Arbeitsmappe „Aufbewahrung“ finden Sie unter Analyse der Benutzeraufbewahrung für Webanwendungen mit Visual Studio Online Application Insights.

Benutzerdefinierte Geschäftsereignisse

Um Benutzerinteraktionen in Ihrer App zu verstehen, fügen Sie Codezeilen ein, um benutzerdefinierte Ereignisse zu protokollieren. Diese Ereignisse verfolgen verschiedene Benutzeraktionen, z. B. die Auswahl von Schaltflächen oder wichtige Geschäftsereignisse wie Käufe oder Spielsiege.

Sie können auch das Click Analytics-Plug-in für die automatische Erfassung verwenden, um benutzerdefinierte Ereignisse zu erfassen.

In einigen Fällen können Seitenaufrufe nützliche Ereignisse darstellen, aber das ist im Allgemeinen nicht der Fall. Ein Benutzer kann eine Produktseite öffnen, ohne das Produkt zu kaufen.

Mit bestimmten Geschäftsereignisse können Sie den Aufenthalt von Benutzern auf Ihrer Website in einem Diagramm darstellen. Sie können herausfinden, welche Präferenzen sie für verschiedene Optionen haben und wo sie abbrechen oder Schwierigkeiten haben. Mit diesem Wissen können Sie fundierte Entscheidungen über die Prioritäten in Ihrem Entwicklungs-Backlog treffen.

Ereignisse können von der Clientseite der App aus protokolliert werden:

      appInsights.trackEvent({name: "incrementCount"});

Oder Ereignisse können serverseitig protokolliert werden:

    var tc = new Microsoft.ApplicationInsights.TelemetryClient();
    tc.TrackEvent("CreatedAccount", new Dictionary<string,string> {"AccountType":account.Type}, null);
    ...
    tc.TrackEvent("AddedItemToCart", new Dictionary<string,string> {"Item":item.Name}, null);
    ...
    tc.TrackEvent("CompletedPurchase");

Sie können diesen Ereignissen Eigenschaftswerte zuweisen, sodass Sie die Ereignisse filtern oder aufteilen können, wenn Sie sie im Portal untersuchen. Jedem Ereignis wird ein Standardsatz von Eigenschaften angefügt, z. B. eine anonyme Benutzer-ID, die Ihnen die Ablaufverfolgung der Sequenz von Aktivitäten eines einzelnen Benutzers ermöglicht.

Erfahren Sie mehr über benutzerdefinierte Ereignisse und Eigenschaften.

Aufteilen von Ereignissen

In den Tools für Benutzer, Sitzungen und Ereignisse können Sie benutzerdefinierte Ereignisse nach Benutzer, Ereignisname und Eigenschaften aufteilen.

Screenshot, der die Registerkarte „Ereignisse“ zeigt, die nach AnalyticsItemsOperation gefiltert und nach AppID aufgeteilt ist.

Wenn Sie sich in einer Verwendungsumgebung befindet, wählen Sie das Symbol Abfrage der letzten Ausführung öffnen aus, um zur zugrunde liegenden Abfrage zurückzukehren.

Screenshot des Bereichs Application Insights Session im Azure-Portal. Das Symbol zum Öffnen der zuletzt ausgeführten Abfrage ist hervorgehoben.

Anschließend können Sie die zugrunde liegende Abfrage ändern, um die Art der gesuchten Informationen zu erhalten.

Hier sehen Sie ein Beispiel für eine zugrunde liegende Abfrage zu Seitenansichten. Fügen Sie sie direkt in den Abfrage-Editor ein, um sie zu testen.

// average pageView duration by name
let timeGrain=5m;
let dataset=pageViews
// additional filters can be applied here
| where timestamp > ago(1d)
| where client_Type == "Browser" ;
// calculate average pageView duration for all pageViews
dataset
| summarize avg(duration) by bin(timestamp, timeGrain)
| extend pageView='Overall'
// render result in a chart
| render timechart

Entwerfen der Telemetrie mit der App

Überlegen Sie beim Entwerfen der einzelnen Funktionen Ihrer App, wie Sie den Erfolg bei Ihren Benutzern messen können. Entscheiden Sie, welche Geschäftsereignisse aufgezeichnet werden müssen, und codieren Sie die Aufrufnachverfolgung für diese Ereignisse von Anfang an in die App.

A/B-Tests

Wenn Sie nicht sicher sind, welche Featurevariante erfolgreicher ist, geben Sie beide frei, und lassen Sie verschiedene Benutzer auf die Varianten zugreifen. Messen Sie den Erfolg jeder Variante und gehen Sie dann zu einer einheitlichen Version über.

Bei dieser Technik fügen Sie allen Telemetriedaten, die von jeder Version Ihrer App gesendet werden, eindeutige Eigenschaftswerte hinzu. Dazu definieren Sie Eigenschaften im aktiven „TelemetryContext“-Element. Diese Standardeigenschaften werden in jede Telemetrienachricht eingeschlossen, die von der Anwendung gesendet wird. Sie enthält sowohl benutzerdefinierte Nachrichten als auch Standardtelemetriedaten.

Filtern und teilen Sie Ihre Daten im Application Insights-Portal nach Eigenschaftswerten auf, damit Sie die verschiedenen Versionen vergleichen können.

Dazu richten Sie einen Telemetrieinitialisierer ein:

    // Telemetry initializer class
    public class MyTelemetryInitializer : ITelemetryInitializer
    {
        // In this example, to differentiate versions, we use the value specified in the AssemblyInfo.cs
        // for ASP.NET apps, or in your project file (.csproj) for the ASP.NET Core apps. Make sure that
        // you set a different assembly version when you deploy your application for A/B testing.
        static readonly string _version = 
            System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
            
        public void Initialize(ITelemetry item)
        {
            item.Context.Component.Version = _version;
        }
    }

Fügen Sie für ASP.NET Core-Anwendungen der Dependency Injection-Dienstauflistung in der Program.cs-Klasse einen neuen Telemetrieinitialisierer hinzu.

using Microsoft.ApplicationInsights.Extensibility;

builder.Services.AddSingleton<ITelemetryInitializer, MyTelemetryInitializer>();

Nächste Schritte