E-commerce amélioré Universal Analytics pour iOS

L'e-commerce amélioré est une fonctionnalité de Google Analytics disponible dans les propriétés Universal Analytics. Elle permet de mesurer les interactions des utilisateurs avec les produits dans l'expérience d'achat. Par exemple, il peut s'agir d'impressions et de clics sur des produits, d'affichages d'informations détaillées sur des produits, de l'ajout d'articles à un panier, du règlement, des transactions et des remboursements.

Les dernières générations de Google Tag Manager et Google Analytics pour les applications mobiles fonctionnent conjointement avec Firebase, la plate-forme d'applications mobiles de Google. Lorsque vous mesurez des applications à l'aide du SDK Firebase, vous avez accès à une multitude de rapports sur les applications mobiles générés automatiquement, qui peuvent être personnalisés et complétés par du code intégré à l'application. Ces rapports incluent automatiquement les données sur les achats via l'application traités par l'App Store sur iTunes et Google Play. Des rapports supplémentaires sur l'e-commerce peuvent être générés en appliquant des suggestions d'événements pour les applications d'e-commerce. Les rapports détaillés sur le comportement d'achat (c'est-à-dire le commerce électronique amélioré) ne sont actuellement disponibles que pour les propriétés Universal Analytics.

Ce document explique comment utiliser Tag Manager pour les applications iOS conjointement avec le SDK Firebase afin d'envoyer des données d'e-commerce amélioré aux propriétés Universal Analytics. La même syntaxe d'événement et de paramètre doit être utilisée pour préparer d'autres rapports sur l'e-commerce à l'avenir.

Premières étapes

Avant de commencer, configurez les conditions préalables suivantes pour votre application:

  1. Installez et configurez Firebase et Google Tag Manager dans votre application. Veillez à utiliser la version 11 ou ultérieure du SDK Firebase pour iOS.
  2. Configurez une variable définie par l'utilisateur dans votre conteneur Tag Manager 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

Intégration

Les sections suivantes montrent comment enregistrer les événements avec les paramètres nécessaires pour mesurer les activités d'e-commerce amélioré:

Impressions du produit

Mesurez les impressions du produit en enregistrant un événement avec un paramètre kFIRParameterItemID et un ou plusieurs articles (produits) définis avec les champs correspondants.

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterIndex : @1          // Position of the item in the list.
};

NSDictionary *product2 = @{
   kFIRParameterItemID : @"sku5678", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Capri",
   kFIRParameterItemCategory : @"Apparel/Women/Pants",
   kFIRParameterItemVariant : @"Black",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @35.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterIndex : @2          // Position of the item in the list.
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1, product2];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results" // List name.
};

// Log select_content event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventViewSearchResults
                    parameters:ecommerce];

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 résultats de recherche
  • Activer les fonctionnalités d'e-commerce amélioré: Vrai
  • Lire les données de l'événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Le nom de l'événement est "view_search_results".

Clics/sélections de produits

Mesurez les clics sur les produits en enregistrant un événement kFIREventSelectContent avec un article (à savoir un produit) défini avec les champs appropriés:

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterIndex : @1          // Position of the item in the list.
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results" // List name.
};

// Log select_content event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventSelectContent
                    parameters:ecommerce];

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 un produit
  • Activer les fonctionnalités d'e-commerce amélioré: Vrai
  • Lire les données de l'événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Le nom de l'événement est égal à select_content AND {{promotions}} est égal à non défini

Consultations des détails d'un produit

Mesurez les vues d'informations détaillées sur les produits en enregistrant un événement kFIREventViewItem avec un article (à savoir un produit) défini avec les champs appropriés:

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results" // List name.
};

// Log view_item event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventViewItem
                    parameters:ecommerce];

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 Détails du produit
  • Activer les fonctionnalités d'e-commerce amélioré: Vrai
  • Lire les données de l'événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Le nom de l'événement est view_item AND
  • {{promotions}} est égal à non défini

Ajouts au panier

Mesurez un produit ajouté à un panier en enregistrant un événement kFIREventAddToCart avec un article (produit) défini avec les champs appropriés:

/// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items
};

// Log add_to_cart event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventAddToCart
                    parameters:ecommerce];

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 : Ajouter au panier
  • Activer les fonctionnalités d'e-commerce amélioré: Vrai
  • Lire les données de l'événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Le nom de l'événement est add_to_cart

Suppressions du panier

Mesurez un produit supprimé d'un panier en consignant un événement kFIREventRemoveFromCart avec un article (produit) défini avec les champs appropriés:

// Define product with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

NSDictionary *ecommerce = @{
   @"items" : items
};

// Log remove_from_cart event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventRemoveFromCart
                    parameters:ecommerce];

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é: Vrai
  • Lire les données de l'événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Le nom de l'événement est "remove_from_cart"

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

Mesurez les impressions de promotion en enregistrant un événement kFIREventViewItem avec un article de promotion défini avec les champs appropriés:

/// Define promotion with relevant parameters.
NSDictionary *promotion = @{
   kFIRParameterItemID : @"PROMO_1234", // promotion ID; either ITEM_ID or ITEM_NAME is.
   kFIRParameterItemName : @"Summer Sale", // promotion name.
   kFIRParameterCreativeName : @"summer_banner2",
   kFIRParameterCreativeSlot : @"banner_slot1"
};

// Prepare ecommerce dictionary.
NSArray *promotions = @[promotion];
NSDictionary *ecommerce = @{
   @"promotions" : promotions
};

