Verwendungsanalyse mit Application InsightsUsage analysis with Application Insights

Welche Funktionen Ihrer Web- oder mobilen App sind die beliebtesten?Which features of your web or mobile app are most popular? Erreichen die Benutzer mit Ihrer App ihre Ziele?Do your users achieve their goals with your app? Brechen sie an bestimmten Stellen ab, und kehren sie später zurück?Do they drop out at particular points, and do they return later? Mit Azure Application Insights erhalten Sie wertvolle Einblicke in die Nutzung Ihrer App durch die Benutzer.Azure Application Insights helps you gain powerful insights into how people use your app. Bei jeder Aktualisierung Ihrer App können Sie beurteilen, wie gut sie für Benutzer funktioniert.Every time you update your app, you can assess how well it works for users. Mit diesem Wissen können Sie datengesteuerte Entscheidungen über die nächsten Entwicklungszyklen treffen.With this knowledge, you can make data driven decisions about your next development cycles.

Senden von Telemetriedaten aus der AppSend telemetry from your app

Sie erzielen optimale Ergebnisse, wenn Sie Application Insights im Servercode der App und in den Webseiten installieren.The best experience is obtained by installing Application Insights both in your app server code, and in your web pages. Die Client- und die Serverkomponente der App senden Telemetriedaten zur Analyse an das Azure-Portal.The client and server components of your app send telemetry back to the Azure portal for analysis.

  1. Servercode: Installieren Sie das entsprechende Modul für die ASP.NET-, Azure-, Java-, Node.js-App oder einen anderen Typ von App.Server code: Install the appropriate module for your ASP.NET, Azure, Java, Node.js, or other app.

  2. Webseitencode: Fügen Sie Ihrer Webseite vor dem schließenden </head>-Tag das folgende Skript hinzu.Web page code: Add the following script to your web page before the closing </head>. Ersetzen Sie den Instrumentierungsschlüssel durch den geeigneten Wert für Ihre Application Insights-Ressource:Replace instrumentation key with the appropriate value for your Application Insights resource:

    <script type="text/javascript">
    var sdkInstance="appInsightsSDK";window[sdkInstance]="appInsights";var aiName=window[sdkInstance],aisdk=window[aiName]||function(e){function n(e){t[e]=function(){var n=arguments;t.queue.push(function(){t[e].apply(t,n)})}}var t={config:e};t.initialize=!0;var i=document,a=window;setTimeout(function(){var n=i.createElement("script");n.src=e.url||"https://az416426.vo.msecnd.net/scripts/b/ai.2.min.js",i.getElementsByTagName("script")[0].parentNode.appendChild(n)});try{t.cookie=i.cookie}catch(e){}t.queue=[],t.version=2;for(var r=["Event","PageView","Exception","Trace","DependencyData","Metric","PageViewPerformance"];r.length;)n("track"+r.pop());n("startTrackPage"),n("stopTrackPage");var s="Track"+r[0];if(n("start"+s),n("stop"+s),n("setAuthenticatedUserContext"),n("clearAuthenticatedUserContext"),n("flush"),!(!0===e.disableExceptionTracking||e.extensionConfig&&e.extensionConfig.ApplicationInsightsAnalytics&&!0===e.extensionConfig.ApplicationInsightsAnalytics.disableExceptionTracking)){n("_"+(r="onerror"));var o=a[r];a[r]=function(e,n,i,a,s){var c=o&&o(e,n,i,a,s);return!0!==c&&t["_"+r]({message:e,url:n,lineNumber:i,columnNumber:a,error:s}),c},e.autoExceptionInstrumented=!0}return t}(
    {
      instrumentationKey:"INSTRUMENTATION_KEY"
    }
    );window[aiName]=aisdk,aisdk.queue&&0===aisdk.queue.length&&aisdk.trackPageView({});
    </script>
    

    Informationen zu komplexeren Konfigurationen für die Websiteüberwachung finden Sie im Referenzartikel zum JavaScript SDK.To learn more advanced configurations for monitoring websites, check out the JavaScript SDK reference article.

  3. Code der mobilen App: Verwenden Sie das App Center SDK, um Ereignisse aus Ihrer App zu erfassen, und senden Sie Kopien dieser Ereignisse zur Analyse an Application Insights. Eine entsprechende Anleitung finden Sie hier.Mobile app code: Use the App Center SDK to collect events from your app, then send copies of these events to Application Insights for analysis by following this guide.

  4. Abrufen von Telemetriedaten: Führen Sie das Projekt einige Minuten lang im Debugmodus aus, und suchen Sie dann im Blatt „Übersicht“ von Application Insights nach Ergebnissen.Get telemetry: Run your project in debug mode for a few minutes, and then look for results in the Overview blade 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.Publish your app to monitor your app's performance and find out what your users are doing with your app.

