Dela via


App Center Analytics (Android)

Viktigt!

Visual Studio App Center drogs tillbaka den 31 mars 2025, förutom analys- och diagnostikfunktionerna, som fortsätter att stödjas fram till den 30 juni 2026. Läs mer.

App Center Analytics hjälper dig att förstå användarbeteende och kundengagemang för att förbättra din app. SDK samlar automatiskt in sessionsantal och enhetsegenskaper som modell, operativsystemversion osv. Du kan definiera dina egna anpassade händelser för att mäta saker som är viktiga för dig. All information som samlas in är tillgänglig i App Center-portalen så att du kan analysera data.

Följ avsnittet Komma igång med SDK om du inte har konfigurerat SDK:t i ditt program ännu.

Information om sessioner och enheter

När du har lagt till App Center Analytics i din app och startat SDK:n spårar den automatiskt sessioner och enhetsegenskaper som os-version, modell osv. utan att skriva någon ytterligare kod.

Landskod

SDK rapporterar automatiskt en användares landskod om enheten har ett mobilt datamodem och ett SIM-kort installerat. WiFi-enheter rapporterar inte någon landskod som standard. Om du vill ange landskoden för dessa användare måste du hämta användarens plats själv och använda setCountryCode: metoden i SDK:

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

Anmärkning

För att landskoden ska visas på Analytics-sessioner AppCenter.setCountryCode måste anropas innan du anropar AppCenter.start.

Anpassade händelser

Du kan spåra dina egna anpassade händelser med upp till 20 egenskaper för att förstå interaktionen mellan dina användare och appen.

När du har startat SDK använder du trackEvent() metoden för att spåra händelser med egenskaper. Du kan skicka upp till 200 distinkta händelsenamn. Dessutom finns det maximala teckengränser:

  • 256 tecken per event name.
  • 125 tecken per 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)

Egenskaper för händelser är helt valfria – om du bara vill spåra en händelse använder du det här exemplet i stället:

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

Händelseprioritet och beständighet

Du kan spåra affärskritiska händelser som har högre prioritet än andra händelser.

  • Utvecklare kan ange prioriteten för händelser som Normal (Flags.NORMAL i API:et) eller Kritisk (Flags.CRITICAL i API:et).
  • Händelser med prioritet som Kritisk hämtas först från lagringen och skickas före normala händelser.
  • När den lokala lagringen är full och nya händelser måste lagras tas de äldsta händelserna med lägst prioritet bort först.
  • Om lagringen är full av loggar med kritisk prioritet misslyckas spårningen av en händelse med normal prioritet eftersom SDK:t inte kan göra plats i det fallet.
  • Om du också använder tjänsten Crashs anges kraschloggar som Kritiska och delar samma lagring som händelser.
  • Överföringsintervallet tillämpas endast på normala händelser. Kritiska händelser skickas efter 3 sekunder.

Du kan använda följande API för att spåra en händelse som kritisk:

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.

Pausa och återuppta sändning av loggar

Att pausa händelseöverföringen kan vara användbart i scenarier när appen behöver styra nätverksbandbredden för mer affärskritiska behov. Du kan pausa sändningsloggarna till App Center-serverdelen. När du har pausat kan händelser fortfarande spåras och sparas, men de skickas inte direkt. Händelser som appen spårar när den är pausad skickas bara när du anropar resume.

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

Aktivera eller inaktivera App Center Analytics vid körning

Du kan aktivera och inaktivera App Center Analytics under körning. Om du inaktiverar det samlar SDK inte in mer analysinformation för appen.

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

Om du vill aktivera App Center Analytics igen använder du samma API men skickar true som en parameter.

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

Tillståndet sparas i enhetens lagring mellan programstarter.

Det här API:et är asynkront, du kan läsa mer om det i vår Asynkrona API:er för App Center .

Anmärkning

Den här metoden får endast användas efter att Analytics har startats.

Kontrollera om App Center Analytics är aktiverat

Du kan också kontrollera om App Center Analytics är aktiverat eller inte.

Analytics.isEnabled();
Analytics.isEnabled()

Det här API:et är asynkront, du kan läsa mer om det i vår Asynkrona API:er för App Center .

Anmärkning

Den här metoden får endast användas efter att Analytics har startats; den kommer alltid att returnera false före start.

Hantera startsessionen

Som standard beror sessions-ID:t på programmets livscykel. Om du vill styra starten av en ny session manuellt följer du nästa steg:

Anmärkning

Var uppmärksam på att varje anrop av Analytics.StartSession() API genererar en ny session. Om det här API:et inte anropas i läget för manuell sessionsspårare har alla sändande loggar ett null-sessionsvärde.

Anmärkning

Var uppmärksam på att sessions-ID:t kommer att återskapas när ett nytt program startas.

  • Anropa följande metod innan SDK:et startar:
Analytics.enableManualSessionTracker();
Analytics.enableManualSessionTracker()
  • Sedan kan du använda startSession API:et efter AppCenter.start.
Analytics.startSession();
Analytics.startSession()

Lokal lagringsstorlek

Som standard lagrar SDK:et alla händelseloggar upp till 10 MB. Utvecklare kan använda ett API för att öka lagringsstorleken och SDK:n fortsätter att lagra loggar tills lagringen är full.

Ingen internetåtkomst

När det inte finns någon nätverksanslutning sparar SDK upp till 10 MB loggar i den lokala lagringen. När lagringen är full börjar SDK:n ta bort gamla loggar för att göra plats för de nya loggarna. När nätverksanslutningen är återställd skickar SDK:n loggar i batchar om 50 eller var sjätte sekund (som standard).

Anmärkning

Loggar som är äldre än 25 dagar accepteras inte av serverdelen.

Batchbearbetning av händelseloggar

App Center SDK laddar upp loggar i en batch på 50 och om SDK:t inte har 50 loggar att skicka skickas loggarna fortfarande efter 6 sekunder (som standard). Det kan finnas högst tre batchar som skickas parallellt. Överföringsintervallet kan ändras:

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

Överföringsintervallvärdet måste vara mellan 6 sekunder och 8 6400 sekunder (en dag) och den här metoden måste anropas innan tjänsten startas.

Logik för återförsök och avstigning

App Center SDK stöder back-off-återförsök vid återställningsbara nätverksfel. Nedan visas logiken för återförsök:

  • 3 försök maximalt per begäran.
  • Varje begäran har en egen återförsökstillståndsmaskin.
  • Alla överföringskanaler är inaktiverade tills nästa gång appen körs, efter att alla omförsök för en begäran har förbrukats.

Återgångslogik

  • 50% randomisering, försök först igen mellan 5 och 10 sekunder, försök sedan mellan 2,5 och 5 minuter, senaste försök mellan 10 och 20 minuter.
  • Om nätverket växlar från av till på (eller från wi-fi till mobil) återställs återförsökstillstånden och begäranden görs om omedelbart.