E-commerce amélioré

Le plug-in d'e-commerce amélioré pour analytics.js permet de mesurer les interactions des utilisateurs avec les produits sur des sites Web d'e-commerce dans l'expérience d'achat, y compris les impressions et les clics sur les produits, l'affichage des informations détaillées sur les produits, l'ajout d'un produit au panier, le lancement du processus de paiement, les transactions et les remboursements.

Migration et compatibilité avec le plug-in d'e-commerce (ecommerce.js)

Si vous avez déjà implémenté la mesure de l'e-commerce et que vous souhaitez commencer à utiliser l'e-commerce amélioré, deux options principales s'offrent à vous:

Utiliser une nouvelle propriété

Vous pouvez ajouter un outil de suivi supplémentaire à une propriété nouvellement créée et taguer/activer l'e-commerce amélioré pour la nouvelle propriété. Pour en savoir plus sur l'envoi de données à plusieurs propriétés à partir d'une même page, consultez la page Utiliser plusieurs objets de suivi.

Migrer une propriété existante

Pour passer du plug-in d'e-commerce au plug-in d'e-commerce amélioré, les utilisateurs actuels d'analytics.js doivent supprimer et remplacer les références par du code d'e-commerce amélioré.

Si vous utilisez actuellement ga.js, vous devez d'abord migrer vers analytics.js avant d'utiliser le plug-in d'e-commerce amélioré.

Les données sur les transactions et les articles collectées précédemment à l'aide du plug-in ecommerce.js ne seront pas affectées par la migration et resteront disponibles dans les propriétés et les profils auxquels elles ont été envoyées à l'origine.

Types de données et actions d'e-commerce amélioré

Vous pouvez envoyer plusieurs types de données d'e-commerce:

Données sur les impressions

Représente les informations relatives à un produit consulté. Il est appelé impressionFieldObject et contient les valeurs suivantes:

Clé Type de valeur Obligatoire Description
id text *Oui

Identifiant produit ou SKU (par exemple, P67890).

* Vous devez définir id ou name.

name text *Oui

Nom du produit (par exemple, "T-shirt Android").

* Vous devez définir id ou name.

list text Non Liste ou collection à laquelle appartient le produit (par exemple, les résultats de recherche)
list_name text Non Liste ou collection à laquelle appartient le produit (par exemple, les résultats de recherche)
brand text Non Marque associée au produit (par exemple, Google).
category text Non Catégorie à laquelle appartient le produit (par exemple, "Vêtements"). Utilisez / comme délimiteur pour spécifier jusqu'à cinq niveaux de hiérarchie (par exemple, Vêtements/Hommes/T-shirts).
variant text Non Variante du produit (par exemple, noir).
position integer Non Position du produit dans une liste ou une collection (par exemple, 2).
list_position integer Non Position du produit dans une liste ou une collection (par exemple, 2).
price Nombre Non Prix d'un produit (par exemple, 29.20).

Données relatives aux produits

Les données produit représentent des produits individuels qui ont été consultés, ajoutés au panier, etc. Elles sont appelées productFieldObject et contiennent les valeurs suivantes:

Clé Type de valeur Obligatoire Description
id text *Oui

Identifiant produit ou SKU (par exemple, P67890).

* Vous devez définir l'ID ou name.

name text *Oui

Nom du produit (par exemple, "T-shirt Android").

* Vous devez définir l'ID ou name.

brand text Non Marque associée au produit (par exemple, Google).
category text Non Catégorie à laquelle appartient le produit (par exemple, "Vêtements"). Utilisez / comme délimiteur pour spécifier jusqu'à cinq niveaux de hiérarchie (par exemple, Vêtements/Hommes/T-shirts).
variant text Non Variante du produit (par exemple, noir).
price Nombre Non Prix d'un produit (par exemple, 29.20).
quantity integer Non Quantité d'un produit (par exemple, 2).
coupon text Non Code promotionnel associé à un produit (par exemple, SUMMER_SALE13).
position integer Non Position du produit dans une liste ou une collection (par exemple, 2).
list_position integer Non Position du produit dans une liste ou une collection (par exemple, 2).

Données de promotion

Représente les informations sur une promotion ayant été consultée. Il est appelé promoFieldObject et contient les valeurs suivantes:

Clé Type de valeur Obligatoire Description
id text *Oui

