Share via


App Center Analytics (Windows)

Wichtig

Visual Studio App Center wird am 31. März 2025 eingestellt. Sie können Visual Studio App Center zwar weiterhin verwenden, bis es vollständig eingestellt ist, es gibt jedoch mehrere empfohlene Alternativen, zu denen Sie möglicherweise eine Migration in Erwägung ziehen.

Erfahren Sie mehr über Supportzeitpläne und Alternativen.

App Center Analytics hilft Ihnen dabei, das Benutzerverhalten und die Kundenbindung zu verstehen, um Ihre App zu verbessern. Das SDK erfasst automatisch die Sitzungsanzahl und Geräteeigenschaften wie Modell, Betriebssystemversion usw. Sie können Ihre eigenen benutzerdefinierten Ereignisse definieren, um Dinge zu messen, die für Sie wichtig sind. Alle erfassten Informationen sind im App Center-Portal verfügbar, damit Sie die Daten analysieren können.

Folgen Sie dem Abschnitt WPF/WinForms Erste Schritte oder UWP/WinUI Erste Schritte (basierend auf Ihrer Plattform), wenn Sie das SDK noch nicht in Ihrer Anwendung eingerichtet haben.

Die Anweisungen auf dieser Seite funktionieren für UWP (einschließlich Xamarin.Forms und WinUI), WPF und WinForms.

Sitzungs- und Geräteinformationen

Nachdem Sie Ihrer App App Center Analytics hinzugefügt und das SDK gestartet haben, werden Sitzungen und Geräteeigenschaften wie Betriebssystemversion, Modell usw. automatisch nachverfolgt.

Hinweis

Bei WinUI-Apps kann die Anzahl der Sitzungen aufgrund der Besonderheiten des Lebenszyklus niedriger sein als bei UWP-Apps.

Landesvorwahl

Der Ländercode wird vom SDK nicht automatisch gemeldet. Wenn Sie dies manuell melden möchten, können Sie die unten aufgeführten Anweisungen für Ihre Plattform befolgen.

UWP

  1. Stellen Sie sicher, dass Sie die Standortfunktion für Ihre App aktivieren.
  2. Rufen Sie einen Bing Karten-Authentifizierungsschlüssel ab.
  3. Verwenden Sie den folgenden Code an beliebiger Stelle, bevor Sie aufrufen AppCenter.Start(... typeof(Analytics) ...);. Verwenden Sie als BingMapsTokenden in Schritt 2 abgerufenen Schlüssel.
private static async Task SetCountryCode()
{
    // The following country code is used only as a fallback for the main implementation.
    // This fallback country code doesn't reflect the physical device location, but rather the
    // country that corresponds to the culture it uses.
    var countryCode = new GeographicRegion().CodeTwoLetter;
    var accessStatus = await Geolocator.RequestAccessAsync();
    switch (accessStatus)
    {
        case GeolocationAccessStatus.Allowed:
            var geoLocator = new Geolocator
            {
                DesiredAccuracyInMeters = 100
            };
            var position = await geoLocator.GetGeopositionAsync();
            var myLocation = new BasicGeoposition
            {
                Longitude = position.Coordinate.Point.Position.Longitude,
                Latitude = position.Coordinate.Point.Position.Latitude
            };
            var pointToReverseGeocode = new Geopoint(myLocation);
            MapService.ServiceToken = Constants.BingMapsAuthKey;
            var result = await MapLocationFinder.FindLocationsAtAsync(pointToReverseGeocode);
            if (result.Status != MapLocationFinderStatus.Success || result.Locations == null || result.Locations.Count == 0)
            {
                break;
            }

            // The returned country code is in 3-letter format (ISO 3166-1 alpha-3).
            // Below we convert it to ISO 3166-1 alpha-2 (two letter).
            var country = result.Locations[0].Address.CountryCode;
            countryCode = new GeographicRegion(country).CodeTwoLetter;
            break;
        case GeolocationAccessStatus.Denied:
            AppCenterLog.Info(LogTag, "Geolocation access denied. To set country code in App Center, enable location service in Windows 10.");
            break;
        case GeolocationAccessStatus.Unspecified:
            break;
    }
    AppCenter.SetCountryCode(countryCode);
}

Hinweis

Damit der Ländercode in Analysesitzungen angezeigt werden kann, AppCenter.SetCountryCode muss vor dem Aufrufen AppCenter.Startaufgerufen werden.

WPF/WinForms

Da WPF/WinForms-Plattformen keine Geolocation-API besitzen, können Sie einen Systemlandcode verwenden.

using System.Globalization;

private static void SetCountryCode()
{
    // This fallback country code doesn't reflect the physical device location, but rather the
    // country that corresponds to the culture it uses.
    var countryCode = RegionInfo.CurrentRegion.TwoLetterISORegionName;
    AppCenter.SetCountryCode(countryCode);
}

Hinweis

Damit der Ländercode in Analysesitzungen angezeigt werden kann, AppCenter.SetCountryCode muss vor dem Aufrufen AppCenter.Startaufgerufen werden.

