9 règles pour gérer efficacement et en toute sécurité Google Tag Manager

Franck Scandolera

Comment bien gérer Google Tag Manager ?

Voici 9 règles essentielles à respecter pour gérer efficacement et en toute sécurité Google Tag Manager.

L’utilisation de Google Tag Manager (GTM) n’est plus un sujet de discussion, tant les bénéfices sont grands. Mais il n’y a pas de grands gains, sans grands risques. Le risque avec Google Tag Manager, c’est d’injecter du mauvais code sur l’ensemble des pages qui pourrait affecter l’expérience utilisateur, les données Analytics, voir voler des données sensibles.

J’ai l’habitude de dire qu’avec GTM, la dose est le poison, autrement dit, plus il y a d’intervenants, plus le risque est élevé.

Voici quelques règles pour optimiser et sécuriser au maximum l’usage de Google Tag Manager de votre entreprise.

Règle 1 : Autorisez l’accès à GTM aux bonnes personnes !

Premier point de vigilance, le contrôle des accès à Google Tag Manager pour identifier qui a le droit de faire quoi.

Il existe deux niveaux d’autorisations d’accès,  compte et conteneur.

Au niveau du Compte, une personne (compte Google avec adresse Gmail ou une adresse pro/alias Gmail) peut être Admin ou User.

L’Admin est le gardien des clés. Il autorise les accès au compte GTM de l’entreprise et aux conteneurs de chaque site et App. Il accède également à tous les conteneurs avec au minimum un droit de lecture. Par opposition à l’Admin, le User ne gère pas les accès.

Au niveau du conteneur, les utilisateurs peuvent incarner différents rôles:

  • Aucun accès – Pas d’accès, pas de conteneur – L’utilisateur ne voit aucun conteneur.
  • Lecture – Au pays des aveugles, les borgnes sont rois. L’utilisateur voit les balises, les variables et les déclencheurs du conteneur sans pouvoir les modifier.
  • Modification – Il peut tout créer, modifier, supprimer, mais pas touche à la création de versions ni à la publication.
  • Approbation – Il voit tout, entend tout, touche à tout sauf à la publication.
  • Publication – The king of the GTM’s world – ses pouvoirs n’ont pas de limites – créer, modifier, versionner, publier et même gérer les droits utilisateurs du conteneur !

El publicator peut mettre en prod le conteneur du site. Il s’agit du rôle le plus critique, qui doit être incarné par une ou deux personnes au maximum.

Pour contrôler et éventuellement faire le ménage, rendez-vous dans l’admin de votre compte Google Tag Manager, puis Gestion des utilisateurs !

Règle 2 : Identifiez qui fait quoi !

La seconde règle vous permettra d’identifier « qui » aura fait « quoi ». Refusez de donner accès à Google Tag Manager aux e-mails génériques. Ouvrez un accès uniquement aux emails qui permettent d’identifier l’intervenant. Il doit intégrer le prénom, le nom et le nom de l’entreprise « prenom.nom@entreprise.com ». Google permet de créer un alias Gmail avec un email professionnel. Plus d’info https://support.google.com/mail/answer/22370?hl=fr.

Règle 3 : Exigez la vérification en deux étapes !

Pour renforcer la sécurité de votre compte Google Tag Manager, les administrateurs peuvent exiger une validation en deux étapes , notamment pour :

  • Créer ou modifier des variables JavaScript personnalisées
  • Créer ou modifier des balises HTML personnalisées
  • Modifier les paramètres utilisateur

Pour activer la validation en deux étapes, procédez comme suit :

  1. Cliquez sur Admin.
  2. Dans la section COMPTE, cliquez sur Paramètres du compte.
  3. Sélectionnez Exiger la validation en deux étapes des identifiants de connexion pour certaines opérations.
  4. Cliquez sur Enregistrer.

Règle 4 : Les rôles de contrôle doivent savoir lire le JavaScript !

Les rôles de contrôle d’approbation et de publication doivent avoir un profil plutôt technique pour scanner rapidement n’importe qu’elle balise JavaScript pour s’assurer de sa qualité (iframe, doument.write, variable globale, requête abusive, modification DOM, chargement de librairie « lourde/suspecte »…).

Règle 5 : Tester le processus de conversion Desktop et Mobile avant publication !

En complément, El publicator ou El approbator devrait avant toute publication d’une nouvelle version d’un conteneur, tester le bon fonctionnement du processus de conversion sous desktop et mobile. Je me souviens d’un processus de transaction qui avait été planté à cause d’une variable globale créée dans GTM. La réalisation des tests aurait permis de révéler le problème plus rapidement.

Règle 6 : Interdisez l’usage de variables globales dans Google Tag Manager !

Au sujet des variables globales, offrons-nous une petite digression technique. Pour plus de sécurité et éviter d’affecter les scripts du site, toutes les variables déclarées dans Google Tag Manager devraient avoir une portée locale. C’est-à-dire que la variable ne devrait pas être accessible en dehors de leur contexte d’exécution. Pour contrainte la portée d’une variable en locale dans une balise HTML personnalisée, il faut la déclarer dans une fonction anonyme auto-exécutée « IIFE » (Immediately-invoked function expression).