Identifiant de la promotion (par exemple, PROMO_1234).

* Vous devez définir id ou name.

name text *Oui

Nom de la promotion (par exemple, "Soldes d'été").

* Vous devez définir id ou name.

creative text Non Création associée à la promotion (par exemple, bannière_été2).
creative_name text Non Nom de la création (par exemple, bannière_été2).
position text Non Position de la création (par exemple, "Banner_slot_1").
creative_slot text Non Nom de l'emplacement de la création (par exemple, espace_bannière_1).

Données d'action

Représente les informations sur une action effectuée concernant l'e-commerce. Il est appelé actionFieldObject et contient les valeurs suivantes:

Clé Type de valeur Obligatoire Description
id text *Oui

ID de la transaction (par exemple, T1234).

* Obligatoire si le type d'action est purchase ou refund

affiliation text Non Magasin ou affiliation à partir duquel la transaction a été effectuée (par exemple, Google Store).
revenue Nombre Non

Spécifie le revenu total ou le total général associé à la transaction (par exemple, 11,99). Cette valeur peut inclure les frais de livraison, les frais fiscaux ou d'autres ajustements au revenu total que vous souhaitez inclure dans votre calcul de revenus.

valeur Nombre Non Valeur (revenus) associée à l'événement.
tax Nombre Non Montant total des taxes associées à la transaction.
shipping Nombre Non Frais de port associés à la transaction.
coupon text Non Bon de réduction utilisé lors de la transaction.
list text Non Liste à laquelle appartiennent les produits associés. Facultatif.
items tableau Non Tableau contenant les produits associés.
step integer Non Numéro représentant une étape du processus de règlement. Facultatif pour les actions de paiement.
checkout_step integer Non Numéro représentant une étape du processus de règlement.
option text Non Champ supplémentaire pour les actions checkout et checkout_option pouvant décrire les informations des options sur la page de paiement, comme le mode de paiement sélectionné.
checkout_option text Non Option de paiement (mode de paiement sélectionné).

Actions liées aux produits et à la promotion

Les actions spécifient comment interpréter les données sur les produits et les promotions que vous envoyez à Google Analytics.

Action Événement Description
click Clic sur un produit ou un lien de produit pour un ou plusieurs produits.
detail Affichage des informations détaillées sur le produit.
add Ajout d'un ou plusieurs produits à un panier
remove Supprimer un ou plusieurs produits d'un panier
checkout Lancement du processus de règlement pour un ou plusieurs produits...
checkout_option Envoi de la valeur de l'option pour une étape de règlement donnée.
purchase La vente d'un ou de plusieurs produits
refund Remboursement d'un ou de plusieurs produits.
promo_click Clic sur une promotion interne.
add_to_cart Un utilisateur ajoute un ou plusieurs produits à son panier.
begin_checkout Un utilisateur commence le processus de paiement pour un ou plusieurs produits.
checkout_progress Un utilisateur finalise le règlement après la première étape.
purchase Un utilisateur effectue un achat.
refund Un ou plusieurs produits sont remboursés à l'utilisateur.
remove_from_cart Un utilisateur supprime un ou plusieurs produits d'un panier.
select_content Un utilisateur clique sur un produit ou un lien de produit.
set_checkout_option Étape de règlement effectuée par un utilisateur.
view_item Un utilisateur consulte les détails d'un produit.
view_item_list Un utilisateur consulte une liste d'un ou plusieurs produits.
view_promotion Un utilisateur clique sur une promotion interne.
view_refund Un utilisateur consulte un remboursement pour un ou plusieurs produits.

Implémentation

Les sections suivantes décrivent comment implémenter le plug-in d'e-commerce amélioré pour mesurer l'activité d'e-commerce sur un site Web avec la bibliothèque analytics.js.

Charger le plug-in d'e-commerce

Pour réduire la taille de la bibliothèque analytics.js, l'e-commerce amélioré n'est pas fourni dans la bibliothèque par défaut. Au lieu de cela, il est fourni sous la forme d'un module de plug-in qui doit être chargé avant d'être utilisé.

Pour charger le plug-in d'e-commerce amélioré, utilisez la commande suivante:

ga('require', 'ec');

Cette commande doit avoir lieu après la création de l'objet de suivi et avant l'utilisation d'une fonctionnalité spécifique de l'e-commerce amélioré.

