← Tracking & MesureTracking & Mesure

Tracking e-commerce GA4 : configurer le suivi des transactions

Implémentez le tracking e-commerce GA4 pas à pas : événements purchase, add_to_cart, data layer GTM, paramètres obligatoires et débogage pour un suivi fiable de vos transactions.

Par Kenoby9 min de lecture

En bref — Le tracking e-commerce GA4 repose sur une série d'événements standardisés (view_item, add_to_cart, purchase…) alimentés par un data layer structuré. Une implémentation correcte vous donne une visibilité complète sur l'entonnoir d'achat et alimente vos campagnes Google Ads avec des données de conversion fiables.

Pourquoi le tracking e-commerce GA4 est critique

Le suivi des revenus est le fondement du pilotage ROI de toute boutique en ligne. Sans tracking transaction fiable :

  • Vos campagnes Google Shopping et Performance Max optimisent dans le vide
  • Vous ne pouvez pas calculer le ROAS réel par canal
  • Les rapports GA4 restent vides dans la section Monétisation
  • L'attribution cross-canal est impossible

GA4 a repris et amélioré le système d'Enhanced E-commerce d'Universal Analytics, en le normalisant autour d'événements nommés et documentés. La logique reste la même : pousser des données structurées dans un dataLayer JavaScript, que Google Tag Manager capte et transmet à GA4.

Les événements e-commerce GA4

GA4 définit une liste d'événements e-commerce standardisés à implémenter selon votre entonnoir :

| Événement | Déclenchement | Priorité | |---|---|---| | view_item_list | Affichage d'une liste de produits | Secondaire | | select_item | Clic sur un produit dans une liste | Secondaire | | view_item | Affichage d'une fiche produit | Haute | | add_to_cart | Ajout au panier | Haute | | remove_from_cart | Suppression du panier | Secondaire | | view_cart | Affichage du panier | Moyenne | | begin_checkout | Début du processus de commande | Haute | | add_payment_info | Saisie des informations de paiement | Moyenne | | add_shipping_info | Saisie des informations de livraison | Moyenne | | purchase | Confirmation de commande | Critique | | refund | Remboursement | Haute |

En pratique, commencez par les événements haute priorité : view_item, add_to_cart, begin_checkout et purchase. Ces quatre événements vous donnent un entonnoir d'achat complet.

Structure du data layer

Le data layer est un objet JavaScript qui stocke les données d'événements sur votre page. GTM écoute cet objet et déclenche les tags GA4 en conséquence.

Événement view_item (fiche produit)

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null }); // Vider l'objet précédent

window.dataLayer.push({
  event: 'view_item',
  ecommerce: {
    currency: 'EUR',
    value: 49.99,
    items: [
      {
        item_id: 'SKU-12345',
        item_name: 'T-shirt coton bio',
        item_brand: 'MaBoutique',
        item_category: 'Vêtements',
        item_category2: 'T-shirts',
        item_variant: 'Bleu / L',
        price: 49.99,
        quantity: 1
      }
    ]
  }
});

Événement add_to_cart (ajout panier)

window.dataLayer.push({ ecommerce: null });

window.dataLayer.push({
  event: 'add_to_cart',
  ecommerce: {
    currency: 'EUR',
    value: 49.99,
    items: [
      {
        item_id: 'SKU-12345',
        item_name: 'T-shirt coton bio',
        item_brand: 'MaBoutique',
        item_category: 'Vêtements',
        item_variant: 'Bleu / L',
        price: 49.99,
        quantity: 1
      }
    ]
  }
});

Événement begin_checkout (début de commande)

window.dataLayer.push({ ecommerce: null });

window.dataLayer.push({
  event: 'begin_checkout',
  ecommerce: {
    currency: 'EUR',
    value: 74.98,
    coupon: 'PROMO10', // si applicable
    items: [
      {
        item_id: 'SKU-12345',
        item_name: 'T-shirt coton bio',
        item_brand: 'MaBoutique',
        item_category: 'Vêtements',
        item_variant: 'Bleu / L',
        price: 49.99,
        quantity: 1
      },
      {
        item_id: 'SKU-67890',
        item_name: 'Casquette logo',
        item_brand: 'MaBoutique',
        item_category: 'Accessoires',
        price: 24.99,
        quantity: 1
      }
    ]
  }
});

