Analytics

Google Tag Manager : respecter les règles

Il y a une nouvelle version de ce guide pour GTM V2 ici.

(Dernière mise à jour avril 2014) Je vois le modèle opérationnel de Google Tag Manager comme une analogie avec la théorie du gouvernement à trois branches de Montesquieu (ne partez pas tout de suite, j’avance quelque part avec ça). Nous avons le législatif le pouvoir de Mots clés (ce qu’il faut faire), le judiciaire le pouvoir de macros (explorer le contexte et les circonstances de chaque tag), et le exécutif le pouvoir de des règles (faire en sorte que la balise se produise). Aucun d’entre eux ne fonctionnerait sans les autres, donc des freins et contrepoids sont également en place.

La propre documentation de Google sur les règles de déclenchement et de blocage est assez claire et complète, mais comme toujours, je pense que cela pourrait être mieux.

Voici donc quelques rappels pour vous concernant les règles de Google Tag Manager, et quelques cas particuliers qui ont causé des maux de tête à beaucoup.

Règles et conditions

Vous pouvez avoir beaucoup de règles sur une seule balise, et votre règle unique peut avoir de nombreuses conditions. La différence entre ces règles est que si votre balise est associée à plusieurs règles, elles fonctionnent dans un soit-ou relation, donc ça suffit si une seule des règles est respectée pour que la balise se déclenche.

Noter! Si vous avez plusieurs règles, fonctionnant dans une relation ou bien, votre balise peut se déclencher plusieurs fois, si toutes les règles correspondent à des moments différents. Donc, si vous avez les règles suivantes sur votre tag : {{event}} est égal à gtm.js OU ALORS {{event}} est égal à gtm.dom OU ALORS {{event}} est égal à gtm.domvotre balise se déclenchera TROIS fois par page, lorsque chacun de ces événements se produira dans le processus de chargement GTM.

Tag déclenché plusieurs fois

Toutefois, si votre règle comporte plusieurs les conditions, tout de ces conditions doivent être remplies en même temps pour que la balise se déclenche.

Permettez-moi d’illustrer.

Supposons que vous ayez une balise que vous ne souhaitez déclencher que sur votre page de remerciement et que vous souhaitiez vous assurer que tout le DOM a été chargé en premier. Vous avez peut-être des variables personnalisées que vous souhaitez transmettre, et elles sont écrites au bas du modèle de page.

Voici comment ne pas pour le faire:

Deux règles se déclenchent sur une balise

Dans cet exemple, vous avez deux règles de tir différentes mis sur l’étiquette. Le fait est que si vous avez plusieurs règles sur une balise, c’est suffisant si un seul d’entre eux vérifie. L’autre n’en a pas besoin. Donc, dans ce cas, votre balise se déclenchera en fait sur chaque page, car chaque page contenant l’extrait de conteneur GTM poussera également l’événement. gtm.dom dans la couche de données pour signifier que le DOM a été chargé.

Voici comment procéder :

Deux conditions à la règle

Alors là, vous avez juste une règle avec deux conditions. La différence est énorme : lorsque vous avez des conditions sur une règle, chacune de ces conditions doivent être remplies pour que la règle fonctionne.

POINTS CLÉS À RETENIR:

  • Si vous avez plusieurs règles, il suffit qu’une seule d’entre elles soit respectée pour que la balise se déclenche

  • Si vous avez plusieurs règles, la balise peut se déclencher sur chacune d’entre elles, alors soyez prudent

  • Si vous avez plusieurs conditions dans une seule règle, toutes les conditions doivent être remplies pour que la règle fonctionne

{{url}} et {{événement}}

Il existe deux façons simples de déclencher une balise dès que possible. Soit

{{url}} correspond à regex .*

ou alors

{{event}} est égal à gtm.js

Vous voyez, le premier moment possible où vous pouvez interroger l’une de ces deux règles est lorsque le conteneur est configuré et que les macros sont activées.

La raison pour laquelle ces deux règles font la même chose est que GTM ajoute implicitement la règle {{event}} est égal à gtm.js à chaque règle qui ne vérifie pas la macro {{event}}. En effet, si aucun événement n’est évalué, une règle telle que {{url}} correspond à regex .* se déclencherait à chaque fois qu’un événement est poussé dans la couche de données. En raison de ce comportement implicite, une règle telle que **{{url}} correspond à regex .*** a en fait deux conditions, l’une qui est “masquée” : **{{url}} correspond à regex .*** AND ** {{événement}} est égal à gtm.js**. (Merci Brian Kuhn pour ce détail).

Une autre chose à observer est que

{{event}} ne peut être qu’une chose à la fois.

C’est vraiment important. Supposons donc que vous souhaitiez déclencher une balise après le chargement du DOM ET après que l’événement “readyToFire” ait été transmis à la couche de données. La première chose que vous essaierez probablement est une règle unique avec les deux conditions suivantes :

{{event}} est égal à gtm.dom
{{event}} est égal à readyToFire

Le problème ici est que {{event}} est une variable de couche de données, et vous ne pouvez pas avoir une variable avec plusieurs valeurs à un moment donné (sauf s’il s’agit d’un tableau, ce que {{event}} n’est pas).