Envoyer des données d'e-commerce amélioré

Une fois chargées, deux nouvelles commandes spécifiques à l'e-commerce amélioré sont ajoutées à l'outil de suivi par défaut et vous pouvez commencer à envoyer des données d'e-commerce.

Mesure des activités d'e-commerce

En général, une implémentation de l'e-commerce amélioré mesure les impressions de produits et les actions suivantes:

  • Clics sur une association de produits.
  • Affichage des informations détaillées sur le produit.
  • Impressions et clics de promotions internes.
  • Ajouter/supprimer un produit d'un panier
  • Lancer le processus de paiement d'un produit.
  • Achats et remboursements.

Mesure des impressions

Les impressions de produits sont mesurées à l'aide de la commande ec:addImpression. Les informations sur le produit sont ajoutées dans un impressionFieldObject.

Par exemple, le code suivant mesure l'impression d'un produit dans une liste de résultats de recherche:

ga('ec:addImpression', {            // Provide product details in an impressionFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Search Results',         // Product list (string).
  'position': 1,                    // Product position (number).
  'dimension1': 'Member'            // Custom dimension (string).
});

Un élément impressionFieldObject doit avoir une valeur name ou id. Toutes les autres valeurs sont facultatives et n'ont pas besoin d'être définies.

Mesure des actions

Les actions sont mesurées à l'aide de la commande ec:addProduct avec productFieldObject pour ajouter des informations détaillées sur le produit et de la commande ec:setAction pour spécifier l'action à effectuer.

Par exemple, le code suivant mesure un clic sur un lien de produit affiché dans une liste de résultats de recherche:

ga('ec:addProduct', {               // Provide product details in a productFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'position': 1,                    // Product position (number).
  'dimension1': 'Member'            // Custom dimension (string).
});

ga('ec:setAction', 'click', {       // click action.
  'list': 'Search Results'          // Product list (string).
});

Un élément productFieldObject doit avoir une valeur name ou id. Toutes les autres valeurs sont facultatives et n'ont pas besoin d'être définies.

Combiner les impressions et les actions

Si vous enregistrez à la fois des impressions de produits et une action, il est possible de les combiner et de les mesurer dans un seul appel.

L'exemple ci-dessous montre comment mesurer une vue détaillée d'un produit avec une section de produits associés:

// The impression from a Related Products section.
ga('ec:addImpression', {            // Provide product details in an impressionFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Related Products',       // Product list (string).
  'position': 1                     // Product position (number).
});

// The product being viewed.
ga('ec:addProduct', {                 // Provide product details in an productFieldObject.
  'id': 'P67890',                     // Product ID (string).
  'name': 'YouTube Organic T-Shirt',  // Product name (string).
  'category': 'Apparel/T-Shirts',     // Product category (string).
  'brand': 'YouTube',                 // Product brand (string).
  'variant': 'gray',                  // Product variant (string).
  'position': 2                       // Product position (number).
});

ga('ec:setAction', 'detail');       // Detail action.

Mesurer les transactions

Mesurez une transaction en utilisant la commande ec:setAction et en définissant le type d'action sur purchase. Les détails au niveau de la transaction, comme le revenu total, les taxes et la livraison, sont fournis dans un actionFieldObject:

ga('ec:addProduct', {               // Provide product details in an productFieldObject.
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'black',               // Product variant (string).
  'price': '29.20',                 // Product price (number).
  'coupon': 'APPARELSALE',          // Product coupon (string).
  'quantity': 1                     // Product quantity (number).
});

ga('ec:setAction', 'purchase', {          // Transaction details are provided in an actionFieldObject.
  'id': 'T12345',                         // (Required) Transaction id (string).
  'affiliation': 'Google Store - Online', // Affiliation (string).
  'revenue': '37.39',                     // Revenue (number).
  'tax': '2.85',                          // Tax (number).
  'shipping': '5.34',                     // Shipping (number).
  'coupon': 'SUMMER2013'                  // Transaction coupon (string).
});

Un élément actionFieldObject doit avoir une valeur id si le type d'action est purchase ou refund. Les autres valeurs sont facultatives et n'ont pas besoin d'être définies.

Mesure des remboursements

Pour rembourser l'intégralité d'une transaction, définissez une action refund et fournissez l'ID de transaction:

