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
purchaseune seule fois par commande et le vérifier dans le Preview serveur, DebugView et les rapports Monetization.
Avant de commencer
01 Les événements e-commerce recommandés
GA4 alimente ses rapports e-commerce uniquement à partir des événements portant les noms recommandés. Les noms personnalisés comme productView ou checkout_step_2 sont enregistrés, mais n'apparaissent jamais comme vues de produit ou comme revenus. Utilisez exactement ces noms, en minuscules :
-
view_item_listetselect_item: un visiteur voit une liste de produits (page catégorie, résultats de recherche) et clique sur un produit de cette liste. -
view_item: une page détail produit. -
add_to_cart,remove_from_cartetview_cart: les actions sur le panier. -
begin_checkout,add_shipping_infoetadd_payment_info: les étapes du tunnel de commande. -
purchase: la commande finalisée. -
refund: un remboursement total ou partiel, en général envoyé depuis votre backend plutôt que depuis le navigateur.
Chaque événement contient un tableau items, et chaque article nécessite au moins item_id ou item_name. Quand un événement a une value, il lui faut aussi une currency (par exemple EUR), sinon GA4 ne peut pas la convertir en revenu. purchase et refund nécessitent en plus un transaction_id.
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.
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 }]
}
});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.
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 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 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 Sous More Settings, ouvrez Ecommerce, cochez Send Ecommerce data et choisissez Data Layer comme source de données.
- 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_idréel et unique. Jamais une chaîne vide : GA4 traite tous les achats dont letransaction_idest 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_idde 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 - ecommercese 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 voyezitemsavecitem_id,priceetquantity, ainsi quevalueetcurrency. - 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