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.
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.
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.
- Ujistěte se, že jste pro aplikaci povolili funkci zjišťování polohy .
- Získejte ověřovací klíč Mapy Bing.
- Před voláním
AppCenter.Start(... typeof(Analytics) ...);
příkazu použijte na libovolném místě následující kód. JakoBingMapsToken
použ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.Start
volána .
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.Start
volána .
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");
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í.
Můžete také zkontrolovat, jestli je služba App Center Analytics povolená nebo ne.
bool isEnabled = await Analytics.IsEnabledAsync();
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();
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í.
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.
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.
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í.