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:
- 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.
Importez ces deux packages:
import com.google.firebase.analytics.FirebaseAnalytics.Event;
import com.google.firebase.analytics.FirebaseAnalytics.Param;
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
- Sélection/Clics de produits
- Vues des informations détaillées sur les produits
- Ajouts au panier
- Retraits du panier
- Impressions générées par la promotion
- Clics/Sélections sur les promotions
- Processus de règlement
- Achats
- Remboursements
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 {{promotions}} 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
- {{promotions}} 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
- {{promotions}} 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 {{promotions}} 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