E-commerce amélioré Universal Analytics pour Android

Google Analytics est compatible avec l'e-commerce amélioré dans les propriétés Universal Analytics. L'e-commerce amélioré permet de mesurer les interactions des utilisateurs avec les produits tout au long de leur expérience d'achat. Il peut s'agir d'impressions de promotions, de clics sur les promotions, d'impressions de produits ou de produits, de consultations des informations détaillées sur les produits, d'ajout d'articles à un panier, de suppression d'articles d'un panier, de paiements, de transactions et de remboursements.

Les dernières versions de Google Tag Manager et de Google Analytics pour les applications mobiles fonctionnent conjointement avec Firebase, la plate-forme d'applications mobiles de Google. Lorsque vous mesurez les applications avec le SDK Firebase, vous avez accès à de nombreux rapports sur les applications mobiles générés automatiquement, qui peuvent être personnalisés et complétés par du code dans l'application. Ces rapports incluent automatiquement des données sur les achats via une application traités par l'App Store sur iTunes et Google Play. D'autres rapports liés à l'e-commerce peuvent être générés en implémentant des suggestions d'événements pour les applications d'e-commerce. Les rapports détaillés sur le comportement d'achat (par exemple, l'e-commerce amélioré) ne sont actuellement disponibles que dans les propriétés Universal Analytics.

Ce document explique comment utiliser Tag Manager pour les applications mobiles avec le SDK Firebase afin d'envoyer des données d'e-commerce amélioré aux propriétés Universal Analytics.

Premières étapes

Avant de commencer, configurez les prérequis suivants pour votre application:

  1. Installez et configurez Firebase et Google Tag Manager dans votre application. Assurez-vous d'utiliser la version 11 ou ultérieure du SDK Firebase pour Android.
  2. Importez ces deux packages:

    • import com.google.firebase.analytics.FirebaseAnalytics.Event;
    • import com.google.firebase.analytics.FirebaseAnalytics.Param;
  3. Dans votre conteneur Tag Manager, créez une variable définie par l'utilisateur appelée "promotions" avec les paramètres suivants:

    • Type d'événement: paramètre personnalisé
    • Clé du paramètre d'événement: promotions
    • Valeur par défaut: non définie

Implémentation

Les sections suivantes expliquent comment consigner des événements avec les paramètres nécessaires pour mesurer les activités d'e-commerce amélioré, par exemple:

Impressions du produit

Mesurez les impressions des produits en consignant l'événement avec un paramètre ITEM_LIST et un ou plusieurs articles (c'est-à-dire des produits) définis avec les champs appropriés.

// Define products with relevant parameters

Bundle product1 = new Bundle();
product1.putString( Param.ITEM_ID, "sku1234");  // ITEM_ID or ITEM_NAME is required
product1.putString( Param.ITEM_NAME, "Donut Friday Scented T-Shirt");
product1.putString( Param.ITEM_CATEGORY, "Apparel/Men/Shirts");
product1.putString( Param.ITEM_VARIANT, "Blue");
product1.putString( Param.ITEM_BRAND, "Google");
product1.putDouble( Param.PRICE, 29.99 );
product1.putString( Param.CURRENCY, "USD" );
product1.putLong( Param.INDEX, 1 );     // Position of the item in the list

Bundle product2 = new Bundle();
product2.putString( Param.ITEM_ID, "sku5678");
product2.putString( Param.ITEM_NAME, "Android Workout Capris");
product2.putString( Param.ITEM_CATEGORY, "Apparel/Women/Pants");
product2.putString( Param.ITEM_VARIANT, "Black");
product2.putString( Param.ITEM_BRAND, "Google");
product2.putDouble( Param.PRICE, 39.99 );
product2.putString( Param.CURRENCY, "USD" );
product2.putLong( Param.INDEX, 2 );

// Prepare ecommerce bundle

ArrayList <bundle>items = new ArrayList<bundle>();
items.add(product1);
items.add(product2);

Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putParcelableArrayList( "items", items );

