Intégrations : Google Tag Manager
Google Tag Manager est le deuxième des deux emplacements d'analytique dans Settings → Integrations. Collez votre identifiant de conteneur, reconstruisez le site, et chaque page porte le chargeur GTM standard de Google plus un verrou de consentement garanti sûr, sans aucun tag qui s'exécute avant que votre visiteur n'ait réellement interagi (ou consenti, si votre bannière de cookies est active).
Le mettre en place
- Dans Google Tag Manager, créez le conteneur de type web et notez son identifiant : il ressemble à
GTM-XXXXXXX. - Dans Chinaski, allez dans Settings → Integrations → Analytics, collez l'identifiant du conteneur dans GTM container ID, enregistrez, et reconstruisez.
C'est fait. À partir du build suivant, le script d'amorçage GTM standard (gtm.js?id=<your-container>) fait partie du <head> de chaque page construite, initialisé avec le dataLayer vide standard. Tags, déclencheurs et variables vivent tous dans le conteneur : le CMS se contente de le charger.
Laissez le champ vide et rien n'est émis : la sortie de site sans script livrée reste telle quelle (et l'indication « Injected into every page at build time » du champ est le contrat entier).
Comment le chargement se comporte
Le chargeur injecté est délibérément différé, pour la confidentialité et la vitesse de page :
- Pas de chargement sur les visites passives : le script du conteneur ne se récupère qu'une fois que le visiteur fait quelque chose : clique, fait défiler, appuie sur une touche, ou touche l'écran. L'écouteur est à usage unique ; après la première interaction, tout se déroule normalement.
- Respecte l'avis cookies : avec la bannière de cookies du site active, le chargeur attend
cookie_consent=1avant de contacter Google, et il honore aussi un cookie de refus explicite même quand la bannière est désactivée. Un consentement déjà donné au chargement de la page démarre le chargeur immédiatement. - Comme le chargeur est dans le
<head>, ledataLayerest créé avant tout script de corps ; les tags de conteneur lisant les données poussées (un nom de langue, un nom de section) fonctionnent comme d'habitude.
Conséquence pratique à connaître : les hits « page view » pour un déclencheur de conteneur partent à la première interaction (ou immédiatement pour les visiteurs récurrents ayant consenti), pas au téléchargement initial du HTML. Ajustez vos attentes de reporting GA/GTM en conséquence.
La relation avec GA4
Un chargeur d'analytique par page, toujours :
- ID GTM rempli → GTM est le traqueur. Le chargeur gtag.js est ignoré même si un ID GA4 est aussi présent : la duplication du suivi par deux voies ne peut pas se produire. Gérez vos tags GA4 dans le conteneur et laissez l'autre champ vide.
- Les champs existent comme interrupteurs séparés à dessein : GTM est pour les équipes qui gèrent les tags dans le conteneur ; GA4 direct est la route rapide. Les deux vides = aucun script Google du tout.
De quoi vous n'avez pas à vous soucier
- Aucun aller-retour serveur. Le trafic atteint Google depuis le navigateur du visiteur uniquement ; le CMS ne proxifie, ne stocke ni ne valide jamais le payload.
- Aucun échappement à faire de votre côté : l'identifiant du conteneur est assaini quand il est écrit dans la page construite, et le chargeur ne traque personne avant un événement de consentement accepté.
- Les autres tags restent en dehors du chargeur. Ce champ charge un conteneur ; tout ce que vous pourriez vouloir d'autre (Meta, Plausible, JSON personnalisé) appartient au système Snippets, qui gère aussi les règles d'ordre des cas et de serveur de confidentialité.
Mode air-gap
Sur un hôte isolé, ce panneau s'éteint avec une bannière d'explication (« External analytics scripts (GA4, GTM) are disabled and will not be emitted in builds »), le champ devient en lecture seule, et le build lui-même retire l'identifiant du conteneur de la mémoire pour qu'aucun build, planifié ou manuel, ne puisse appeler Google, en cohérence avec la garantie sans trafic sortant de CHINASKI_AIRGAP. L'identifiant stocké reste dans les réglages pour quand vous réactiverez.
Dépannage
- Aucun script GTM dans la page construite : le champ est vide, le mode air-gap est actif, ou vous n'avez pas reconstruit depuis l'enregistrement. Vérifiez le code source de la page pour
gtm.js?id=. - Les tags ne se déclenchent pas alors que le chargeur est présent : rappelez-vous que le chargeur attend la première interaction (ou le consentement). Testez en cliquant n'importe où sur la page et en guettant
gtm.jsdans l'onglet réseau. - Le chargeur GA4 se charge mais l'analytique passe par GTM ensuite : vous avez défini les deux identifiants ; selon la règle de précédence, GTM l'emporte. Déplacez vos tags GA4 dans le conteneur, ou videz le champ GTM et utilisez le champ GA4 direct à la place.
- Identifiant de conteneur d'apparence erronée : le champ est du texte libre. Collez exactement
GTM-+ votre identifiant de conteneur ; il n'y a pas de vérification de format, et la seule conséquence est une requête de script manquant inoffensive.
La version courte
Collez l'identifiant du conteneur dans Settings → Integrations, reconstruisez, et chaque page embarque discrètement l'amorçage GTM, chargé seulement après la première interaction (et après le consentement si vous faites tourner la bannière de cookies), avec le champ GA4 ignoré tant qu'un conteneur possède le suivi, et rien en mode air-gap.