Événement purchase (confirmation de commande)

L'événement purchase est le plus critique. Il doit être déclenché une seule fois, sur la page de confirmation de commande, avec l'identifiant de transaction unique.

window.dataLayer.push({ ecommerce: null });

window.dataLayer.push({
  event: 'purchase',
  ecommerce: {
    transaction_id: 'CMD-2026-98765', // Obligatoire — identifiant unique
    value: 67.48,                      // Obligatoire — montant HT ou TTC (choisir et rester cohérent)
    tax: 11.24,                        // Montant TVA
    shipping: 4.99,                    // Frais de livraison
    currency: 'EUR',                   // Obligatoire — code ISO 4217
    coupon: 'PROMO10',
    items: [
      {
        item_id: 'SKU-12345',
        item_name: 'T-shirt coton bio',
        item_brand: 'MaBoutique',
        item_category: 'Vêtements',
        item_variant: 'Bleu / L',
        price: 49.99,
        quantity: 1
      },
      {
        item_id: 'SKU-67890',
        item_name: 'Casquette logo',
        item_brand: 'MaBoutique',
        item_category: 'Accessoires',
        price: 24.99,
        quantity: 1
      }
    ]
  }
});

Paramètres obligatoires pour purchase : transaction_id, value, currency. Sans ces trois paramètres, GA4 rejette l'événement ou le comptabilise sans revenu.

Paramètres d'article importants

Voici les paramètres recommandés pour chaque objet dans le tableau items :

| Paramètre | Type | Description | Obligatoire | |---|---|---|---| | item_id | String | SKU ou identifiant produit unique | Oui (ou item_name) | | item_name | String | Nom du produit | Oui (ou item_id) | | price | Number | Prix unitaire | Recommandé | | quantity | Integer | Quantité | Recommandé | | item_brand | String | Marque | Optionnel | | item_category | String | Catégorie principale | Optionnel | | item_category2 | String | Sous-catégorie | Optionnel | | item_variant | String | Variante (couleur, taille…) | Optionnel | | item_list_id | String | ID de la liste source | Optionnel | | item_list_name | String | Nom de la liste source | Optionnel | | coupon | String | Code promo appliqué | Optionnel |

Configuration dans Google Tag Manager

Une fois le data layer en place, configurez GTM pour envoyer les événements à GA4.

Étape 1 : Créer les variables data layer

Dans GTM, allez dans Variables > Variables définies par l'utilisateur > Nouvelle.

Créez une variable "Objet data layer" nommée DL - Ecommerce Object avec le chemin ecommerce. Créez également :

  • DL - Transaction IDecommerce.transaction_id
  • DL - Valueecommerce.value
  • DL - Currencyecommerce.currency

Étape 2 : Créer les déclencheurs

Pour chaque événement, créez un déclencheur de type "Événement personnalisé" :

  • Nom de l'événement : purchase (ou add_to_cart, begin_checkout, etc.)
  • Cochez "Utiliser les expressions régulières" uniquement si vous regroupez plusieurs événements

Étape 3 : Créer les tags GA4

Créez un tag de type Google Analytics : événement GA4 pour chaque événement ou un seul tag générique.

Pour l'approche générique (un seul tag pour tous les événements e-commerce) :

  • Configuration GA4 : sélectionnez votre tag de configuration GA4
  • Nom de l'événement : {{Event}} (la variable GTM qui retourne le nom de l'événement dataLayer)
  • Paramètres d'événement : ajoutez ecommerce avec la valeur {{DL - Ecommerce Object}}
  • Déclencheur : créez un déclencheur "Événement personnalisé" qui correspond à l'expression régulière view_item|add_to_cart|begin_checkout|purchase|refund

Éviter la double comptabilisation du purchase

