Dieses Dokument enthält eine Übersicht über einige der erweiterten Konfigurationsfunktionen des Google Analytics SDK für Android Version 2.
Übersicht
Das Google Analytics SDK for Android verwendet zwei Klassen, um den globalen Status der Implementierung zu verwalten und Daten an Google Analytics-Server zu senden. EasyTracker umschließt diese Klassen, um die Konfiguration und die Sitzungsverwaltung zu vereinfachen:
GoogleAnalytics
: Ein Singleton, der den globalen Status Ihrer Implementierung verarbeitet, einschließlich des Abrufens vonTracker
-Objekten.Tracker
: Die Klasse, mit der Sie Daten an Google Analytics senden.
So messen Sie beispielsweise die Ansicht einer einfachen 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"); } }
Verwendung mehrerer Tracker
Ab Version 2 des SDK kannst du mehrere Tracker in einer Implementierung verwenden, einen pro eindeutiger Tracking-ID. Alle Tracker haben den gleichen globalen Status wie dein Singleton GoogleAnalytics
.
Im folgenden Beispiel wird ein Bildschirmaufruf an zwei separate Properties gesendet. Dabei werden zwei Tracker mit jeweils einer eigenen eindeutigen Property-ID verwendet:
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"); } }
Bei den von EasyTracker bereitgestellten automatischen Messfunktionen wird nur der Standard-Tracker für die Aufrufe verwendet. Wenn Sie diese EasyTracker-Funktionen verwenden und Daten mit anderen Trackern senden möchten, müssen Sie dies manuell tun.
Standard-Tracker
Obwohl eine Implementierung mehrere Tracker verwenden kann, hat sie weltweit einen Standard-Tracker. Die erste abgerufene Tracker
wird zum Standard-Tracker.
So erhältst du den Standard-Tracker:
// Get singleton. GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this); // Get default tracker. Tracker myDefault = myInstance.getDefaultTracker();
So legst du den Standard-Tracker fest:
// 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);
Wird weitergeleitet
Die Weiterleitungseinstellungen werden über den Singleton GAServiceManager
verwaltet. So legen Sie die Weiterleitungsdauer fest:
// Set dispatch period to 30 seconds. GAServiceManager.getInstance().setDispatchPeriod(30);
So senden Sie eine Datei manuell außerhalb des geplanten Intervalls:
// Manually dispatch any queued hits. GAServiceManager.getInstance().dispatch();
Probenahme
Sie können clientseitige Stichproben aktivieren, um die Anzahl der an Google Analytics gesendeten Treffer zu begrenzen. Wenn Ihre App eine große Anzahl von Nutzern hat oder anderweitig eine große Datenmenge an Google Analytics sendet, können Sie durch die Verwendung von Probenahmen eine unterbrechungsfreie Berichterstellung gewährleisten.
Wenn Sie beispielsweise die clientseitige Probenahme mit einer Rate von 50% über EasyTracker und XML aktivieren möchten, verwenden Sie den folgenden Parameter in Ihrer analytics.xml-Datei:
<string name="ga_sampleFrequency">50.0</string>
Sie können auch die clientseitige Probenahme programmatisch aktivieren:
// 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);
Deaktivierung auf App-Ebene
Sie können ein Flag zum Deaktivieren auf App-Ebene aktivieren, mit dem Google Analytics für die gesamte App deaktiviert wird. Nach dem Festlegen bleibt das Flag für die gesamte Lebensdauer der App bestehen oder bis es zurückgesetzt wird.
So rufen Sie die Einstellung auf App-Ebene ab:
// 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. } }); }
So legen Sie das Flag zum Deaktivieren auf App-Ebene fest:
myInstance.setAppOptOut(appPreferences.userOptOut);
Testen und Fehler beheben
Das Google Analytics SDK for Android bietet einen Debug-Modus, der nützliche Informationen darüber ausgibt, welche Daten in Ihren Protokollen an Google Analytics gesendet werden.
Fügen Sie der Ressourcendatei analytics.xml
Folgendes hinzu, um den Fehlerbehebungsmodus mit EasyTracker zu aktivieren:
<bool name="ga_debug">true</bool>
So aktivieren Sie den Fehlerbehebungsmodus programmatisch:
// Get singleton using application context. GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this); // Enable debug mode. myInstance.setDebug(true);
Die Ausgabe wird mit dem Tag GAV2
an logcat ausgegeben.