Google Analytics SDK for Android Version 1 (alte Version)

Mit dem Google Analytics for Mobile Apps SDK for Android kann Google Analytics ganz einfach in Android-basierten Anwendungen implementiert werden. In diesem Dokument wird beschrieben, wie Sie das SDK in Ihre Apps einbinden.

SDK – Übersicht

Dieses SDK verwendet ein Tracking-Modell, mit dem Nutzer auf herkömmliche Websites gelangen und mit Widgets auf herkömmlichen Webseiten interagieren können. Aus diesem Grund beziehen sich die unten verwendeten Begriffe auf das herkömmliche Website-Tracking-Modell und werden auf mobile Tracking-Apps angewendet. Sie sollten mit dem Tracking in Analytics vertraut sein, um die Funktionsweise dieses SDK zu verstehen.

Mit dem Mobile Tracking SDK können Sie Ihre Smartphone-Apps mit den folgenden Analytics-Interaktionstypen erfassen:

Seitenaufruf-Tracking
Ein Seitenaufruf ist eine Standardmethode zur Messung der Anzahl der Zugriffe auf eine herkömmliche Website. Da mobile Apps keine HTML-Seiten enthalten, musst du festlegen, wann (und wie oft) eine Seitenaufruf-Anfrage ausgelöst werden soll. Da bei Seitenaufrufanfragen Berichte zu Verzeichnisstrukturen erstellt werden, sollten Sie den Anfragen aussagekräftige Namen geben, damit Sie die Seitenpfadbenennung in den Contentberichten in Analytics nutzen können. Die von Ihnen gewählten Namen werden in Ihren Analytics-Berichten als Seitenpfade dargestellt, auch wenn es sich dabei nicht um HTML-Seiten handelt. Sie können dies jedoch zu Ihrem Vorteil nutzen, indem Sie Pfade so strukturieren, dass Ihre Aufrufe zusätzliche Gruppierungen enthalten.
Ereignis-Tracking
In Analytics dienen Ereignisse dazu, Nutzerinteraktionen mit Webseitenelementen unabhängig von Seitenaufrufanfragen zu erfassen. Mit der Funktion „Ereignis-Tracking“ von Google Analytics können Sie zusätzliche Aufrufe ausführen, die im Bereich „Ereignis-Tracking“ der Analytics-Benutzeroberfläche für Berichte aufgeführt werden. Ereignisse werden anhand von Kategorien gruppiert und können auch ereignisspezifische Labels verwenden, um Flexibilität bei der Berichterstellung zu ermöglichen. Eine Multimedia-App könnte beispielsweise die Aktionen play/stop/pause für die Kategorie video haben und jedem Videonamen ein Label zuweisen. In den Google Analytics-Berichten werden dann Ereignisse für alle Ereignisse mit der Kategorie Video zusammengefasst. Weitere Informationen zum Ereignis-Tracking finden Sie im Leitfaden zum Ereignis-Tracking.
E-Commerce-Tracking
Mit der E-Commerce-Tracking-Funktion können Sie Einkaufswagentransaktionen und In-App-Käufe erfassen. Verwende zum Erfassen einer Transaktion die Klasse Transaction für die Gesamtkaufinformationen und die Klasse Item für jedes Produkt im Einkaufswagen. Die erfassten Daten können dann in Google Analytics im Bereich „E-Commerce-Berichte“ aufgerufen werden. Weitere Informationen zum E-Commerce-Tracking finden Sie im Leitfaden zum E-Commerce-Tracking.
Benutzerdefinierte Variablen
Benutzerdefinierte Variablen sind Tags mit Name/Wert-Paaren, die Sie in Ihren Tracking-Code einfügen können, um das Google Analytics-Tracking zu optimieren. Weitere Informationen zur Verwendung von benutzerdefinierten Variablen finden Sie in der Anleitung zu benutzerdefinierten Variablen.

Erste Schritte

Voraussetzungen

Um die Tracking-Funktionen von Google Analytics in Ihre Android-App zu integrieren, ist Folgendes erforderlich:

Einrichtung

  • Fügen Sie libGoogleAnalytics.jar dem /libs-Verzeichnis Ihres Projekts hinzu.
  • Fügen Sie der Manifestdatei AndroidManifest.xml Ihres Projekts die folgenden Berechtigungen hinzu:
    • <uses-permission android:name="android.permission.INTERNET" />
    • <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Das SDK enthält eine Beispielanwendung, die zeigt, wie Ihr Projekt bei erfolgreicher Einrichtung aussehen sollte. Sie können sie als Vorlage für Ihre eigenen in Analytics integrierten Apps verwenden.

SDK verwenden

Bevor Sie das SDK verwenden können, müssen Sie zuerst unter www.google.com/analytics ein kostenloses Konto erstellen und darin eine neue Web-Property mit einer gefälschten, aber beschreibenden Website-URL erstellen (z.B. http://mymobileapp.mywebsite.com). Notieren oder kopieren Sie die ID der neu erstellten Property.

Sie müssen Ihre Nutzer entweder in der Anwendung selbst oder in Ihren Nutzungsbedingungen darauf hinweisen, dass Sie sich das Recht vorbehalten, die Aktivitäten eines Nutzers in Ihrer App anonym zu erfassen und zu melden. Die Verwendung des Google Analytics SDK unterliegt außerdem den Nutzungsbedingungen für Google Analytics, denen Sie zustimmen müssen, wenn Sie sich für ein Konto registrieren.

Beispiele und Best Practices

Beispielcode und Best Practices finden Sie auf code.google.com im Projekt analytics-api-sample.

EasyTracker-Bibliothek

Eine EasyTracker-Bibliothek ist verfügbar. Sie ermöglicht Tracking auf Anwendungs- und Aktivitätsebene ohne Entwicklungsaufwand. Sie finden es im Abschnitt Downloads des Projekts analytics-api-sample.

Tracker starten

Rufen Sie den Tracker-Singleton durch Aufrufen von GoogleAnalyticsTracker.getInstance() ab. Rufen Sie dann die zugehörige startNewSession-Methode auf und übergeben Sie die Web-Property-ID und die erfassten Aktivitäten. Sie können diese Methode direkt in der onCreate-Methode Ihrer Aktivität aufrufen, wenn Ihre App nur eine Activity (Aktivität) hat. Beispiel:

package com.google.android.apps.analytics.sample;

import com.google.android.apps.analytics.GoogleAnalyticsTracker;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class TestActivity extends Activity {

  GoogleAnalyticsTracker tracker;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    tracker = GoogleAnalyticsTracker.getInstance();

    // Start the tracker in manual dispatch mode...
    tracker.startNewSession("UA-YOUR-ACCOUNT-HERE", this);

    // ...alternatively, the tracker can be started with a dispatch interval (in seconds).
    //tracker.startNewSession("UA-YOUR-ACCOUNT-HERE", 20, this);

    setContentView(R.layout.main);
    Button createEventButton = (Button)findViewById(R.id.NewEventButton);
    createEventButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        tracker.trackEvent(
            "Clicks",  // Category
            "Button",  // Action
            "clicked", // Label
            77);       // Value
      }
    });

    Button createPageButton = (Button)findViewById(R.id.NewPageButton);
    createPageButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // Add a Custom Variable to this pageview, with name of "Medium" and value "MobileApp" and
        // scope of session-level.
        tracker.setCustomVar(1, "Navigation Type", "Button click", 2);
        // Track a page view. This is probably the best way to track which parts of your application
        // are being used.
        // E.g.
        // tracker.trackPageView("/help"); to track someone looking at the help screen.
        // tracker.trackPageView("/level2"); to track someone reaching level 2 in a game.
        // tracker.trackPageView("/uploadScreen"); to track someone using an upload screen.
        tracker.trackPageView("/testApplicationHomeScreen");
      }
    });

    Button quitButton = (Button)findViewById(R.id.QuitButton);
    quitButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        finish();
      }
    });

    Button dispatchButton = (Button)findViewById(R.id.DispatchButton);
    dispatchButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // Manually start a dispatch, not needed if the tracker was started with a dispatch
        // interval.
        tracker.dispatch();
      }
    });
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();
    // Stop the tracker when it is no longer needed.
    tracker.stopSession();
  }
}

