Définition courte
Un dataLayer (couche de données en français) n’est rien d’autre qu’un espace virtuel sur le navigateur d’un utilisateur où vous pouvez stocker des informations.
Il est généralement lié à un Tag Management System (gestionnaire de balise en français) comme Google Tag Manager.
L’objectif principal du dataLayer est de stocker des informations relatives à la visite d’un utilisateur sur votre site web afin que le Tag Management System déployé puisse les utiliser dans ses balises et déclencheurs.
En utilisant les données envoyées dans le dataLayer, le Tag Management System sera en mesure d’envoyer les bonnes informations, au bon moment, dans vos différents outils tiers comme Google Analytics 4, Matomo Analytics, Piano Anlytics, Facebook Ads, etc.
Techniquement, le dataLayer est un objet JavaScript (un tableau), qui stocke temporairement des informations.
C’est un intermédiaire dans le processus de collecte de données entre ce qu’il se passe sur votre site web et votre Tag Management System (Google Tag Manager).
Voici un petit schéma explicatif :
Si vous voulez aller plus loin sur le sujet, c’est un peu plus bas que ça se passe 👇 🤓
10 ressources data marketing à forte valeur ajoutée
1. Formation sur Google Analytics 4
2. Formation sur Google Tag Manager
3. Formation sur les paramètres UTM
4. Formation sur le plan de taggage
5. Formation sur Looker Studio
7. Formation sur Google Tag Manager Server-Side
8. Formation sur l’attribution marketing
Pour aller plus loin
Google Tag Manager étant le Tag Management System le plus utilisé au sein de l’agence web analytics boryl parce qu’il est gratuit, performant, en perpétuelle évolution (notamment sur les sujets de tracking Server-Side) et disposant d’une importante communauté, nous avons accès à la suite de ce contenu sur ce dernier.
Au passage, voici plusieurs formations qui pourraient vous intéresser :
Formation sur Google Tag Manager (2023)
Formation sur le plan de taggage GA4/GTM (2023)
Formation sur Google Tag Manager Server-Side (2023)
Formation sur Google Analytics 4 (2023)
À quoi ressemble un dataLayer Google Tag Manager ?
Comme dit un peu plus haut, le dataLayer est un tableau contenant des informations. Voici ce à quoi ressemble un dataLayer spécifique à Google Tag Manager :
Comme vous pouvez le voir, les données y sont stockées sous la forme de paires clé valeur (le nom de la variable et sa valeur).
Une bonne pratique consiste à structurer les informations stockées de manière cohérente de façon à pouvoir s’y retrouver facilement.
On préférera ainsi (par exemple) regrouper l’intégralité des données utilisateur dans un dictionnaire commun. Voici ce à quoi cela pourrait ressembler :
Les deux exemples présentés ci-dessus sont corrects, mais le second est mieux structuré que le premier !
L’initialisation du dataLayer Google Tag Manager
Dès lors que vous implémentez la balise conteneur de Google Tag Manager sur toutes les pages de votre site web, à chaque chargement de page, le dataLayer sera initialisé. Voici à quoi ressemble la balise conteneur de Google Tag manager :
Cependant, pour des questions de sécurité, nous préférerons déclencher un script d’initialisation du dataLayer avant cette balise conteneur afin de s’assurer d’une bonne initialisation. Voici à quoi ressemble ce script :
Ce script initialise le dataLayer s’il n’existe pas, ou ne fait rien s’il existe déjà.
Il est très courant d’initialiser le dataLayer avec des variables “contextuelles” qui peuvent être liées à la page en elle-même ou bien à l’utilisateur dans le but de pouvoir s’en servir dans les événements collectés lors d’une page vue.
Une variable contextuelle peut par exemple être :
- Le type de la page vue concernée (article de blog, définition du glossaire, etc)
- La catégorie de la page vue concernée (web analytics, business intelligence, etc)
- Un ID utilisateur
- Etc
Les informations envoyées dans le dataLayer avant la balise conteneur de Google Tag Manager (GTM) sont considérées comme des informations d’initialisation.
Qu’est-ce que dataLayer.push() ?
“dataLayer.push()” est une méthode JavaScript que vous pouvez utiliser sur un objet JavaScript de type tableau (comme le dataLayer par exemple).
Cette méthode permet d’envoyer des informations dans le dataLayer Google Tag Manager.
Voici un exemple d’envoi de données dans le dataLayer avec la méthode dataLayer.push() :
Les 2 “manières” d’envoyer des informations dans le dataLayer Google Tag manager
Lorsque vous envoyez des données dans le dataLayer, vous pouvez choisir d’y joindre ou non la variable ‘event’ (comme dans l’exemple juste au-dessus).
L’ajout de la paire clé-valeur ‘event’ : ‘event_name’ lors de l’envoi d’information dans le dataLayer induit un changement d’état de ce dernier qui lui-même va provoquer une évaluation des conditions d’exécution des déclencheurs du conteneur Google Tag Manager concerné, et au besoin, déclencher une ou plusieurs balises.
À l’inverse, une information envoyée dans le dataLayer sans la paire clé-valeur ‘event’ : ‘event_name’ ne provoquera pas un changement d’état du dataLayer, pas d’évaluation des conditions d’exécution des déclencheurs, et donc ne pourra pas déclencher une balise.
Quelques autres informations importantes sur le dataLayer Google Tag Manager
Voici d’autres points importants à retenir sur le dataLayer Google Tag Manager :
- Le dataLayer a une durée de vie qui s’étend du chargement d’une page, jusqu’au prochain chargement de page. Il est réinitialisé à chaque chargement de page.
- Lorsque la balise conteneur est chargée, Google Tag Manager commence à traiter tous les « push » dans le dataLayer mis en file d’attente. Google Tag Manager traite les « push » selon le principe du premier entré, premier sorti : chaque « push » est traité un par un, dans l’ordre, où il a été reçu.
- Si une variable contextuelle non liée à un événement est envoyée dans le dataLayer alors qu’une autre variable a déjà le même nom, la nouvelle valeur de la variable remplacera la valeur existante (les balises déclenchées précédemment avec l’ancienne valeur ne sont pas affectées).
- Si une variable contextuelle non liée à un événement est envoyée et qu’aucune autre variable n’a le même nom, alors les autres variables continueront d’exister, et la nouvelle sera ajoutée.
Définitions similaires