Universal Analytics (UA) deviendra obsolète le 1er juillet 2023, ce qui signifie qu'il cessera de traiter les données. Les propriétés Analytics 360 cesseront de fonctionner le 1er octobre 2023. Migrez vers Google Analytics 4.

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, y compris les impressions, les clics sur les produits, l'affichage des détails des produits, l'ajout d'un produit au panier, le lancement du processus de règlement, les transactions et les remboursements.

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

Si vous avez déjà mis en œuvre 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 pour une propriété nouvellement créée et 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 seule page, consultez la page Utiliser plusieurs objets de suivi.

Migrer une propriété existante

Pour migrer du plug-in d'e-commerce vers le plug-in d'e-commerce amélioré, les utilisateurs d'analytics.js actuels doivent supprimer et remplacer les références par un 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. Elles resteront disponibles dans les propriétés et les profils auxquels elles ont été initialement envoyées.

Actions et types de données d'e-commerce amélioré

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

Données sur les impressions

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

Clé Type de valeur Obligatoire Description
id text *Oui

L'identifiant produit ou le code SKU (par exemple, P67890).

* Vous devez définir l'une des options suivantes : id ou name.

name text * Oui

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

* Vous devez définir l'une des options suivantes : id ou name.

list text Non Liste ou collection à laquelle appartient le produit (par exemple, résultats de recherche)
list_name text Non Liste ou collection à laquelle appartient le produit (par exemple, 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 number (nombre) Non Prix d'un produit (par exemple, 29,20).

Données relatives aux produits

Les données produit représentent les 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

L'identifiant produit ou le code SKU (par exemple, P67890).

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

name text *Oui

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

* Vous devez définir l'ID ou la valeur 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 number (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 la promotion

Représente des informations sur une promotion qui a été vue. Il est appelé promoFieldObject et contient les valeurs suivantes:

Clé Type de valeur Obligatoire Description
id text * Oui

Identifiant de la promotion (PROMO_1234, par exemple).

* Vous devez définir l'une des options suivantes : id ou name.

name text *Oui

Nom de la promotion (promotions estivales, par exemple).

* Vous devez définir l'une des options suivantes : id ou name.

creative text Non Création associée à la promotion (par exemple, "summer_banner2").
creative_name text Non Nom de la création (par exemple, "été_bannière2").
position text Non Position de la création (par exemple, bannière_emplacement_1).
creative_slot text Non Nom de l'emplacement de la création (par exemple, bannière_emplacement_1).

Données d'action

Représente des informations sur une action liée à l'e-commerce qui a eu lieu. Elle est appelée actionFieldObject et contient les valeurs suivantes:

Clé Type de valeur Obligatoire Description
id text *Oui

L'ID de la transaction (par exemple, T1234).

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

affiliation text Non Magasin ou affiliation à l'origine de la transaction (par exemple, Google Store)
revenue number (nombre) Non

Indique le total des revenus ou du total général associé à la transaction (par exemple, 11.99). Cette valeur peut inclure les frais de port, les taxes ou d'autres ajustements au revenu total que vous souhaitez inclure dans le calcul de vos revenus.

valeur number (nombre) Non Valeur (c'est-à-dire, revenu) associée à l'événement.
tax number (nombre) Non Montant total des taxes associées à la transaction.
shipping number (nombre) Non Frais de port associés à la transaction.
coupon text Non Bon de réduction utilisé pour 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 Nombre représentant une étape du processus de règlement. Facultatif pour les actions "checkout".
checkout_step integer Non Nombre représentant une étape du processus de règlement.
option text Non Champ supplémentaire pour les actions checkout et checkout_option qui peuvent décrire des informations sur les options sur la page de règlement, comme le mode de paiement sélectionné.
checkout_option text Non Option de paiement (mode de paiement sélectionné).

Actions sur les produits et les promotions

Les actions spécifient comment interpréter les données produit et de promotion que vous envoyez à Google Analytics.

Action Événement Description
click Clic sur un produit ou sur un lien vers un ou plusieurs produits.
detail Vue détaillée des produits.
add Ajout d'un ou de plusieurs produits à un panier
remove Supprimez 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 Vente d'un ou de plusieurs produits
refund Remboursement d'un ou 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 lance le processus de règlement pour un ou plusieurs produits.
checkout_progress Un utilisateur finalise le paiement 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 vers un 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 la liste d'un ou de 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 intégrer le plug-in d'e-commerce amélioré pour mesurer l'activité d'e-commerce sur un site Web à l'aide de 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. Il est fourni en tant que 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 être exécutée après la création de votre objet de suivi et avant d'utiliser une fonctionnalité spécifique à l'e-commerce amélioré.

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

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

Mesure des activités d'e-commerce

Une implémentation typique de l'e-commerce amélioré mesure les impressions de produit et l'une des actions suivantes:

  • Cliquer sur un lien vers un produit
  • Affichage des détails du produit.
  • Impressions et clics associés aux promotions internes.
  • Ajout/suppression d'un produit du panier
  • Lancement du processus de règlement pour un produit
  • Achats et remboursements.

Mesure des impressions

Les impressions de produits sont mesurées à l'aide de la commande ec:addImpression. Les détails sur le produit sont ajoutés 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 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 une commande productFieldObject pour ajouter des informations détaillées sur le produit, et de la commande ec:setAction pour spécifier l'action en cours d'exécution.

Par exemple, le code suivant mesure un clic sur un lien 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 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 produit et une action, vous pouvez combiner et mesurer ces données en 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 à l'aide de la commande ec:setAction et en définissant le type d'action sur purchase. Les détails au niveau de la transaction, tels que le revenu total, les taxes et les frais de livraison, sont fournis dans un champ 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 actionFieldObject doit avoir une valeur id si le type d'action est purchase ou refund. Toutes les autres valeurs sont facultatives et n'ont pas besoin d'être définies.

Mesure des remboursements

Pour rembourser une transaction entière, définissez une action refund et fournissez l'ID de la 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 refund ne sera pas traité.

Pour mesurer un remboursement partiel, définissez une action refund et spécifiez l'ID de la transaction, le ou 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 hors 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 du comportement normal sur le site (c'est-à-dire qu'il n'est pas déclenché par l'utilisateur), nous vous recommandons d'envoyer un événement sans 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});

