Qu'est-ce qu'un data layer et comment le structurer pour GTM ?
Le rôle du data layer
Le data layer est un objet JavaScript (un tableau d’objets) qui sert d’interface structurée entre votre site web et Google Tag Manager. Il permet de transmettre des informations contextuelles (données de page, d’utilisateur, de transaction) à GTM sans que les balises aient besoin de scraper le DOM pour les obtenir.
Concrètement, c’est une variable globale window.dataLayer initialisée avant le chargement du conteneur GTM. Chaque fois qu’un événement se produit ou qu’une donnée devient disponible, votre site pousse un objet dans ce tableau via dataLayer.push(). GTM écoute ces push et déclenche les balises correspondantes. Cette approche découple la collecte de données de la couche de présentation, ce qui rend le tracking plus fiable et plus maintenable.
Structurer le data layer pour l’e-commerce
Pour le suivi e-commerce GA4, Google recommande une structure précise basée sur des événements standardisés : view_item, add_to_cart, begin_checkout, purchase. Chaque événement inclut un objet ecommerce contenant les détails des produits (item_id, item_name, price, quantity, item_category) et les informations de transaction (transaction_id, value, currency).
La règle fondamentale est de pousser un événement ecommerce: null avant chaque nouvel événement e-commerce pour vider le contenu précédent et éviter les contaminations de données entre étapes du funnel. C’est l’erreur la plus fréquente et la plus difficile à diagnostiquer.
Bonnes pratiques et erreurs à éviter
Initialisez le data layer avant l’extrait GTM dans le code HTML. Ne modifiez jamais directement les objets déjà présents dans le tableau, utilisez toujours dataLayer.push(). Nommez vos événements de manière cohérente et documentez la structure dans un plan de marquage partagé avec les équipes techniques et marketing.
Évitez de pousser des données sensibles (email en clair, données bancaires) dans le data layer : il est accessible à tous les scripts de la page. Pour les événements personnalisés GA4, assurez-vous que les noms et paramètres dans le data layer correspondent exactement à ce que vos balises GTM attendent.