Guida all'implementazione delle app mobile

Questo documento è rivolto agli sviluppatori per dispositivi mobili e descrive come utilizzare Google Analytics per misurare le interazioni degli utenti e rispondere a domande sull'utilizzo dell'app.

Introduzione

Google Analytics per le app mobile fornisce una piattaforma per misurare le interazioni degli utenti, consentendoti 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 ti illustrerà come implementare ulteriori funzionalità 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

Acchiappa drago

Questa guida utilizza un'app di esempio per illustrarti l'implementazione di altre funzionalità di Google Analytics. L'app si chiama Dragon Catcher e ha le seguenti caratteristiche di gameplay:

  • Un livello è composto da un giocatore, dei draghi, un'area recintata, un pozzo e degli alberi
  • L'obiettivo del giocatore è catturare i draghi spostandoli in un'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 dopo aver catturato tutti i draghi
  • Il giocatore inizia la partita al primo livello, chiamato Barren Fields.

Utilizzando Google Analytics, alcune delle domande sul comportamento degli utenti a cui è possibile rispondere su Dragon Catcher:

Il resto del documento illustra come rispondere a queste domande implementando le funzionalità di Google Analytics per il gioco Dragon Catcher.

Quali azioni compiono i miei utenti? (Eventi)

Se all'interno della tua app sono presenti azioni importanti da monitorare, puoi utilizzare gli eventi per descrivere l'azione in Google Analytics. Un evento è costituito da quattro parametri: category, action, label e value.

Ad esempio, in Ricevitore del drago, un utente che salva un drago o visita un'area specifica del livello sono azioni importanti che vogliamo misurare tramite gli eventi. Lo snippet di codice riportato di seguito illustra come misurarlo 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);

Misurazione degli "obiettivi" dei giocatori

Gli "obiettivi" dei giocatori possono essere misurati utilizzando gli eventi di Google Analytics. Ad esempio, per misurare l'obiettivo raggiunto durante il salvataggio di 5 draghi, viene registrato il numero di draghi che un giocatore ha salvato. Quando 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 per gli 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 gli acquisti 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 elementi, i dati delle 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, ti consigliamo di misurare lo scambio di denaro reale quando invii i dati delle transazioni a Google Analytics. Quando l'utente spende la valuta virtuale per acquistare articoli, misura questo dato 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 per l'e-commerce avanzato

Report per l'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, un obiettivo potrebbe essere il raggiungimento di un determinato livello di gioco o l'acquisto di un articolo da parte degli utenti. Per saperne di più su come funzionano gli obiettivi, vedi Informazioni sugli obiettivi (Centro assistenza).

Nel gioco Dragon Catcher, è possibile impostare un obiettivo per misurare quando vengono effettuati acquisti in-app 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): In-Game Store
  • Azione (uguale a): Acquisto
  • Utilizza il valore dell'evento come valore obiettivo per la conversione:

Report sugli obiettivi

I dati degli obiettivi sono disponibili in:

Come si comportano gli utenti con un tratto specifico? (Dimensioni e metriche personalizzate)

Se vuoi monitorare gli utenti con attributi/trait/metadati specifici, puoi utilizzare le dimensioni personalizzate per inviare questo tipo di dati a Google Analytics e nell'analisi. Per saperne di più su come funzionano le dimensioni personalizzate, consulta la documentazione di riferimento alle funzionalità Dimensioni e metriche personalizzate.

Ad esempio, in Dragon Catcher, per trovare la percentuale di utenti che si trovano al primo livello, nel secondo livello e così via, è possibile impostare una dimensione personalizzata con il livello attuale dell'utente e inviarla a Google Analytics. I passaggi sono:

  1. Crea una dimensione personalizzata con un ambito User. L'ambito User viene utilizzato perché questo valore deve persistere in tutte le sessioni dell'utente. Consulta Impostare o modificare dimensioni personalizzate (Centro assistenza).
  2. Aggiorna il valore della dimensione personalizzata quando il livello dell'utente viene modificato.

Il seguente snippet illustra come aggiornare lo stato dell'utente in Google Analytics quando 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 al momento si trovano in un livello specifico all'interno del gioco.

Quanto tempo impiega un utente a svolgere un'attività? (Tempi personalizzati)

Se vuoi misurare il tempo necessario per il completamento di un'operazione nell'app, i tempi utente possono essere utilizzati per le misurazioni basate sul tempo in Google Analytics. Le tempistiche degli utenti sono simili agli eventi, ma si basano sull'ora e possono includere category, value, name (variable) e label. Per informazioni su come funzionano i tempi utente, consulta Informazioni su Velocità sito.

Ad esempio, in Dragon Catcher per misurare quanto tempo impiega un utente per salvare il suo primo drago, puoi inviare qualcosa del tipo:

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 per le tempistiche personalizzate

Report sulle tempistiche personalizzate

I dati sulle tempistiche personalizzate sono disponibili in:

  • Analytics Academy - Migliora le tue competenze in materia di Analytics con corsi online senza costi, inclusi i concetti di base di Analytics per app mobile.
  • API e SDK di raccolta: scopri tutti i modi in cui puoi inviare dati a Google Analytics