App Center Analytics (Android)

Ważne

Program Visual Studio App Center ma zostać wycofany 31 marca 2025 r. Mimo że możesz nadal używać programu Visual Studio App Center do momentu jej pełnego wycofania, istnieje kilka zalecanych alternatyw, do których można rozważyć migrację.

Dowiedz się więcej o osiach czasu pomocy technicznej i alternatywach.

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 zmierzyć rzeczy, które mają znaczenie dla Ciebie. Wszystkie przechwycone informacje są dostępne w portalu Centrum aplikacji, aby analizować dane.

Postępuj zgodnie z sekcją Wprowadzenie do zestawu SDK , jeśli zestaw SDK nie został jeszcze skonfigurowany w aplikacji.

Informacje o sesji i urządzeniu

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

Kod kraju

Zestaw SDK automatycznie zgłasza kod kraju użytkownika, jeśli urządzenie ma zainstalowany modem danych mobilnych i kartę SIM. Urządzenia tylko do sieci Wi-Fi nie będą domyślnie zgłaszać kodu kraju. Aby ustawić kod kraju tych użytkowników, musisz pobrać lokalizację użytkownika samodzielnie i użyć setCountryCode: metody w zestawie SDK:

AppCenter.setCountryCode("en");
AppCenter.setCountryCode("en")

Uwaga

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 trackEvent() metody , aby śledzić zdarzenia za pomocą właściwości. Można wysłać do 200 odrębnych nazw zdarzeń. Ponadto istnieją maksymalne limity znaków:

  • 256 znaków na event name.
  • 125 znaków na event property name & event property value.
Map<String, String> properties = new HashMap<>();
properties.put("Category", "Music");
properties.put("FileName", "favorite.avi");

Analytics.trackEvent("Video clicked", properties);
val properties = hashMapOf("Category" to "Music", "FileName" to "favorite.avi")
Analytics.trackEvent("Video clicked", properties)

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

Analytics.trackEvent("Video clicked");
Analytics.trackEvent("Video clicked")

Priorytet zdarzenia i trwałość

Możesz śledzić zdarzenia krytyczne dla działania firmy o wyższym znaczeniu niż inne zdarzenia.

  • Deweloperzy mogą ustawić priorytet zdarzeń jako Normalny (Flags.NORMAL w interfejsie API) lub Krytyczne (Flags.CRITICAL w interfejsie API).
  • Zdarzenia z priorytetem ustawionym jako Krytyczne zostaną najpierw pobrane z magazynu i wysłane przed zdarzeniami Normalnymi .
  • Gdy magazyn lokalny jest pełny, a nowe zdarzenia muszą być przechowywane, najstarsze zdarzenia o najniższym priorytecie są najpierw usuwane.
  • Jeśli magazyn jest pełen dzienników z priorytetem krytycznym , śledzenie zdarzenia z priorytetem normalnym zakończy się niepowodzeniem, ponieważ zestaw SDK nie może umieścić miejsca w tym przypadku.
  • Jeśli używasz również usługi Awarie , dzienniki awarii są ustawione jako Krytyczne i współużytkują ten sam magazyn co zdarzenia.
  • Interwał transmisji jest stosowany tylko do zdarzeń normalnych , zdarzenia krytyczne będą wysyłane po 3 sekundach.

Aby śledzić zdarzenie jako krytyczne, możesz użyć następującego interfejsu API:

Map<String, String> properties = new HashMap<>();
properties.put("Category", "Music");
properties.put("FileName", "favorite.avi");

Analytics.trackEvent("eventName", properties, Flags.CRITICAL);

// If you're using name only, you can pass null as properties.
val properties = hashMapOf("Category" to "Music", "FileName" to "favorite.avi")
Analytics.trackEvent("Video clicked", properties, Flags.CRITICAL)

// If you're using name only, you can pass null as properties.

Wstrzymywanie i wznawianie wysyłania dzienników

Wstrzymywanie transmisji zdarzeń może być przydatne w scenariuszach, gdy aplikacja musi kontrolować przepustowość sieci w celu uzyskania większej liczby krytycznych potrzeb biznesowych. Możesz wstrzymać wysyłanie dzienników do zaplecza centrum aplikacji. W przypadku wstrzymania zdarzenia mogą być nadal śledzone i zapisywane, ale nie są wysyłane od razu. Wszystkie zdarzenia śledzone przez aplikację podczas wstrzymania będą wysyłane tylko po wywołaniu metody resume.

Analytics.pause();
Analytics.resume();
Analytics.pause()
Analytics.resume()

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

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

Analytics.setEnabled(false);
Analytics.setEnabled(false)

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

Analytics.setEnabled(true);
Analytics.setEnabled(true)

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

Ten interfejs API jest asynchroniczny. Więcej informacji na ten temat można przeczytać w przewodniku asynchronicznych interfejsów API centrum aplikacji .

Uwaga

Ta metoda musi być używana tylko po Analytics rozpoczęciu.

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.

Analytics.isEnabled();
Analytics.isEnabled()

Ten interfejs API jest asynchroniczny. Więcej informacji na ten temat można przeczytać w przewodniku asynchronicznych interfejsów API centrum aplikacji .

Uwaga

Ta metoda musi być używana tylko po Analytics rozpoczęciu. Będzie ona zawsze zwracana false przed rozpoczęciem.

Zarządzanie sesją początkową

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

Uwaga

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 null.

Uwaga

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

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

Rozmiar magazynu lokalnego

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

Brak dostępu do Internetu

Jeśli nie ma łączności sieciowej, zestaw SDK zapisuje maksymalnie 10 MB dzienników w magazynie lokalnym. Po zapełnieniu magazynu zestaw SDK zacznie odrzucać stare dzienniki, aby zapewnić miejsce dla nowych dzienników. Po powrocie łączności sieciowej zestaw SDK wysyła dzienniki w partii 50 lub po 6 sekundach (domyślnie).

Uwaga

Dzienniki starsze niż 25 dni nie zostaną zaakceptowane przez zaplecze.

Dzienniki zdarzeń przetwarzania wsadowego

Zestaw SDK centrum aplikacji przekazuje dzienniki w partii 50, a jeśli zestaw SDK nie ma 50 dzienników do wysłania, nadal będzie wysyłać dzienniki po 6 sekundach (domyślnie). Może istnieć maksymalnie trzy partie wysyłane równolegle. Interwał transmisji można zmienić:

// Change transmission interval to 10 seconds.
Analytics.setTransmissionInterval(10000);
// Change transmission interval to 10 seconds.
Analytics.setTransmissionInterval(10000)

Wartość interwału transmisji musi wynosić od 6 sekund do 86400 sekund (jeden dzień), a ta metoda musi być wywoływana przed uruchomieniem usługi.

Ponów próbę i wycofywanie logiki

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

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

Logika wycofywania

  • 50% losowości, najpierw spróbuj ponownie z zakresu od 5 do 10 sekund, następnie spróbuj między 2,5 i 5 minut, spróbuj ponownie od 10 do 20 minut.
  • Jeśli sieć wyłącza się do włączonej (lub z sieci wi-fi do urządzeń przenośnych), stany ponawiania prób są resetowane, a żądania są natychmiast ponawiane.