Einschließen der Benutzer- und Sitzungs-ID in der TelemetrieInclude user and session ID in your telemetry

Um im Laufe der Zeit Benutzeraktionen nachzuverfolgen, erfordert Application Insights die Möglichkeit, um diese zu kennzeichnen.To track users over time, Application Insights requires a way to identify them. Das Ereignistool ist das einzige Nutzungstool, das keine Benutzer- oder Sitzungs-ID erfordert.The Events tool is the only Usage tool that does not require a user ID or a session ID.

Beginnen Sie mit dem Senden von Benutzer- und Sitzungs-IDs mithilfe dieses Prozesses.Start sending user and session IDs using this process.

Untersuchen von demografische Daten und Statistiken zur NutzungExplore usage demographics and statistics

Ermitteln Sie, wann Personen Ihre App verwenden, für welche Seiten sie sich am meisten interessieren, wo sich die Benutzer befinden, welche Browser und Betriebssysteme sie verwenden.Find out when people use your app, what pages they're most interested in, where your users are located, what browsers and operating systems they use.

In Benutzer- und Sitzungsberichte werden Ihre Daten nach Seiten oder benutzerdefinierten Ereignissen gefiltert und nach Eigenschaften wie Speicherort, Umgebung und Seite segmentiert.The Users and Sessions reports filter your data by pages or custom events, and segment them by properties such as location, environment, and page. Sie können auch eigene Filter hinzufügen.You can also add your own filters.

Benutzer

Aus den Informationen auf der rechten Seite gehen interessante Muster im Datensatz hervor.Insights on the right point out interesting patterns in the set of data.

  • Der Bericht Benutzer zählt die eindeutigen Benutzer, die innerhalb der ausgewählten Zeiträume auf Ihre Seiten zugreifen.The Users report counts the numbers of unique users that access your pages within your chosen time periods. Für Web-Apps werden Benutzer mithilfe von Cookies gezählt.For web apps, users are counted by using cookies. Wenn eine Person mit verschiedenen Browsern oder Clientcomputern auf Ihre Website zugreift oder ihre Cookies löscht, wird sie mehrfach gezählt.If someone accesses your site with different browsers or client machines, or clears their cookies, then they will be counted more than once.
  • Der Bericht Sitzungen zählt die Benutzersitzungen, die auf Ihre Website zugreifen.The Sessions report counts the number of user sessions that access your site. Eine Sitzung ist ein Zeitraum der Aktivität eines Benutzers, der von einem Zeitraum der Inaktivität von mehr als eine halben Stunde beendet wird.A session is a period of activity by a user, terminated by a period of inactivity of more than half an hour.

Weitere Informationen zu den Tools für Benutzer, Sitzungen und EreignisseMore about the Users, Sessions, and Events tools

Vermerkdauer – wie viele Benutzer kehren zurück?Retention - how many users come back?

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.Retention helps you understand how often your users return to use their app, based on cohorts of users that performed some business action during a certain time bucket. 

  • Ermitteln, welche bestimmten Funktionen dazu führen, dass einige Benutzer häufiger zurückkehren als andereUnderstand what specific features cause users to come back more than others
  • Bilden von Hypothesen basierend auf echten BenutzerdatenForm hypotheses based on real user data
  • Bestimmen, ob die Vermerkdauer ein Problem in Ihrem Produkt darstelltDetermine whether retention is a problem in your product

