Implementierungsleitfaden für mobile Apps

Dieses Dokument richtet sich an App-Entwickler und beschreibt, wie Sie mit Google Analytics Nutzerinteraktionen messen und Fragen zur App-Nutzung beantworten können.

Einleitung

Google Analytics für mobile Apps bietet eine Plattform zur Messung von Nutzerinteraktionen, mit der Sie die Nutzerinteraktionen mit Ihrer App besser verstehen und optimieren können.

Bei der Standardimplementierung von Google Analytics werden automatisch die folgenden Informationen zu Ihrer App bereitgestellt:

  • Anzahl der Nutzer und Sitzungen
  • Sitzungsdauer
  • Betriebssysteme
  • Gerätemodelle
  • Region

In diesem Leitfaden erfahren Sie, wie Sie zusätzliche Google Analytics-Funktionen implementieren können, um Ihre Nutzer und deren Verhalten besser zu verstehen.

Hinweis

Bevor Sie diesen Leitfaden zur Einrichtung von Google Analytics für mobile Apps durcharbeiten:

Überblick

Drachenfänger

In diesem Leitfaden wird eine Beispiel-App verwendet, die Sie durch die Implementierung zusätzlicher Google Analytics-Funktionen führt. Die App heißt Dragon Catcher und hat folgende Spieleigenschaften:

  • Ein Level besteht aus einem Spieler, Drachen, einem eingezäunten Bereich, einem Brunnen und Bäumen
  • Das Ziel des Spielers ist es, Drachen zu fangen, indem er sie in den eingezäunten Bereich bewegt
  • Der Spieler kann verschiedene Bereiche des Levels und Objekte wie einen Brunnen oder einen magischen Baum besuchen
  • Sobald alle Drachen gefangen wurden, steigt der Spieler zum nächsten Level auf
  • Der Spieler startet das Spiel im ersten Level namens Barren Fields.

Hier sind einige der Fragen zum Nutzerverhalten, die über Dragon Catcher beantwortet werden können, mithilfe von Google Analytics:

Im weiteren Verlauf dieses Dokuments wird veranschaulicht, wie diese Fragen durch die Implementierung von Google Analytics-Funktionen für das Spiel Dragon Catcher beantwortet werden können.

Welche Aktionen führen meine Nutzer aus? (Ereignisse)

Wenn Sie wichtige Aktionen in Ihrer App erfassen möchten, können Sie diese mithilfe von Ereignissen in Google Analytics beschreiben. Ein Ereignis besteht aus vier Parametern: category, action, label und value.

In Dragon Catcher sind beispielsweise Nutzer, die einen Drachen retten oder ein bestimmtes Level auf dem Level besuchen, wichtige Aktionen, die wir mithilfe von Ereignissen messen möchten. Das Code-Snippet unten zeigt, wie dies in Google Analytics gemessen wird.

Android SDK

// To determine how many dragons are being rescued, send an event when the
// player rescues a dragon.
tracker.send(new HitBuilders.EventBuilder()
    .setCategory("Barren Fields")
    .setAction("Rescue")
    .setLabel("Dragon")
    .setValue(1)
    .build());

// To determine if players are visiting the magic tree, send an event when the
// player is in the vicinity of the magic tree.
tracker.send(new HitBuilders.EventBuilder()
    .setCategory("Barren Fields")
    .setAction("Visited")
    .setLabel("Magic Tree")
    .setValue(1)
    .build());

// To determine if players are visiting the well, send an event when the player
// is in the vicinity of the well.
tracker.send(new HitBuilders.EventBuilder()
    .setCategory("Barren Fields")
    .setAction("Visited")
    .setLabel("Well")
    .setValue(1)
    .build());

iOS SDK

// To determine how many dragons are being rescued, send an event when the
// player rescues a dragon.
[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Barren Fields"
                                                      action:@"Rescue"
                                                       label:@"Dragon"
                                                       value:@1] build]];

// To determine if players are visiting the magic tree, send an event when the
// player is in the vicinity of the magic tree.
[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Barren Fields"
                                                      action:@"Visited"
                                                       label:@"Magic Tree"
                                                       value:@1] build]];

// To determine if players are visiting the well, send an event when the player
// is in the vicinity of the well.
[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Barren Fields"
                                                      action:@"Visited"
                                                       label:@"Well"
                                                       value:@1] build]];

GA-Plug-in für Unity

// To determine how many dragons are being rescued, send an event when the
// player rescues a dragon.
googleAnalytics.LogEvent("Barren Fields", "Rescue", "Dragon", 1);

