Google Tag Manager : guide d'installation et utilisation

Par Baptiste P.

8 min de lecture
Lien copié dans le presse-papiers

Google Tag Manager (GTM) est installé sur 30 % des sites web (source : BuiltWith, 2025). Son avantage : ajouter, modifier ou supprimer des scripts de tracking sans toucher au code source du site. Fini les allers-retours avec le développeur pour un simple pixel de conversion. Mais GTM mal configuré peut casser ton tracking, ralentir ton site ou créer des fuites de données. Voici comment l'utiliser correctement.

Qu'est-ce que Google Tag Manager ?

Pour approfondir ce sujet, consultez notre article sur SEO WordPress : guide d'optimisation complet.

GTM est un gestionnaire de balises gratuit. Il sert d'intermédiaire entre ton site web et les outils tiers (GA4, Google Ads, Facebook Pixel, Hotjar, etc.). Au lieu d'insérer chaque script directement dans le code HTML, tu les gères tous depuis l'interface GTM.

Les 3 concepts fondamentaux

ConceptRôleExemple
Tag (balise)Le script à exécuterBalise GA4, pixel Facebook, script Hotjar
Trigger (déclencheur)Quand exécuter le tagChargement de page, clic sur bouton, scroll
VariableDonnées à transmettreURL de la page, texte du clic, valeur du panier

Un tag se déclenche quand un trigger est activé, et il utilise des variables pour envoyer les bonnes données.

Installation de GTM