Benutzerdefinierte Ereignisse

Sie können Ihre eigenen benutzerdefinierten Ereignisse mit bis zu 20 Eigenschaften nachverfolgen, um die Interaktion zwischen Ihren Benutzern und der App zu verstehen.

Nachdem Sie das SDK gestartet haben, verwenden Sie die TrackEvent() -Methode, um Ihre Ereignisse mit Eigenschaften nachzuverfolgen. Sie können bis zu 200 verschiedene Ereignisnamen senden. Außerdem gibt es eine maximale Grenze von 256 Zeichen pro Ereignisnamen und 125 Zeichen pro Ereigniseigenschaftsname und Ereigniseigenschaftenwert.

Analytics.TrackEvent("Video clicked", new Dictionary<string, string> {
    { "Category", "Music" },
    { "FileName", "favorite.avi"}
});

Eigenschaften für Ereignisse sind völlig optional. Wenn Sie nur ein Ereignis nachverfolgen möchten, verwenden Sie stattdessen dieses Beispiel:

Analytics.TrackEvent("Video clicked");

Aktivieren oder Deaktivieren von App Center Analytics zur Laufzeit

Sie können App Center Analytics zur Laufzeit aktivieren und deaktivieren. Wenn Sie sie deaktivieren, sammelt das SDK keine weiteren Analyseinformationen für die App.

Analytics.SetEnabledAsync(false);

Um App Center Analytics erneut zu aktivieren, verwenden Sie dieselbe API, übergeben true sie aber als Parameter.

Analytics.SetEnabledAsync(true);

Sie müssen diesen Aufruf nicht abwarten, um andere API-Aufrufe (z IsEnabledAsync. B. ) konsistent auszuführen.

Der Zustand wird im Speicher des Geräts bei allen Anwendungsstarts beibehalten.

Überprüfen, ob App Center Analytics aktiviert ist

Sie können auch überprüfen, ob App Center Analytics aktiviert ist oder nicht.

bool isEnabled = await Analytics.IsEnabledAsync();

Verwalten der Startsitzung

Standardmäßig hängt die Sitzungs-ID vom Lebenszyklus der Anwendung ab. Wenn Sie den Start einer neuen Sitzung manuell steuern möchten, führen Sie die nächsten Schritte aus:

Hinweis

Achten Sie darauf, dass jeder Aufruf der Analytics.StartSession() -API eine neue Sitzung generiert. Wenn diese API im manuellen Sitzungsnachverfolgungsmodus nicht aufgerufen wird, haben alle sendenden Protokolle einen NULL-Sitzungswert.

Hinweis

Achten Sie darauf, dass nach dem Starten einer neuen Anwendung die Sitzungs-ID neu generiert wird.

  • Rufen Sie die folgende Methode auf, bevor Sie das SDK starten:
Analytics.EnableManualSessionTracker();
  • Anschließend können Sie die StartSession API nach verwenden AppCenter.Start:
Analytics.StartSession();

Größe des lokalen Speichers

Standardmäßig speichert das SDK alle Ereignisprotokolle bis zu 10 MB. Entwickler können eine API verwenden, um die Speichergröße zu erhöhen, und das SDK speichert Protokolle so lange, bis der Speicher voll ist.

Kein Internetzugriff

Wenn keine Netzwerkkonnektivität vorhanden ist, speichert das SDK bis zu 10 MB An Protokollen im lokalen Speicher. Sobald der Speicher voll ist, beginnt das SDK, alte Protokolle zu verwerfen, um Platz für die neuen Protokolle zu schaffen. Sobald das Gerät den Internetzugriff zurückerhalten hat, sendet das SDK Protokolle im Batch von 50 oder nach 6 Sekunden.

Batchverarbeitung von Ereignisprotokollen

Das App Center SDK lädt Protokolle in einem Batch von 50 hoch, und wenn das SDK nicht über 50 Zu sendende Protokolle verfügt, sendet es nach 6 Sekunden immer noch Protokolle. Es können maximal drei Batches parallel gesendet werden.

Wiederholungs- und Back-off-Logik

Das App Center SDK unterstützt Back-Off-Wiederholungen bei wiederherstellbaren Netzwerkfehlern. Im Folgenden finden Sie die Wiederholungslogik:

  • Maximal 3 Versuche pro Anforderung.
  • Jede Anforderung verfügt über einen eigenen Wiederholungszustandscomputer.
  • Alle Übertragungskanäle sind deaktiviert (bis zum nächsten App-Prozess), nachdem eine Anforderung alle Wiederholungen erschöpft hat.

Back-off-Logik

  • 50% Randomisierung, erster Wiederholungsversuch zwischen 5s und 10s, zweiter Wiederholungsversuch zwischen 2,5 und 5 Minuten, letzter Versuch zwischen 10 und 20 Minuten.
  • Wenn das Netzwerk von Aus zu Ein wechselt (oder von WLAN auf Mobil), werden wiederholungszustände zurückgesetzt, und Anforderungen werden sofort wiederholt.