La couche de données est un objet utilisé par Google Tag Manager et gtag.js pour transmettre aux tags. Les événements ou les variables peuvent être transmis via la couche de données. les déclencheurs peuvent être configurés en fonction des valeurs des variables.
Par exemple, si vous déclenchez une campagne
lorsque la valeur de purchase_total
est supérieure à 100 $ou si, en fonction de
des événements spécifiques, tels que lorsqu'un utilisateur clique sur un bouton, votre couche de données peut être
configurés pour rendre ces données disponibles pour vos balises. L'objet de couche de données est
structuré au format JSON. Exemple :
{
event: "checkout_button",
gtm: {
uniqueEventId: 2,
start: 1639524976560,
scrollThreshold: 90,
scrollUnits: "percent",
scrollDirection: "vertical",
triggers: "1_27"
},
value: "120"
}
Les balises Google sont conçues pour référencer facilement des informations ajoutées au la couche de données de manière organisée et prévisible, plutôt que par le biais d'une analyse variables, informations sur les transactions, catégories de pages et autres signaux disséminés sur l'ensemble de votre page. Une implémentation de la couche de données contenant des variables et associées, vous aurez ainsi l'assurance que des données pertinentes sont disponibles lorsque vos les tags en ont besoin.
Installation
Pour les installations de pages Web Tag Manager, vous devez créer une couche de données. La le code surligné ci-dessous montre où la couche de données est établie, avant le tag Le gestionnaire est chargé.
<script>
window.dataLayer = window.dataLayer || [];
</script>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->
Dans les intégrations gtag.js standards où la balise a été copiée du produit et ajouté à une page Web, le code établissant la couche de données est fournies. Dans les implémentations personnalisées de la balise Google, ajoutez le code de la couche de données au début de votre script, comme illustré dans l'exemple ci-dessous:
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments)};
gtag('js', new Date());
gtag('config', 'TAG_ID');
</script>
Traitement des informations de la couche de données
Lorsqu'un conteneur est chargé, Tag Manager commence à traiter toutes les données en file d'attente les messages push au niveau de la couche. Tag Manager traite les messages selon le principe "premier entré, premier sorti". Chaque message est traité un par un, dans l'ordre de sa réception. Si le message est un événement, les balises avec des conditions de déclenchement qui ont été remplies se déclenche avant que Tag Manager ne passe au message suivant.
Si un appel gtag()
ou dataLayer.push()
est effectué par le code sur une page, dans une
dans un modèle, ou dans une balise HTML personnalisée, le message associé est mis en file d'attente et
traité après l'évaluation de tous les autres messages en attente. Cela signifie que toute
les valeurs mises à jour de la couche de données ne seront pas nécessairement disponibles pour le prochain événement.
Pour gérer ces cas de figure, vous devez ajouter un nom d'événement à un message tel quel
envoyées à la couche de données, puis écoutez le nom de l'événement avec un paramètre
Déclencheur d'événements.
Utiliser une couche de données avec des gestionnaires d'événements
L'objet dataLayer
utilise une commande event
pour lancer l'envoi d'événements.
La balise Google et Tag Manager utilisent une variable spéciale de couche de données appelée
event
utilisé par les écouteurs d'événements JavaScript pour déclencher des balises lorsqu'un utilisateur
interagit avec les éléments du site Web. Par exemple, vous pouvez déclencher une conversion
balise de suivi lorsqu'un utilisateur clique sur un bouton de confirmation d'achat. Événements possibles :
appelé chaque fois qu'un utilisateur interagit avec des éléments du site Web tels que des liens, des boutons,
les défilements, etc.
Cette fonctionnalité est obtenue en appelant dataLayer.push()
lorsqu'un événement
se produit. La syntaxe permettant d'envoyer un événement avec dataLayer.push()
est la suivante:
dataLayer.push({'event': 'event_name'});
Où event_name
est une chaîne décrivant l'événement, par exemple 'login'
,
purchase
ou search
.
Utiliser dataLayer.push()
pour envoyer des données d'événement lorsqu'une action que vous souhaitez effectuer se produit
à mesurer. Par exemple, pour envoyer un événement lorsqu'un utilisateur clique sur un bouton, modifiez
le gestionnaire onclick
du bouton pour appeler dataLayer.push()
:
<button onclick="dataLayer.push({'event': 'login'});">Button 1</button>
Vous pouvez transmettre des variables de couche de données à la couche de données de manière dynamique des informations telles que les valeurs saisies ou sélectionnées dans un formulaire, les métadonnées associées avec une vidéo que regarde le visiteur, la couleur d'un produit (une voiture, par exemple) ; personnalisées par le visiteur, les URL de destination des liens sur lesquels les utilisateurs ont cliqué, etc.
Comme pour les événements, cette fonctionnalité est obtenue en appelant l'API push()
.
pour ajouter ou remplacer des variables de couche de données dans la couche de données. La syntaxe de base pour
Pour définir des variables de couche de données dynamiques, procédez comme suit:
dataLayer.push({'variable_name': 'variable_value'});
Où 'variable_name'
est une chaîne qui indique le nom de la couche de données.
à définir, et 'variable_value'
est une chaîne indiquant la valeur de
la variable de couche de données à définir ou à remplacer.
Par exemple, pour définir une variable de couche de données avec une préférence de couleur lorsqu'un visiteur utilise un outil de personnalisation de produit, vous pouvez utiliser les URL dynamiques suivantes Variable de couche de données:
dataLayer.push({'color': 'red'});
Une seule transmission, plusieurs variables
Vous pouvez transmettre plusieurs variables et événements à la fois:
dataLayer.push({
'color': 'red',
'conversionValue': 50,
'event': 'customize'
});
Conserver les variables de couche de données
Pour conserver les variables de couche de données entre les pages Web, appelez dataLayer.push()
après
la couche de données est instanciée à chaque chargement de page, puis transfère les variables
à la couche de données. Si vous souhaitez que ces variables de couche de données soient disponibles pour
gestionnaire lorsque le conteneur est chargé, ajoutez un appel dataLayer.push()
au-dessus de
le code du conteneur Tag Manager, comme indiqué ci-dessous.
<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
'event': 'Pageview',
'pagePath': 'https://www.googleanalytics.dev/pancakes',
'pageTitle': 'Pancake Event Signup',
'visitorType': 'customer'
});
</script>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->
Chaque variable déclarée dans l'objet de couche de données ne sera conservée que
le visiteur reste sur la page actuelle. Variables de couche de données pertinentes
sur plusieurs pages (par exemple, visitorType
) doivent être déclarés dans la couche de données sur chaque
de votre site Web. Même si vous n'avez pas besoin de placer le même ensemble de variables
la couche de données sur chaque page, vous devez utiliser une convention d'attribution de noms cohérente. Dans
Autrement dit, si vous définissez la catégorie de la page sur la page d'inscription à l'aide d'une variable
appelé pageCategory
, vos pages produit et d'achat doivent utiliser la méthode
la variable pageCategory
également.
Dépannage
Voici quelques conseils pour résoudre les problèmes liés à la couche de données:
Ne remplacez pas la variable window.dataLayer
:lorsque vous utilisez les données
(par exemple, dataLayer = [{'item': 'value'}])
, il écrasera tous les
valeurs existantes dans dataLayer
. Les installations Tag Manager doivent instancier
la couche de données aussi haut que possible dans le code source, au-dessus du conteneur
à l'aide de window.dataLayer =
window.dataLayer || [];
. Une fois dataLayer
déclaré, utilisez
dataLayer.push({'item': 'value'})
pour lui ajouter des valeurs, et si ces
doivent être disponibles dans Tag Manager lors du chargement de la page,
l'appel dataLayer.push()
doit être situé au-dessus du code du conteneur Tag Manager,
bien.
Le nom de l'objet dataLayer
est sensible à la casse:si vous essayez de transférer une variable
ou un événement sans la casse appropriée, l'envoi ne fonctionnera pas.
datalayer.push({'pageTitle': 'Home'}); // Bad (datalayer in lowercase)
dataLayer.push({'pageTitle': 'Home'}); // Good (dataLayer in camel case)
dataLayer.push
doit être appelé avec des objets JavaScript valides. Toute la couche de données
les noms de variables doivent être placés entre guillemets.
dataLayer.push({new-variable: 'value'}); // Bad - no quote marks
dataLayer.push({'new-variable': 'value'}); // Good - proper quote marks
Faites en sorte que les noms des variables soient cohérents sur toutes les pages:si vous utilisez des variables différentes pour un même concept sur des pages différentes, vos balises ne seront pas se déclencher systématiquement dans tous les endroits souhaités.
Mauvaise:
// Homepage:
dataLayer.push({'visitorType': 'low-value'});
// Checkout Page:
dataLayer.push({'visitor_type': 'high-value'});
Bonne:
// Homepage:
dataLayer.push({'visitorType': 'low-value'});
// Checkout Page:
dataLayer.push({'visitorType': 'high-value'});
Renommer la couche de données
Nom par défaut de l'objet de couche de données initié par la balise Google
Tag Manager est dataLayer
. Si vous préférez utiliser un autre nom pour votre
la couche de données, vous pouvez le faire en modifiant la valeur du paramètre de couche de données dans votre
balise Google ou extrait conteneur Tag Manager avec le nom de votre choix.
gtag.js
Ajoutez un paramètre de requête nommé "l" à l'URL pour définir le nom de la nouvelle couche de données.
Ex. : l=myNewName
Mettre à jour toutes les instances de dataLayer
dans la balise Google
l'extrait de code au nouveau nom.
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID&l=myNewName"></script>
<script>
window.myNewName = window.myNewName || [];
function gtag(){myNewName.push(arguments);}
gtag('js', new Date());
gtag('config', 'TAG_ID');
</script>
Tag Manager
Remplacez la valeur du paramètre de couche de données (en surbrillance ci-dessous) dans votre conteneur l'extrait de code avec le nom de votre choix.
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','myNewName','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->
Une fois renommées, toutes les références à votre couche de données (lorsque vous déclarez les données
au-dessus de l'extrait, ou lors de l'envoi d'événements ou de variables de couche de données dynamiques
à la couche de données à l'aide de la commande .push()
) doivent être ajustés pour refléter votre
nom de la couche de données personnalisée:
<script>
myNewName = window.dataLayer || [];
myNewName.push({'variable_name': 'variable_value'});
</script>
Méthodes de couche de données personnalisées
Si vous transmettez une fonction à la couche de données, elle sera appelée avec ce paramètre défini sur modèle de données abstrait. Ce modèle de données abstrait peut obtenir et définir les valeurs d'une clé et permet de réinitialiser la couche de données.
set
La fonction set
du modèle de données abstrait vous permet de définir les valeurs à récupérer
via "get".
window.dataLayer.push(function() {
this.set('time', new Date());
});
get
La fonction get
du modèle de données abstrait vous permet d'extraire des valeurs
ont été définies.
window.dataLayer.push(function() {
const existingTime = this.get('time');
if (existingTime !== null) {
// Change behavior based on whether or not this value exists...
} else {
// ...
}
})
réinitialiser
La fonction reset
du modèle de données abstrait vous permet de réinitialiser les données du
la couche de données. Ceci est particulièrement utile avec une page qui reste ouverte et où les données
la taille d’une couche continue
de croître avec le temps. Pour réinitialiser la couche de données, utilisez la méthode
code suivant:
window.dataLayer.push(function() {
this.reset();
})