// Refund an entire transaction.
ga('ec:setAction', 'refund', {
  // Transaction ID is only required field for full refund.
  'id': 'T12345'
});

Si aucune transaction correspondante n'est trouvée, l'appel de fichier refund ne sera pas traité.

Pour mesurer un remboursement partiel, définissez une action refund et spécifiez l'ID de transaction, les ID produit et les quantités à rembourser:

// Refund a single product.
ga('ec:addProduct', {
  'id': 'P12345',       // Product ID is required for partial refund.
  'quantity': 1         // Quantity is required for partial refund.
});

ga('ec:setAction', 'refund', {
  'id': 'T12345',       // Transaction ID is required for partial refund.
});

Utiliser des événements sans interaction pour les remboursements

Si vous devez envoyer des données de remboursement à l'aide d'un événement et que celui-ci ne fait pas partie d'un comportement normalement mesuré sur site (c'est-à-dire non déclenché par l'utilisateur), nous vous recommandons d'envoyer un événement non-interaction. Cela permet d'éviter que des métriques telles que le taux de rebond, le temps passé sur le site, etc. ne soient affectées par l'événement. Exemple :

ga('send', 'event', 'Ecommerce', 'Refund', {'nonInteraction': 1});

Mesure du processus de paiement

Pour mesurer chaque étape d'un processus de paiement:

  • Ajoutez du code pour mesurer chaque étape du processus de règlement.
  • Le cas échéant, ajoutez du code pour mesurer les options de paiement.
  • Si vous le souhaitez, vous pouvez définir des noms d'étape conviviaux pour le rapport sur les entonnoirs de paiement. Pour ce faire, configurez les paramètres d'e-commerce dans la section "Administration" de l'interface Web.

1. Mesurer les étapes du règlement

Pour chaque étape du processus de règlement, vous devez insérer le code correspondant afin d'envoyer des données à Google Analytics:

  • Champ step

    Pour chaque étape de règlement que vous mesurez, vous devez inclure une valeur step. Cette valeur permet de mettre en correspondance vos actions de règlement avec les libellés que vous avez configurés pour chaque étape dans Paramètres d'e-commerce.

  • Champ option

    Si vous disposez d'informations supplémentaires sur l'étape de paiement donnée au moment où elle est mesurée, vous pouvez définir le champ option avec une action checkout pour capturer ces informations. Par exemple, le type de paiement par défaut pour l'utilisateur (par exemple, Visa).

  • Mesurer une étape de paiement

    Pour mesurer une étape de règlement, utilisez ec:addProduct pour chaque produit et ec:setAction pour un paiement. Le cas échéant, ec:setAction peut utiliser un actionFieldObject supplémentaire pour décrire l'étape de paiement avec un step et un option.

    L'exemple suivant montre comment mesurer la première étape d'un processus de paiement avec un seul produit et fournit des informations supplémentaires sur le type de paiement:

    ga('ec:addProduct', {               // Provide product details in an productFieldObject.
      'id': 'P12345',                   // Product ID (string).
      'name': 'Android Warhol T-Shirt', // Product name (string).
      'category': 'Apparel',            // Product category (string).
      'brand': 'Google',                // Product brand (string).
      'variant': 'black',               // Product variant (string).
      'price': '29.20',                 // Product price (number).
      'quantity': 1                     // Product quantity (number).
    });
    
    // Add the step number and additional info about the checkout to the action.
    ga('ec:setAction','checkout', {
        'step': 1,
        'option': 'Visa'
    });
    

2. Mesure des options de paiement

Les options de paiement vous permettent de mesurer des informations supplémentaires sur l'état du règlement. Cela est utile si vous avez mesuré une étape de règlement lors de la page vue initiale, mais que des informations supplémentaires sur la même étape de paiement sont disponibles une fois qu'une option sélectionnée par l'utilisateur a été définie. Par exemple, l'utilisateur sélectionne un mode de livraison.

Pour mesurer une option de paiement, utilisez ec:setAction pour indiquer un checkout_option, et incluez le numéro de l'étape et la description de l'option.

Vous souhaiterez probablement mesurer cette action une fois que l'utilisateur aura cliqué pour passer à l'étape suivante du processus de paiement. Exemple :

// (On "Next" button click)
ga('ec:setAction', 'checkout_option', {'step': 2, 'option': 'FedEx'});

