Erweiterte Konfiguration – Android SDK Version 2 (alte Version)

Dieses Dokument bietet einen Überblick über einige der erweiterten Konfigurationsfunktionen des Google Analytics SDK für Android Version 2.

Überblick

Das Google Analytics SDK for Android verwendet zwei Klassen, um den globalen Status der Implementierung zu verwalten und Daten an die Google Analytics-Server zu senden. EasyTracker umschließt diese Klassen, um die Konfigurations- und Sitzungsverwaltung zu vereinfachen:

  • GoogleAnalytics: Ein Singleton-Element, das den globalen Status der Implementierung verarbeitet, einschließlich des Abrufs von Tracker-Objekten.
  • Tracker: Die Klasse, mit der Sie Daten an Google Analytics senden.

So messen Sie beispielsweise eine Ansicht eines 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");
  }
}

Mehrere Tracker verwenden

Ab Version 2 des SDKs können Sie mehrere Tracker in einer Implementierung verwenden – einen pro eindeutiger Tracking-ID. Alle Tracker haben den gleichen globalen Status wie dein GoogleAnalytics-Singleton.

Im folgenden Beispiel wird ein Bildschirmaufruf an zwei separate Properties gesendet. Dazu 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");
  }
}

Beachten Sie, dass bei automatisierten Messfunktionen von EasyTracker nur der Standard-Tracker für Aufrufe verwendet wird. Wenn Sie diese EasyTracker-Funktionen verwenden und Daten über andere Tracker senden möchten, müssen Sie dies manuell tun.

Standardtracker

Obwohl eine Implementierung mehrere Tracker verwenden kann, hat sie weltweit einen Standard-Tracker. Der erste abgerufene Tracker wird zum Standardtracker.

So kannst du den Standard-Tracker abrufen:

// 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);

Disposition

Die Weiterleitungseinstellungen werden vom Singleton GAServiceManager verwaltet. So legen Sie den Zeitraum für die Weiterleitung fest:

// Set dispatch period to 30 seconds.
GAServiceManager.getInstance().setDispatchPeriod(30);

So senden Sie die E-Mail außerhalb des geplanten Intervalls manuell:

// Manually dispatch any queued hits.
GAServiceManager.getInstance().dispatch();

Probenahme

Sie können die clientseitige Stichprobenerhebung aktivieren, um die Anzahl der Treffer zu begrenzen, die an Google Analytics gesendet werden. Wenn Ihre Anwendung eine große Anzahl von Nutzern hat oder anderweitig ein großes Datenvolumen an Google Analytics sendet, können Sie durch Aktivieren der Stichprobenerhebung eine unterbrechungsfreie Berichterstellung gewährleisten.

Wenn Sie beispielsweise clientseitige Stichproben 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 die clientseitige Probenahme auch 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 Deaktivierungs-Flag auf App-Ebene aktivieren, das Google Analytics für die gesamte App deaktiviert. Das Flag bleibt so lange bestehen, bis die App verwendet wird oder bis sie zurückgesetzt wird.

So rufen Sie die Deaktivierungseinstellung 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 für die Deaktivierung auf App-Ebene fest:

myInstance.setAppOptOut(appPreferences.userOptOut);

Testen und Fehler beheben

Das Google Analytics SDK for Android bietet einen Debug-Modus, in dem nützliche Informationen darüber gedruckt werden, welche Daten in Ihren Logs an Google Analytics gesendet werden.

Um den Fehlerbehebungsmodus mit EasyTracker zu aktivieren, fügen Sie der analytics.xml-Ressourcendatei Folgendes hinzu:

<bool name="ga_debug">true</bool>

Verwenden Sie folgenden Code, um den Debug-Modus programmatisch zu aktivieren:

// 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.