<script>
(function(){
var message = "hello world !";
console.log(message); // dans la console de dev (F12 ou clique droit + inspecter), la variable locale sera exécutée - "hello world !".
})();
console.log(message); // dans la console, la référence à la variable locale en dehors de la fonction générera un message d'erreur - la variable est "not defined".
</script>

Établissez comme règle que toutes les balises HTML personnalisés doivent reprendre la structure « IIFE » (exemple ci-dessus). Observez que GTM impose l’enveloppe fonctionnelle des variables JavaScript personnalisées.

 function() {
    var now = new Date();
    return now.getTime();
  }

Règle 7 : Respectez vos règles de nomenclature Google Tag Manager !

En général, Google Tag Manager est utilisé pour gérer deux types de balises, les balises Analytics et les balises Marketing.  À noter l’émergence des balises HTML « utilities » de personnalisation de l’interface utilisateur. Par défaut tout le monde intervient sur le même conteneur. Il n’est pas rare de croiser dans un conteneur, entre une variable et un déclencheur, des experts Marketing, Analytics et Technique. Un microcosme hétérogène qui oblige chacun à la rigueur pour préserver la joie, la paix et l’amour du petit peuple tag managé.  Car s’il est vrai que plus on est de fous, plus on rit… Avec GTM, la douce folie de chaque intervenant peut être contre-productive. Par exemple, si chacun  créer ses propres déclencheurs et  variables au lieu d’utiliser les existants, il surcharge inutilement le conteneur, autrement dit la librairie JavaScript gtm.js – poids de base (sans tag, trigger ou variable)+/- 26 ko. Une surcharge pondérale qui peut affecter les performances du chargement des pages.

Pour éviter de tomber dans une gouvernance « anarchique », il faut imposer une division de CRS pour forcer la réutilisation des composants existants et le respect de la nomenclature.

Voici quelques exemples de nomenclature pour nommer correctement vos composants GTM.

Balise : éditeur + fonction + portée spécifique.
Exemples

  • GA pages vues, GA pages vues virtuelle checkout step 1, GA event add to cart…
  • AdW conversion transaction, AdW remarketing pages vues…
  • FB pages vues, FB event add to cart…

Déclencheur : type d’événement + fonction/objet + porté spécifique
Exemples : click addToCart, click social share, video play, view promo formation, click promo formation, submit form contact, scroll articles…

Variable : type de variable + objet.

Exemples : dlv product name add, dom h1, click url hostname,  js social name, cookie _ga, lookup GA ID…
(dlv = dataLayer variable).

Règle 8 : Utilisez les espaces de travail (workspace).

Par défaut, dans Google Tag Manager, on travaille directement dans « l’espace de travail par défaut ». C’est l’espace de travail de référence qui est versionné et publié sur le site.

Le problème quand différentes personnes interviennent sur l’espace de travail par défaut, est qu’au moment de la publication, on ne sait pas à quel point il est fiable. Existe-t-il une balise HTML ou une variable JavaScript en cours de développement qui serait mis en production au moment de la publication…

Pour éviter toutes ces questions, Google Tag Manager met à votre disposition des espaces de travail « rien qu’à vous », 2 pour GTM Standard et illimité pour GTM 360. Ainsi vous pouvez travailler dans votre espace de travail « rien qu’à vous », en parallèle de l’espace de travail par défaut jusqu’à ce que vous le versionnez ou le publiez. À ce moment-là, Google Tag Manager fusionne votre espace de travail avec l’espace de travail par défaut pour créer une nouvelle version du conteneur avant de la publier.

En résumé, créez un espace de travail chaque fois que vous intervenez sur Google Tag Manager afin de préserver l’espace de travail par défaut « ready to publish ». C’est-à-dire qu’on ne modifie jamais directement l’espace de travail par défaut pour être certain de ne pas publier de développement en cours au moment de la publication d’un espace de travail personnalisé.

Règle 9 : Utilisez 1 conteneur GTM par site !

La règle fondamentale : 1 seul conteneur par site pour optimiser la performance de chargement de la page et pour faciliter sa gestion et entretien.

Que se passe-t-il si un conteneur gère plusieurs sites identiques partageant le même « core model », comme des sites « pays » et que les tags marketing diffèrent de pays en pays. Chaque site « pays » charge l’ensemble des tags de chaque site « pays », ce qui peut affecter la performance du chargement de page.

Dans ce cas, une solution optimale serait d’utiliser un conteneur par site « pays », d’autant que la duplication de conteneur (export/import) via l’interface utilisateur ou l’API est assez simple. Mais quid de l’entretien au fil du temps de n conteneur « pays »… Pour minimiser les efforts d’entretien, vous pouvez regrouper les tags « pays » dans des conteneurs « continent ».

Exception à la règle, en cas de double gestion des tags, locale et centrale.

Par exemple, gestion centrale des tags Analytics pour s’assurer de la cohérence du tracking de tous les sites locaux, gestion locale des tags marketing par site « pays ». Dans ce cas, il est préférable d’opter à 2 conteneurs par site. Un conteneur « central » pour sanctuariser le tracking Analytics et faciliter sa gestion. Un conteneur « local » pour que chaque « pays » puisse gérer en toute autonomie ses tags Marketing. Avec Google Tag Manager 360, la fonction Zone vous permet de répondre plus facilement à ce besoin – le conteneur « central » gère le déclenchement de chaque  conteneur « local ».