// To determine if players are visiting the magic tree, send an event when the
// player is in the vicinity of the magic tree.
googleAnalytics.LogEvent("Barren Fields", "Visited", "Magic Tree", 1);

// To determine if players are visiting the well, send an event when the player
// is in the vicinity of the well.
googleAnalytics.LogEvent("Barren Fields", "Visited", "Well", 1);

„Erfolge“ von Spielern messen

Erfolge von Spielern können mithilfe von Ereignissen in Google Analytics gemessen werden. Um beispielsweise die Leistung bei der Rettung von fünf Drachen zu messen, wird die Anzahl der von einem Spieler geretteten Drachen aufgezeichnet. Sobald der Spieler den Schwellenwert erreicht hat, wird ein Ereignis an Google Analytics gesendet:

Android SDK

if (numDragonsRescued > 5) {
  if (!user.hasAchievement(RESCUED_ACHIEVEMENT) {
    tracker.send(new HitBuilders.EventBuilder()
        .setCategory("Achievement")
        .setAction("Unlocked")
        .setLabel("5 Dragons Rescued")
        .setValue(1)
        .build());
  } else {
    tracker.send(new HitBuilders.EventBuilder()
        .setCategory("Achievement")
        .setAction("Earned")
        .setLabel("5 Dragons Rescued")
        .setValue(1)
        .build());
  }
}

iOS SDK

if (numDragonsRescued > 5) {
  if (![user hasAchievement:RESCUED_ACHIEVEMENT]) {
    [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Achievement"
                                                          action:@"Unlocked"
                                                           label:@"5 Dragons Rescued"
                                                           value:@1] build]];
  } else {
    [tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"Achievement"
                                                          action:@"Earned"
                                                           label:@"5 Dragons Rescued"
                                                           value:@1] build]];
  }
}

GA-Plug-in für Unity

if (numDragonsRescued > 5) {
  if (!user.HasAchievement(RESCUED_ACHIEVEMENT)) {
    googleAnalytics.LogEvent("Achievement", "Unlocked", "5 Dragons Rescued", 1);
  } else {
    googleAnalytics.LogEvent("Achievement", "Earned", "5 Dragons Rescued", 1);
  }
}

Entwicklerleitfäden für Ereignisse

Berichte zu Ereignissen

Ereignisdaten sind verfügbar in:

Wie viel Geld geben Nutzer in meiner App aus? (Erweiterte E-Commerce-Berichte)

Wenn Sie die In-App-Käufe von Nutzern erfassen möchten, können Sie E-Commerce-Tracking verwenden, um den Kauf zu erfassen und die damit verbundene Produktleistung und das Nutzerverhalten zu verstehen. Mit E-Commerce-Tracking können Sie den Kauf eines bestimmten Artikels oder einer virtuellen Währung erfassen.

Um beispielsweise in Dragon Catcher den Kauf einiger Artikel zu messen, werden Transaktionsdaten mit einem Ereignis an Google Analytics gesendet:

Android SDK

Product product = new Product()
    .setName("Dragon Food")
    .setPrice(40.00);

ProductAction productAction = new ProductAction(ProductAction.ACTION_PURCHASE)
    .setTransactionId("T12345");

// Add the transaction data to the event.
HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder()
    .setCategory("In-Game Store")
    .setAction("Purchase")
    .addProduct(product)
    .setProductAction(productAction);

// Send the transaction data with the event.
tracker.send(builder.build());

iOS SDK

GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setName:@"Dragon Food"];
[product setPrice:@40.00];

GAIEcommerceProductAction *productAction = [[GAIEcommerceProductAction alloc] init];
[productAction setAction:kGAIPAPurchase];
[productAction setTransactionId:@"T12345"];

GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"In-Game Store"
                                                                       action:@"Purchase"
                                                                        label:nil
                                                                        value:nil];
// Add the transaction data to the event.
[builder setProductAction:productAction];
[builder addProduct:product];

// Send the transaction data with the event.
[tracker send:[builder build]];

GA-Plug-in für Unity

// Note: Using Android SDK v3 and standard Ecommerce tracking.

googleAnalytics.LogItem("T12345", "Dragon Food", "Food_SKU", "Items", 40.00, 1);
googleAnalytics.LogTransaction("T12345", "In-Game Store", 40.00, 0.00, 0.00);

Wenn ein Nutzer virtuelle Währung erwirbt, sollten Sie beim Senden der Transaktionsdaten an Google Analytics den Austausch von echtem Geld messen. Wenn der Nutzer die virtuelle Währung für den Kauf von Artikeln ausgibt, messen Sie dies mithilfe von Ereignissen. Beispiel:

