Data & Tracking
Data layer : ce que c'est et comment la configurer pour GTM et GA4
Copier pour l'IA
Une data layer est un objet JavaScript sur votre site web dans lequel vous mettez à disposition des informations structurées pour Google Tag Manager et la balise Google. Au lieu que GTM doive deviner ce qui se passe sur une page en observant des boutons et des textes, c’est votre site qui le dit lui-même : « une demande de devis a été envoyée, pour le service X, via le formulaire Y ». Votre tracking devient ainsi plus fiable, plus facile à tester et moins sensible à chaque modification de votre site. Dans cet article, vous découvrez comment fonctionne une data layer, comment la mettre en place et quelles erreurs éviter.
Qu’est-ce qu’une data layer ?
Dans sa documentation pour Tag Manager, Google décrit cet objet comme « un objet utilisé par Google Tag Manager et gtag.js pour transmettre des informations aux balises ». Votre site place des données et des événements dans cet objet, GTM les lit via des variables et les utilise dans des déclencheurs et des balises.
Concrètement, il s’agit d’une liste (array) nommée dataLayer. Chaque fois que quelque chose se produit, vous y ajoutez un objet avec dataLayer.push() :
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'lead_submit',
'form_id': 'devis',
'lead_type': 'demande_de_devis',
'service': 'audit-tracking'
});
La clé event joue un rôle particulier : GTM l’utilise pour déclencher des balises. Les autres clés deviennent des variables que vous pouvez transmettre à GA4, Google Ads ou Meta.
Pourquoi utiliser une data layer ?
Sans cette couche, vous construisez votre tracking sur ce que GTM peut voir sur la page : un clic sur un bouton avec un certain texte, une classe CSS, l’URL d’une page de remerciement. Cela fonctionne jusqu’à ce que quelqu’un modifie le texte du bouton, remplace le formulaire par un nouveau plugin ou supprime la page de remerciement. Votre mesure s’arrête alors, souvent sans que personne ne s’en aperçoive.
| Tracking sur la page (DOM) | Tracking via la data layer | |
|---|---|---|
| Source des données | Boutons, textes, classes CSS, URL | Pushes explicites depuis le site |
| Sensibilité à une refonte | Élevée | Faible, tant que le push reste en place |
| Informations supplémentaires | Uniquement ce qui est visible | Aussi des valeurs internes : service, type de lead, valeur de commande |
| Testable et documentable | Difficilement | Oui, c’est un contrat fixe |
| Travail pour les développeurs | Aucun | Ponctuel, plus la maintenance |
Chez Suivo, une mise à jour de formulaire a interrompu la mesure des leads sans le moindre message d’erreur. La solution a été un listener de formulaire robuste et une couche d’événements propre, pour qu’une prochaine mise à jour ne casse plus la mesure. Chez Kaizo, la démo réservée a reçu son propre événement dans la data layer, afin que GA4, Google Ads et Meta voient exactement la même conversion.
Mettre en place une data layer en 6 étapes
1. Rédigez un plan de mesure
Déterminez d’abord quelles actions vous voulez mesurer et quelles informations s’y rattachent. Pour un site B2B, il s’agit souvent d’une demande de devis, d’une réservation de démo, d’un formulaire de contact, d’un téléchargement, d’un clic sur un numéro de téléphone. Pour chaque événement, vous fixez le nom et les paramètres, par exemple lead_submit avec form_id, lead_type et service. Utilisez autant que possible les événements recommandés de GA4, pour que vos rapports et Google Ads puissent directement les exploiter.
2. Rédigez une spécification pour votre développeur
Indiquez dans un document, pour chaque événement, quand le push doit avoir lieu (seulement après un envoi réussi, pas au clic sur le bouton), quelles clés il contient et quelles valeurs sont autorisées. Si vous travaillez avec un CMS ou des formulaires CRM, comme WordPress avec Gravity Forms, HubSpot ou des formulaires reliés à Teamleader ou Odoo, notez aussi d’où provient techniquement le push.
3. Déclarez la data layer avant le snippet GTM
Google recommande de déclarer l’objet avant le chargement de Tag Manager, avec window.dataLayer = window.dataLayer || [];. Ainsi, vous n’écrasez jamais des données déjà présentes. N’écrivez donc jamais dataLayer = [...] plus bas dans votre code : vous effaceriez tout ce qui s’y trouvait auparavant.
4. Laissez le site pousser les événements
Le développeur ajoute les pushes aux moments convenus. Pour l’e-commerce, suivez la structure de l’e-commerce GA4. Google y vide d’abord l’objet e-commerce précédent, pour que d’anciennes données produit ne se greffent pas sur l’événement suivant :
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
'event': 'purchase',
'ecommerce': {
'transaction_id': 'T_12345',
'value': 72.05,
'currency': 'EUR',
'items': [{ 'item_id': 'SKU_1', 'item_name': 'Product', 'price': 72.05, 'quantity': 1 }]
}
});
Pour un achat, transaction_id, value, currency et items sont les champs qui doivent toujours y figurer. Une currency manquante est un classique : le chiffre d’affaires n’arrive alors pas, ou arrive de façon erronée.
5. Construisez les variables et les déclencheurs dans Google Tag Manager
Dans GTM, créez pour chaque clé une variable de type « Data Layer Variable » (par exemple form_id), et pour chaque événement un déclencheur de type « Custom Event » portant exactement le même nom que dans le push. Reliez-les ensuite à vos balises : un événement GA4, une conversion Google Ads, un événement Meta. Pour en savoir plus sur le conteneur lui-même, lisez notre article sur Google Tag Manager.
6. Testez et documentez
Ouvrez le mode prévisualisation et vérifiez dans Google Tag Assistant, dans l’onglet Data Layer, que le push arrive au bon moment et avec les bonnes valeurs. Pour un coup d’œil rapide, vous pouvez aussi utiliser la console de votre navigateur : tapez dataLayer et vous voyez la liste complète. Dans nos projets, nous consignons le résultat dans un document partagé, pour que quiconque travaillera plus tard sur le site sache quels pushes ne doivent pas disparaître.
Les règles essentielles pour une data layer propre
- Sensible à la casse. L’objet s’appelle
dataLayer, pasdatalayer. Vos clés et noms d’événements doivent eux aussi correspondre exactement à ce que GTM attend. - Utilisez des guillemets autour des clés. Google recommande
{'variable_name': 'value'}. - Par page. Selon Google, une telle variable n’existe que tant que le visiteur reste sur la page en cours. Si vous avez besoin d’une valeur sur chaque page, poussez-la à nouveau à chaque chargement de page.
- Une seule data layer par page. Vous pouvez renommer l’objet, mais Google ne prend en charge qu’un seul objet
dataLayerpar page. - Des noms fixes. Choisissez une convention de nommage (par exemple des minuscules avec des underscores) et tenez-vous-y dans tous les événements.
Pas de données personnelles dans votre data layer vers GA4
Il est tentant de pousser aussi l’adresse e-mail ou le numéro de téléphone d’un lead. Pour GA4, c’est interdit : la politique de Google sur les données personnelles stipule que vous n’envoyez à Google aucune donnée qu’il pourrait reconnaître comme permettant d’identifier une personne, notamment les adresses e-mail et les numéros de téléphone. Si vous voulez utiliser ces données pour les enhanced conversions dans Google Ads, cela passe par la voie prévue à cet effet, hachée, et uniquement avec consentement. Tenez aussi compte du consentement : sans autorisation, vos balises ne peuvent pas transmettre les données avec des cookies, même si elles sont prêtes dans l’objet. Pour en savoir plus, lisez notre article sur le consent mode v2 pour Google Ads.
Les erreurs fréquentes avec la data layer
- Le push a lieu au clic, pas après l’envoi. Chaque formulaire échoué ou à moitié rempli compte alors comme un lead.
- L’objet est écrasé après le snippet GTM. Un
dataLayer = []dans un thème ou un plugin efface tout ce qui était prêt auparavant. - Des noms différents dans le push et dans GTM.
leadSubmitdans le code,lead_submitdans le déclencheur : la balise ne se déclenche jamais. - D’anciennes données e-commerce qui restent en mémoire. Sans
ecommerce: null, unpurchasepeut embarquer des produits d’une étape précédente. - Des single-page apps sans page views virtuelles. Un site en React ou Vue ne charge pas de nouvelles pages, vous devez donc pousser vous-même un événement à chaque changement de route.
Vous trouverez des problèmes similaires côté GA4 dans notre article sur les erreurs de tracking dans Google Analytics.
Questions fréquentes
Quelle est la différence entre une data layer et Google Tag Manager ?
La data layer, ce sont les informations que votre site met à disposition. Google Tag Manager est l’outil qui lit ces informations et décide quelles balises se déclenchent et ce qu’elles transmettent. L’objet fonctionne aussi sans GTM avec la balise Google (gtag.js), mais ne donne sa pleine mesure qu’avec GTM.
Ai-je besoin d’un développeur pour une data layer ?
Pour les pushes depuis votre site, généralement oui, ou d’un plugin qui les génère pour votre CMS ou votre boutique en ligne. Les variables, déclencheurs et balises dans GTM, un marketeur ou un spécialiste tracking peut les configurer lui-même.
Comment consulter la data layer dans Chrome ?
Ouvrez les outils de développement, allez dans la console et tapez dataLayer. Vous voyez alors tous les pushes sur cette page. Plus lisible : le mode prévisualisation de GTM, où l’onglet Data Layer montre, pour chaque moment, ce qui est arrivé.
Qu’est-ce qu’un datalayer.push ?
dataLayer.push() est la fonction avec laquelle vous ajoutez un nouvel objet à la data layer. Si cet objet contient une clé event, GTM peut y associer un déclencheur.
La data layer a-t-elle un rapport avec un data warehouse ?
Non. En data engineering, on parle aussi de « data layers » (par exemple bronze, silver et gold dans un data warehouse). C’est une autre notion. Dans le tracking marketing, il s’agit de l’objet dataLayer sur votre site.
Faire mettre en place une data layer ?
Une dataLayer bien conçue est le fondement de votre GA4, de Google Ads, de Meta et du server side tagging. Notre spécialiste tracking rédige le plan de mesure et la spécification pour votre développeur, construit le conteneur et teste chaque événement. Vous voulez d’abord savoir où en est votre configuration actuelle ? Commencez par un audit tracking. Pour une vue d’ensemble, lisez notre article sur le suivi des conversions, ou contactez-nous.
Scan gratuit de votre site
Indiquez votre site et recevez en quelques minutes une analyse automatique avec des points d'amélioration techniques et SEO concrets. Sans discours commercial.
Nous utilisons vos données uniquement pour votre scan. Pas de spam, désinscription à tout moment.