Wenn Ihre Anwendung mehrere Aktivitäten enthält, können Sie die EasyTracker-Bibliothek verwenden, die im Abschnitt Downloads des Projekts analytics-api-sample bereitgestellt wird.

Seitenaufrufe und Ereignisse erfassen

Das Tracking von Seitenaufrufen und Ereignissen ist unkompliziert: Rufen Sie einfach jedes Mal trackPageView des Tracker-Objekts auf, wenn Sie einen Seitenaufruf auslösen möchten. Rufe trackEvent auf, um ein Ereignis aufzuzeichnen. Weitere Informationen zu Seitenaufrufen und Ereignissen finden Sie oben in der SDK-Übersicht.

Benutzerdefinierte Variablen verwenden

Benutzerdefinierte Variablen lassen sich ebenfalls ganz einfach hinzufügen: Verwenden Sie einfach die Methode setCustomVar aus dem Mobile SDK. Planen Sie daher im Voraus, welchen Indexen die einzelnen benutzerdefinierten Variablen zugeordnet sind, damit Sie keine zuvor vorhandenen Variablen überschreiben. Weitere Informationen zu benutzerdefinierten Variablen finden Sie in der Anleitung zu benutzerdefinierten Variablen. Mit der Methode setCustomVar werden Daten nicht direkt gesendet. Stattdessen werden die Daten mit dem nächsten erfassten Seitenaufruf oder Ereignis gesendet. Sie müssen setCustomVar aufrufen, bevor Sie einen Seitenaufruf oder ein Ereignis erfassen. Hinweis: Der Standardbereich von benutzerdefinierten Variablen ist auf Seitenebene.

E-Commerce-Tracking verwenden

Es gibt vier Methoden, um E-Commerce-Tracking in Ihrer Anwendung zu aktivieren:

  • addTransaction
  • addItem
  • trackTransactions
  • clearTransactions

Durch Aufrufen von addTransaction und addItem wird die Transaktion oder das Element einem internen E-Commerce-Zwischenspeicher hinzugefügt, in den weitere Elemente und Transaktionen eingefügt werden können. Nur beim Aufrufen von trackTransactions werden Transaktionen und Artikel an den Disponenten gesendet und in die Warteschlange zum Senden an Google Analytics gestellt.

Zum Löschen des Zwischenspeichers können Sie die Methode clearTransactions aufrufen. Hinweis: Zuvor an den Disponenten gesendete Transaktionen oder bereits von Google Analytics erfasste Transaktionen werden nicht zurückgerufen.

Der folgende Beispielcode kann Ihnen bei den ersten Schritten helfen. Wir gehen davon aus, dass die Methode onPurchaseCompleted aufgerufen wird, wenn der Kauf bestätigt oder abgelehnt wird.

  /**
   * The purchase was processed.  We will track the transaction and its associated line items
   * now, but only if the purchase has been confirmed.
   *
   * @param purchase A PurchaseObject containing all of the transaction information needed to
   *     send the ecommerce hit to Google Analytics.
   */
  public void onPurchaseCompleted(PurchaseObject purchase) {
    tracker.addTransaction(new Transaction.Builder(
        purchase.getTransactionId(),
        purchase.getTotal())
        .setStoreName(purchase.getStoreName())
        .setTotalTax(purchase.getTotalTax())
        .setShippingCost(purchase.getShippingCost())
        .build());
    for (PurchaseLineItem lineItem : purchase.getLineItems()) {
        tracker.addItem(new Item.Builder(
            purchase.getTransactionId(),
            lineItem.getItemSKU(),
            lineItem.getItemCost(),
            lineItem.getQuantity())
            .setItemName(lineItem.getItemName())
            .setItemCategory(lineItem.getItemCategory())
            .build());
    }
    if (purchase.isConfirmed()) {
      tracker.trackTransactions();
    } else {
      // The purchase was denied or failed in some way.  We need to clear out
      // any data we've already put in the Ecommerce buffer.
      tracker.clearTransactions();
    }
  }

