2015-04-24 1 views
1

J'utilise le script GoogleTagManager et l'objet dataLayer. Je lis dans la documentation que l'objet dataLayer doit être rempli au-dessus du script GTM. Mais j'ai besoin d'ajouter un détail du produit lorsque l'utilisateur choisit le produit et cela arrive après le chargement du script GTM. Si j'utilise dataLayer.push (chosenObject), cette action appellera-t-elle le script Google Tag Manager? Est-ce que ça marchera?Interaction avec Google Tag Manager et dataLayer

Répondre

2

Oui, vous pouvez envoyer des variables à dataLayer à tout moment, la "astuce" consiste à accéder aux données de dataLayer dans vos tags (plus si vous déclarez dataLayer au-dessus du code GTM que vous n'appelez pas " push "- vous le déclarez comme une variable de sorte que vous pouvez pousser plus tard).

Il est nécessaire de déclarer les données dans dataLayer si vous voulez l'utiliser dès le chargement de la page - le déclencheur pageview standard s'exécutera dès que le code GTM est chargé (ie avant le chargement de la page), De toute évidence, GTM ne peut accéder qu'aux données qui l'ont précédé dans le code. Déclencher des tags dans GTM prend un événement (ne pas confondre avec les événements Google Analytics ou les événements Javascript, l'événement dans GTM est juste un nom de variable réservé).

Quelques événements sont générés implicitement par GTM: l'événement pageload, les événements DOM ready, click et submit.

Si à un moment plus tard, vous voulez déclencher un élément pour répondre à une valeur que vous a poussé à la couche de données dont vous avez besoin d'un événement personnalisé:

dataLayer.push({ 
'event':'i_pushed_a_value', 
'payload' : 'this is my data' 
}) 

(s'il vous plaît pas que les données se key-> paires de valeurs).

Maintenant vous pouvez avoir un déclencheur qui déclenche l'événement i_pushed_a_value, et vous pouvez utiliser une variable personnalisée du type dataLayer (entrez la clé, dans ce cas payload, comme la clé dans la configuration variable) qui contient vos données.

+0

Merci pour l'explication! Donc, si je n'ai pas besoin d'envoyer les données quand la page se charge, je peux simplement étendre l'objet dataLayer avec le produit choisi et utiliser dataLayer.push (chosenObject) avec le code js? – AlexSmith

+0

Je suggère que vous déclariez une variable dataLayer (vide) au-dessus du code du gestionnaire de tags pour être du côté de la sécurité (vous pouvez donc être sûr qu'il y a quelque chose à pousser même si le code GTM n'a pas été exécuté) en mettant dataLayer = []; en haut (dans les balises de script, bien sûr). En dehors de cela, vous pouvez simplement utiliser la poussée. –