App Center Analytics (Windows)

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.

Befolgen Sie den 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 Automatisch Sitzungen und Geräteeigenschaften wie Betriebssystemversion, Modell usw. nachverfolgt.

Hinweis

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

Landesvorwahl

Die Länderkennzahl wird vom SDK nicht automatisch gemeldet. Wenn Sie dies manuell melden möchten, können Sie die nachstehenden 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 die Landeskennzahl in Analytics-Sitzungen angezeigt werden kann, AppCenter.SetCountryCode muss vor dem Aufrufen AppCenter.Startvon aufgerufen werden.

WPF/WinForms

Da WPF/WinForms-Plattformen über keine Geolocation-API verfügen, können Sie einen Ländercode des Systems 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 die Landeskennzahl in Analytics-Sitzungen angezeigt werden kann, AppCenter.SetCountryCode muss vor dem Aufrufen AppCenter.Startvon aufgerufen 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 Beschränkung von 256 Zeichen pro Ereignisnamen und 125 Zeichen pro Ereigniseigenschaftsname und Ereigniseigenschaftswert.

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, erfasst 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 jedoch als Parameter.

Analytics.SetEnabledAsync(true);

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

Der Zustand wird über Anwendungsstarts hinweg im Speicher des Geräts beibehalten.

Überprüfen, ob App Center Analytics aktiviert ist

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

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 SITZUNGS-NULL-Wert.

Hinweis

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

  • Rufen Sie die folgende Methode auf, bevor das SDK gestartet wird:
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, 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 wieder Zugriff auf das Internet erhält, 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 Backofflogik

Das App Center SDK unterstützt Back-Off-Wiederholungsversuche 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 werden deaktiviert (bis zum nächsten App-Prozess), nachdem eine Anforderung alle Wiederholungsversuche aufgebraucht hat.

Back-off-Logik

  • Zufällige 50 %, erste Wiederholung zwischen 5 und 10, zweiter Wiederholungsversuch zwischen 2,5 und 5 Minuten, letzter Versuch zwischen 10 und 20 Minuten.
  • Wenn das Netzwerk von aus zu ein (oder von WLAN auf Mobil) wechselt, werden die Wiederholungszustände zurückgesetzt, und Anforderungen werden sofort wiederholt.