Évaluation du processus de règlement

Pour mesurer chaque étape d'un processus de règlement:

  • Ajoutez du code pour mesurer chaque étape du processus de règlement.
  • Le cas échéant, ajoutez du code pour mesurer les options de règlement.
  • Vous pouvez éventuellement définir des noms d'étape conviviaux pour le rapport sur l'entonnoir de paiement en configurant les paramètres d'e-commerce dans la section d'administration de l'interface Web.

1. Mesure des étapes de paiement

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

  • Champ step

    Vous devez inclure une valeur de step pour chaque étape de règlement que vous mesurez. Cette valeur permet de mapper vos actions de règlement sur les étiquettes que vous avez configurées pour chaque étape dans les paramètres d'e-commerce.

  • Champ option

    Si vous disposez d'informations supplémentaires sur l'étape de paiement donnée au moment de la mesure de l'étape, vous pouvez définir le champ option avec une action checkout pour capturer ces informations. Par exemple, il peut s'agir du type de paiement par défaut pour l'utilisateur (par exemple, Visa).

  • Mesure d'une étape de règlement

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

    L'exemple suivant montre comment mesurer la première étape d'un processus de règlement, 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. Cette approche est utile si vous avez mesuré une étape de règlement au cours de la page vue initiale, mais que des informations supplémentaires sur cette même étape sont disponibles après que l'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 inclure le numéro de l'étape et la description de l'option.

Vous voudrez probablement mesurer cette action une fois que l'utilisateur a cliqué pour passer à l'étape suivante du processus de règlement. 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 conversion

À chaque étape du processus de règlement, vous pouvez attribuer un nom descriptif qui sera utilisé dans les rapports. Pour configurer ces noms, accédez à la section Administration de l'interface Web de Google Analytics, sélectionnez la vue (profil) et cliquez sur Paramètres de commerce électronique. Suivez les instructions de configuration de l'e-commerce pour ajouter un libellé à chaque étape du règlement que vous souhaitez mesurer.

Paramètres d'e-commerce dans la section "Administration" de l'interface Web de Google Analytics. L'e-commerce est activé, et quatre libellés d'étape de l'entonnoir de paiement ont été ajoutés: 1. "Review Cart", 2. Collecte des 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 pour les promotions internes, comme les bannières affichées pour promouvoir une vente sur une autre section d'un site Web.

Impressions de la promotion

Les impressions de promotions internes 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 les produits et les impressions avec la page vue initiale, puis envoyez les données sur 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');
}

La valeur de promoFieldObject doit être 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 le cycle de vie de l'e-commerce d'un seul produit peut être mesuré à partir de l'impression initiale jusqu'à la transaction, à l'aide du plug-in d'e-commerce amélioré.

Mesure d'une impression de produit

Dans cet exemple, l'utilisateur consulte d'abord le produit dans une liste de résultats de recherche. Pour mesurer cette impression de produit, exécutez la commande ec:addImpression et fournissez les détails du 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 en cliquant sur la fiche produit pour afficher plus de détails.

Pour mesurer ce clic, 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';
    }
  });
}

Le lien produit peut alors être implémenté comme suit:

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

Mesurer une vue des détails d'un produit

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

Pour mesurer cette vue détaillée d'un 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 un retrait du panier

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

Pour mesurer l'ajout ou la suppression d'un produit d'un panier, 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 règlement

L'utilisateur est maintenant prêt à commencer le processus de règlement, qui comprend deux étapes, chacune sur une page distincte:

  • Ajoutez des informations de paiement (payment.html).
  • Ajoutez les informations de livraison (shipping.html).

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

Paramètres d&#39;e-commerce dans la section &quot;Administration&quot; de l&#39;interface Web de Google Analytics. L&#39;e-commerce est activé, et des libellés d&#39;étape de l&#39;entonnoir de paiement ont été ajoutés: 1. Détails des paiements, 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 un checkout. ec:setAction utilise un élément actionFieldObject pour décrire l'étape du 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 – Livraison

Pour mesurer la deuxième étape du règlement, utilisez ec:addProduct pour chaque produit du panier, et ec:setAction pour indiquer un règlement. Dans ce cas, nous ne disposons pas d'informations supplémentaires sur l'option de livraison sélectionnée lors de l'envoi de la page vue initiale. Cette information sera traité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>

Mesurer une transaction

Enfin, l'utilisateur finalise le processus de règlement et envoie son achat.

Pour mesurer la vente d'un ou plusieurs produits, utilisez ec:addProduct pour ajouter chaque produit, puis ec:setAction pour spécifier purchase. Les informations au niveau des transactions, comme le total des revenus, les taxes, etc., peuvent être spécifiées via un 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 mondiale commune pour toutes les transactions et tous les articles via l'interface Web de gestion 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 selon la norme ISO 4217. Consultez le document 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 les valeurs en devises 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');