Le risque principal sur purchase est qu'un rechargement de la page de confirmation déclenche l'événement plusieurs fois. Solutions :

  1. Côté serveur : marquez la transaction comme "vue" dans votre base de données et conditionnez l'affichage du dataLayer
  2. Côté GTM : utilisez une variable cookie ou localStorage pour vérifier si la transaction a déjà été envoyée
  3. Dans GA4 : activez la déduplication via l'identifiant de transaction (GA4 ignore automatiquement les doublons avec le même transaction_id sur une courte fenêtre)

Débogage du tracking e-commerce

Mode Aperçu GTM

Activez le mode Aperçu GTM (bouton Preview dans GTM) et naviguez sur votre site. Pour chaque événement dataLayer déclenché, GTM affiche :

  • L'objet dataLayer complet
  • Les tags déclenchés ou non
  • Les variables évaluées

Vérifiez que l'objet ecommerce est bien peuplé pour chaque événement et que le tag GA4 se déclenche.

Rapport Temps réel GA4

Dans GA4 > Rapports > Temps réel, filtrez par l'événement purchase. Chaque transaction de test doit apparaître dans les 60 secondes avec le bon montant.

Extension Google Analytics Debugger

L'extension Chrome GA Debugger (ou DebugView dans GA4) affiche les hits envoyés à GA4 en temps réel avec tous leurs paramètres. C'est l'outil le plus précis pour vérifier que transaction_id, value et currency sont correctement transmis.

Rapport DebugView GA4

Dans GA4 > Configurer > DebugView, activez le mode debug en ajoutant le paramètre debug_mode: true dans votre tag de configuration GA4 (en test uniquement). Vous voyez chaque événement en temps réel avec ses paramètres.

Les rapports e-commerce dans GA4

Une fois le tracking actif, les données alimentent la section Monétisation dans GA4 :

  • Vue d'ensemble : revenus, transactions, valeur moyenne de commande, ARPU
  • Transactions : liste des transactions avec montant, produits, date
  • Achat article : revenus et quantités par produit (basé sur item_name ou item_id)
  • Catégories : performances par item_category

Les rapports apparaissent généralement dans les 24 à 48 heures après l'activation du tracking. Les données en temps réel sont visibles immédiatement dans le rapport Temps réel.

FAQ : tracking e-commerce GA4

Faut-il inclure la TVA dans le paramètre value ?

C'est à vous de décider, mais vous devez être cohérent. La plupart des e-commerçants B2C utilisent le montant TTC (ce que paie réellement le client). Les B2B préfèrent le HT. L'important est de ne pas changer de logique en cours de route pour ne pas créer de rupture dans vos données historiques. Renseignez séparément le paramètre tax pour garder la visibilité sur la TVA.

Comment suivre les remboursements (refund) ?

L'événement refund suit exactement la même structure que purchase, avec le transaction_id de la commande remboursée et les produits concernés. Un remboursement partiel ne liste que les articles remboursés avec leurs quantités. GA4 déduit automatiquement les revenus correspondants de vos rapports Monétisation.

Mon CMS (Shopify, WooCommerce, Prestashop) gère-t-il le tracking GA4 automatiquement ?

Partiellement. Les plugins officiels GA4 de Shopify et WooCommerce gèrent le data layer e-commerce de base (purchase, add_to_cart), mais la configuration fine (paramètres custom, gestion du Consent Mode, événements avancés) nécessite souvent des ajustements via GTM. Vérifiez toujours avec DebugView que les paramètres transaction_id, value et currency sont correctement envoyés.

Pourquoi mes revenus GA4 sont-ils inférieurs à ceux de mon back-office ?

Plusieurs causes possibles : le Consent Mode réduit le suivi pour les utilisateurs ayant refusé les cookies (GA4 modélise mais ne collecte pas les données réelles), des bloqueurs de publicités bloquent les tags GTM, ou l'événement purchase ne se déclenche pas sur tous les canaux de paiement (certains prestataires de paiement redirigent vers des pages externes). Vérifiez le taux de "transactions trackées / transactions réelles" dans votre back-office sur une période de référence.


Kenoby implémente et audite le tracking e-commerce GA4 pour vous assurer que chaque euro de revenu est correctement mesuré et attribué.