// Log view_item, view_item_list, or view_search_results
// event with ecommerce bundle.
[FIRAnalytics logEventWithName:kFIREventViewItem
                    parameters:ecommerce];

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é: Vrai
  • Lire les données de l'événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Le nom de l'événement est view_item AND
  • {{promotions}} n'est pas égal à non défini

Clics/sélections publicitaires

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

// Define promotion with relevant parameters.
NSDictionary *promotion = @{
   kFIRParameterItemID : @"PROMO_1234", // promotion ID; either ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Summer Sale", // promotion name.
   kFIRParameterCreativeName : @"summer_banner2",
   kFIRParameterCreativeSlot : @"banner_slot1"
};

// Prepare ecommerce dictionary.
NSArray *promotions = @[promotion];

// Set properties for the event to be shown in the Google Analytics (Firebase) reports.
// These properties will not impact the Universal Analytics reporting.
NSDictionary *ecommerce = @{
   kFIRParameterItemID : @"PROMO_1234",
   kFIRParameterContentType : @"Internal Promotions",
   @"promotions" : promotions
};

// Log select_content, view_item_list, or view_search_results event with ecommerce bundle.
[FIRAnalytics logEventWithName:kFIREventSelectContent
                    parameters:ecommerce];

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 (ex. : Clic)
  • Activer les fonctionnalités d'e-commerce amélioré: Vrai
  • Lire les données de l'événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Le nom de l'événement est "select_content" AND {{promotions}} n'est pas égal à "indéfini"

Processus de règlement

Paiement initié

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

// Define products with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

// Set checkout step and optional checkout option.
NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterCheckoutStep : @1, // Optional for first step.
   kFIRParameterCheckoutOption : @"Visa" // Optional.
};

// Log BEGIN_CHECKOUT event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventBeginCheckout
                    parameters:ecommerce];

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é: Vrai
  • Lire les données de l'événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Le nom de l'événement est "begin_checkout"

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 règlement dans le cadre d'un événement d'étape de règlement (comme illustré ci-dessus) ou lorsqu'un utilisateur sélectionne une option après 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 enregistrant un événement kFIREventCheckoutProgress avec les paramètres kFIRParameterCheckoutStep et kFIRParameterCheckoutOption correspondants:

// Define products with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1];

// Set checkout step and optional checkout option.
NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterCheckoutStep : @2, // Optional for first step.
   kFIRParameterCheckoutOption : @"Visa" // Optional.
};

// Log CHECKOUT_PROGRESS event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventCheckoutProgress
                   parameters:ecommerce];

Consultez la configuration de la balise pour cet exemple:

  • Type g: Universal Analytics
  • Type de confirmation: événement
  • ent catégorie : E-commerce
  • ent action, par ex. : Définir l'option de paiement
  • Fonctions d'e-commerce amélioré: True
  • Données d'annonce de: Événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Le nom de l'événement correspond à set_checkout_option

Achats

Mesurez les achats en enregistrant un événement kFIREventEcommercePurchase avec un ou plusieurs articles (produits) définis avec les champs appropriés:

// Define products with relevant parameters.
NSDictionary *product1 = @{
   kFIRParameterItemID : @"sku1234", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Jogger Sweatpants",
   kFIRParameterItemCategory : @"Apparel/Men/Pants",
   kFIRParameterItemVariant : @"Blue",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @39.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

NSDictionary *product2 = @{
   kFIRParameterItemID : @"sku5678", // ITEM_ID or ITEM_NAME is required.
   kFIRParameterItemName : @"Android Capri",
   kFIRParameterItemCategory : @"Apparel/Women/Pants",
   kFIRParameterItemVariant : @"Black",
   kFIRParameterItemBrand : @"Google",
   kFIRParameterPrice : @35.99,
   kFIRParameterCurrency : @"USD",  // Item-level currency unused today.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce dictionary.
NSArray *items = @[product1, product2];

NSDictionary *ecommerce = @{
   @"items" : items,
   kFIRParameterItemList : @"Search Results", // List name.
   kFIRParameterTransactionID : @"T12345",
   kFIRParameterAffiliation : @"Google Store - Online",
   kFIRParameterValue : @75.98, // Revenue.
   kFIRParameterTax : @3.80,
   kFIRParameterShipping : @5.34,
   kFIRParameterCurrency : @"USD",
   kFIRParameterCoupon : @"SUMMER2017"
};

// Log ecommerce_purchase event with ecommerce dictionary.
[FIRAnalytics logEventWithName:kFIREventEcommercePurchase
                    parameters:ecommerce];

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é: Vrai
  • Lire les données de l'événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Le nom de l'événement est "ecommerce_purchase"

Remboursements

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

// (OPTIONAL) For partial refunds, define the item IDs and
// quantities of products being refunded.
NSDictionary *refundedProduct = @{
   kFIRParameterItemID : @"sku1234", // Required for partial refund.
   kFIRParameterQuantity : @1
};

// Prepare ecommerce bundle with transaction ID to be refunded.
NSDictionary *ecommerce = @{
   @"items" : @[ refundedProduct ],
   kFIRParameterTransactionID : @"T12345", // Required.
   kFIRParameterValue : @75.98 // Optional in Universal Analytics.
};

// Log purchase_refund event with ecommerce.
[FIRAnalytics logEventWithName:kFIREventPurchaseRefund
                    parameters:ecommerce];

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é: Vrai
  • Lire les données de l'événement Firebase
  • Déclencheur, par exemple : (Personnalisé > Certains événements) Le nom de l'événement est "purchase_refund"