Aufbewahrung

Die Vermerkdauer-Steuerelemente oben ermöglichen Ihnen das Definieren bestimmter Ereignisse und des Zeitbereichs für die Berechnen der Vermerkdauer.The retention controls on top allow you to define specific events and time range to calculate retention. Das Diagramm in der Mitte bietet eine visuelle Darstellung des Prozentsatzes der gesamten Vermerkdauer nach dem angegebenen Zeitbereichs.The graph in the middle gives a visual representation of the overall retention percentage by the time range specified. Im Diagramm unten wird eine einzelne Vermerkdauer in einem bestimmten Zeitraum dargestellt.The graph on the bottom represents individual retention in a given time period. Dank dieses Detaillierungsgrads können Sie mit höherer Granularität verstehen, was Ihre Benutzer tun und was sich auf zurückkehrende Benutzer auswirkt.This level of detail allows you to understand what your users are doing and what might affect returning users on a more detailed granularity.

Weitere Informationen zum Vermerkdauer-ToolMore about the Retention tool

Benutzerdefinierte GeschäftsereignisseCustom business events

Um ein genaues Verständnis davon zu erhalten, was Benutzer mit Ihrer App machen, ist es hilfreich, Codezeilen einzufügen, um benutzerdefinierte Ereignisse zu protokollieren.To get a clear understanding of what users do with your app, it's useful to insert lines of code to log custom events. Diese Ereignisse können alles nachverfolgen – von detaillierten Benutzeraktionen wie das Klicken auf bestimmte Schaltflächen bis hin zu aussagekräftigeren Geschäftsereignissen wie das Tätigen eines Kaufs oder das Gewinnen eines Spiels.These events can track anything from detailed user actions such as clicking specific buttons, to more significant business events such as making a purchase or winning a game.

Seitenaufrufe können zwar in einigen Fällen nützliche Ereignisse darstellen, im Allgemeinen ist dies jedoch nicht der Fall.Although in some cases, page views can represent useful events, it isn't true in general. Ein Benutzer kann eine Produktseite öffnen, ohne das Produkt zu kaufen.A user can open a product page without buying the product.

Mit bestimmten Geschäftsereignisse können Sie den Aufenthalt von Benutzern auf Ihrer Website in einem Diagramm darstellen.With specific business events, you can chart your users' progress through your site. Sie können deren Einstellungen für unterschiedliche Optionen ermitteln und herausfinden, wo sie abbrechen oder Schwierigkeiten haben.You can find out their preferences for different options, and where they drop out or have difficulties. Mit diesem Wissen können Sie fundierte Entscheidungen über die Prioritäten in Ihrem Entwicklungs-Backlog treffen.With this knowledge, you can make informed decisions about the priorities in your development backlog.

Ereignisse können von der Clientseite der App aus protokolliert werden:Events can be logged from the client side of the app:


    appInsights.trackEvent("ExpandDetailTab", {DetailTab: tabName});

Oder von der Serverseite:Or from the server side:

    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 anfügen, damit Sie die Ereignisse beim Überprüfen im Portal filtern oder teilen können.You can attach property values to these events, so that you can filter or split the events when you inspect them in the portal. Außerdem wird jedem Ereignis 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.In addition, a standard set of properties is attached to each event, such as anonymous user ID, which allows you to trace the sequence of activities of an individual user.

Erfahren Sie mehr über benutzerdefinierte Ereignisse und Eigenschaften.Learn more about custom events and properties.

Aufteilen von EreignissenSlice and dice events

In den Tools für Benutzer, Sitzungen und Ereignisse können Sie benutzerdefinierte Ereignisse nach Benutzer, Ereignisname und Eigenschaften aufteilen.In the Users, Sessions, and Events tools, you can slice and dice custom events by user, event name, and properties. BenutzerUsers

Entwerfen der Telemetrie mit der AppDesign the telemetry with the app

