Udostępnij przez


App Center Analytics (Windows)

Ważne

Program Visual Studio App Center został wycofany 31 marca 2025 r. z wyjątkiem funkcji analizy i diagnostyki, które będą nadal obsługiwane do 30 czerwca 2026 r. Dowiedz się więcej.

Usługa App Center Analytics pomaga zrozumieć zachowanie użytkowników i zaangażowanie klientów w celu ulepszenia aplikacji. Zestaw SDK automatycznie przechwytuje liczbę sesji i właściwości urządzenia, takie jak model, wersja systemu operacyjnego itp. Możesz zdefiniować własne zdarzenia niestandardowe, aby mierzyć istotne elementy. Wszystkie przechwycone informacje są dostępne w portalu App Center, aby umożliwić analizę danych.

Postępuj zgodnie z sekcją WPF/WinForms Getting Started lub UWP/WinUI Getting Started (opartą na platformie), jeśli zestaw SDK nie został jeszcze skonfigurowany w aplikacji.

Instrukcje na tej stronie działają dla platformy UWP (w tym platform Xamarin.Forms i WinUI), WPF i WinForms.

Informacje o sesji i urządzeniu

Po dodaniu usługi App Center Analytics do aplikacji i uruchomieniu zestawu SDK będzie ona automatycznie śledzić sesje i właściwości urządzenia, takie jak wersja systemu operacyjnego, model itp.

Uwaga / Notatka

W przypadku aplikacji WinUI ilość sesji może być niższa niż w aplikacjach platformy UWP ze względu na specyfikę jej cyklu życia.

Kod kraju

Kod kraju nie jest automatycznie zgłaszany przez zestaw SDK. Jeśli chcesz zgłosić go ręcznie, możesz postępować zgodnie z poniższymi instrukcjami dotyczącymi platformy.

Platforma UWP

  1. Upewnij się, że włączono funkcję lokalizacji dla aplikacji.
  2. Uzyskaj klucz uwierzytelniania mapy Bing.
  3. Przed wywołaniem metody AppCenter.Start(... typeof(Analytics) ...);użyj następującego kodu w dowolnym miejscu. Jako BingMapsTokenużyj klucza uzyskanego w kroku 2.
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);
}

Uwaga / Notatka

Aby kod kraju był wyświetlany w sesjach analizy, AppCenter.SetCountryCode należy wywołać przed wywołaniem metody AppCenter.Start.

WPF/WinForms

Ponieważ platformy WPF/WinForms nie mają interfejsu API geolokalizacji, można użyć kodu kraju systemu.

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);
}

Uwaga / Notatka

Aby kod kraju był wyświetlany w sesjach analizy, AppCenter.SetCountryCode należy wywołać przed wywołaniem metody AppCenter.Start.

Zdarzenia niestandardowe

Możesz śledzić własne zdarzenia niestandardowe z maksymalnie 20 właściwościami , aby zrozumieć interakcję między użytkownikami a aplikacją.

Po uruchomieniu zestawu SDK użyj metody TrackEvent() do śledzenia swoich zdarzeń wraz z właściwościami. Możesz wysłać do 200 odrębnych nazw zdarzeń. Ponadto istnieje maksymalny limit 256 znaków na nazwę zdarzenia i 125 znaków na nazwę właściwości zdarzenia i wartość właściwości zdarzenia.

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

Właściwości zdarzeń są całkowicie opcjonalne — jeśli chcesz śledzić zdarzenie, użyj tego przykładu:

Analytics.TrackEvent("Video clicked");

Włączanie lub wyłączanie analizy usługi App Center w czasie wykonywania

Możesz włączyć i wyłączyć analizę usługi App Center w czasie wykonywania. Jeśli go wyłączysz, zestaw SDK nie będzie zbierał żadnych dodatkowych informacji analitycznych dla aplikacji.

Analytics.SetEnabledAsync(false);

Aby ponownie włączyć usługę App Center Analytics, użyj tego samego interfejsu API, ale przekaż true jako parametr.

Analytics.SetEnabledAsync(true);

Nie musisz czekać na to wywołanie, aby inne wywołania interfejsu API (takie jak IsEnabledAsync) były spójne.

Stan jest utrwalany w magazynie urządzenia w ramach uruchamiania aplikacji.

Sprawdzanie, czy usługa App Center Analytics jest włączona

Możesz również sprawdzić, czy usługa App Center Analytics jest włączona, czy nie.

bool isEnabled = await Analytics.IsEnabledAsync();

Zarządzanie sesją początkową

Domyślnie identyfikator sesji zależy od cyklu życia aplikacji. Jeśli chcesz ręcznie kontrolować rozpoczęcie nowej sesji, wykonaj następujące kroki:

Uwaga / Notatka

Zwróć uwagę, że każde wywołanie interfejsu API Analytics.StartSession() spowoduje wygenerowanie nowej sesji. Jeśli w trybie ręcznego śledzenia sesji ten interfejs API nie zostanie wywołany, wszystkie dzienniki wysyłające będą miały wartość sesji o wartości null.

Uwaga / Notatka

Zwróć uwagę, że po uruchomieniu nowej aplikacji identyfikator sesji zostanie ponownie wygenerowany.

  • Wywołaj następującą metodę przed uruchomieniem zestawu SDK:
Analytics.EnableManualSessionTracker();
  • Następnie możesz użyć interfejsu API po wykonaniu StartSession polecenia AppCenter.Start:
Analytics.StartSession();

Rozmiar magazynu lokalnego

Domyślnie zestaw SDK przechowuje wszystkie dzienniki zdarzeń do 10 MB. Deweloperzy mogą używać API do zwiększenia przestrzeni magazynowej, a zestaw SDK będzie przechowywać dzienniki aż do całkowitego zapełnienia.

Brak dostępu do Internetu

Jeśli nie ma łączności sieciowej, SDK zapisuje dzienniki do 10 MB w pamięci lokalnej. Po zapełnieniu magazynu zestaw SDK zacznie odrzucać stare dzienniki, aby zapewnić miejsce na nowe dzienniki. Gdy urządzenie odzyska dostęp do Internetu, SDK będzie wysyłać dzienniki w partiach po 50 lub co 6 sekund.

Grupowanie logów zdarzeń

SDK App Center wysyła dzienniki w partiach po 50, a jeśli SDK nie ma 50 dzienników do wysłania, nadal wyśle dzienniki po 6 sekundach. Można wysłać maksymalnie trzy partie równolegle.

Logika ponawiania i wycofywania

Zestaw SDK usługi App Center obsługuje ponawianie prób w przypadku możliwych do odzyskania błędów sieci. Poniżej znajduje się logika ponawiania prób:

  • Maksymalnie 3 próby na każde żądanie.
  • Każde żądanie ma własny mechanizm stanu ponawiania.
  • Wszystkie kanały transmisji są wyłączone (do następnego procesu aplikacji) po wyczerpaniu wszystkich ponownych prób przez jedno żądanie.

Logika odwlekania

  • 50% losowań, najpierw ponów próbę z zakresu od 5s do 10s, drugą próbę z zakresu od 2,5 do 5 minut, ostatnia próba z zakresu od 10 do 20 minut.
  • Jeśli sieć zmienia się z wyłączonej na włączoną (lub z wi-fi na mobilną), stany ponawiania są restartowane i żądania są ponawiane natychmiast.