Weitere Informationen zu E-Commerce finden Sie im Leitfaden zum E-Commerce-Tracking.

IP-Anonymisierung

Verwenden Sie die Methode setAnonymizeIp, um die IP-Informationen von Nutzern zu anonymisieren. Dadurch wird Google Analytics angewiesen, die vom SDK gesendeten Informationen zu anonymisieren, indem das letzte Oktett der IP-Adresse vor dem Speichern entfernt wird.

Du kannst jederzeit setAnonymizeIp anrufen.

Abtastrate festlegen

Sie können die Abtastrate mit der Methode setSampleRate festlegen. Falls Ihre Anwendung viele Analytics-Zugriffe generiert, kann das Festlegen der Stichprobenrate verhindern, dass Ihre Berichte mit Stichproben erstellt werden. Die Stichprobenerhebung erfolgt konsistent für einzelne Nutzer, sodass die Trends und Berichte fehlerfrei sind, wenn die Stichprobenrate aktiviert ist. Die Methode setSampleRate akzeptiert genau einen int-Parameter. Gültige Werte für diesen Parameter sind beliebige Ganzzahlen zwischen 0 und 100 (jeweils einschließlich).

Bei einer Rate von 0 wird die Treffergenerierung deaktiviert. Bei einer Rate von 100 werden alle Daten an Google Analytics gesendet. Am besten rufen Sie vor dem Aufruf von Tracking-Methoden setSampleRate auf.

Weitere Informationen zur Stichprobenerhebung finden Sie im Leitfaden zu Konzepten für Stichproben.

Treffer im Batch

Um den Aufwand für die Verbindung und den Akku zu sparen, empfehlen wir, die Tracking-Anfragen in einem Batch zusammenzufassen. Sie können dispatch für das Tracking-Objekt jederzeit aufrufen, wenn Sie eine Batchanfrage stellen möchten, und zwar entweder manuell oder in bestimmten Zeitintervallen.

