Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
- Upewnij się, że włączono funkcję lokalizacji dla aplikacji.
- Uzyskaj klucz uwierzytelniania mapy Bing.
- Przed wywołaniem metody
AppCenter.Start(... typeof(Analytics) ...);użyj następującego kodu w dowolnym miejscu. JakoBingMapsTokenuż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
StartSessionpoleceniaAppCenter.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.