Aller au contenu

L'e-commerce GA4 de bout en bout via votre conteneur serveur

Une fois GA4 passé par votre conteneur serveur, l'e-commerce se joue surtout dans le conteneur web. Votre site pousse chaque action de la boutique dans le dataLayer, une seule balise d'événement GA4 l'envoie à https://sgtm.example.com, et la balise GA4 côté serveur que vous avez déjà la transmet avec tous les produits. Dans cette leçon, vous mettez en place les événements, la balise et le déclencheur, protégez l'achat contre le double comptage et contrôlez les données en chemin.

Intermédiaire 13 min de lecture

Ce que vous allez apprendre

  • Savoir quels événements e-commerce recommandés GA4 attend et quels paramètres chacun nécessite.
  • Pousser des données e-commerce propres dans le dataLayer, en vidant d'abord l'objet précédent.
  • Envoyer tous les événements e-commerce avec une seule balise d'événement GA4 et un seul déclencheur Custom Event.
  • Déclencher purchase une seule fois par commande et le vérifier dans le Preview serveur, DebugView et les rapports Monetization.

Avant de commencer

  • GA4 dans le conteneur web qui envoie vers votre conteneur serveur (leçon 3).
  • La balise GA4 côté serveur déclenchée sur Client Name égal à GA4 (leçon 4).
  • Un développeur ou une extension de boutique capable de pousser des données dans le dataLayer sur les pages produit, panier et commande.

02 Poussez les données dans le dataLayer

Chaque push se fait en deux temps : d'abord ecommerce: null, puis l'événement avec un nouvel objet ecommerce. Le dataLayer fusionne les objets : sans cette remise à zéro, les articles de l'événement précédent peuvent se retrouver dans le suivant, par exemple un produit de view_item qui atterrit dans add_to_cart.

js
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
  event: 'view_item',
  ecommerce: {
    currency: 'EUR',
    value: 129.90,
    items: [{ item_id: 'SKU-1', item_name: 'Shoes', item_brand: 'Acme', item_category: 'Footwear', price: 129.90, quantity: 1 }]
  }
});
js
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
  event: 'add_to_cart',
  ecommerce: {
    currency: 'EUR',
    value: 129.90,
    items: [{ item_id: 'SKU-1', item_name: 'Shoes', price: 129.90, quantity: 1 }]
  }
});

Le push d'achat ajoute le transaction_id et la valeur totale de la commande. Générez-le sur la page de remerciement avec les vraies données de commande de votre boutique.

js
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
  event: 'purchase',
  ecommerce: {
    transaction_id: 'T-10293',
    value: 129.90,
    currency: 'EUR',
    items: [{ item_id: 'SKU-1', item_name: 'Shoes', price: 129.90, quantity: 1 }]
  }
});

03 Une seule balise d'événement GA4 pour tous les événements e-commerce

Dans le conteneur web, inutile de créer une balise par événement. Une seule balise Google Analytics: GA4 Event peut lire le nom de l'événement et les données e-commerce dans le dataLayer, et envoyer l'événement qui a été poussé, quel qu'il soit.

  1. 1 Créez un déclencheur de type Custom Event. Comme nom d'événement, saisissez ^(view_item_list|select_item|view_item|add_to_cart|remove_from_cart|view_cart|begin_checkout|add_shipping_info|add_payment_info|purchase)$ et cochez Use regex matching.
  2. 2 Créez une balise de type Google Analytics: GA4 Event. Saisissez votre ID de mesure G-XXXXXXXXXX (ou sélectionnez votre balise Google) et réglez Event Name sur la variable intégrée {{Event}}.
  3. 3 Sous More Settings, ouvrez Ecommerce, cochez Send Ecommerce data et choisissez Data Layer comme source de données.
  4. 4 Associez le déclencheur Custom Event, nommez la balise (par exemple GA4 - ecommerce) et enregistrez.

La balise passe par la même balise Google, dont le server_container_url est déjà réglé sur https://sgtm.example.com depuis la leçon 3 : chaque événement e-commerce arrive donc d'abord dans votre conteneur serveur.

04 Ce qui change dans le conteneur serveur

Rien. Le client GA4 prend en charge les hits e-commerce comme n'importe quel autre événement GA4, et les articles voyagent dans le hit. La balise GA4 de la leçon 4, déclenchée sur Client Name égal à GA4, les transmet à Google Analytics avec value, currency et transaction_id.

Le conteneur serveur reste le bon endroit pour ajouter d'autres destinations. Une balise Meta Conversions API peut lire le même événement purchase, et la commande est ainsi envoyée à Meta à partir des mêmes données (la leçon 7 montre comment partager un event_id pour la déduplication). La balise de conversion Google Ads de la leçon suivante le lit aussi.

05 Comptez chaque achat une seule fois

Google Analytics déduplique les événements purchase ayant le même transaction_id pour les données des flux web. Voyez-y un filet de sécurité, pas la solution. La source habituelle des doublons est la page de remerciement : un visiteur la recharge, y revient via l'historique du navigateur ou ouvre le lien de confirmation reçu par e-mail, et le push d'achat s'exécute de nouveau.

  • N'affichez le push d'achat qu'au premier affichage de la page de remerciement. Gardez un indicateur sur la commande dans votre boutique (par exemple tracked_at) et sautez le push s'il est défini.
  • Envoyez toujours un transaction_id réel et unique. Jamais une chaîne vide : GA4 traite tous les achats dont le transaction_id est une chaîne vide comme une seule transaction.
  • Ne mettez pas de données personnelles comme l'adresse e-mail dans transaction_id. Utilisez le numéro de commande.
  • Envoyez les remboursements avec le transaction_id de la commande d'origine, pour que GA4 puisse les rapprocher.

06 Vérifiez les données de bout en bout

Testez à trois endroits, du serveur vers l'extérieur. Ouvrez le Preview dans les deux conteneurs et parcourez la boutique : consultez un produit, ajoutez-le au panier, passez à la caisse et passez une commande de test.

  • Preview web : la balise GA4 - ecommerce se déclenche sur chaque événement e-commerce et pas sur les autres.
  • Preview serveur : la requête part vers sgtm.example.com, et dans les données d'événement vous voyez items avec item_id, price et quantity, ainsi que value et currency.
  • Preview serveur : la balise GA4 figure sous Tags Fired pour purchase.
  • GA4 DebugView : les événements arrivent avec leurs paramètres et leurs articles.
  • Rapports GA4 Monetization : les achats et les revenus apparaissent. Ces rapports peuvent mettre 24 à 48 heures à se remplir : ne les jugez pas le jour même.

Questions fréquentes

Faut-il une balise serveur distincte pour les événements e-commerce ?

Non. La balise GA4 du conteneur serveur transmet tous les événements pris en charge par le client GA4, articles compris. L'e-commerce ne demande du travail que dans le dataLayer et le conteneur web.

Pourquoi vois-je des achats mais aucun revenu dans GA4 ?

En général, currency manque ou value est envoyée sous forme de chaîne. Vérifiez les données d'événement dans le Preview serveur : value doit être un nombre et currency un code à trois lettres comme EUR.

GA4 supprime-t-il de lui-même les achats en double ?

Pour les flux web, il déduplique les événements d'achat ayant le même transaction_id. Il reste utile de ne déclencher l'achat qu'une fois, car d'autres outils qui lisent le même événement, comme les plateformes publicitaires, peuvent compter une répétition comme une seconde conversion.

Prêt à passer à la pratique ?

Déployez un conteneur GTM serveur sur votre propre domaine en quelques minutes. L'offre gratuite ne demande aucune carte bancaire.

Créer un compte gratuit