Android SDK

/**
 * When the user purchases the virtual currency (Gems) measure the transaction
 * using enhanced ecommerce.
 */
Product product = new Product()
    .setName("2500 Gems")
    .setPrice(5.99);

ProductAction productAction = new ProductAction(ProductAction.ACTION_PURCHASE)
    .setTransactionId("T67890");

// Add the transaction to the screenview.
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder()
    .addProduct(product)
    .setProductAction(productAction);

// Send the transaction with the screenview.
tracker.setScreenName("In-Game Store");
tracker.send(builder.build());


/**
 * When the user purchases an item using the virtual currency (Gems) send an
 * event to measure this in Google Analytics.
 */
HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder()
    .setCategory("In-Game Store")
    .setAction("Purchase")
    .setLabel("Sword")
    .setValue(35);
tracker.send(builder.build());

iOS SDK

/**
 * When the user purchases the virtual currency (Gems) measure the transaction
 * using enhanced ecommerce.
 */
GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
[product setName:@"2500 Gems"];
[product setPrice:@5.99];

GAIEcommerceProductAction *productAction = [[GAIEcommerceProductAction alloc] init];
[productAction setAction:kGAIPAPurchase];
[productAction setTransactionId:@"T67890"];

GAIDictionaryBuilder *viewBuilder = [GAIDictionaryBuilder createScreenView];

// Add the transaction data to the screenview.
[viewBuilder setProductAction:productAction];
[viewBuilder addProduct:product];

// Send the transaction with the screenview.
[tracker set:kGAIScreenName value:@"In-Game Store"];
[tracker send:[viewBuilder build]];


/**
 * When the user purchases an item using the virtual currency (Gems) send an
 * event to measure this in Google Analytics.
 */
GAIDictionaryBuilder *eventBuilder = [GAIDictionaryBuilder createEventWithCategory:@"In-Game Store"
                                                                       action:@"Purchase"
                                                                        label:@"Sword"
                                                                        value:@35];
[tracker send:[eventBuilder build]];

GA-Plug-in für Unity

// Note: Using Android SDK v3 and standard Ecommerce tracking.

/**
 * When the user purchases the virtual currency (Gems) measure the transaction
 * using enhanced ecommerce.
 */

googleAnalytics.LogItem("T12345", "2500 Gems", "GEM2500_SKU", "Items", 5.99, 1);
googleAnalytics.LogTransaction("T12345", "In-Game Store", 5.99, 0.00, 0.00);

/**
 * When the user purchases an item using the virtual currency (Gems) send an
 * event to measure this in Google Analytics.
 */
googleAnalytics.LogEvent("In-Game Store", "Purchase", "Sword", 35);

Entwicklerleitfäden für erweiterte E-Commerce-Berichte

Berichte für erweiterte E-Commerce-Berichte

E-Commerce-Daten sind verfügbar in:

Erreichen Nutzer meine App-Ziele? (Zielvorhaben)

Wenn Sie für Ihre App bestimmte Ziele festlegen möchten, die Nutzer erreichen sollen, können Sie diese Ziele in Google Analytics mithilfe von Zielvorhaben definieren und messen. Beispielsweise könnten Nutzer ein bestimmtes Level in einem Spiel erreichen oder einen Artikel kaufen. Weitere Informationen zur Funktionsweise von Zielvorhaben finden Sie in diesem Hilfeartikel.

Im Spiel Dragon Catcher lässt sich ein Ziel einrichten, um zu erfassen, wann In-App-Käufe erfolgen. Dazu wird bei jedem Kauf ein Ereignis an Google Analytics gesendet. Das Ziel kann im Verwaltungsbereich der Weboberfläche ohne zusätzlichen Code mithilfe der folgenden Parameter definiert werden:

  • Zielvorhabentyp (ist gleich): Ereignis
  • Kategorie (ist gleich): In-Game-Shop
  • Aktion (ist gleich): Kauf
  • Ereigniswert als Zielvorhabenwert für die Conversion verwenden: Ja

Berichte zu Zielen

Die Zieldaten sind verfügbar in:

Wie verhalten sich Nutzende mit einem bestimmten Merkmal? (Benutzerdefinierte Dimensionen und Messwerte)

Wenn Sie Nutzer mit bestimmten Attributen/Merkmalen/Metadaten erfassen möchten, können Sie benutzerdefinierte Dimensionen verwenden, um diese Art von Daten an Google Analytics und für die Analyse zu senden. Weitere Informationen zur Funktionsweise von benutzerdefinierten Dimensionen finden Sie in der Referenz zu benutzerdefinierten Dimensionen und Messwerten.

