Android v3 (legacy) - Tag di Universal Analytics

Questa guida descrive come implementare i tag Universal Analytics comuni utilizzando l'SDK Google Tag Manager per Android.

  1. Configurazioni comuni dei tag Universal Analytics (UA)
    1. Invio delle visualizzazioni dell'app (visualizzazioni di schermata)
    2. Invio di eventi
    3. Invio di transazioni e-commerce
      1. Variabili del livello dati di e-commerce
    4. Installare l'attribuzione del referrer

Configurazioni comuni dei tag Universal Analytics (UA)

L'implementazione di Universal Analytics nella tua applicazione con Google Tag Manager consente di apportare modifiche immediate all'implementazione di Google Analytics che non richiedono di ricreare e inviare nuovamente il programma binario dell'app ai marketplace.

Questa guida mostra come eseguire le attività seguenti utilizzando i tag Universal Analytics e l'SDK di Google Tag Manager per Android:

Invio di visualizzazioni di app (visualizzazioni di schermata)

Per inviare una visualizzazione dell'app (visualizzazione di schermata) a Google Analytics ogni volta che viene aperta una nuova schermata in un'app:

  1. Creazione di una macro Nome schermata
  2. Creare una regola OpenScreenEvent
  3. Creare un tag Visualizzazione app UA (Visualizzazione di schermata)
  4. Aggiornare il codice per eseguire il push dell'evento e del nome della schermata al livello dati

1. Creazione di una macro Nome schermata

Crea una nuova macro Nome schermata utilizzando i seguenti valori di configurazione:

Nome macro : screen name
Tipo di macro : Data Layer Variable
Nome variabile livello dati : screenName

2. Crea una regola OpenScreenEvent

Crea una nuova regola che verrà utilizzata per attivare il nuovo tag di visualizzazione dell'app UA (visualizzazione di schermata) utilizzando i seguenti valori di configurazione:

Nome regola : OpenScreenEvent
Condizioni: {{ event }} uguale a openScreen

3. Creazione di un tag UA per una visualizzazione di app (visualizzazione di schermata)

Crea un nuovo tag UA utilizzando i seguenti valori di configurazione:

Nome tag : Screen Open
ID monitoraggio : ID proprietà
Tipo tag : Universal Analytics (beta)
Tipo di monitoraggio : AppView
Configurazione di base - Nome app : {{ app name }}
Configurazione di base - Versione app : {{ app version }}
Configurazione di base - Nome schermata : {{ screen name }}}

4. Aggiorna il codice per eseguire il push dell'evento e del nome della schermata al livello dati

Aggiungi il codice all'app per eseguire il push di un evento openScreen e di un valore screenName al livello dati, come in questo esempio:

// Push an 'openScreen' event to the data layer.
import com.google.tagmanager.DataLayer;
import com.google.tagmanager.TagManager;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

  private static final String SCREEN_NAME = "Home Screen";
  private DataLayer mDataLayer;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate();
  }

  @Override
  public void onStart() {
    super.onStart();
    mDataLayer = TagManager.getInstance(this).getDataLayer();

    // This call assumes the container has already been opened, otherwise events
    // pushed to the DataLayer will not fire tags in that container.
    mDataLayer.push(DataLayer.mapOf("event", "openScreen",        // Event, Name of Open Screen Event.
                                    "screenName", SCREEN_NAME));  // Name of screen name field, Screen name value.
  }
}

Invio di eventi

Per inviare un evento a Google Analytics quando un utente interagisce con i controlli UI o i contenuti della tua app:

  1. (Facoltativo) Creare macro evento
  2. Creare una regola evento
  3. Creare un tag evento UA
  4. Aggiorna il codice per eseguire il push dei valori delle macro degli eventi e degli eventi al livello dati

I passaggi seguenti mostrano come funzionerebbe per un evento che viene attivato quando un utente avvia la riproduzione di un video.

1. (Facoltativo) Creare macro evento

Se l'evento utilizzerà qualsiasi variabile del livello dati per i suoi campi categoria, azione, etichetta o valore, devi prima configurare queste macro nell'interfaccia. In questo esempio, il tag evento di riproduzione video si baserà su una variabile del livello dati che fornisce il nome del video riprodotto.

Per implementare questo nome video, creeremo una nuova macro con i seguenti valori di configurazione:

Nome macro : video name
Tipo di macro: Data Layer Variable
Nome variabile livello dati : videoName

2. Crea una regola evento

Crea una regola che attivi il tag evento quando viene inviato al livello dati. Nell'esempio di riproduzione video, la nuova regola avrà i seguenti valori di configurazione:

Nome regola : VideoPlayEvent
Condizioni : {{ event }} uguale a videoPlay

Creare un tag evento UA

Crea un tag evento UA che si attiverà quando la regola creata nel passaggio precedente restituisce true. Nell'esempio di riproduzione del video, il tag sarà simile al seguente:

Nome tag : Video Play Event
ID monitoraggio : Il tuo ID proprietà
Tipo tag : Universal Analytics (beta)
Tipo di monitoraggio : Event
Parametri monitoraggio eventi - Categoria : Video
Parametri monitoraggio eventi - Azione : Play
Parametri monitoraggio eventi - Etichetta : {{ video name }}
Configurazione di base - Nome app : { {{ app name }}
Configurazione di base - Versione app : {{ app version }}
Configurazione di base - Versione app : {{ app version }}
{{ screen name }}

Aggiorna il codice per eseguire il push dell'evento al livello dati

Infine, aggiorna il codice in modo da inviare al livello dati sia il valore dell'evento sia le variabili del livello dati richieste dal tag, quando l'utente completa l'interazione. Nell'esempio di riproduzione del video, il codice sarà simile al seguente:

//  Push a 'videoPlay' event to the data layer.
import com.google.tagmanager.DataLayer;
import com.google.tagmanager.TagManager;

public class VideoPlayer {

  // Called when a user initiates a video playback.
  public void onPlay(Video v) {
    DataLayer dataLayer = TagManager.getInstance(this).getDataLayer();

    // This call assumes the container has already been opened, otherwise events
    // pushed to the DataLayer will not fire tags in that container.
    dataLayer.push(DataLayer.mapOf("event", "videoPlay",        // Event, Name of Open Screen Event.
                                   "videoName", v.getName());   // Additional data layer variables used by the event tag.
    play(v);
  }

  // Rest of implementation;

}

Invio di transazioni e-commerce

Per inviare una transazione e gli eventuali elementi associati a Google Analytics quando un utente completa un acquisto in-app:

  1. Creare una regola di transazione
  2. Creare un tag transazione UA
  3. Aggiornare il codice per inviare i dati di eventi e transazioni / articoli a Datalayer

1. Crea una regola di transazione

Quindi, crea una nuova regola con i seguenti valori di configurazione:

Nome regola : TransactionCompleted
Condizioni : {{ event }} uguale a transaction

2. Creare un tag transazione UA

Crea un tag transazione UA con i seguenti valori:

Nome tag : Transaction Completed
ID monitoraggio : ID proprietà
Tipo tag : Universal Analytics (beta)
Tipo di monitoraggio : Transaction
Configurazione di base - Nome app : {{ app name }}
Configurazione di base - Versione app : {{ app version }}
Configurazione di base - Nome schermata : {{ screen name }}

3. Aggiorna il codice per inviare i dati relativi a eventi e transazioni / articoli a Datalayer

Infine, aggiorna il codice per eseguire il push dell'evento di transazione e dei dati degli articoli e delle transazioni associati nel livello dati. Tieni presente che devi utilizzare i nomi di variabili del livello dati supportati per le transazioni e i dati degli articoli:

// Called when a user completes a transaction.
public void onPurchaseCompleted(Purchase p) {

  DataLayer dataLayer = TagManager.getInstance(this).getDataLayer();

  // Put maps of item data into an array that will be pushed to the data layer.
  ArrayList<Map<String, String>> purchasedItems = new ArrayList<Map<String, String>>();
  for (Item i : p.items) {
    HashMap<String, String> currentItem = new HashMap<String, String>();

    currentItem.put("name", i.getProductName());
    currentItem.put("sku", i.getProductSku());
    currentItem.put("category", i.getProductCategory());
    currentItem.put("price", i.getProductPrice());
    currentItem.put("currency", "USD");
    currentItem.put("quantity", i.getProductQty());

    purchasedItems.add(currentItem);
  }

  // This call assumes the container has already been opened, otherwise events
  // pushed to the DataLayer will not fire tags in that container.
  dataLayer.push(DataLayer.mapOf("event", "transaction",               // Event, Name of Transaction Event.
                                 "transactionId", p.getTransId(),      // Additional fields required by the tag.
                                 "transactionTotal", p.getTotal(),
                                 "transactionAffiliation", "In-app Store",
                                 "transactionTax", p.getTax(),
                                 "transactionShipping", p.getShippingCost(),
                                 "transactionCurrency", "USD",
                                 "transactionProducts", purchasedItems));

  // Since the data layer is persistent, you should reset fields to null after
  // you are done pushing the transaction.
  dataLayer.push(DataLayer.mapOf("transactionId", null,
                                 "transactionTotal", null,
                                 "transactionAffiliation", null,
                                 "transactionTax", null,
                                 "transactionShipping", null,
                                 "transactionCurrency", null,
                                 "transactionProducts", null));
}

Variabili del livello dati di e-commerce supportate

I tag transazione UA supportano le seguenti variabili del livello dati:

Variabili di transazione

Nome variabile Descrizione Tipo Obbligatorie
transactionId Identificativo di transazione unico stringa
transactionAffiliation Partner o negozio stringa No
transactionTotal Valore totale della transazione stringa No
transactionTax Importo delle imposte sulla transazione stringa No
transactionShipping Costo di spedizione per la transazione stringa No
transactionCurrency Valuta della transazione stringa No
transactionProducts Elenco di articoli acquistati durante la transazione un array di mappe contenenti variabili di elemento. No

Variabili elemento

Nome variabile Descrizione Tipo Obbligatorie
name Nome del prodotto stringa
sku SKU prodotto stringa No
category Categoria di prodotto stringa No
price Prezzo del prodotto stringa No
currency Il tipo di valuta di price stringa No
quantity Quantità di articoli stringa No

Installa attribuzione referrer

Se disponibili, i dati del referrer di installazione verranno inclusi automaticamente in tutti gli hit di Google Analytics o nelle richieste di pixel di remarketing di Google Ads quando il servizio e il destinatario seguenti sono registrati nel file AndroidManifest.xml:

<!-- Used for install referrer tracking -->
<service android:name="com.google.tagmanager.InstallReferrerService" />
<receiver android:name="com.google.tagmanager.InstallReferrerReceiver" android:exported="true">
  <intent-filter>
    <action android:name="com.android.vending.INSTALL_REFERRER" />
  </intent-filter>
</receiver>