Berücksichtigen Sie beim Entwerfen der einzelnen Funktionen Ihrer App, wie sie deren Erfolg bei den Benutzern messen werden.When you are designing each feature of your app, consider how you are going to measure its success with your users. Entscheiden Sie, welche Geschäftsereignisse aufgezeichnet werden müssen, und codieren Sie die Aufrufnachverfolgung für diese Ereignisse von Anfang an in die App.Decide what business events you need to record, and code the tracking calls for those events into your app from the start.

A-B-TestsA | B Testing

Wenn Sie nicht wissen, welche Variante eines Features erfolgreicher sein wird, veröffentlichten Sie beide, und ermöglichen Sie verschiedenen Benutzern den Zugriff darauf.If you don't know which variant of a feature will be more successful, release both of them, making each accessible to different users. Messen Sie den jeweiligen Erfolg, und erstellen Sie anschließend eine vereinheitlichte Version.Measure the success of each, and then move to a unified version.

Für dieses Verfahren fügen Sie unterschiedliche Eigenschaftswerte an alle Telemetriedaten an, die von jeder Version Ihrer App gesendet wird.For this technique, you attach distinct property values to all the telemetry that is sent by each version of your app. Dazu definieren Sie Eigenschaften im aktiven "TelemetryContext"-Element.You can do that by defining properties in the active TelemetryContext. Diese Standardeigenschaften werden jeder Telemetrienachricht hinzugefügt, die die Anwendung sendet, nicht nur Ihren benutzerdefinierten Nachrichten, sondern auch den Standardtelemetriedaten.These default properties are added to every telemetry message that the application sends - not just your custom messages, but the standard telemetry as well.

Filtern und teilen Sie im Application Insights-Portal Ihre Daten anhand der Eigenschaftswerte, um die verschiedenen Versionen zu vergleichen.In the Application Insights portal, filter and split your data on the property values, so as to compare the different versions.

Dazu richten Sie einen Telemetrieinitialisierer ein:To do this, set up a telemetry initializer:

ASP.NET-AppsASP.NET apps

    // Telemetry initializer class
    public class MyTelemetryInitializer : ITelemetryInitializer
    {
        public void Initialize(ITelemetry item)
            {
                var itemProperties = item as ISupportProperties;
                if (itemProperties != null && !itemProperties.Properties.ContainsKey("AppVersion"))
                {
                    itemProperties.Properties["AppVersion"] = "v2.1";
                }
            }
    }

Im Web-App-Initialisierer wie „Global.asax.cs“:In the web app initializer such as Global.asax.cs:


    protected void Application_Start()
    {
        // ...
        TelemetryConfiguration.Active.TelemetryInitializers
         .Add(new MyTelemetryInitializer());
    }

ASP.NET Core AppsASP.NET Core apps

Hinweis

Das Hinzufügen eines Initialisierers mit ApplicationInsights.config oder TelemetryConfiguration.Active ist für ASP.NET Core-Anwendungen nicht zulässig.Adding initializer using ApplicationInsights.config or using TelemetryConfiguration.Active is not valid for ASP.NET Core applications.

Zum Hinzufügen eines neuen TelemetryInitializer für ASP.NET Core-Anwendungen wird dieser wie unten gezeigt dem Abhängigkeitsinjektionscontainer hinzugefügt.For ASP.NET Core applications, adding a new TelemetryInitializer is done by adding it to the Dependency Injection container, as shown below. Dies erfolgt in der ConfigureServices-Methode Ihrer Startup.cs-Klasse.This is done in ConfigureServices method of your Startup.cs class.

 using Microsoft.ApplicationInsights.Extensibility;
 using CustomInitializer.Telemetry;
 public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton<ITelemetryInitializer, MyTelemetryInitializer>();
}

Alle neuen TelemetryClients-Elemente fügen automatisch den von Ihnen angegebenen Eigenschaftswert hinzu.All new TelemetryClients automatically add the property value you specify. Einzelne Telemetrieereignisse können die Standardwerte außer Kraft setzen.Individual telemetry events can override the default values.

Nächste SchritteNext steps