ga('send', 'event', 'Checkout', 'Option', {
    hitCallback: function() {
      // advance to next page
    },
});

3. Configuration de l'entonnoir de paiement

Vous pouvez attribuer un nom descriptif à chaque étape de votre processus de paiement. Celui-ci sera utilisé dans les rapports. Pour configurer ces noms, accédez à la section Administration de l'interface Web Google Analytics, sélectionnez la vue (profil), puis cliquez sur Paramètres d'e-commerce. Suivez les instructions de configuration de l'e-commerce pour étiqueter chaque étape de règlement que vous souhaitez mesurer.

Paramètres d'e-commerce dans la section "Administration" de l'interface Web Google Analytics L'e-commerce est activé, et quatre libellés d'étape de l'entonnoir de paiement ont été ajoutés: 1. Vérifier le panier 2. Collecter les informations de paiement, 3. Confirmez les détails de l'achat, 4. Reçu
Figure 1:Configuration de l'e-commerce - Entonnoir de paiement

Mesure des promotions internes

Le plug-in d'e-commerce amélioré permet de mesurer les impressions et les clics associés à des promotions internes (bannières affichées pour promouvoir une vente sur une autre section d'un site Web, par exemple).

Impressions de la promotion

Les impressions de promotion interne sont généralement mesurées lors du chargement de la page et sont envoyées avec la page vue initiale à l'aide de la commande ec:addPromo. Exemple :

ga('ec:addPromo', {               // Promo details provided in a promoFieldObject.
  'id': 'PROMO_1234',             // Promotion ID. Required (string).
  'name': 'Summer Sale',          // Promotion name (string).
  'creative': 'summer_banner2',   // Creative (string).
  'position': 'banner_slot1'      // Position  (string).
});

Nombre de clics sur la promotion

Vous pouvez mesurer les clics sur les promotions internes en définissant l'action promo_click. Exemple :

// Identify the promotion that was clicked.
ga('ec:addPromo', {
  'id': 'PROMO_1234',
  'name': 'Summer Sale',
  'creative': 'summer_banner2',
  'position': 'banner_slot1'
});

// Send the promo_click action with an event.
ga('ec:setAction', 'promo_click');
ga('send', 'event', 'Internal Promotions', 'click', 'Summer Sale');

Par exemple, pour mesurer une page d'informations détaillées sur un produit avec une impression et un clic promotionnel, commencez par envoyer les données sur le produit et l'impression avec la page vue initiale, puis envoyez les données concernant les clics promotionnels dans un événement distinct:

// 1. Send product and impression data with pageview.
ga('ec:addProduct', {
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel',            // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'position': 1,                    // Product position (number).
});

// The impression from the Related Products section.
ga('ec:addImpression', {
  'id': 'P12345',                   // Product ID (string).
  'name': 'Android Warhol T-Shirt', // Product name (string).
  'category': 'Apparel/T-Shirts',   // Product category (string).
  'brand': 'Google',                // Product brand (string).
  'variant': 'Black',               // Product variant (string).
  'list': 'Related Products',       // Product list (string).
  'position': 1,                    // Product position (number).
});

ga('ec:setAction', 'detail');       // Detail action.

ga('send', 'pageview');             // Send the product data with initial pageview.


// 2. Send the promo click data when the promo click occurs.
// Call this function when promo click occurs.
function onPromoClick() {
  ga('ec:addPromo', {
    'id': 'PROMO_1234',
    'name': 'Summer Sale',
    'creative': 'summer_banner2',
    'position': 'banner_slot1'
  });

  // Send the promo_click action with an event.
  ga('ec:setAction', 'promo_click');
  ga('send', 'event', 'Internal Promotions', 'click', 'Summer Sale');
}

Un élément promoFieldObject doit avoir une valeur name ou id. Toutes les autres valeurs sont facultatives et n'ont pas besoin d'être définies.

Exemple complet

Les extraits de code ci-dessous montrent comment mesurer le cycle de vie de l'e-commerce d'un seul produit, de l'impression initiale à la transaction, à l'aide du plug-in d'e-commerce amélioré.

Mesure d'une impression de produit

