App Center Analytics (Windows)

Důležité

Visual Studio App Center je naplánované k vyřazení na 31. března 2025. I když můžete Visual Studio App Center dál používat, dokud ho úplně nevyřadíte, existuje několik doporučených alternativ, na které můžete migraci zvážit.

Přečtěte si další informace o časových osách a alternativách podpory.

App Center Analytics pomáhá porozumět chování uživatelů a zapojení zákazníků a zlepšit tak vaši aplikaci. Sada SDK automaticky zaznamenává počet relací a vlastnosti zařízení, jako je model, verze operačního systému atd. Můžete definovat vlastní události a měřit věci, na kterých vám záleží. Všechny zachycené informace jsou k dispozici na portálu App Center, kde můžete analyzovat data.

Pokud jste v aplikaci ještě nenastavili sadu SDK, postupujte podle části Začínáme WPF/WinForms nebo Začínáme UPW/WinUI (podle vaší platformy).

Pokyny na této stránce fungují pro UPW (včetně Xamarin.Forms a WinUI), WPF a WinForms.

Informace o relacích a zařízeních

Jakmile do aplikace přidáte App Center Analytics a spustíte sadu SDK, bude se automaticky sledovat relace a vlastnosti zařízení, jako je verze operačního systému, model atd.

Poznámka

U aplikací WinUI může být kvůli specifikám jejich životního cyklu počet relací nižší než u aplikací pro UPW.

Kód země

Sada SDK automaticky nehlásí kód země. Pokud to chcete nahlásit ručně, můžete postupovat podle pokynů pro vaši platformu níže.

UWP

  1. Ujistěte se, že jste pro aplikaci povolili funkci zjišťování polohy .
  2. Získejte ověřovací klíč Mapy Bing.
  3. Před voláním AppCenter.Start(... typeof(Analytics) ...);příkazu použijte na libovolném místě následující kód. Jako BingMapsTokenpoužijte klíč získaný v 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);
}

Poznámka

Aby se kód země zobrazoval v relacích analýzy, AppCenter.SetCountryCode musí být před voláním AppCenter.Startvolána .

WPF/WinForms

Vzhledem k tomu, že platformy WPF a WinForms nemají rozhraní API pro geografickou polohu, můžete použít kód země systému.

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

Poznámka

Aby se kód země zobrazoval v relacích analýzy, AppCenter.SetCountryCode musí být před voláním AppCenter.Startvolána .

Vlastní události

Můžete sledovat vlastní události s až 20 vlastnostmi , abyste porozuměli interakci mezi uživateli a aplikací.

Po spuštění sady SDK použijte metodu TrackEvent() ke sledování událostí pomocí vlastností. Můžete odeslat až 200 různých názvů událostí. Platí také maximální limit 256 znaků na název události a 125 znaků na název vlastnosti události a hodnotu vlastnosti události.

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

Vlastnosti událostí jsou zcela volitelné – pokud chcete událost jenom sledovat, použijte místo toho tuto ukázku:

Analytics.TrackEvent("Video clicked");

Povolení nebo zakázání App Center Analytics za běhu

App Center Analytics můžete povolit a zakázat za běhu. Pokud ho zakážete, sada SDK nebude pro aplikaci shromažďovat žádné další analytické informace.

Analytics.SetEnabledAsync(false);

Pokud chcete analýzu App Center znovu povolit, použijte stejné rozhraní API, ale předejte true ho jako parametr.

Analytics.SetEnabledAsync(true);

Toto volání nemusíte čekat, aby ostatní volání rozhraní API (například IsEnabledAsync) byla konzistentní.

Stav se během spouštění aplikací zachová v úložišti zařízení.

Kontrola, jestli je povolená analýza app center

Můžete také zkontrolovat, jestli je služba App Center Analytics povolená nebo ne.

bool isEnabled = await Analytics.IsEnabledAsync();

Spravovat úvodní relaci

ID relace ve výchozím nastavení závisí na životním cyklu aplikace. Pokud chcete řídit zahájení nové relace ručně, postupujte podle následujících kroků:

Poznámka

Věnujte pozornost tomu, že každé volání rozhraní API Analytics.StartSession() vygeneruje novou relaci. Pokud se v režimu ručního sledování relací toto rozhraní API nebude volat, budou mít všechny odesílající protokoly hodnotu relace s hodnotou null.

Poznámka

Věnujte pozornost tomu, že po spuštění nové aplikace se ID relace znovu vygeneruje.

  • Před spuštěním sady SDK zavolejte následující metodu:
Analytics.EnableManualSessionTracker();
  • Pak můžete použít StartSession rozhraní API po :AppCenter.Start
Analytics.StartSession();

Velikost místního úložiště

Ve výchozím nastavení sada SDK ukládá všechny protokoly událostí až do 10 MB. Vývojáři můžou pomocí rozhraní API zvětšit velikost úložiště a sada SDK bude ukládat protokoly, dokud se úložiště zaplní.

Bez přístupu k internetu

Pokud není k dispozici žádné připojení k síti, sada SDK uloží do místního úložiště až 10 MB protokolů. Jakmile se úložiště zaplní, sada SDK začne zahazovat staré protokoly, aby uvolnila místo pro nové protokoly. Jakmile zařízení získá přístup k internetu, sada SDK bude odesílat protokoly v dávce 50 nebo po každých 6 sekundách.

Dávkování protokolů událostí

Sada App Center SDK nahrává protokoly v dávce 50, a pokud sada SDK nemá 50 protokolů k odeslání, bude protokoly odesílat i po 6 sekundách. Paralelně se můžou odesílat maximálně tři dávky.

Logika opakování a opakování

Sada App Center SDK podporuje opakované pokusy se zpětným ukončením při obnovitelných chybách sítě. Níže je logika opakování:

  • Maximální počet pokusů na požadavek: 3.
  • Každý požadavek má svůj vlastní počítač se stavem opakování.
  • Všechny přenosové kanály jsou zakázané (až do dalšího procesu aplikace) poté, co jeden požadavek vyčerpá všechny pokusy.

Logika zásady

  • 50% randomizace, první opakování mezi 5 a 10s, druhé opakování mezi 2,5 a 5 minutami, poslední pokus mezi 10 a 20 minutami.
  • Pokud se síť přepne z vypnutého na zapnuto (nebo z wi-fi na mobilní zařízení), stavy opakování se resetují a žádosti se okamžitě opakují.