Google tag manager : comment gérer le tracking multi-sites (e.g : sites internationaux)

Google tag manager : comment gérer le tracking multi-sites (e.g : sites internationaux)

Les entreprises gérant des sites très similaires dans plusieurs pays ou pour plusieurs marques doivent gérer des dizaines, voire des centaines de sites. Il est alors tentant de centraliser au maximum leur gestion, pour éviter de multiplier les efforts.
Nous allons voir comment gérer cette problématique en terme de tracking (avec Google Tag Manager et Google Analytics)

Problématique du tracking d'une "usine à sites" (multi-pays, multi marques...)

Imaginez que vous deviez gérer le tracking de plusieurs dizaines de sites très similaires. Cela peut arriver en particulier sur les sites internationaux (www.domain.fr / www.domain.co.uk / etc....). Ou alors sur des sous-domaines (fr.domain.com / uk.domain.com / ...)
Cela arrive aussi dans le cas d'une "usine à sites", c'est à dire lorsqu'une entreprise gère de nombreux sites de marque, tous similaires.
La question de la structuration des comptes (Google Tag Manager, Google Analytics) se pose. En effet :
  • Si vous créez un container GTM par site, vous allez passer un temps fou à mettre à jour vos tags. Imaginez par exemple qu'on vous demande d'ajouter un nouveau tag sur l'ensemble des sites. Vous allez devoir aller dans chacun des containers, créer le tag, le trigger, puis publier... et tester. Bien entendu, certaines fonctionnalités permettent de gagner du temps, en particulier les "templates" de tags. Malgré tout, le temps passé est important, et le risque d'erreur aussi.
  • A l'inverse, si vous avez un seul container : c'est beaucoup plus simple à maintenir. Mais vous risquez d'avoir à votre tour un problème de maintenance, différent celui-là : imaginez qu'un des pays souhaite mettre en place un tracking spécifique. Ou pire, qu'un des pays demande à avoir un accès Google Tag Manager pour être autonome. Là aussi il y a des moyens de gérer cela (par exemple via les "Workspaces"). Mais vous risquez d'avoir un container très complexe, ce qi va à terme générer des inefficacités et des erreurs.
Dans cet article, nous allons proposer une option qui, avec l'expérience, nous semble être la meilleure.

Structuration du compte Google Tag Manager

Nous allons créer un container Google Tag Manager pour l'ensemble des sites. Dans ce container, nous allons mettre en place le suivi Google Analytics vers un compte unique.
Il s'agit du schéma classique :
Image without caption

Ajout des tags "locaux" (par pays)

Ensuite, nous allons mettre en place en plus :
  • Une propriété Google analytics par pays
  • Un compte Google Tag manager par pays
Cela va permettre à chaque pays de gagner en autonomie, par exemple pour déployer ses tags spécifiques, sans pour autant perdre le bénéfice d'avoir une centralisation pour tous les tags "globaux".
Pour faire le lien entre les domaines et les identifiants des comptes Google Tag Manager et Google Analytics, nous allons utiliser des "lookup table", ou tables de correspondance, comme ceci :
Pour le compte Google Analytics :
Image without caption
La variable "Dynamic GA ID" sera ensuite utilisée dans la configuration des tag analytics, afin d'envoyer les donnés vers la bonne propriété en fonction du contexte du site.
Pour le compte Google Tag Manager :
Image without caption
Qui sera utilisé comme ceci, dans un code "Custom html" :
javascript
<!-- 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 - Dynamic Id}});</script> <!-- End Google Tag Manager -->
Notre schéma est donc le suivant :
Image without caption

Vision globale

Le schéma d'ensemble ressemble donc à cela :
Image without caption

Faut-il créer un conteneur et une propriété pour chaque pays ?

Pas forcément. Dans la plupart des organisations, vous avez des pays qui sont plus actifs que d'autres. Par exemple parce qu'ils ont une équipe marketing dédiée, ou une agence locale. Ces pays ont besoin d'avoir de l'autonomie. Mais pas forcément d'autres pays qui ont moins de ressources.
L'avantage de cette méthode est qu'elle permet de ne créer que le nombre de comptes nécessaires.

Maintien des tables de correspondance

A noter : nous avons chois ici une "Lookup Table", car les règles sont simples (un "hostname = un compte"). Mais pour des cas plus complexes, il existe également des tables basées sur des Regex, qui sont extrêmement puissantes.

Tables à maintenir

Dans ce schéma, nous avons des tables de correspondance à maintenir, qui permettent d'associer à chaque domaine son identifiant Google analytics, et son identifiant GTM.
On peut imaginer la même chose avec le pixel Facebook par exemple : imaginons que chaque pays gère ses campagnes de manière indépendante, on peut déployer un pixel Facebook global, et ne faire varier que l'identifiant associé à chaque pays.
Avec le temps, cela peut représenter un nombre important de tables à maintenir.

Comment automatiser au maximum ?

Une version très élégante par Simo Ahava permet d'automatiquement mettre à jour ses tables de correspondance dans Google Sheet, et de le synchroniser avec Google Tag Mnager.
Pour cela, nous utilisons :
  • Google Sheets
  • Apps script
  • Google Tag Manager API