Bekannte Probleme

  • Das Aufrufen von GoogleAnalyticsTracker-Methoden in verschiedenen Threads kann zu unklaren Fehlern führen. Achten Sie darauf, alle Anrufe aus demselben Thread zu tätigen.
  • Tracking von Kampagnen

    Das SDK unterstützt zwei Arten des Kampagnen-Trackings.

    Google Play-Kampagnen-Tracking: Damit können Sie die Installationsempfehlungen über Google Play erfassen.
    Allgemeines Kampagnen-Tracking: Damit können Sie alle Kampagnen erfassen, die Nutzer auf Ihre App verweisen.

    Google Play-Kampagnen-Tracking

    Die Android-Version 1.6 unterstützt die Verwendung eines referrer-URL-Parameters in Downloadlinks zu Google Play. Das Google Analytics SDK for Android verwendet diesen Parameter, um automatisch Kampagneninformationen für Ihre App in Google Analytics bereitzustellen. So kann die Quelle der App-Installation erfasst und zukünftigen Seitenaufrufen und Ereignissen zugeordnet werden. So lässt sich beispielsweise die Effektivität einer bestimmten Anzeige für Ihre App beurteilen.

    Damit das Verweis-Tracking funktioniert, müssen Sie der Manifestdatei AndroidManifest.xml Ihres Projekts das folgende Code-Snippet hinzufügen:

    <!-- Used for install referrer tracking -->
    <receiver android:name="com.google.android.apps.analytics.AnalyticsReceiver" android:exported="true">
      <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER" />
      </intent-filter>
    </receiver>
    

    Wenn Sie das Google Analytics-Kampagnen-Tracking über Google Play einrichten möchten, verwenden Sie das Tool zur URL-Erstellung unten, um einen Verweislink zu generieren. Verweisen Sie Nutzer über den Link auf Ihre App. Das Analytics SDK parst und zeichnet die Verweisinformationen automatisch auf und fügt sie in Ihren Analytics-Bericht ein.

    Um den Empfehlungslink zu generieren, können Sie das Tool zur URL-Erstellung für Google Play-Kampagnen verwenden. Paketname, Kampagnenquelle, Kampagnenmedium und Kampagnenname sind erforderlich. Eine ausführliche Beschreibung der einzelnen Parameter finden Sie in der Tabelle unten.

    Allgemeines Kampagnen-Tracking

    Mit Version 1.3 des Google Analytics SDK für Android können Sie jetzt Kampagnen für andere Quellen als Google Play erfassen. Wenn Sie beispielsweise wissen möchten, dass Ihre App über einen Link in einer Anzeige gestartet wurde, können Sie Informationen zu Kampagnenverweisen in dem Intent suchen, der den Start Ihrer App ausgelöst hat, und diese Kampagneninformationen in Google Analytics speichern.

    Verwenden Sie zum Festlegen der Kampagnenverweisinformationen die setReferrer-Methode:

      tracker.setReferrer(referrer);
    

    Für die Verwendung dieser Funktion gelten zwei Einschränkungen. Sie müssen zuerst startNewSession aufrufen, bevor Sie setReferrer aufrufen. Dies ist erforderlich, da die von Google Analytics verwendete SQLite-Datenbank nicht vor dem Aufruf von startNewSession eingerichtet ist und setReferrer diese Datenbank benötigt. Wenn Sie startNewSession noch nicht angerufen haben, erhalten Sie ein IllegalStateException.

    Die zweite Einschränkung besteht darin, dass der an setReferrer übergebene Verweisstring einem bestimmten Format entsprechen muss. Er muss in Form einer Gruppe von URL-Parametern vorliegen und mindestens einen „gclid“-Parameter oder „utm_campaign“, „utm_medium“ und „utm_source“ enthalten. Im letzteren Fall können sie auch die Parameter „utm_term“ und „utm_content“ enthalten.

    Der Parameter „gclid“ ist Teil der automatischen Tag-Kennzeichnung, bei der Google Analytics automatisch mit Google Ads verknüpft wird. Ein Beispiel für einen Kampagnenverweis mit automatischem Tagging könnte so aussehen:

    referrer = “gclid=gclidValue”;
    

    Der String für den manuellen Kampagnenverweis könnte so aussehen:

    referrer = “utm_campaign=campaign&utm_source=source&utm_medium=medium&utm_term=term&utm_content=content”;
    

    Wenn Sie einen falsch formatierten Referrer-String an setReferrer übergeben, werden die Referrer-URL-Informationen nicht geändert und Sie erhalten den Rückgabewert „false“. Der Rückgabewert „true“ gibt an, dass die Referrer-URL aktualisiert wurde und zukünftig zu jedem Treffer hinzugefügt wird.

    Beachten Sie außerdem, dass eine neue Sitzung gestartet wird, wenn Sie "setReferrer" aufrufen und der Wert "true" zurückgibt.

    Parameter Erforderlich Beschreibung Beispiel(e)
    utm_campaign Ja Kampagnenname; wird für die Keyword-Analyse verwendet, um eine bestimmte Werbeaktion oder strategische Kampagne zu identifizieren utm_campaign=spring_sale
    utm_source Ja Kampagnenquelle; zur Identifizierung einer Suchmaschine, eines Newsletters oder einer anderen Quelle utm_source=google
    utm_medium Ja Kampagnenmedium; zur Identifizierung eines Mediums wie E-Mail oder Cost-per-Click (CPC) utm_medium=cpc
    utm_term Nein Kampagnenbegriff; wird bei bezahlter Suche verwendet, um die Keywords für Anzeigen bereitzustellen utm_term=running+shoes
    utm_content Nein Kampagneninhalte; wird für A/B-Tests und inhaltsbezogene Anzeigen verwendet, um Anzeigen oder Links zu unterscheiden, die auf dieselbe URL verweisen. utm_content=logolink
    utm_content=textlink