Questo documento è rivolto agli sviluppatori di app mobile e descrive come utilizzare Google Analytics per misurare le interazioni degli utenti e rispondere a domande sull'utilizzo delle app.
Introduzione
Google Analytics per le app mobile fornisce una piattaforma per misurare le interazioni degli utenti, che ti consente di comprendere e ottimizzare meglio il coinvolgimento degli utenti con la tua app.
L'implementazione predefinita di Google Analytics fornisce automaticamente le seguenti informazioni sulla tua app:
- Il numero di utenti e sessioni
- Durata della sessione
- Sistemi operativi
- Modelli di dispositivi
- Area geografica
Questa guida spiega come implementare funzionalità aggiuntive di Google Analytics per comprendere meglio gli utenti e il loro comportamento.
Prima di iniziare
Prima di seguire questa guida per configurare Google Analytics per le app mobile:
- Installa l'SDK per la piattaforma scelta come target:
- Consulta le best practice per la configurazione di Analytics per app mobile
Panoramica
Acchiappasogni
Questa guida utilizza un'app di esempio che illustra l'implementazione delle funzionalità aggiuntive di Google Analytics. L'app si chiama Dragon Catcher e presenta le seguenti caratteristiche di gameplay:
- Un livello è composto da un giocatore, draghi, un'area recintata, un pozzo e degli alberi
- L'obiettivo del giocatore è catturare i draghi spostandoli nell'area recintata
- Il giocatore può visitare diverse aree del livello e oggetti come un pozzo o un albero magico
- Una volta catturati tutti i draghi, il giocatore avanza al livello successivo
- Il giocatore inizia il gioco al primo livello chiamato Barren Fields.
Utilizzando Google Analytics, ecco alcune delle domande sul comportamento degli utenti a cui è possibile rispondere su Dragon Catcher:
- Quali azioni eseguono i miei utenti? (Eventi)
- Quanto spendono gli utenti nella mia app? (E-commerce)
- Gli utenti completano gli scopi della mia app? (Obiettivi)
- Come si comportano gli utenti con una caratteristica specifica? (Dimensioni/metriche personalizzate)
- Quanto tempo impiega un utente a svolgere un'attività? (Tempi personalizzati)
Il resto del documento illustra come è possibile rispondere a queste domande implementando le funzionalità di Google Analytics per il gioco Dragon Catcher.
Quali azioni eseguono i miei utenti? (Eventi)
Se vuoi monitorare azioni importanti all'interno dell'app, puoi utilizzare gli eventi per descrivere questa azione in Google Analytics. Un evento
è composto da quattro parametri: category
, action
,
label
e value
.
Ad esempio, in Dragon Catcher, un utente che salva un drago o visita un'area specifica del livello sono azioni importanti che Vogliamo misurare utilizzando gli eventi. Lo snippet di codice riportato di seguito mostra come misurare ciò in Google Analytics.
SDK Android
// 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());
SDK iOS
// 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]];
Plug-in GA per 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);
Misurare gli "risultati" del player
Gli "obiettivi" dei giocatori possono essere misurati utilizzando gli eventi in Google Analytics. Ad esempio, per misurare l'obiettivo del salvataggio di 5 draghi, viene registrato il numero di draghi che un giocatore ha salvato e, una volta che il giocatore ha raggiunto la soglia, viene inviato un evento a Google Analytics:
SDK Android
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()); } }
SDK iOS
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]]; } }
Plug-in GA per 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); } }
Guide per gli sviluppatori relative agli eventi
- Monitoraggio eventi - SDK per Android
- Monitoraggio eventi - SDK per iOS
- Eventi - Plug-in GA per Unity
Report sugli eventi
I dati sugli eventi sono disponibili in:
- L'interfaccia web in Comportamento >> Eventi >> Eventi principali
- Report personalizzati
- L'API di reporting principale
Quanto spendono gli utenti nella mia app? (E-commerce avanzato)
Se vuoi misurare gli acquisti in-app da parte degli utenti, puoi utilizzare il monitoraggio e-commerce per monitorare l'acquisto e comprendere il rendimento dei prodotti e il comportamento degli utenti correlati. Il monitoraggio e-commerce può essere utilizzato per misurare l'acquisto di un articolo specifico o di una valuta virtuale.
Ad esempio, in Dragon Catcher, per misurare l'acquisto di alcuni articoli, i dati sulle transazioni vengono inviati a Google Analytics con un evento:
SDK Android
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());
SDK iOS
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]];
Plug-in GA per 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);
Se un utente acquista una valuta virtuale, è consigliabile misurare lo scambio di denaro reale quando invia i dati delle transazioni a Google Analytics. Quando l'utente spende la valuta virtuale per acquistare articoli, misuralo utilizzando gli eventi. Ad esempio:
SDK Android
/** * 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());
SDK iOS
/** * 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]];
Plug-in GA per 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);
Guide per gli sviluppatori di e-commerce avanzato
- Monitoraggio e-commerce avanzato - SDK per Android
- Monitoraggio e-commerce avanzato - SDK per iOS
- E-commerce - Plug-in GA per Unity
Report sull'e-commerce avanzato
I dati di e-commerce sono disponibili in:
Gli utenti completano gli scopi della mia app? (Obiettivi)
Se hai obiettivi specifici per la tua app che vuoi che gli utenti completino, puoi definire e misurare questi obiettivi utilizzando gli obiettivi in Google Analytics. Ad esempio, l'obiettivo potrebbe essere raggiungere un determinato livello di gioco o acquistare un articolo. Per scoprire di più su come funzionano gli obiettivi, consulta Informazioni sugli obiettivi (Centro assistenza).
Nel gioco Dragon Catcher, è possibile impostare un obiettivo per misurare gli acquisti in-app effettuati se viene inviato un evento a Google Analytics per ogni acquisto. L'obiettivo può essere definito nell'amministratore dell'interfaccia web, senza alcun codice aggiuntivo, utilizzando i seguenti parametri:
- Tipo di obiettivo (uguale a): Evento
- Categoria (uguale a): Store in-game
- Azione (uguale a): Acquisto
- Utilizza il valore dell'evento come valore obiettivo per la conversione: Sì
Segnalazione degli obiettivi
I dati sugli obiettivi sono disponibili in:
- L'interfaccia web in Conversioni >> Obiettivi >> Panoramica
- Report personalizzati
- L'API di reporting principale
Come si comportano gli utenti con una caratteristica specifica? (Dimensioni e metriche personalizzate)
Se vuoi monitorare gli utenti con attributi/tratti/metadati specifici, puoi utilizzare le dimensioni personalizzate per inviare questo tipo di dati a Google Analytics e nell'analisi. Per scoprire di più su come funzionano, consulta la sezione Dimensioni e metriche personalizzate.
Ad esempio, per scoprire la percentuale di utenti che si trovano nel primo o nel secondo livello e così via, in Dragon Catcher è possibile impostare una dimensione personalizzata con il livello corrente dell'utente e inviarla a Google Analytics. I passaggi sono:
- Crea una dimensione personalizzata con un ambito
User
. Viene utilizzato l'ambitoUser
perché questo valore deve persistere in tutte le sessioni dell'utente. Consulta Configurare o modificare le dimensioni personalizzate (Centro assistenza). - Aggiorna il valore della dimensione personalizzata quando il livello dell'utente è cambiato.
Lo snippet seguente illustra come aggiornare lo stato dell'utente in Google Analytics in cui l'indice della dimensione personalizzata a livello di utente è 1
e il livello dell'utente è cambiato in Barren Fields
:
SDK Android
// 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() );
SDK iOS
// 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]];
Plug-in GA per 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"));
Guide per gli sviluppatori relative a dimensioni e metriche personalizzate
- Dimensioni e metriche personalizzate - SDK per Android
- Dimensioni e metriche personalizzate - SDK per iOS
- Dimensioni e metriche personalizzate - Plug-in GA per Unity
Report su dimensioni e metriche personalizzate
Le dimensioni personalizzate possono essere incluse e applicate come segmento per:
- La maggior parte dei report standard nell'interfaccia web
- Report personalizzati
- L' API di reporting principale
Se applichi la dimensione personalizzata come segmento, potrai analizzare gli utenti che si trovano attualmente in un livello specifico del gioco.
Quanto tempo impiega un utente a svolgere un'attività? (Tempi personalizzati)
Se vuoi misurare il tempo necessario per completare un'azione nell'app, puoi utilizzare i tempi utente per le misurazioni basate sul tempo in Google Analytics. Le tempistiche degli utenti sono simili agli eventi, ma sono basate sul tempo e possono includere category
, value
, name (variable)
e label
. Per scoprire come funzionano i tempi utente, consulta Informazioni sulla velocità del sito.
Ad esempio, in Dragon Catcher puoi misurare quanto tempo impiega un utente a salvare il suo primo drago, puoi inviare qualcosa come:
SDK Android
// Build and send a timing hit. tracker.send(new HitBuilders.TimingBuilder() .setCategory("Barren Fields") .setValue(45000) // 45 seconds. .setVariable("First Rescue") .setLabel("Dragon") .build());
SDK iOS
[tracker send:[[GAIDictionaryBuilder createTimingWithCategory:@"Barren Fields" interval:@45000 // 45 seconds. name:@"First Rescue" label:@"Dragon"] build]];
Plug-in GA per Unity
// Build and send a timing hit. googleAnalytics.LogTiming("Barren Fields",45000,"First Rescue","Dragon");
Guide per gli sviluppatori relative alla sincronizzazione personalizzata
Report su tempi personalizzati
I dati sulle sincronizzazioni personalizzate sono disponibili in:
- L'interfaccia web in Comportamento > Velocità app
- Report personalizzati
- L' API di reporting principale
Risorse correlate
- Analytics Academy: migliora le tue competenze di Analytics con corsi online senza costi, inclusi i concetti di base dell'analisi delle app mobile.
- API e SDK di raccolta: scopri tutti i modi in cui puoi inviare dati a Google Analytics