W tym dokumencie opisujemy, jak zarządzać przesyłaniem danych do Google Analytics za pomocą pakietu SDK Google Analytics w wersji 4 na Androida.
Przegląd
Dane zbierane za pomocą pakietu SDK Google Analytics w wersji 4 na Androida są przechowywane lokalnie, a następnie wysyłane w oddzielnym wątku do Google Analytics.
Dane należy wysłać i odebrać do 4:00 następnego dnia w lokalnej strefie czasowej każdego widoku. Dane odebrane później nie będą widoczne w raportach. Jeśli np. działanie jest umieszczone w kolejce o godzinie 23:59, musi zostać wysłane w ciągu 4 godzin, do 3:59, by pojawiło się w raportach. Z drugiej strony, aby trafienie trafiło do kolejki o 00:00, musi zostać wysłane w ciągu 28 godzin, tj. 3:59 następnego dnia, aby mogło się pojawić w raportach.
Okresowa dostawa
Domyślnie w przypadku Androida dane są wysyłane co 30 minut z pakietu SDK Google Analytics w wersji 4.
Aby ustawić okres dostawy automatycznie:
// Set the dispatch period to 90 seconds. GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(90);
Aby ustawić okres wysyłki w pliku konfiguracji XML:
<integer name="ga_dispatchPeriod">30</integer>
Ustawienie wartości zerowej lub ujemnej spowoduje wyłączenie okresowej wysyłki, co będzie wymagało użycia wysyłki ręcznej, jeśli chcesz wysyłać dane do Google Analytics.
// Disable periodic dispatch by setting dispatch period to a value less than 1. GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(0);
Jeśli użytkownik utraci dostęp do sieci lub zamknie aplikację, gdy są jeszcze działania oczekujące na wysłanie, te działania zostaną zachowane w pamięci lokalnej. Zostaną one wysłane przy następnym uruchomieniu aplikacji i wywołaniu metody wysyłania.
Wysyłanie ręczne
Aby ręcznie wysyłać działania, np. gdy wiesz, że radio urządzenia jest już używane do wysyłania innych danych:
GoogleAnalytics.getInstance(this).dispatchLocalHits();
Przesyłanie w tle
Aby włączyć wysyłanie w tle w przypadku aplikacji działających na urządzeniach spoza Google Play, w pliku konfiguracji ApplicationManifest.xml
:
- Uzyskaj uprawnienie
WAKE_LOCK
. - Zarejestruj domenę
AnalyticsReceiver
. - Zarejestruj domenę
AnalyticsService
.
Na przykład:
<manifest> <!-- ... --> <!-- Get permission for reliable local dispatching on non-Google Play devices. --> <uses-permission android:name="android.permission.WAKE_LOCK" /> <application name="com.example.MyApp"> <!-- Register AnalyticsReceiver and AnalyticsService to support background dispatching on non-Google Play devices. --> <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver" android:enabled="true"> <intent-filter> <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" /> </intent-filter> </receiver> <service android:name="com.google.android.gms.analytics.AnalyticsService" android:enabled="true" android:exported="false"/> <!-- ... --> </application> </manifest>