Android v3 (ancien) – Balises Universal Analytics

Ce guide explique comment implémenter les balises Universal Analytics courantes à l'aide du SDK Google Tag Manager pour Android.

  1. Configurations courantes de balises Universal Analytics (UA)
    1. Envoyer des vues d'application (vues d'écran)
    2. Envoyer des événements
    3. Envoyer des transactions e-commerce
      1. Variables de couche de données d'e-commerce
    4. Attribution des URL de provenance des installations

Configurations courantes des balises Universal Analytics (UA)

Lorsque vous intégrez Universal Analytics dans votre application avec Google Tag Manager, vous pouvez modifier instantanément votre implémentation de Google Analytics. Vous n'avez donc pas besoin de recréer ni de renvoyer le fichier binaire de votre application sur les places de marché.

Ce guide explique comment effectuer les tâches suivantes à l'aide des balises Universal Analytics et du SDK Google Tag Manager pour Android:

Envoyer des vues d'application (vues d'écran)

Pour envoyer une vue d'application (vue d'écran) à Google Analytics chaque fois qu'un nouvel écran est ouvert dans une application, procédez comme suit:

  1. Créer une macro de nom d'écran
  2. Créer une règle OpenScreenEvent
  3. Créer une balise de vue d'application (vue de l'écran) UA
  4. Mettre à jour le code pour transmettre l'événement et le nom d'écran à la couche de données

1. Créer une macro de nom d'écran

Créez une macro de nom d'écran en utilisant les valeurs de configuration suivantes:

Nom de la macro : screen name
Type de macro : Data Layer Variable
Nom de la variable de couche de données : screenName

2. Créer une règle OpenScreenEvent

Créez une règle qui sera utilisée pour déclencher la nouvelle balise de vue d'application UA (vue de l'écran) à l'aide des valeurs de configuration suivantes:

Nom de la règle : OpenScreenEvent
Conditions: {{ event }} est égal(e) à openScreen

3. Créer une balise UA pour les vues d'applications (vues d'écran)

Créez une balise UA en utilisant les valeurs de configuration suivantes:

Nom de la balise : Screen Open
ID de suivi : Votre ID de propriété
Type de balise : Universal Analytics (beta)
Type de suivi : AppView
Configuration de base - Nom de l'application : {{ app name }}
Configuration de base - Version de l'application : {{ app version }}
Configuration de base - Nom de l'écran : {{ screen name }}}

4. Mettre à jour le code pour transmettre l'événement et le nom d'écran à la couche de données

Ajoutez du code à l'application pour envoyer un événement openScreen et une valeur screenName à la couche de données, comme dans cet exemple:

// 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.
  }
}

Envoyer des événements

Pour envoyer un événement à Google Analytics lorsqu'un utilisateur interagit avec les commandes de l'interface utilisateur ou le contenu de votre application, procédez comme suit:

  1. (Facultatif) Créer des macros d'événement
  2. Créer une règle d'événement
  3. Créer un tag d'événement UA
  4. Mettre à jour le code pour transmettre les valeurs de l'événement et de toute macro d'événement à la couche de données

Les étapes suivantes montrent comment cela fonctionne pour un événement qui est déclenché lorsqu'un utilisateur lance la lecture d'une vidéo.

1. (Facultatif) Créer des macros d'événement

Si l'événement utilise des variables de couche de données pour ses champs de catégorie, d'action, de libellé ou de valeur, vous devez d'abord configurer ces macros dans l'interface. Dans cet exemple, le tag d'événement de lecture de la vidéo repose sur une variable de couche de données qui indique le nom de la vidéo lue.

Pour implémenter ce nom de vidéo, il faut créer une macro avec les valeurs de configuration suivantes:

Nom de la macro : video name
Type de macro: Data Layer Variable
Nom de la variable de couche de données : videoName

2. Créer une règle d'événement

Créez une règle qui déclenche le tag d'événement lorsqu'il est transmis à la couche de données. Dans l'exemple de lecture de vidéo, cette nouvelle règle aura les valeurs de configuration suivantes:

Nom de la règle : VideoPlayEvent
Conditions : {{ event }} est égal(e) à videoPlay

Créer un tag d'événement UA

Créez un tag d'événement UA qui se déclenchera lorsque la règle créée à l'étape précédente aura la valeur true. Dans l'exemple de lecture de vidéo, ce tag se présente comme suit:

Nom de la balise : Video Play Event
ID de suivi : Votre ID de propriété
Type de balise : Universal Analytics (beta)
Type de suivi : Event
Paramètres de suivi des événements - Catégorie : Video
Paramètres de suivi des événements - Action : Play
Paramètres de suivi des événements - Libellé : {{ video name }}
Configuration de base - Nom de l'application : {{ app name }}
Configuration de base - Version de l'application : {{ app version }}
Configuration de base - Nom de l'écran : {{ app version }}
Configuration de base - Nom de l'écran : {{ app version }}
Configuration de base - Nom de l'écran{{ screen name }}

Mettre à jour le code pour transmettre l'événement à la couche de données

Enfin, mettez à jour votre code pour transmettre à la couche de données la valeur de l'événement et les variables de couche de données requises par la balise, lorsque l'utilisateur effectue l'interaction. Dans l'exemple de lecture de vidéo, ce code se présente comme suit:

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

}

Envoyer des transactions en ligne

Pour envoyer une transaction et tous les articles associés à Google Analytics lorsqu'un utilisateur effectue un achat via une application, procédez comme suit:

  1. Créer une règle de transaction
  2. Créer un tag de transaction UA
  3. Mettre à jour le code pour transmettre les données d'événement et de transaction / article vers DataLayer

1. Créer une règle de transaction

Ensuite, créez une règle avec les valeurs de configuration suivantes:

Nom de la règle : TransactionCompleted
Conditions : {{ event }} est égal(e) à transaction

2. Créer une balise de transaction UA

Créez une balise de transaction UA avec les valeurs suivantes:

Nom de la balise : Transaction Completed
ID de suivi : Votre ID de propriété
Type de balise : Universal Analytics (beta)
Type de suivi : Transaction
Configuration de base - Nom de l'application : {{ app name }}
Configuration de base - Version de l'application : {{ app version }}
Configuration de base - Nom de l'écran : {{ screen name }}

3. Mettez à jour le code pour transmettre les données d'événement et de transaction / article vers la couche de données.

Enfin, mettez à jour votre code pour envoyer l'événement de transaction, ainsi que les données de transaction et d'article associées, à la couche de données. Notez que vous devez utiliser les noms de variables de couche de données compatibles pour les transactions et les données sur les articles:

// 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));
}

Variables de couche de données d'e-commerce compatibles

Les balises Transaction UA prennent en charge les variables de couche de données suivantes:

Variables de transaction

Nom de la variable Description Type Obligatoire
transactionId Identifiant de transaction unique chaîne Oui
transactionAffiliation Partenaire ou magasin chaîne Non
transactionTotal Valeur totale de la transaction chaîne Non
transactionTax Montant des taxes correspondant à la transaction chaîne Non
transactionShipping les frais de port correspondant à la transaction ; chaîne Non
transactionCurrency Devise de la transaction chaîne Non
transactionProducts Liste des articles achetés dans le cadre de la transaction Un tableau de cartes contenant des variables d'éléments Non

Variables des éléments

Nom de la variable Description Type Obligatoire
name Nom du produit chaîne Oui
sku Code produit chaîne Non
category Catégorie de produits chaîne Non
price Prix produit chaîne Non
currency Type de devise de price chaîne Non
quantity Quantité d'articles chaîne Non

Attribution de l'URL de provenance de l'installation

Lorsqu'elles sont disponibles, les données de provenance de l'installation sont automatiquement incluses dans tous les appels Google Analytics ou demandes de pixels de remarketing Google Ads lorsque le service et le destinataire suivants sont enregistrés dans votre fichier 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>