Sdílet prostřednictvím


App Center Analytics (Android)

Důležité

Visual Studio App Center bylo vyřazeno 31. března 2025 s výjimkou funkcí Analýzy a diagnostiky, které se budou dál podporovat až do 30. června 2026. Další informace.

App Center Analytics vám pomůže pochopit 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 pro měření věcí, které jsou pro vás důležité. Všechny zachycené informace jsou k dispozici na portálu App Center, abyste mohli analyzovat data.

Pokud jste ještě nenastavili sadu SDK ve své aplikaci, postupujte podle části Začínáme se sadou SDK .

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

Jakmile do aplikace přidáte analýzu App Center a spustíte sadu SDK, automaticky bude sledovat relace a vlastnosti zařízení, jako je verze operačního systému, model atd. bez psaní dalšího kódu.

Kód země

Sada SDK automaticky hlásí kód země uživatele, pokud má zařízení nainstalovaný mobilní datový modem a sim kartu. Zařízení jen pro Wi-Fi ve výchozím nastavení neoznamují kód země. Pokud chcete nastavit kód země těchto uživatelů, musíte načíst umístění uživatele sami a použít metodu setCountryCode: v sadě SDK:

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

Poznámka:

Aby se kód země zobrazoval v relacích Analytics, AppCenter.setCountryCode musí být zavolána před AppCenter.start.

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í s příslušnými vlastnostmi. Můžete odeslat až 200 jedinečných názvů událostí. Platí také maximální omezení znaků:

  • 256 znaků na event name.
  • 125 znaků 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)

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

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

Priorita a trvalost události

Můžete sledovat důležité obchodní události, které mají vyšší důležitost než jiné události.

  • Vývojáři můžou nastavit prioritu událostí jako normální (Flags.NORMAL v rozhraní API) nebo Kritické (Flags.CRITICAL v rozhraní API).
  • Události s prioritou nastavenou jako Kritická se nejprve načtou z úložiště a odešlou se před normálními událostmi.
  • Když je místní úložiště plné a nové události je potřeba uložit, nejstarší události s nejnižší prioritou se nejprve odstraní.
  • Pokud je úložiště plné protokolů s prioritou Kritické , sledování události s normální prioritou selže, protože sada SDK v takovém případě nemůže vytvořit místo.
  • Pokud používáte službu Crashes, protokoly o pádech se nastaví jako kritické a sdílí stejný úložný prostor jako události.
  • Interval přenosu se použije pouze u normálních událostí, kritické události se odešlou po 3 sekundách.

Ke sledování události jako kritické můžete použít následující rozhraní 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.

Pozastavení a obnovení odesílání protokolů

Pozastavení přenosu událostí může být užitečné ve scénářích, kdy aplikace potřebuje řídit šířku pásma sítě pro důležitější obchodní potřeby. Odesílání protokolů do back-endu App Center můžete pozastavit. Když je pozastaveno, události se stále dají sledovat a ukládat, ale neodesílají se hned. Všechny události, které vaše aplikace sleduje, zatímco je pozastavena, budou odeslány pouze, jakmile zavoláte resume.

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

Povolit nebo zakázat App Center Analytics během provozu

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

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

Pokud chcete znovu povolit funkci Analytics v App Center, použijte stejnou metodu API, ale jako parametr předejte true.

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

Stav se zachová v úložišti zařízení napříč spuštěním aplikace.

Toto rozhraní API je asynchronní. Další informace najdete v naší příručce k asynchronním rozhraním API služby App Center .

Poznámka:

Tuto metodu je nutné použít pouze po Analytics spuštění.

Kontrola, jestli je povolená analýza App Center

Můžete také zkontrolovat, jestli je povolená analýza App Center nebo ne.

Analytics.isEnabled();
Analytics.isEnabled()

Toto rozhraní API je asynchronní. Další informace najdete v naší příručce k asynchronním rozhraním API služby App Center .

Poznámka:

Tato metoda se musí použít pouze po spuštění Analytics, vždy se vrátí false před zahájením.

Správa úvodní relace

ID relace ve výchozím nastavení závisí na životním cyklu aplikace. Pokud chcete řídit spuštění 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 v režimu ručního sledování relací nebude toto rozhraní API volána, budou mít všechny odesílající protokoly hodnotu relace 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();
Analytics.enableManualSessionTracker()
  • Pak můžete použít startSession rozhraní API po AppCenter.start:
Analytics.startSession();
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 uchovávat protokoly, dokud nebude úložiště plné.

Bez přístupu k internetu

Pokud není k dispozici žádné síťové připojení, sada SDK ukládá do místního úložiště až 10 MB protokolů. Jakmile je úložiště plné, sada SDK začne zahodit staré protokoly, aby se uvolnily místo pro nové protokoly. Jakmile se připojení k síti vrátí, sada SDK odesílá protokoly v dávce 50 nebo po každých 6 sekundách (ve výchozím nastavení).

Poznámka:

Back-end nepřijímá protokoly starší než 25 dnů.

Seskupování protokolů událostí

Sada App Center SDK nahraje protokoly v dávce 50 a pokud sada SDK nemá 50 protokolů k odeslání, protokoly se budou posílat i po 6 sekundách (ve výchozím nastavení). Paralelně se odesílají maximálně tři dávky. Interval přenosu lze změnit:

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

Hodnota intervalu přenosu musí být v rozmezí 6 sekund až 86400 sekund (jeden den) a tato metoda musí být volána před spuštěním služby.

Logika opakování a zpětného vypnutí

Sada App Center SDK podporuje opakované pokusy o obnovení při obnovitelných chybách sítě. Níže je logika opakování:

  • Maximálně 3 pokusy na žádost
  • Každý požadavek má svůj vlastní počítač stavu opakování.
  • Všechny přenosové kanály jsou deaktivovány (až do dalšího procesu aplikace) poté, co jeden požadavek vyčerpá všechny své opakované pokusy.

Logika ústupu

  • 50% randomizace, první pokus mezi 5 a 10 sekundami, další pokus mezi 2,5 a 5 minutami, poslední pokus mezi 10 a 20 minutami.
  • Pokud se síťový přepínač přepne ze stavu vypnuto do stavu zapnuto (nebo z wi-fi na stav mobilní zařízení), stavy opakování se resetují a žádosti se budou opakovat okamžitě.