Créer son conteneur GTM Server-Side

Le conteneur serveur est la pièce centrale de votre architecture de tagging : il reçoit les hits du navigateur sur votre propre domaine, puis les distribue aux plateformes (GA4, Meta, etc.). Voici comment le mettre en place proprement.

Server-Side Niveau : débutant ~30 min

Prérequis

Étape 1 — Créer le conteneur serveur

1

Nouveau conteneur de type « Server »

Dans GTM : Admin → Compte → Créer un conteneur. Donnez-lui un nom explicite (ex. monsite.fr - Server) et choisissez la plateforme cible Server.

2

Choisir le provisioning

GTM propose un provisioning automatique sur Google Cloud (App Engine) ou une configuration manuelle. Choisissez « Provisionner manuellement » si vous hébergez ailleurs que sur GCP — c'est le cas avec ServerSide by Sirdata. GTM vous fournit alors une Container Config (chaîne base64) à transmettre à votre hébergeur.

ℹ️
Container ConfigCette chaîne encode l'ID du conteneur et permet à n'importe quel environnement d'exécution (Docker, Cloud Run, hébergement managé) de faire tourner votre conteneur serveur.

Étape 2 — Choisir l'hébergement

Trois grandes options, à choisir selon vos contraintes d'équipe et de conformité :

OptionAvantagesPoints d'attention
ServerSide by Sirdata (managé) Déploiement en quelques clics, hébergement en Europe, scaling automatique, support Sirdata, conformité RGPD
Google Cloud (App Engine / Cloud Run) Intégration native GTM, provisioning automatique Coûts à surveiller, données chez Google Cloud, compétences GCP requises
Auto-hébergé (Docker) Contrôle total de l'infrastructure Maintenance, scaling et monitoring à votre charge

Pour un déploiement Docker auto-hébergé, l'image officielle s'utilise ainsi :

shell — déploiement Docker (auto-hébergé)
docker run -d \
  -p 8080:8080 \
  -e CONTAINER_CONFIG='VOTRE_CONTAINER_CONFIG_BASE64' \
  -e RUN_AS_PREVIEW_SERVER=false \
  gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
💡
Le réflexe SirdataAvec ServerSide by Sirdata, vous collez simplement votre Container Config dans l'interface : le endpoint, le certificat TLS, le serveur de preview et le scaling sont gérés pour vous, sur une infrastructure européenne.

Étape 3 — Configurer le sous-domaine first-party

C'est l'étape qui donne tout son intérêt au server-side : le endpoint de collecte doit être un sous-domaine de votre site (ex. sgtm.monsite.fr), et non un domaine tiers. Les cookies posés seront ainsi de vrais cookies first-party.

1

Créer l'enregistrement DNS

Dans votre zone DNS, créez un enregistrement pointant vers votre hébergement :

DNS — exemple d'enregistrement
# Hébergement managé (CNAME fourni par votre hébergeur, ex. Sirdata)
sgtm.monsite.fr.   CNAME   endpoint-fourni-par-sirdata.example.

# Ou enregistrement A si vous avez une IP dédiée
sgtm.monsite.fr.   A       203.0.113.42
2

Déclarer l'URL dans GTM

Dans le conteneur serveur : Admin → Paramètres du conteneur → URL du serveur, renseignez https://sgtm.monsite.fr. Vérifiez que le certificat TLS couvre bien ce sous-domaine.

⚠️
Même domaine racine obligatoireLe sous-domaine de collecte doit partager le domaine racine du site (monsite.fr). Un endpoint sur un autre domaine reste techniquement third-party : cookies limités et bénéfice ITP perdu.

Étape 4 — Relier le conteneur web

Il faut maintenant dire à vos tags web d'envoyer les hits vers votre serveur plutôt que vers Google. Pour GA4, cela passe par le paramètre server_container_url dans le tag Google (détaillé dans le tuto GA4 server-side).

Tag Google (GA4) — paramètre de configuration
// Dans le tag "Google Tag" du conteneur WEB :
// Paramètres de configuration → ajouter :

server_container_url : https://sgtm.monsite.fr

Côté conteneur serveur, le Client GA4 (préinstallé) revendiquera automatiquement ces requêtes entrantes et les transformera en événements exploitables par vos tags serveur.

Étape 5 — Tester en mode Preview

1

Ouvrez le mode Aperçu du conteneur serveur : vous voyez les requêtes HTTP entrantes, le client qui les revendique, les événements générés et les tags déclenchés.

2

Ouvrez en parallèle le mode Aperçu du conteneur web, naviguez sur le site et vérifiez que chaque événement web se retrouve côté serveur. Un événement poussé dans le dataLayer ressemble à ceci :

JavaScript — dataLayer.push de test
window.dataLayer = window.dataLayer || [];
dataLayer.push({
  event: "demo_sgtm_ok",
  demo: {
    source: "gtm-server.io",
    endpoint: "https://sgtm.monsite.fr",
    timestamp: new Date().toISOString()
  }
});

🧪 À rejouer en démo : poussez cet événement en live et montrez son parcours navigateur → serveur.

Ouvrir le playground

Checklist finale