W tym dokumencie znajdziesz przegląd niektórych zaawansowanych funkcji konfiguracyjnych pakietu Google Analytics SDK na Androida w wersji 2.
Przegląd
Pakiet SDK Google Analytics na Androida wykorzystuje 2 klasy do zarządzania globalnym stanem implementacji i wysyłania danych na serwery Google Analytics. EasyTracker pakuje te klasy, aby uprościć konfigurację i zarządzanie sesjami:
GoogleAnalytics
– pojedyncze polecenie, które obsługuje globalny stan implementacji, w tym pobieranie obiektówTracker
.Tracker
– zajęcia, za pomocą których wysyłasz dane do Google Analytics.
Aby na przykład zmierzyć widok prostego elementu Activity
:
import android.app.Activity import com.google.analytics.tracking.android.GoogleAnalytics import com.google.analytics.tracking.android.Tracker /** * A simple Activity that sends a screen view to Google Analytics * when it is displayed to the user. */ public class HomeScreen extends Activity { private Tracker mGaTracker; private GoogleAnalytics mGaInstance; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the GoogleAnalytics singleton. Note that the SDK uses // the application context to avoid leaking the current context. mGaInstance = GoogleAnalytics.getInstance(this); // Use the GoogleAnalytics singleton to get a Tracker. mGaTracker = mGaInstance.getTracker("UA-XXXX-Y"); // Placeholder tracking ID. ... // The rest of your onCreate() code. } @Override public void onStart() { super.onStart(); // Send a screen view when the Activity is displayed to the user. mGaTracker.sendView("/HomeScreen"); } }
Korzystanie z wielu trackerów
Od wersji 2 pakietu SDK możesz używać wielu skryptów śledzenia w jednej implementacji, po jednym na każdy unikalny identyfikator śledzenia. Wszystkie trackery są przypisane do tego samego stanu globalnego, którym podlega Twój singleton GoogleAnalytics
.
W tym przykładzie wyświetlenie ekranu jest wysyłane do 2 osobnych usług za pomocą 2 tagów śledzenia, z których każda ma własny unikalny identyfikator usługi:
import android.app.Activity import com.google.analytics.tracking.android.GoogleAnalytics import com.google.analytics.tracking.android.Tracker /** * A simple Activity that sends a screen view to Google Analytics * when it is displayed to the user. */ public class HomeScreen extends Activity { private GoogleAnalytics mGaInstance; private Tracker mGaTracker1; private Tracker mGaTracker2; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the GoogleAnalytics singleton. mGaInstance = GoogleAnalytics.getInstance(this); // Use the GoogleAnalytics singleton to get two Trackers with // unique property IDs. mGaTracker1 = mGaInstance.getTracker("UA-XXXX-Y"); mGaTracker2 = mGaInstance.getTracker("UA-XXXX-Z"); ... // The rest of your onCreate() code. } @Override public void onStart() { super.onStart(); // Send a screen view to "UA-XXXX-Y" the Activity is displayed to the user. mGaTracker1.sendView("/HomeScreen"); // Send another screen view to the second property, "UA-XXXX-Z". mGaTracker2.sendView("/Home"); } }
Pamiętaj, że funkcje automatycznego pomiaru udostępniane przez EasyTracker do wykonywania wywołań używają tylko domyślnego trackera. Jeśli korzystasz z funkcji EasyTracker i chcesz wysłać dane za pomocą innych trackerów, musisz to zrobić ręcznie.
Domyślny tracker
Implementacja może korzystać z kilku skryptów śledzenia, ale globalnie ma jeden domyślny. Pierwszy pobrany plik Tracker
stanie się domyślnym modułem do śledzenia.
Aby pobrać domyślny tracker, użyj:
// Get singleton. GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this); // Get default tracker. Tracker myDefault = myInstance.getDefaultTracker();
Aby ustawić domyślny tracker, użyj:
// First get a tracker using a new property ID. Tracker newTracker = myInstance.getTracker("UA-XXXX-2"); // Then make newTracker the default tracker globally. myInstance.setDefaultTracker(newTracker);
Wysyłanie
Ustawieniami wysyłania zarządza singleton GAServiceManager
. Aby ustawić okres wysyłki:
// Set dispatch period to 30 seconds. GAServiceManager.getInstance().setDispatchPeriod(30);
Aby wysłać ręcznie przesyłkę poza zaplanowanym okresem:
// Manually dispatch any queued hits. GAServiceManager.getInstance().dispatch();
Próbkowanie
Możesz włączyć próbkowanie po stronie klienta, aby ograniczyć liczbę działań wysyłanych do Google Analytics. Jeśli Twoja aplikacja ma dużą liczbę użytkowników lub w inny sposób wysyła do Google Analytics dużą ilość danych, włączenie próbkowania pomoże zapewnić nieprzerwane raportowanie.
Aby na przykład włączyć próbkowanie po stronie klienta z częstotliwością 50% za pomocą EasyTracker i XML, użyj następującego parametru w pliku analytics.xml:
<string name="ga_sampleFrequency">50.0</string>
Możesz też włączyć próbkowanie po stronie klienta automatycznie:
// Get tracker from singleton. GoogleAnalytics gaInstance = GoogleAnalytics.getInstance(this); Tracker tracker = gaInstance.getTracker("UA-XXXX-Y"); // Placeholder property ID. // Set a sample rate of 50%. tracker.setSampleRate(50.0d);
Rezygnacja na poziomie aplikacji
Możesz włączyć flagę rezygnacji na poziomie aplikacji, która spowoduje wyłączenie Google Analytics w całej aplikacji. Po ustawieniu flaga będzie stosowana przez cały czas istnienia aplikacji lub do chwili jej zresetowania.
Aby uzyskać ustawienie rezygnacji na poziomie aplikacji:
// Get singleton. GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this); // Get the app opt out preference using an AppOptOutCallback. myInstance.requestAppOptOut(new AppOptOutCallback() { @Override public void reportAppOptOut(boolean optOut) { if (optOut) { ... // Alert the user that they've opted out. } }); }
Aby ustawić flagę rezygnacji na poziomie aplikacji, wpisz:
myInstance.setAppOptOut(appPreferences.userOptOut);
Testowanie i debugowanie
Pakiet Google Analytics SDK na Androida udostępnia tryb debugowania, w którym wyświetlane są przydatne informacje o tym, jakie dane w dziennikach są wysyłane do Google Analytics.
Aby włączyć tryb debugowania za pomocą EasyTracker, dodaj ten kod do pliku zasobów analytics.xml
:
<bool name="ga_debug">true</bool>
Aby włączyć tryb debugowania automatycznie, użyj tych poleceń:
// Get singleton using application context. GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this); // Enable debug mode. myInstance.setDebug(true);
Dane wyjściowe zostaną wydrukowane w logcat za pomocą tagu GAV2
.