Dans cet exemple, un utilisateur consulte d'abord le produit dans une liste de résultats de recherche. Pour mesurer cette impression de produit, utilisez la commande ec:addImpression et fournissez les informations détaillées sur le produit dans un impressionFieldObject:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addImpression', {
  'id': 'P12345',                   // Product details are provided in an impressionFieldObject.
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel/T-Shirts',
  'brand': 'Google',
  'variant': 'black',
  'list': 'Search Results',
  'position': 1                     // 'position' indicates the product position in the list.
});

ga('ec:addImpression', {
  'id': 'P67890',
  'name': 'YouTube Organic T-Shirt',
  'category': 'Apparel/T-Shirts',
  'brand': 'YouTube',
  'variant': 'gray',
  'list': 'Search Results',
  'position': 2
});

ga('send', 'pageview');              // Send product impressions with initial pageview.

Mesurer un clic sur un produit

Ensuite, un utilisateur exprime son intérêt pour ce produit particulier en cliquant sur la fiche produit pour afficher plus de détails.

Pour mesurer ce clic sur un produit, utilisez ec:addProduct et ec:setAction:

// Called when a link to a product is clicked.
function onProductClick() {
  ga('ec:addProduct', {
    'id': 'P12345',
    'name': 'Android Warhol T-Shirt',
    'category': 'Apparel',
    'brand': 'Google',
    'variant': 'black',
    'position': 1
  });
  ga('ec:setAction', 'click', {list: 'Search Results'});

  // Send click with an event, then send user to product page.
  ga('send', 'event', 'UX', 'click', 'Results', {
    hitCallback: function() {
      document.location = '/product_details?id=P12345';
    }
  });
}

L'association de produits pourrait alors être implémentée comme suit:

<a href="/next-page.html"
   onclick="onProductClick(); return !ga.loaded;">
  Android Warhol T-Shirt
</a>

Mesurer la vue détaillée d'un produit

Après avoir cliqué sur la fiche produit, l'utilisateur accède à la page d'informations détaillées sur le produit.

Pour mesurer cette vue d'informations détaillées sur le produit, utilisez ec:addProduct et ec:setAction pour spécifier une action detail:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black'
});

ga('ec:setAction', 'detail');

ga('send', 'pageview');       // Send product details view with the initial pageview.

Mesurer un ajout ou une suppression du panier

L'utilisateur exprime son intention d'acheter l'article en l'ajoutant à un panier.

Pour mesurer l'ajout d'un produit à un panier ou sa suppression, utilisez ec:addProduct et définissez le type add ou remove:

// Called when a product is added to a shopping cart.
function addToCart(product) {
  ga('ec:addProduct', {
    'id': product.id,
    'name': product.name,
    'category': product.category,
    'brand': product.brand,
    'variant': product.variant,
    'price': product.price,
    'quantity': product.qty
  });
  ga('ec:setAction', 'add');
  ga('send', 'event', 'UX', 'click', 'add to cart');     // Send data using an event.
}

Mesure du processus de paiement

L'utilisateur est maintenant prêt à commencer le processus de règlement qui, dans cet exemple, comprend deux étapes, chacune sur des pages distinctes:

  • Ajoutez les détails du mode de paiement (payment.html).
  • Ajoutez des informations de livraison (shipping.html).

Le cas échéant, assurez-vous d'avoir correctement configuré un entonnoir de paiement dans "Administration de l'interface Web", sous Paramètres d'e-commerce. Exemple :

Paramètres d&#39;e-commerce dans la section &quot;Administration&quot; de l&#39;interface Web Google Analytics L&#39;e-commerce est activé, et w libellés d&#39;étape de l&#39;entonnoir de paiement ont été ajoutés: 1. Détails du paiement et 2. Détails de la livraison
Figure 2:Configuration de l'e-commerce - Entonnoir de paiement

Étape 1 : Paiement

Pour mesurer la première étape du règlement, utilisez ec:addProduct pour chaque produit du panier et ec:setAction pour indiquer une valeur checkout. ec:setAction utilise un actionFieldObject pour décrire l'étape de règlement avec un numéro, et des informations supplémentaires sur le type de paiement par défaut pour cet utilisateur ont été incluses à l'aide du champ option:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

/**
 * Called when the user begins the checkout process.
 * @param {Array} cart An array representing the user's shopping cart.
 */
function checkout(cart) {
  for(var i = 0; i < cart.length; i++) {
    var product = cart[i];
    ga('ec:addProduct', {
      'id': product.id,
      'name': product.name,
      'category': product.category,
      'brand': product.brand,
      'variant':  product.variant,
      'price': product.price,
      'quantity': product.qty
    });
  }
}

