Exécuter Google Tag Manager en mode server-side sur localhost est possible grâce à Docker et à un projet open source nommé datalayer-relay. Ce setup local vous permet de tester votre configuration sans coûts d’hébergement ni contraintes de déploiement rapide. Découvrez comment l’installer et l’optimiser.
3 principaux points à retenir.
- Docker Desktop est l’outil clé pour lancer Google Tag Manager server-side localement.
- Configuration via .env permet de personnaliser votre container GTM et d’intégrer GA4.
- DataLayer Relay simplifie le transfert automatique des événements dataLayer vers GTM server-side.
Quelles sont les bases pour installer GTM server-side en local
Pour exécuter Google Tag Manager server-side en local, la première étape cruciale consiste à installer Docker Desktop. Cet outil facilite la gestion des conteneurs Docker sur votre machine, ce qui vous permet d’intégrer facilement Google Tag Manager à votre environnement local. Rendez-vous sur le site de Docker pour télécharger la version qui correspond à votre système d’exploitation.
Une fois Docker installé, il est astucieux de désactiver l’option de démarrage automatique de Docker Desktop pour éviter qu’il ne consomme des ressources précieuses dès que vous allumez votre ordinateur. Pour ce faire, ouvrez les paramètres de Docker Desktop, puis cliquez sur l’onglet Général et décochez Start Docker Desktop when you log in. Une petite astuce pour préserver la performance de votre machine !
Ensuite, vous devrez cloner le dépôt GitHub contenant le projet datalayer-relay, spécialement conçu pour simplifier l’implémentation de Google Tag Manager en mode server-side. Utilisez la commande suivante dans votre terminal :
git clone https://github.com/justushamalainen/datalayer-relay.git
Assurez-vous d’avoir Git installé pour pouvoir exécuter cette commande. Si vous êtes novice, n’hésitez pas à consulter des tutoriels qui expliquent comment installer Git sur votre système.
Pour les utilisateurs plus expérimentés, sachez que vous aurez également besoin de Node.js et de docker-compose pour tirer pleinement parti des fonctionnalités offertes par Docker. Ils ne sont pas toujours pré-installés avec Docker, donc assurez-vous de les avoir sur votre machine. Si vous ne savez pas comment procéder, une simple recherche sur le net vous fournirait des résultats pertinents.
En gros, avec Docker Desktop, le clone du dépôt et les prérequis installés, vous êtes désormais en mesure de mettre en place un environnement local robuste pour le server-side Google Tag Manager. Pour aller plus loin, je vous recommande de consulter ce vidéo pour visualiser l’installation de Docker en action. Cela pourrait rendre le processus encore plus clair pour vous !
Comment configurer et lancer le serveur GTM localement
Configurer et lancer votre serveur Google Tag Manager (GTM) en local, ça vous parle ? C’est une étape essentielle pour tester vos implémentations avant de passer en production. Pour commencer, il vous faut mettre en place ce fameux fichier .env qui contient toutes les variables nécessaires au fonctionnement de votre instance GTM.
La première étape consiste à créer ce fichier à partir du modèle fourni. Dans votre terminal, exécutez la commande suivante :
# Copiez le fichier exemple
$ cp .env.example .env
Ensuite, éditez ce fichier avec votre éditeur préféré. Si vous ne savez pas quel éditeur choisir, même un simple nano fera l’affaire :
$ nano .env
À l’intérieur, vous devrez configurer deux variables clés :
- CONTAINER_CONFIG: C’est ici que vous devez ajouter la configuration de votre conteneur. Vous pouvez la retrouver dans l’interface Google Tag Manager sous Admin > Paramètres du conteneur.
- GA4_PROPERTY: Il vous faut ici l’ID de votre propriété GA4, formulé sous la forme G-ABC123XYZ. Cela se trouve également dans les paramètres de votre compte Google Analytics.
Voici à quoi cela pourrait ressembler :
# Configuration du conteneur
CONTAINER_CONFIG=your_container_config_here
# ID de votre propriété GA4
GA4_PROPERTY=G-ABC123XYZ
Une fois que ces valeurs sont réglées, enregistrez et fermez le fichier. Passons maintenant à la construction de votre image Docker. Assurez-vous que Docker Desktop est lancé et rendez-vous dans le terminal intégré dans l’application. Naviguez jusqu’à votre dossier de projet et exécutez la commande suivante :
$ docker-compose up -d
Cela va créer votre image Docker et lancer le conteneur. Pour vérifier que tout fonctionne comme prévu, ouvrez votre navigateur et accédez à :
- https://localhost:8888/healthy: vous devriez voir « ok ».
- https://localhost:8889/healthy: idem, vous devriez également voir « ok ».
Une petite note sur les certificats SSL. En étant sur un serveur local, vous pourriez rencontrer des avertissements de sécurité à cause des certificats auto-signés. Il vous suffira de cliquer à travers ces avertissements pour accéder aux pages.
Utiliser le terminal de Docker Desktop rend tout ce processus très convivial. Donc, assurez-vous d’en tirer le meilleur parti ! Pour approfondir vos connaissances sur GTM et les configurations avancées, vérifiez cet article ici.
Comment utiliser le mode preview et tester votre configuration
Pour activer le mode Preview de Google Tag Manager (GTM) et tester votre configuration sur localhost, commencez par modifier les paramètres de votre container. Accédez à l’interface GTM et cliquez sur Admin, puis sur Container Settings. Dans cette section, assurez-vous de pointer vers l’URL de localhost, qui est typiquement https://localhost:8888. Une fois cela fait, enregistrez vos modifications.
Ensuite, allez à votre GTM Workspace et cliquez sur le bouton Preview Picker. Sélectionnez l’URL de localhost que vous venez de configurer et cliquez sur Preview. Tag Assistant devrait se lancer dans un nouvel onglet, vous permettant de voir https://localhost:8888 comme hôte. Attention, des avertissements de sécurité pourraient apparaître, car le certificat SSL pour localhost n’est pas approuvé par une autorité de certification reconnue. Vous devrez peut-être cliquer pour accepter les risques et continuer à naviguer sur la page.
Pour tester votre configuration, ouvrez un nouvel onglet et entrez l’URL suivante : https://localhost:8888/test. Si tout fonctionne correctement, vous devriez voir l’ID du chemin de test apparaître dans Tag Assistant. Ce processus vous permet de vérifier en temps réel si vos tags fonctionnent comme prévu sans avoir à déployer vers un environnement de production.
Voici une petite table récapitulative des URLs utiles et leur rôle dans le processus de test :
- https://localhost:8888/healthy : vérifie que le serveur est opérationnel.
- https://localhost:8889/healthy : vérifie que le serveur de preview répond comme attendu.
- https://localhost:8888/test : route de test pour envoyer des requêtes et vérifier leur traitement.
N’oubliez pas que pour redémarrer le serveur, vous pouvez simplement accéder à Docker Desktop et cliquer sur le bouton d’arrêt ou de démarrage à côté du container datalayer-relay. Cette gestion de votre serveur est non seulement intuitive, mais elle permet également de garder votre processus de développement agile.
Pour approfondir vos connaissances sur la configuration de test, n’hésitez pas à consulter ce lien ici.
Quels sont les limites et astuces pour contourner les bugs connus
Quand tu plonges dans l’univers du Google Tag Manager en mode server-side, un hic se pointe le bout du nez : l’incapacité d’utiliser server_container_url avec un port localhost. En gros, le problème réside dans le fait que le port est balancé à la trappe. Le serveur se dit « pas besoin de ça » et dans les requêtes envoyées, il ne garde que la base de l’URL. Ça fait un peu désordre, non ? Imagine un chef d’orchestre qui oublie de garder son instrument principal. C’est exactement ça.
Pour nuancer les choses, gtag.js peut effectivement charger la configuration avec server_container_url. Mais quand il s’agit d’envoyer les événements, c’est un coup d’épée dans l’eau : tout échoue comme une mauvaise pièce de théâtre. Les logs de gtag te laissent sur ta faim, et tu te demandes où ça a foiré. La raison ? Les requêtes tentent de s’envoyer à https://localhost/, ce qui est une impasse complète.
Heureusement, il existe une parade ! Tu peux passer par transport_url. C’est un peu comme mettre un pansement sur un mur fissuré : ça fonctionne pour les événements, mais ne t’attends pas à avoir toutes les fonctionnalités à portée de main. En gros, c’est une solution temporaire avec des limites.
Pour les aventuriers du développement qui veulent une approche plus adulte, je te propose de jouer avec un reverse proxy via nginx. L’idée est de rediriger un sous-domaine personnalisé, par exemple https://testing.your.website, vers localhost. Cela te permet de bypasser le souci de port et SSL, et de te rapprocher d’un environnement de production sans avoir à te prendre la tête avec des changements DNS. Tu pourrais faire un tour sur ce lien pour approfondir : documentation nginx.
C’est comme la magie du développement : une petite astuce technique peut faire des merveilles pour éviter les frustrations habituelles. Travailler en local, c’est bien, mais maîtriser ces subtilités, c’est encore mieux. En avant la musique !
Comment DataLayer Relay optimise la collecte des données côté serveur
DataLayer Relay, c’est le petit bijou qui optimise la collecte des données côté serveur. Plutôt que de se reposer sur un Google Tag Manager client classique, ce projecteur ambitieux propulse les événements dataLayer directement vers le GTM server-side. Pourquoi ? Pour une transmission fiable et efficace, sans cette charge liée à un conteneur GTM classique qui peut alourdir votre site. La magie opère grâce à deux configurations clés : le GA4_PROPERTY et le SERVER_CONTAINER_URL qui structurent les requêtes pour des envois d’événements simplifiés.
Le réel intérêt se trouve sur une page de test locale à http://localhost:3000, où vous pouvez générer des événements dataLayer et observer tout cela en mode preview. C’est comme avoir une petite usine de testing à domicile, mais avec la précision d’un horloger. À chaque clic sur un bouton, vous pouvez suivre et valider les données qui affluent dans votre GTM server-side.
Mais ce n’est pas tout. DataLayer Relay, ce héros du quotidien, offre des fonctionnalités clés comme les persistent fields. Imaginez pouvoir configurer certains paramètres d’événements pour qu’ils persistent au fil des appels gtag() effectués durant le chargement de la page. Cela enrichit vos données transférées de manière significative. Un vrai plus pour les marketeurs qui cherchent à maximiser chaque interaction avec leurs utilisateurs.
Utiliser ce système est particulièrement conseillé lorsque vous êtes à l’aise avec des configurations de dataLayer robustes. En revanche, si votre projet nécessite de nombreuses transformations serveur, gardez à l’esprit que les complexités peuvent s’accumuler. Dans certains cas, vous pourriez vous retrouver à jongler avec des transformations qui pourraient rendre votre flux de travail un peu chaotique. Donc, évaluez bien vos besoins avant de plonger tête la première dans cette solution RFID de données !
Prêt à maîtriser votre GTM server-side localement et optimiser votre tracking ?
Mettre en place Google Tag Manager server-side sur localhost via Docker et le projet datalayer-relay est un puissant moyen pour tester et affiner votre tracking sans dépendre du cloud ou de l’hébergement externe. Vous bénéficiez d’un environnement sécurisé, local, chiffré et personnalisable, idéal pour les développeurs et data analysts exigeants. Cette méthode réduit les coûts, accélère les itérations et facilite la prise en main des mécaniques server-side, tout en s’adaptant à GA4. Le parcours peut sembler technique mais il offre une maitrise sans compromis sur la qualité de vos données marketing.
FAQ
Qu’est-ce que Google Tag Manager server-side ?
Pourquoi utiliser Docker pour exécuter GTM server-side localement ?
Quels sont les prérequis techniques pour cette installation ?
Quels sont les principaux obstacles rencontrés et leurs solutions ?
Que fait DataLayer Relay dans ce contexte ?
A propos de l’auteur
Je suis Franck Scandolera, consultant expert et formateur en Web Analytics et Data Engineering depuis plus d’une décennie. Responsable de l’agence webAnalyste et de Formations Analytics, j’accompagne professionnels et entreprises dans la maîtrise du tracking client et server-side, notamment avec Google Tag Manager et GA4. Mon expertise technique avancée en automatisation, pipeline data et conformité RGPD me permet d’apporter des solutions robustes, opérationnelles et centrées sur la valeur métier.
⭐ Analytics engineer, Data Analyst et Automatisation IA indépendant ⭐
- Ref clients : Logis Hôtel, Yelloh Village, BazarChic, Fédération Football Français, Texdecor…
Mon terrain de jeu :
- Data Analyst & Analytics engineering : tracking avancé (GTM server, e-commerce, CAPI, RGPD), entrepôt de données (BigQuery, Snowflake, PostgreSQL, ClickHouse), modèles (Airflow, dbt, Dataform), dashboards décisionnels (Looker, Power BI, Metabase, SQL, Python).
- Automatisation IA des taches Data, Marketing, RH, compta etc : conception de workflows intelligents robustes (n8n, App Script, scraping) connectés aux API de vos outils et LLM (OpenAI, Mistral, Claude…).
- Engineering IA pour créer des applications et agent IA sur mesure : intégration de LLM (OpenAI, Mistral…), RAG, assistants métier, génération de documents complexes, APIs, backends Node.js/Python.






