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 fornirà automaticamente le seguenti informazioni sulla tua app:

  • il numero di utenti e sessioni
  • durata della sessione
  • sistemi operativi
  • di 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, è consigliabile esaminare le risorse riportate di seguito per scoprire come 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 è costituito 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
  • il giocatore passa al livello successivo una volta che ha catturato tutti i draghi
  • 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. Per informazioni dettagliate su come funzionano gli eventi in Google Analytics, consulta Struttura del monitoraggio eventi.

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 v4

// 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 per iOS v3

// 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 v3

// 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 v4

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 per iOS v3

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 v3

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 v4

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 per iOS v3

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 v3

// 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 v4

/**
 * 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 per iOS v3

/**
 * 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 *builder = [GAIDictionaryBuilder createScreenView];

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

// Send the transaction with the screenview.
[tracker set:kGAIScreenName value:@"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.
 */
GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createEventWithCategory:@"In-Game Store"
                                                                       action:@"Purchase"
                                                                        label:@"Sword"
                                                                        value:@35];
[tracker send:[builder build]];

Plug-in GA per Unity v3

// 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 v4

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

SDK per iOS v3

// 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 v3

// 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 v4

// 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 per iOS v3

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

Plug-in GA per Unity v3

// 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 su Analytics con corsi online senza costi, inclusi i concetti di base sull'analisi delle app mobile.
  • API e SDK di raccolta: scopri tutti i modi in cui puoi inviare dati a Google Analytics