Si vous vraiment devez d’abord attendre gtm.dom, vous devrez vous assurer que le code qui pousse “readyToFire” dans la couche de données est exécuté après {{event}} est égal à gtm.dom. De cette façon, vous n’aurez qu’à ajouter la règle {{event}} est égal à readyToFire dans votre tag, car il est déjà exécuté après le chargement du DOM.

POINTS CLÉS À RETENIR:

  • Si votre règle ne vérifie pas la macro {{event}}, GTM ajoute implicitement la condition {{event}} est égal à gtm.js à la règle

  • C’est pourquoi {{url}} correspond à regex .* et **{{event}} est égal à gtm.js** sont à peu près la même chose

  • {{event}} ne peut être qu’une chose à la fois

Ordre de chargement des événements GTM

Ce sont des choses banales, mais bonnes à répéter. Lorsque le conteneur GTM est chargé, au cours du processus, trois événements différents sont poussés dans la couche de données, que vous pouvez utiliser comme déclencheurs pour vos balises. La commande est :

{{événement}} est égal à…

gtm.js… > …gtm.dom… > …gtm.load

Voici à quoi ils ressemblent (dans l’ordre) dans la couche de données :

Événements GTM dans la couche de données

Si vous souhaitez que vos balises se déclenchent le plus tôt possible, utilisez soit {{event}} est égal à gtm.js ou alors {{url}} correspond à regex .*.

Si vous voulez que vos balises se déclenchent après le chargement du DOM, par exemple si vous savez que vous avez des variables importantes traitées tout en bas de votre modèle de page, utilisez {{event}} est égal à gtm.dom.

Si vous voulez attendre que la fenêtre se charge, ce qui signifie que toutes les demandes initiales doivent d’abord être traitées, utilisez {{event}} est égal à gtm.load.

Noter! Je déconseille fortement de laisser des balises critiques attendre gtm.loadcar tout incident ou délai d’attente lors du chargement de votre page peut empêcher le déclenchement de la balise.

POINTS CLÉS À RETENIR:

  • Les événements GTM créés automatiquement sont, dans l’ordre, gtm.js > gtm.dom > gtm.load

  • Utilisez-les pour aligner vos balises avec leurs dépendances dans le DOM ou dans des ressources externes

Règles de déclenchement et de blocage

Dans GTM, vous pouvez avoir deux types de règles : règles de tirqui sont nécessaires pour qu’une balise se déclenche, et règles de blocage qui peut être utilisé pour indiquer quand une balise ne doit pas se déclencher.

Les règles de blocage ont la priorité, donc si vous avez des conditions concurrentes, la règle de blocage l’emportera toujours.

Par exemple, dans le tout premier chapitre de ce tutoriel, nous avions une balise qui ne se déclenche que sur la page de remerciement. Supposons maintenant que je souhaite exclure la page de remerciement de la balise de suivi normale, afin que les doubles accès ne soient pas enregistrés. Je dois ajouter la règle de blocage suivante à la balise de suivi :

{{url}} contient merci.html

Cela signifie que même si la balise de suivi a une règle de tir de {{url}} correspond à regex .*, il ne se déclenchera pas sur la page de remerciement, car la règle de blocage le refuse lorsque {{url}} contient merci.html.

La règle de blocage a priorité

Les règles de blocage sont un excellent moyen de réduire l’encombrement de vos balises. Avec une règle de blocage, vous n’aurez pas besoin de règles de déclenchement compliquées, de macros ou de plusieurs balises pour adopter une simple SI x ALORS y SAUF z scénario.

POINTS CLÉS À RETENIR

  • Les règles de déclenchement indiquent à la balise quand se déclencher, les règles de blocage indiquent à la balise quand ne pas se déclencher

  • En cas de conflit, la règle de blocage l’emportera toujours

Quelques règles utiles

Voici un ensemble de règles qui pourraient vous être utiles lors de votre travail avec GTM.

  1. {{url}} correspond à regex .* – Fire tag sur toutes les pages le plus tôt possible

  2. {{event}} est égal à gtm.js – Fire tag le plus tôt possible

  3. {{event}} est égal à gtm.dom – Fire tag après le chargement du DOM

  4. {{event}} est égal à gtm.load – Fire tag après le chargement de la page

  5. {{event}} est égal à gtm.click – Fire tag lorsqu’un GTM Click Listener enregistre un clic

  6. {{event}} est égal à gtm.linkClick – Fire tag lorsqu’un GTM Link Click Listener enregistre un clic sur un lien

  7. {{event}} est égal à gtm.formSubmit – Fire tag lorsqu’un GTM Form Submit Listener enregistre une soumission de formulaire

conclusion

Les règles de Google Tag Manager sont tout aussi importantes que les balises et les macros pour que la configuration de votre balise fonctionne. Le problème est que les règles peuvent devenir très compliquées très bientôt. Lorsque cela se produit, il est très important de comprendre des éléments tels que l’ordre de chargement, les événements GTM, les règles de déclenchement et de blocage, etc.

Le problème avec les règles est que vous avez également besoin d’une bonne compréhension des macros, car les règles évaluent les valeurs des macros lors de l’exécution. Si vous avez besoin d’un rappel sur les macros, n’oubliez pas de consulter mon guide des macros.

Avez-vous d’autres exemples de problèmes que vous avez rencontrés avec les règles ? Ou avez-vous trouvé des moyens ingénieux d’utiliser les règles de déclenchement et de blocage pour simplifier la configuration de vos balises ?

Source : www.simoahava.com

Articles similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page
Index