Étape 1 : Créer un compte et un conteneur

  1. Va sur tagmanager.google.com
  2. Crée un compte (nom de l'entreprise)
  3. Crée un conteneur (nom du site, type : Web)
  4. Note ton ID de conteneur : GTM-XXXXXXX

Étape 2 : Installer le snippet sur ton site

GTM te donne deux blocs de code :

Bloc 1 — à insérer dans le <head> (le plus haut possible) :

<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-XXXXXXX");
</script>

Bloc 2 — à insérer immédiatement après l'ouverture de <body> :

<noscript
  ><iframe
    src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXXX"
    height="0"
    width="0"
    style="display:none;visibility:hidden"
  ></iframe
></noscript>

Installation sur WordPress

Deux options :

  • Plugin : "GTM4WP" (gratuit) — insère automatiquement les snippets et gère le dataLayer pour WooCommerce
  • Manuel : via l'éditeur de thème (functions.php ou header.php) — pour les développeurs

Installation sur Next.js / React

Utilise le composant @next/third-parties (GoogleTagManager) ou insère les snippets manuellement dans le layout racine.

Vérification

Après installation, active le mode Preview dans GTM (bouton "Aperçu" en haut à droite). Un debugger s'ouvre en bas de ton site et montre en temps réel les tags qui se déclenchent, les triggers activés et les variables disponibles.

Configurer GA4 via GTM

Pourquoi passer par GTM plutôt que le snippet GA4 direct ?

  • Flexibilité : ajouter des événements personnalisés sans code
  • Centralisation : tous les scripts au même endroit
  • Consent Mode : gérer le consentement RGPD de manière centralisée
  • Versioning : historique des modifications, possibilité de rollback

Tag GA4 : Configuration

  1. Dans GTM, va dans Tags → Nouveau
  2. Choisis le type Google Analytics: GA4 Configuration
  3. Entre ton Measurement ID (G-XXXXXXXXXX) — tu le trouves dans GA4 → Admin → Data Streams
  4. Trigger : All Pages (toutes les pages)
  5. Nomme le tag : "GA4 — Configuration"
  6. Enregistre

Tag GA4 : Événement personnalisé

Pour tracker un clic sur un bouton CTA :

  1. Tag : Google Analytics: GA4 Event
  2. Configuration Tag : sélectionne le tag GA4 Configuration créé ci-dessus
  3. Event Name : cta_click
  4. Event Parameters : button_text = {{Click Text}}
  5. Trigger : nouveau trigger → type "Click — All Elements" → condition : Click Text contient "Demander un devis"

Les triggers essentiels

TriggerUtilisationConfig
Page ViewChargement de pageAll Pages ou URLs spécifiques
ClickClic sur un élémentFiltre par CSS selector, texte, URL
Form SubmissionSoumission de formulaireFiltre par form ID ou action
Scroll DepthProfondeur de scrollSeuils : 25 %, 50 %, 75 %, 90 %
TimerTemps passé sur la pageIntervalle en ms (ex : 30 000 = 30s)
YouTube VideoLecture vidéoStart, pause, complete, progrès
Custom EventÉvénement dataLayerNom de l'événement personnalisé

L'astuce du scroll depth

Tracker le scroll est un indicateur d'engagement bien plus fiable que le temps passé (qui est faussé par les onglets inactifs). Un scroll à 75 % sur un article de 2 000 mots signifie que le visiteur a lu la majorité du contenu.

Configuration :

  1. Nouveau trigger → Scroll Depth
  2. Type : Vertical Scroll Depths
  3. Percentages : 25, 50, 75, 90
  4. Associe ce trigger à un tag GA4 Event avec event name scroll_depth et parameter scroll_percentage = {{Scroll Depth Threshold}}

Le dataLayer : communiquer entre le site et GTM

Le dataLayer est un tableau JavaScript qui sert de pont entre ton site et GTM. Quand ton site web génère des données (ajout au panier, connexion utilisateur, transaction), il les pousse dans le dataLayer, et GTM peut les lire via des variables.

Exemple : tracker un achat e-commerce

Côté site (JavaScript) :

dataLayer.push({
	event: 'purchase',
	ecommerce: {
		transaction_id: 'T-12345',
		value: 89.9,
		currency: 'EUR',
		items: [
			{
				item_name: 'Formation SEO',
				item_id: 'FORM-001',
				price: 89.9,
				quantity: 1,
			},
		],
	},
})

Côté GTM :

  1. Variable : Data Layer Variable → nom : ecommerce.value
  2. Trigger : Custom Event → event name : purchase
  3. Tag : GA4 Event → event : purchase → parameters : les variables dataLayer

En France, le consentement est obligatoire avant de déposer des cookies de tracking (directive ePrivacy + RGPD). GTM intègre le Consent Mode de Google, qui adapte le comportement des tags selon le consentement de l'utilisateur.

Configuration

  1. Active le Consent Mode dans les paramètres du conteneur GTM
  2. Intègre une CMP (Consent Management Platform) : Axeptio, Didomi, CookieBot, ou Tarteaucitron
  3. La CMP communique l'état du consentement à GTM via le dataLayer
  4. Les tags GA4 respectent automatiquement le consentement : données anonymisées si refus, tracking complet si acceptation

Les deux modes

ModeConsentementComportement
GrantedAcceptéCookies déposés, données complètes
DeniedRefuséPas de cookies, pings anonymisés (données modélisées par GA4)

Pour approfondir les enjeux de conformité, consulte notre article sur RGPD et analytics.

Les erreurs à éviter

Publier sans tester. Toujours utiliser le mode Preview avant de publier un conteneur. Un tag mal configuré peut casser le tracking de tout le site, ou pire, déclencher une boucle de chargement qui ralentit les pages.

Trop de tags. Chaque tag est un script qui s'exécute au chargement. 5 tags bien configurés valent mieux que 30 tags dont la moitié sont obsolètes. Audite régulièrement et supprime les tags inutilisés.

Variables non testées. Une variable de dataLayer qui retourne undefined parce que le développeur a changé le format des données, c'est un tracking silencieusement cassé. Vérifie les variables dans le debugger après chaque mise à jour du site.

Pas de convention de nommage. Avec 20 tags, 15 triggers et 30 variables, ça devient vite le chaos. Adopte une convention : [Outil] — [Type] — [Description]. Exemple : "GA4 — Event — CTA Click", "FB — Pixel — Purchase".

FAQ

GTM ralentit-il le site ?

Le snippet GTM lui-même est léger (moins de 50 Ko). Ce sont les tags qu'il charge qui peuvent impacter la performance. Chaque tag tiers (Facebook Pixel, Hotjar, etc.) ajoute du poids. Limite le nombre de tags et utilise le chargement asynchrone (par défaut dans GTM).

Peut-on utiliser GTM sans développeur ?

Pour les configurations de base (GA4, pixels publicitaires, scroll tracking), oui. L'interface est visuelle et ne nécessite pas de code. Pour le dataLayer (e-commerce, événements personnalisés), un développeur est nécessaire pour pousser les données côté site.

GTM remplace-t-il le snippet GA4 ?

Non, il le gère. Au lieu d'insérer le snippet GA4 dans le code HTML, tu crées un tag GA4 dans GTM. Le résultat est le même (GA4 collecte les données), mais la gestion est centralisée dans GTM.

Combien de conteneurs GTM par site ?

Un seul. Installer plusieurs conteneurs GTM sur le même site est une source de conflits et de doublons de tracking. Si tu gères plusieurs sites, crée un conteneur par site dans le même compte GTM.

Lien copié dans le presse-papiers

À lire aussi