Dieses Dokument richtet sich an mobile Entwickler und beschreibt, wie Sie mit Google Analytics Nutzerinteraktionen messen und Fragen zur App-Nutzung beantworten können.
Einführung
Google Analytics für mobile Apps bietet eine Plattform zum Messen von Nutzerinteraktionen, sodass Sie die Nutzerinteraktionen mit Ihrer App besser verstehen und optimieren können.
In 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 wird erläutert, wie du zusätzliche Google Analytics-Funktionen implementieren kannst, um deine Nutzer und ihr Verhalten besser zu verstehen.
Hinweis
Bevor Sie diesen Leitfaden zur Einrichtung von Google Analytics für mobile Apps durcharbeiten, müssen folgende Voraussetzungen erfüllt sein:
- Installieren Sie das SDK für die Plattform, auf die Sie Ihre Anzeigen ausrichten:
- Best Practices für die Einrichtung von Analytics für mobile Apps
Übersicht
Drachenfänger
In diesem Leitfaden wird eine Beispiel-App verwendet, in der die Implementierung zusätzlicher Google Analytics-Funktionen erläutert wird. Die App heißt Dragon Catcher und hat folgende Eigenschaften:
- Ein Level besteht aus einem Spieler, Drachen, einzäunten Bereichen, einem Brunnen und Bäumen.
- Das Ziel des Spielers ist es, Drachen zu fangen, indem er sie in den umzäunten Bereich bewegt.
- Der Spieler kann verschiedene Bereiche des Levels und Objekte wie einen Brunnen oder einen magischen Baum besuchen
- Der Spieler kehrt zum nächsten Level zurück, nachdem er alle Drachen gefangen hat.
- Der Spieler startet das Spiel auf der ersten Ebene namens Barren Fields.
Einige Fragen zum Nutzerverhalten, die mithilfe von Google Analytics über Dragon Catcher beantwortet werden können:
- Welche Aktionen führen meine Nutzer aus? (Veranstaltungen)
- Wie viel Geld geben die Nutzer in meiner App aus? (E-Commerce)
- Erreichen Nutzer meine App-Ziele? (Ziele)
- Wie verhalten sich Nutzer mit einer bestimmten Eigenschaft? (Benutzerdefinierte Dimensionen/Messwerte)
- Wie lange dauert es, bis ein Nutzer eine Aufgabe erledigt? (Benutzerdefiniertes Timing)
Der Rest dieses Dokuments 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 Aktionen mit Ereignissen in Google Analytics beschreiben. Ein Ereignis besteht aus vier Parametern: category
, action
, label
und value
.
Beispielsweise ist es in Dragon Catcher wichtig, dass ein Nutzer einen Drachen rettet oder einen bestimmten Bereich auf der Ebene besucht, den wir mithilfe von Ereignissen messen möchten. Das Code-Snippet unten veranschaulicht, 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);
Messwerte für Spieler messen &erfolgen
Erfolge können mithilfe von Ereignissen in Google Analytics gemessen werden. Um beispielsweise einen Erfolg für die Rettung von fünf Drachen zu messen, wird die Anzahl der geretteten Drachen aufgezeichnet. Sobald der Schwellenwert erreicht ist, 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 Veranstaltungen
Berichte zu Ereignissen
Ereignisdaten sind hier verfügbar:
- Die Weboberfläche unter Verhalten >> Ereignisse >> Top-Ereignisse
- Benutzerdefinierte Berichte
- Die Core Reporting API
Wie viel Geld geben die Nutzer in meiner App aus? (Erweiterter E-Commerce)
Wenn Sie In-App-Käufe von Nutzern messen möchten, können Sie mit E-Commerce-Tracking den Kauf erfassen und die damit verbundene Produktleistung und das Nutzerverhalten nachvollziehen. Mit E-Commerce-Tracking kann der Kauf eines bestimmten Artikels oder einer virtuellen Währung gemessen werden.
In Dragon Catcher werden beispielsweise Transaktionsdaten mit einem Ereignis an Google Analytics gesendet, um den Kauf einiger Artikel zu messen:
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 kauft, empfiehlt es sich, beim Senden der Transaktionsdaten an Google Analytics echtes Geld zu 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 erweiterten E-Commerce
- Erweitertes E-Commerce-Tracking – Android SDK
- Erweitertes E-Commerce-Tracking – iOS SDK
- E-Commerce – GA-Plug-in für Unity
Berichte für erweiterte E-Commerce-Berichte
E-Commerce-Daten sind in den folgenden Ländern verfügbar:
Erledigen Nutzer meine App-Ziele? (Zielvorhaben)
Wenn Sie bestimmte Ziele für Ihre App haben, die Nutzer erreichen sollen, können Sie diese mithilfe von Zielvorhaben in Google Analytics definieren und analysieren. So können Nutzer beispielsweise ein bestimmtes Level in einem Spiel erreichen oder einen Artikel kaufen. Weitere Informationen zur Funktionsweise von Zielvorhaben finden Sie unter Zielvorhaben in der Analytics-Hilfe.
Im Spiel Dragon Catcher kann ein Zielvorhaben eingerichtet werden, um zu messen, wann In-App-Käufe erfolgen, wenn ein Ereignis für jeden Kauf an Google Analytics gesendet wird. Das Ziel kann im Weboberflächenadministrator ohne zusätzlichen Code mit den folgenden Parametern definiert werden:
- Zielvorhabentyp (ist gleich): Ereignis
- Kategorie (ist gleich): In-Game-Store
- Aktion (ist gleich): Kauf
- Verwenden Sie den Ereigniswert als Zielvorhabenwert für die Conversion: Ja
Berichte zu Zielvorhaben
Daten zu Zielvorhaben sind verfügbar in:
- Die Weboberfläche unter Conversions >> Ziele >> Übersicht
- Benutzerdefinierte Berichte
- Die Core Reporting API
Wie verhalten sich Nutzer mit einer bestimmten Eigenschaft? (Benutzerdefinierte Dimensionen und Messwerte)
Wenn Sie Nutzer mit bestimmten Attributen/Merkmalen/Metadaten verfolgen möchten, können Sie diese Daten mithilfe von benutzerdefinierten Dimensionen an Google Analytics und in der Analyse senden. Weitere Informationen zur Funktionsweise benutzerdefinierter Dimensionen finden Sie hier.
Wenn Sie beispielsweise in Dragon Catcher den Prozentsatz der Nutzer in der ersten oder zweiten Ebene ermitteln möchten, kann eine benutzerdefinierte Dimension mit der aktuellen Ebene des Nutzers festgelegt und an Google Analytics gesendet werden. Folgende Schritte sind auszuführen:
- Erstellen Sie eine benutzerdefinierte Dimension mit dem Umfang
User
. Der UmfangUser
wird verwendet, da dieser Wert in allen Sitzungen dieses Nutzers beibehalten werden sollte. Weitere Informationen finden Sie unter Benutzerdefinierte Dimensionen einrichten oder bearbeiten (Hilfe). - Aktualisieren Sie den Wert der benutzerdefinierten Dimension, wenn sich die Ebene des Nutzers geändert hat.
Im folgenden Snippet sehen Sie, wie Sie den Status des Nutzers in Google Analytics aktualisieren, wobei der Index der benutzerdefinierten Dimension auf Nutzerebene 1
ist und sich die Ebene des Nutzers zu Barren Fields
geändert hat:
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
- Benutzerdefinierte Dimensionen und Messwerte – Android SDK
- Benutzerdefinierte Dimensionen und Messwerte – iOS SDK
- Benutzerdefinierte Dimensionen und Messwerte – GA-Plug-in für Unity
Berichte zu benutzerdefinierten Dimensionen und Messwerten
Benutzerdefinierte Dimensionen können als Segment hinzugefügt und auf folgende Elemente angewendet werden:
- Die meisten Standardberichte in der Weboberfläche
- Benutzerdefinierte Berichte
- Die Core Reporting API
Wenn Sie die benutzerdefinierte Dimension als Segment anwenden, können Sie Nutzer analysieren, die sich derzeit auf einer bestimmten Ebene innerhalb des Spiels befinden.
Wie lange dauert es, bis ein Nutzer eine Aufgabe erledigt? (Benutzerdefiniertes Timing)
Wenn Sie messen möchten, wie lange etwas in der App dauert, können Sie Nutzertimings für zeitbasierte Messungen in Google Analytics verwenden. Nutzertimings ähneln Ereignissen, sind jedoch zeitbasiert und können category
, value
, name (variable)
und label
enthalten. Informationen zum Nutzertiming finden Sie unter Websitegeschwindigkeit.
Um beispielsweise in Dragon Catcher zu messen, wie lange es dauert, bis ein Nutzer seinen ersten Drachen rettet, kannst du beispielsweise Folgendes senden:
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 für benutzerdefinierte Timings
Benutzerdefinierte Timing-Daten sind verfügbar in:
- Die Weboberfläche unter Verhalten &App Speed
- Benutzerdefinierte Berichte
- Die Core Reporting API
Weitere Informationen
- Analytics Academy: Vertiefen Sie Ihre Analytics-Kenntnisse mit kostenlosen Onlinekursen, in denen Sie sich mit den Grundlagen von Analytics für mobile Apps vertraut machen.
- Collection APIs & – Informationen zu allen Möglichkeiten, Daten an Google Analytics zu senden