Wenn Sie beispielsweise in Dragon Catcher den Prozentsatz der Nutzer ermitteln möchten, die sich auf der ersten oder zweiten Ebene befinden, können Sie eine benutzerdefinierte Dimension mit der aktuellen Ebene des Nutzers festlegen und an Google Analytics senden. Folgende Schritte sind auszuführen:

  1. Erstellen Sie eine benutzerdefinierte Dimension mit dem Umfang User. Der Bereich User wird verwendet, da dieser Wert über alle Sitzungen dieses Nutzers hinweg beibehalten werden soll. Weitere Informationen finden Sie in der Analytics-Hilfe unter Benutzerdefinierte Dimensionen einrichten oder bearbeiten.
  2. Wert der benutzerdefinierten Dimension aktualisieren, wenn sich die Ebene des Nutzers geändert hat.

Das folgende Snippet zeigt, wie der Status des Nutzers in Google Analytics aktualisiert wird, wenn der Index der benutzerdefinierten Dimension auf Nutzerebene 1 ist und die Ebene des Nutzers zu Barren Fields geändert wurde:

Android SDK

// Set the user level custom dimension when sending a hit to Google Analytics
// such as a screenview or event.
tracker.setScreenName("BarrenFields");
tracker.send(new HitBuilders.ScreenViewBuilder()
    .setCustomDimension(1, "Barren Fields")
    .build()
);

iOS SDK

// Set the user level custom dimension when sending a hit to Google Analytics
// such as a screenview or event.
[tracker set:kGAIScreenName value:@"BarrenFields"];
[tracker send:[[[GAIDictionaryBuilder createScreenView]
         set:@"Barren Fields"
      forKey:[GAIFields customDimensionForIndex:1]] build]];

GA-Plug-in für Unity

// Set the user level custom dimension when sending a hit to Google Analytics
// such as a screenview or event.
googleAnalytics.LogScreen(new AppViewHitBuilder()
    .SetScreenName("BarrenFields").SetCustomDimension(1, "Barren Fields"));

Entwicklerleitfäden für benutzerdefinierte Dimensionen und Messwerte

Berichte zu benutzerdefinierten Dimensionen und Messwerten

Benutzerdefinierte Dimensionen können in folgende Kategorien aufgenommen und als Segment angewendet werden:

Wenn Sie die benutzerdefinierte Dimension als Segment verwenden, können Sie Nutzer analysieren, die sich derzeit in einem bestimmten Level im Spiel befinden.

Wie lange brauchen Nutzende, um eine Aufgabe zu erledigen? (Benutzerdefinierte Timings)

Wenn Sie messen möchten, wie lange ein Vorgang in der App dauert, können Sie das Nutzertiming für zeitbasierte Messungen in Google Analytics verwenden. Nutzerzeitangaben ähneln Ereignissen, sind jedoch zeitbasiert und können category, value, name (variable) und label enthalten. Weitere Informationen zum Nutzertiming finden Sie unter Websitegeschwindigkeit.

In Dragon Catcher können Sie beispielsweise Folgendes senden, um zu messen, wie lange ein Nutzer benötigt, um seinen ersten Drachen zu retten:

Android SDK

// Build and send a timing hit.
tracker.send(new HitBuilders.TimingBuilder()
    .setCategory("Barren Fields")
    .setValue(45000)  // 45 seconds.
    .setVariable("First Rescue")
    .setLabel("Dragon")
    .build());

iOS SDK

[tracker send:[[GAIDictionaryBuilder createTimingWithCategory:@"Barren Fields"
                                                     interval:@45000   // 45 seconds.
                                                         name:@"First Rescue"
                                                        label:@"Dragon"] build]];

GA-Plug-in für Unity

// Build and send a timing hit.
googleAnalytics.LogTiming("Barren Fields",45000,"First Rescue","Dragon");

Entwicklerleitfäden für benutzerdefinierte Timings

Berichte zu benutzerdefinierten Timings

Benutzerdefinierte Timing-Daten sind in den folgenden Sprachen verfügbar:

  • Analytics Academy: Erweitern Sie Ihre Analytics-Kenntnisse mit kostenlosen Onlinekursen, die die Grundlagen der Analyse mobiler Apps behandeln.
  • APIs und SDKs zur Datenerhebung – Informationen zu allen Möglichkeiten, Daten an Google Analytics zu senden