Guida all'implementazione delle app mobile

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:

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:

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

Report sugli eventi

I dati sugli eventi sono disponibili in:

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

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:

Segnalazione degli obiettivi

I dati sugli obiettivi sono disponibili in:

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:

  1. Crea una dimensione personalizzata con un ambito User. Viene utilizzato l'ambito User perché questo valore deve persistere in tutte le sessioni dell'utente. Consulta Configurare o modificare le dimensioni personalizzate (Centro assistenza).
  2. 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

Report su dimensioni e metriche personalizzate

Le dimensioni personalizzate possono essere incluse e applicate come segmento per:

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:

  • 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