// In the case of checkout actions, an additional actionFieldObject can
// specify a checkout step and option.
ga('ec:setAction','checkout', {
    'step': 1,            // A value of 1 indicates this action is first checkout step.
    'option': 'Visa'      // Used to specify additional info about a checkout stage, e.g. payment method.
});
ga('send', 'pageview');   // Pageview for payment.html

Étape 2 : Expédition

Pour mesurer la deuxième étape du règlement, utilisez ec:addProduct pour chaque produit du panier et ec:setAction pour indiquer un paiement. Dans ce cas, nous n'avons pas d'informations supplémentaires sur l'option de livraison sélectionnée lors de l'envoi de la page vue initiale. Cette situation sera donc gérée séparément à l'aide de ec:setAction pour indiquer une checkout_option.

// Measure checkout step 2:
ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

/**
 * Called when the user begins the checkout process.
 * @param {Array} cart An array representing the user's shopping cart.
 */
function checkout(cart) {
  for(var i = 0; i < cart.length; i++) {
    var product = cart[i];
    ga('ec:addProduct', {
      'id': product.id,
      'name': product.name,
      'category': product.category,
      'brand': product.brand,
      'variant':  product.variant,
      'price': product.price,
      'quantity': product.qty
    });
  }
}

ga('ec:setAction','checkout', {'step': 2});
ga('send', 'pageview');     // Pageview for shipping.html


// Called when user has completed shipping options.
function onShippingComplete(stepNumber, shippingOption) {
  ga('ec:setAction', 'checkout_option', {
    'step': stepNumber,
    'option': shippingOption
  });

  ga('send', 'event', 'Checkout', 'Option', {
     hitCallback: function() {
       // Advance to next page.
     }
  });
}

Le formulaire peut alors être implémenté comme suit:

<a href="/next-page.html"
   onclick="onShippingComplete(2, 'FedEx'); return !ga.loaded;">
  Continue
</a>

Mesure d'une transaction

Enfin, l'utilisateur finalise le processus de paiement et envoie son achat.

Pour mesurer les ventes d'un ou de plusieurs produits, utilisez ec:addProduct pour ajouter chaque produit, puis ec:setAction pour spécifier un purchase. Les informations au niveau de la transaction, telles que le montant total des revenus, les taxes, etc., peuvent être spécifiées via un élément actionFieldObject. Exemple :

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black',
  'price': '29.20',
  'quantity': 1
});

// Transaction level information is provided via an actionFieldObject.
ga('ec:setAction', 'purchase', {
  'id': 'T12345',
  'affiliation': 'Google Store - Online',
  'revenue': '37.39',
  'tax': '2.85',
  'shipping': '5.34',
  'coupon': 'SUMMER2013'    // User added a coupon at checkout.
});

ga('send', 'pageview');     // Send transaction data with initial pageview.

Spécifier des devises locales

Par défaut, vous pouvez configurer une devise commune et globale pour l'ensemble des transactions et des articles via l'interface Web de gestion de Google Analytics. Par défaut, la devise globale est utilisée pour tous les articles et transactions. Pour les sites Web qui effectuent des transactions dans plusieurs devises, le plug-in d'e-commerce vous permet de spécifier la devise locale de la transaction.

La devise locale doit être spécifiée dans la norme ISO 4217. Consultez la documentation de référence sur les codes de devise pour obtenir la liste complète des devises de conversion acceptées.

Les devises locales sont spécifiées à l'aide de la propriété de suivi currencyCode. Par exemple, cet outil de suivi enverra des valeurs de devise en euros:

ga('create', 'UA-XXXXX-Y');
ga('require', 'ec');

ga('set', 'currencyCode', 'EUR'); // Set currency to Euros.

ga('ec:addProduct', {
  'id': 'P12345',
  'name': 'Android Warhol T-Shirt',
  'category': 'Apparel',
  'brand': 'Google',
  'variant': 'black',
  'price': '21.89',
  'quantity': 1
});

ga('ec:setAction', 'purchase', {
  id: 'T12345',
  affiliation: 'Google Store - Online',
  revenue: '28.03',
  tax: '2.14',
  shipping: '4.00',
  coupon: 'SUMMER2013'
});

ga('send', 'pageview');