// Set relevant bundle-level parameters

ecommerceBundle.putString( Param.ITEM_LIST, "Search Results" ); // List name

// Log view_search_results or view_item_list event with ecommerce bundle

mFirebaseAnalytics.logEvent( Event.VIEW_SEARCH_RESULTS, ecommerceBundle );

Consultez la configuration de la balise pour cet exemple:

  • Type de balise : Universal Analytics
  • Type de suivi: visionnage de l'écran
  • Champs à définir: (Nom du champ) screenName (valeur, par exemple) Écran des résultats de recherche
  • Activer les fonctionnalités d'e-commerce amélioré: True
  • Lire les données de: événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Le nom de l'événement est égal à view_search_results

Clics/Sélections de produits

Mesurez les clics sur les produits en consignant un événement SELECT_CONTENT avec un article (c'est-à-dire un produit) défini avec les champs appropriés:

// Define product with relevant parameters

Bundle product1 = new Bundle();
product1.putString( Param.ITEM_ID, "sku1234"); // ITEM_ID or ITEM_NAME is required
product1.putString( Param.ITEM_NAME, "Donut Friday Scented T-Shirt");
product1.putString( Param.ITEM_CATEGORY, "Apparel/Men/Shirts");
product1.putString( Param.ITEM_VARIANT, "Blue");
product1.putString( Param.ITEM_BRAND, "Google");
product1.putDouble( Param.PRICE, 29.99 );
product1.putString( Param.CURRENCY, "USD" ); // Item-level currency unused today
product1.putLong( Param.INDEX, 1 ); // Position of the item in the list

// Prepare ecommerce bundle

Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putBundle( "items", product1 );

// Set relevant action-level parameters

ecommerceBundle.putString( Param.ITEM_LIST, "Search Results" ); // Optional list name

// Log select_content event with ecommerce bundle

mFirebaseAnalytics.logEvent( Event.SELECT_CONTENT, ecommerceBundle );

Consultez la configuration de la balise pour cet exemple:

  • Type de balise : Universal Analytics
  • Type de suivi : Événement
  • Catégorie d'événement, par exemple : E-commerce
  • Action d'événement, par exemple : clic sur le produit
  • Activer les fonctionnalités d'e-commerce amélioré: True
  • Lire les données de: événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Nom de l'événement est égal à select_content AND &lbrace;&lbrace;promotions&rbrace;&rbrace; est égal(e) à undefined

Consultations des détails d'un produit

Mesurez les vues des informations détaillées sur les produits en consignant un événement VIEW_ITEM avec un article (c'est-à-dire un produit) défini avec les champs appropriés:

// Define product with relevant parameters

Bundle product1 = new Bundle();
product1.putString( Param.ITEM_ID, "sku1234"); // ITEM_ID or ITEM_NAME is required
product1.putString( Param.ITEM_NAME, "Donut Friday Scented T-Shirt");
product1.putString( Param.ITEM_CATEGORY, "Apparel/Men/Shirts");
product1.putString( Param.ITEM_VARIANT, "Blue");
product1.putString( Param.ITEM_BRAND, "Google");
product1.putDouble( Param.PRICE, 29.99 );
product1.putString( Param.CURRENCY, "USD" ); // Item-level currency unused today

// Prepare ecommerce bundle

Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putBundle( "items", product1 );

// Log view_item event with ecommerce bundle

mFirebaseAnalytics.logEvent( Event.VIEW_ITEM, ecommerceBundle );

Consultez la configuration de la balise pour cet exemple:

  • Type de balise : Universal Analytics
  • Type de suivi: visionnage de l'écran
  • Champs à définir: (Nom du champ) screenName (valeur, par exemple) Écran des informations détaillées sur le produit
  • Activer les fonctionnalités d'e-commerce amélioré: True
  • Lire les données de: événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Nom de l'événement est égal à view_item ET
  • &lbrace;&lbrace;promotions&rbrace;&rbrace; est égal(e) à non défini

Ajouts au panier

Mesurez l'ajout d'un produit à un panier en enregistrant un événement ADD_TO_CART avec un article (c'est-à-dire un produit) défini avec les champs appropriés:

// Define product with relevant parameters

Bundle product1 = new Bundle();
product1.putString( Param.ITEM_ID, "sku1234"); // ITEM_ID or ITEM_NAME is required
product1.putString( Param.ITEM_NAME, "Donut Friday Scented T-Shirt");
product1.putString( Param.ITEM_CATEGORY, "Apparel/Men/Shirts");
product1.putString( Param.ITEM_VARIANT, "Blue");
product1.putString( Param.ITEM_BRAND, "Google");
product1.putDouble( Param.PRICE, 29.99 );
product1.putString( Param.CURRENCY, "USD" ); // Item-level currency unused today
product1.putLong( Param.QUANTITY, 1 );

// Prepare ecommerce bundle

Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putBundle( "items", product1 );

// Log add_to_cart event with ecommerce bundle

mFirebaseAnalytics.logEvent( Event.ADD_TO_CART, ecommerceBundle );

Consultez la configuration de la balise pour cet exemple:

  • Type de balise : Universal Analytics
  • Type de suivi : Événement
  • Catégorie d'événement, par exemple : E-commerce
  • Action d'événement, par exemple "Add to Cart" (Ajouter au panier)
  • Activer les fonctionnalités d'e-commerce amélioré: True
  • Lire les données de: événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Nom de l'événement égal à add_to_cart

Retraits du panier

Mesurez la suppression d'un produit d'un panier en enregistrant un événement REMOVE_FROM_CART avec un article (c'est-à-dire un produit) défini avec les champs appropriés:

// Define product with relevant parameters

Bundle product1 = new Bundle();
product1.putString( Param.ITEM_ID, "sku1234"); // ITEM_ID or ITEM_NAME is required
product1.putString( Param.ITEM_NAME, "Donut Friday Scented T-Shirt");
product1.putString( Param.ITEM_CATEGORY, "Apparel/Men/Shirts");
product1.putString( Param.ITEM_VARIANT, "Blue");
product1.putString( Param.ITEM_BRAND, "Google");
product1.putDouble( Param.PRICE, 29.99 );
product1.putString( Param.CURRENCY, "USD" ); // Item-level currency unused today
product1.putLong( Param.QUANTITY, 1 );

// Prepare ecommerce bundle

Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putBundle( "items", product1 );

// Log remove_from_cart event with ecommerce bundle

mFirebaseAnalytics.logEvent( Event.REMOVE_FROM_CART, ecommerceBundle );

Consultez la configuration de la balise pour cet exemple:

  • Type de balise : Universal Analytics
  • Type de suivi : Événement
  • Catégorie d'événement, par exemple : E-commerce
  • Action d'événement, par exemple "Supprimer du panier"
  • Activer les fonctionnalités d'e-commerce amélioré: True
  • Lire les données de: événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Le nom de l'événement est égal à remove_from_cart

Impressions générées par la publicité

Mesurez les impressions issues de la promotion en consignant un événement VIEW_ITEM, VIEW_ITEM_LIST ou VIEW_SEARCH_RESULTS avec un article promotionnel défini avec les champs appropriés:

// Define promotion with relevant parameters

Bundle promotion = new Bundle();
promotion.putString( Param.ITEM_ID, "PROMO_1234" ); // promotion ID; either ITEM_ID or ITEM_NAME is required
promotion.putString( Param.ITEM_NAME, "Summer Sale" ); // promotion name
promotion.putString( Param.CREATIVE_NAME, "summer_banner2" );
promotion.putString( Param.CREATIVE_SLOT, "banner_slot1" );

// Prepare ecommerce bundle

ArrayList <bundle>promotions = new ArrayList<bundle>();
promotions.add(promotion);

Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putParcelableArrayList("promotions", promotions );

// Log view_item, view_item_list, or view_search_results event with ecommerce bundle

mFirebaseAnalytics.logEvent(Event.VIEW_ITEM, ecommerceBundle );

Consultez la configuration de la balise pour cet exemple:

  • Type de balise : Universal Analytics
  • Type de suivi : Événement
  • Catégorie d'événement, par exemple : Promotion interne
  • Action d'événement, par exemple : Impression
  • Appel sans interaction: vrai
  • Activer les fonctionnalités d'e-commerce amélioré: True
  • Lire les données de: événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Nom de l'événement est égal à view_item ET
  • &lbrace;&lbrace;promotions&rbrace;&rbrace; est différent(e) de non défini

Clics/Sélections de publicités

Mesurez les clics sur les promotions en consignant un événement SELECT_CONTENT avec une promotion définie avec les champs appropriés:

// Define promotion with relevant parameters

Bundle promotion = new Bundle();
promotion.putString( Param.ITEM_ID, "PROMO_1234"); // promotion ID; either ITEM_ID or ITEM_NAME is required
promotion.putString( Param.ITEM_NAME, "Summer Sale"); // promotion name
promotion.putString( Param.CREATIVE_NAME, "summer_banner2");
promotion.putString( Param.CREATIVE_SLOT, "banner_slot1");

// Prepare ecommerce bundle

ArrayList <bundle>promotions = new ArrayList<bundle>();
promotions.add(promotion);

Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putParcelableArrayList("promotions", promotions );

// Set properties for the event to be shown in the Google Analytics (Firebase) reports.
// These properties will not impact the Universal Analytics reporting.

ecommerceBundle.putString( Param.CONTENT_TYPE, “Internal Promotions” );
ecommerceBundle.putString( Param.ITEM_ID, "PROMO_1234" );

// Log select_content, view_item_list, or view_search_results event with ecommerce bundle

mFirebaseAnalytics.logEvent( Event.SELECT_CONTENT, ecommerceBundle );

Consultez la configuration de la balise pour cet exemple:

  • Type de balise : Universal Analytics
  • Type de suivi : Événement
  • Catégorie d'événement, par exemple : Promotion interne
  • Action d'événement, par exemple : Clic
  • Activer les fonctionnalités d'e-commerce amélioré: True
  • Lire les données de: événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Le nom de l'événement est égal à select_content ET &lbrace;&lbrace;promotions&rbrace;&rbrace; n'est pas égal à non défini

Processus de règlement

Paiement initié

Mesurez la première étape d'un processus de règlement en enregistrant un événement BEGIN_CHECKOUT avec un ou plusieurs articles (c'est-à-dire des produits) définis avec les champs appropriés:

// Define products with relevant parameters

Bundle product1 = new Bundle();
product1.putString( Param.ITEM_ID, "sku1234"); // ITEM_ID or ITEM_NAME is required
product1.putString( Param.ITEM_NAME, "Donut Friday Scented T-Shirt");
product1.putString( Param.ITEM_CATEGORY, "Apparel/Men/Shirts");
product1.putString( Param.ITEM_VARIANT, "Blue");
product1.putString( Param.ITEM_BRAND, "Google");
product1.putDouble( Param.PRICE, 29.99 );
product1.putString( Param.CURRENCY, "USD" ); // Item-level currency unused today
product1.putLong( Param.QUANTITY, 1 );

// Prepare ecommerce bundle

ArrayList <bundle>items = new ArrayList<bundle>();
items.add(product1);

Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putParcelableArrayList( "items", items );

// Set checkout step and optional checkout option

ecommerceBundle.putLong( Param.CHECKOUT_STEP, 1 ); // Optional for first step
ecommerceBundle.putString( Param.CHECKOUT_OPTION, "Visa" ); // Optional

// Log BEGIN_CHECKOUT event with ecommerce bundle

mFirebaseAnalytics.logEvent( Event.BEGIN_CHECKOUT, ecommerceBundle );

Consultez la configuration de la balise pour cet exemple:

  • Type de balise : Universal Analytics
  • Type de suivi: visionnage de l'écran
  • Champs à définir: (Nom du champ) screenName (valeur, par exemple) Écran du panier
  • Activer les fonctionnalités d'e-commerce amélioré: True
  • Lire les données de: événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Nom de l'événement égal à start_checkout

Étapes de paiement supplémentaires

Mesurez les étapes supplémentaires d'un processus de règlement en enregistrant un événement CHECKOUT_PROGRESS avec un ou plusieurs articles (c'est-à-dire des produits) définis avec les champs appropriés:

// Define products with relevant parameters

Bundle product1 = new Bundle();
product1.putString( Param.ITEM_ID, "sku1234"); // ITEM_ID or ITEM_NAME is required
product1.putString( Param.ITEM_NAME, "Donut Friday Scented T-Shirt");
product1.putString( Param.ITEM_CATEGORY, "Apparel/Men/Shirts");
product1.putString( Param.ITEM_VARIANT, "Blue");
product1.putString( Param.ITEM_BRAND, "Google");
product1.putDouble( Param.PRICE, 29.99 );
product1.putString( Param.CURRENCY, "USD" ); // Item-level currency unused today
product1.putLong( Param.QUANTITY, 1 );

// Prepare ecommerce bundle

ArrayList <bundle>items = new ArrayList<bundle>();
items.add(product1);

Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putParcelableArrayList( "items", items );

// Set checkout step and optional checkout option

ecommerceBundle.putLong( Param.CHECKOUT_STEP, 2 );
ecommerceBundle.putString( Param.CHECKOUT_OPTION, "Visa" ); // Optional

// Log CHECKOUT_PROGRESS event with ecommerce bundle

mFirebaseAnalytics.logEvent( Event.CHECKOUT_PROGRESS, ecommerceBundle );

Consultez la configuration de la balise pour cet exemple:

  • Type de balise : Universal Analytics
  • Type de suivi: visionnage de l'écran
  • Champs à définir: (Nom du champ) screenName (valeur, par exemple) Écran de l'étape 2 du règlement
  • Activer les fonctionnalités d'e-commerce amélioré: True
  • Lire les données de: événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Le nom de l'événement est égal à checkout_progress

Options de livraison et de paiement

Les options de paiement vous permettent de mesurer des informations supplémentaires sur l'état du processus de règlement. Vous pouvez mesurer les options de paiement soit dans le cadre d'un événement d'étape de règlement (comme indiqué ci-dessus), soit lorsqu'un utilisateur sélectionne une option une fois que l'événement d'une étape de règlement donnée a déjà été enregistré.

Mesurez les options de paiement après une étape de règlement en consignant un événement SET_CHECKOUT_OPTION avec les paramètres CHECKOUT_STEP et CHECKOUT_OPTION correspondants:

Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putLong( Param.CHECKOUT_STEP, 2 );
ecommerceBundle.putString( Param.CHECKOUT_OPTION, "Mastercard" );
mFirebaseAnalytics.logEvent( Event.SET_CHECKOUT_OPTION, ecommerceBundle );

Consultez la configuration de la balise pour cet exemple:

  • Type de balise : Universal Analytics
  • Type de suivi : Événement
  • Catégorie d'événement, par exemple : E-commerce
  • Action d'événement, par exemple : Définir l'option de paiement
  • Activer les fonctionnalités d'e-commerce amélioré: True
  • Lire les données de: événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Nom de l'événement égal à set_checkout_option

Achats

Mesurez les achats en consignant un événement ECOMMERCE_PURCHASE avec un ou plusieurs articles (c'est-à-dire des produits) définis avec les champs appropriés:

// Define product with relevant parameters

Bundle product1 = new Bundle();
product1.putString( Param.ITEM_ID, "sku1234"); // ITEM_ID or ITEM_NAME is required
product1.putString( Param.ITEM_NAME, "Donut Friday Scented T-Shirt");
product1.putString( Param.ITEM_CATEGORY, "Apparel/Men/Shirts");
product1.putString( Param.ITEM_VARIANT, "Blue");
product1.putString( Param.ITEM_BRAND, "Google");
product1.putDouble( Param.PRICE, 29.99 );
product1.putString( Param.CURRENCY, "USD" ); // Item-level currency unused today
product1.putLong( Param.QUANTITY, 1 );

Bundle product2 = new Bundle();
product2.putString( Param.ITEM_ID, "sku5678");
product2.putString( Param.ITEM_NAME, "Android Workout Capris");
product2.putString( Param.ITEM_CATEGORY, "Apparel/Women/Pants");
product2.putString( Param.ITEM_VARIANT, "Black");
product2.putString( Param.ITEM_BRAND, "Google");
product2.putDouble( Param.PRICE, 39.99 );
product2.putString( Param.CURRENCY, "USD" ); // Item-level currency unused today
product2.putLong( Param.QUANTITY, 1 );

// Prepare ecommerce bundle

ArrayList <bundle>items = new ArrayList<bundle>();
items.add(product1);
items.add(product2);

Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putParcelableArrayList( "items", items );

// Set relevant transaction-level parameters

ecommerceBundle.putString( Param.TRANSACTION_ID, "T12345" );
ecommerceBundle.putString( Param.AFFILIATION, "Google Store - Online" );
ecommerceBundle.putDouble( Param.VALUE, 37.39 );    // Revenue
ecommerceBundle.putDouble( Param.TAX, 2.85 );
ecommerceBundle.putDouble( Param.SHIPPING, 5.34 );
ecommerceBundle.putString( Param.CURRENCY, "USD" );
ecommerceBundle.putString( Param.COUPON, "SUMMER2017" );

// Log ecommerce_purchase event with ecommerce bundle

mFirebaseAnalytics.logEvent( Event.ECOMMERCE_PURCHASE, ecommerceBundle );

Consultez la configuration de la balise pour cet exemple:

  • Type de balise : Universal Analytics
  • Type de suivi: visionnage de l'écran
  • Champs à définir: (Nom du champ) screenName (valeur, par exemple) Écran de remerciement
  • Activer les fonctionnalités d'e-commerce amélioré: True
  • Lire les données de: événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Nom de l'événement est égal à ecommerce_purchase

Remboursements

Mesurez les remboursements en consignant un événement PURCHASE_REFUND avec l'ID de transaction approprié spécifié et éventuellement (pour les remboursements partiels) un ou plusieurs articles (par exemple, des produits) définis avec des ID et des quantités:

// Prepare ecommerce bundle with transaction ID to be refunded

Bundle ecommerceBundle = new Bundle();
ecommerceBundle.putString( Param.TRANSACTION_ID, "T12345" ); // Required
ecommerceBundle.putDouble( Param.VALUE, 37.39 ); // Optional in Universal Analytics

// (OPTIONAL) For partial refunds, define the item IDs and quantities of products being refunded

Bundle refundedProduct = new Bundle();
refundedProduct.putString( Param.ITEM_ID, "sku1234" ); // Required for partial refund
refundedProduct.putLong( Param.QUANTITY, 1 ); // Required for partial refund

ArrayList <bundle>items = new ArrayList<bundle>();
items.add(refundedProduct);
ecommerceBundle.putParcelableArrayList( "items", items );

// Log purchase_refund event with ecommerce bundle

mFirebaseAnalytics.logEvent( Event.PURCHASE_REFUND, ecommerceBundle );

Consultez la configuration de la balise pour cet exemple:

  • Type de balise : Universal Analytics
  • Type de suivi : Événement
  • Catégorie d'événement, par exemple : E-commerce
  • Action d'événement, par exemple : remboursement
  • Activer les fonctionnalités d'e-commerce amélioré: True
  • Lire les données de: événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Nom de l'événement est égal à purchase_refund