Z tego dokumentu dowiesz się, jak zarządzać przesyłaniem danych do Google Analytics za pomocą pakietu SDK Google Analytics na Androida w wersji 2.
Przegląd
W pakiecie SDK Google Analytics na Androida zebrane dane, takie jak wyświetlenia ekranu czy zdarzenia, są przechowywane lokalnie w kolejce przed wysłaniem na serwery Google Analytics. Proces wysyłania tych danych (nazywanych tutaj „działaniami”) z pakietu SDK do Google Analytics nazywa się wysyłaniem.
Funkcja wysyłania jest dostępna tylko w bibliotekach kolekcji mobilnych i ma na celu łagodzenie problemów związanych z niestabilnym dostępem do sieci i ograniczonym czasem pracy na baterii.
Istnieją 2 rodzaje wysyłki:
- Wysyłka okresowa – automatycznie wysyła działania w cyklicznym odstępie czasu, który określisz automatycznie lub w pliku
analytics.xml
. - Wysyłanie ręczne – ręcznie wysyłaj działania, aby wysyłać dane, gdy jest to dogodne dla Ciebie, na przykład gdy masz połączenie HTTP.
W wersji 2 pakietu SDK oba typy wysyłania są realizowane poza głównym wątkiem interfejsu użytkownika.
W dalszej części tego dokumentu znajdziesz bardziej szczegółowe informacje o poszczególnych typach wysyłania i sposobach ich wdrażania w aplikacji.
Okresowa dostawa
Gdy aplikacja zbiera dane Google Analytics, są one dodawane do kolejki i okresowo wysyłane do Google Analytics. Okresowe wysyłanie aplikacji może odbywać się wtedy, gdy aplikacja działa na pierwszym planie lub w tle.
Domyślny okres wysyłki to 30 minut.
Możesz podać własny przedział w sekundach, używając parametru ga_dispatchPeriod
w pliku analytics.xml
lub wywołując setDispatchPeriod(int dispatchPeriodInSeconds)
jak w tym przykładzie:
W pliku analytics.xml
:
<integer name="ga_dispatchPeriod">60</integer>
Automatycznie:
GAServiceManager.getInstance().setDispatchPeriod(60);
Ustawienie wartości ujemnej spowoduje wyłączenie okresowej wysyłki, co będzie wymagało wysyłki ręcznej, jeśli chcesz wysyłać dane do Google Analytics. Z drugiej strony ustawienie wartości 0
spowoduje, że każde działanie będzie wysyłane natychmiast, jeśli będzie dostępne połączenie sieciowe.
Po wysłaniu wszystkich trafień okresowa komunikacja przechodzi w tryb oszczędzania energii i wyłącza ją do czasu nawiązania kolejnego wywołania.
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łka ręczna
Oprócz polegania na co jakiś czas może się zdarzyć, że zechcesz wysyłać działania ręcznie. Możesz na przykład połączyć swoje dyspozycje z innymi żądaniami HTTP wysyłanymi przez Twoją aplikację, aby zmniejszyć koszty.
Działania można wysyłać ręcznie za pomocą instancji GAServiceManager
:
GAServiceManager.getInstance().dispatch();