GTM Server-Side insère un serveur entre le navigateur et les endpoints vendeurs tiers. Plutôt que d’envoyer des hits directement depuis le navigateur vers Google, Meta ou d’autres vendeurs, le conteneur web envoie des requêtes au conteneur serveur, qui les traite et transmet les données de manière sélective.
Le serveur contrôle quelles données vont où, peut enrichir ou supprimer des informations avant de les transmettre, définit des cookies en tant que serveur first-party plutôt que script tiers, et peut distribuer une seule requête entrante vers plusieurs endpoints vendeurs simultanément.
Le flux de données
Voici ce qui se passe lorsqu’une page se charge avec GTM Server-Side configuré :
- Le navigateur charge votre conteneur web GTM normalement
- Au lieu d’envoyer des hits directement à Google, Meta ou d’autres vendeurs, le conteneur web envoie des requêtes HTTP à l’URL de votre conteneur serveur (par exemple
https://gtm.yourdomain.com) - Le conteneur serveur reçoit ces requêtes, les traite et transmet les données aux endpoints vendeurs
- Le serveur envoie une réponse HTTP au navigateur, qui peut inclure des en-têtes
Set-Cookiepour les cookies first-party
L’étape 4 est là où vit le mécanisme du cookie FPID. L’approche par en-tête de réponse est ce qui contourne la limite de 7 jours de Safari sur les cookies définis par JavaScript — le navigateur reçoit un cookie via en-tête HTTP d’un serveur qui partage son domaine, pas via document.cookie d’un script tiers.
Le multiplexage à l’étape 3 est le levier architectural. Vous remplacez N connexions navigateur-vers-vendeur par 1 connexion navigateur-vers-serveur qui se distribue côté serveur. Cela réduit la charge du navigateur, élimine les scripts vendeurs du client et vous donne un point de contrôle unique pour la gouvernance des données.
Les quatre blocs constitutifs
GTM Server-Side utilise quatre types de composants. Ils sont conceptuellement similaires à GTM web mais présentent des différences importantes.
Clients
Les Clients sont propres à GTM server-side — il n’existe pas d’équivalent dans les conteneurs web. Ils agissent comme des gardiens qui écoutent les requêtes HTTP entrantes sur des chemins d’URL spécifiques.
Le Client GA4, préinstallé par défaut, écoute sur le chemin /g/collect les requêtes Measurement Protocol GA4. Lorsqu’un Client reconnaît et réclame une requête, il parse les données HTTP brutes en un objet Event Data standardisé avec lequel le reste du conteneur travaille. Pensez-y comme une traduction : HTTP brut → événement structuré.
Les Clients fonctionnent par ordre de priorité. Le premier Client à reconnaître et réclamer une requête devient actif — les Clients suivants n’ont pas d’opportunité. Si aucun Client ne réclame une requête, elle n’est pas traitée. Cet ordre compte lorsque vous avez plusieurs Clients (Client GA4, Data Client de Stape pour les requêtes vendor-agnostiques, un Client personnalisé pour un endpoint spécifique).
Tags
Les Tags reçoivent les Event Data parsées et compilent les requêtes HTTP sortantes vers les endpoints vendeurs. Les tags intégrés couvrent GA4, Google Ads Conversion Tracking, Google Ads Remarketing et un tag HTTP Request générique. La Community Template Gallery étend cela à Meta CAPI, TikTok Events API, LinkedIn CAPI, Snapchat, Pinterest et plus encore.
La différence clé par rapport aux tags GTM web : les tags server-side ne touchent jamais le navigateur. Ils effectuent des appels HTTP serveur-à-serveur. C’est pourquoi l’état du consentement doit être explicitement transmis — les tags server-side n’ont pas accès à l’état de consentement du navigateur à moins que le conteneur web ne l’encode dans la requête.
Déclencheurs
Les déclencheurs fonctionnent de manière similaire à GTM web mais avec des types d’événements différents. Le déclencheur Custom, qui se déclenche quand « une requête a été envoyée au conteneur serveur GTM », est le cheval de bataille des configurations server-side.
Un détail critique qui brise plus de configurations que tout autre : la condition Client Name dans les déclencheurs est sensible à la casse. Si votre Client s’appelle « GA4 » et que votre condition vérifie « ga4 », rien ne se déclenche. Aucune erreur, aucun avertissement — échec silencieux. GTM n’indique pas que la condition ne correspond pas. C’est le piège de débogage le plus courant du premier jour.
Variables et Transformations
Les Variables récupèrent des valeurs depuis les données d’événement entrantes en utilisant des chemins de clés. Les types principaux :
- Event Data — accède aux valeurs comme
page_location,user_data.email_address, ou tout paramètre personnalisé en utilisant la notation pointée pour les champs imbriqués - Query Parameter — lit les paramètres URL depuis la requête entrante
- Cookie — lit les cookies envoyés avec la requête (utile pour transmettre
_fbp,_fbcà Meta) - Request Header — lit les en-têtes HTTP (user agent, adresse IP, etc.)
- Constant — valeurs statiques comme les clés API et les IDs de mesure
Les Transformations sont un type de ressource plus récent qui se situe entre les Clients et les Tags. Elles vous permettent de modifier les Event Data avant que les tags y accèdent — inclure, exclure ou transformer des paramètres spécifiques. Usages pratiques : enrichir les données d’événement depuis une lookup externe, supprimer les PII avant de les transmettre à des vendeurs spécifiques, ou remapper les noms de champs pour correspondre au format attendu d’un vendeur. Une Transformation est appliquée aux tags sélectionnés, vous pouvez donc supprimer l’email du tag Meta sans affecter le tag GA4.
Pourquoi l’architecture intermédiaire est importante
Le passage du client-side au server-side ne concerne pas uniquement les cookies. Le pattern intermédiaire crée des capacités qui n’existent pas dans les implémentations client-side :
Contrôle des données. Vous décidez ce que chaque vendeur reçoit. Vous pouvez transmettre l’événement complet à GA4 et une version épurée (sans PII) à un vendeur moins fiable. Vous pouvez enrichir les événements avec des données côté serveur — segments utilisateurs de votre CRM, marge produit de votre base de données — avant de les transmettre à GA4.
Charge navigateur réduite. Les SDKs vendeurs sont de lourdes bibliothèques JavaScript. Passer au server-side signifie charger moins de scripts tiers, ce qui réduit le poids de page et élimine une catégorie de cibles de bloqueurs de publicité (les scripts vendeurs eux-mêmes).
Point d’application du consentement. Le conteneur serveur devient un point d’application unique pour la gouvernance des données. Pour les tags non-Google qui ne lisent pas automatiquement les signaux de consentement, vous construisez la logique d’application une fois dans le conteneur serveur plutôt que sur plusieurs implémentations client-side.
Récupération des signaux d’attribution. Les hits server-side ne sont pas bloqués par les bloqueurs de publicité basés sur le navigateur (qui ciblent l’exécution JavaScript et les requêtes réseau provenant de domaines de trackers connus). Une requête depuis gtm.yourdomain.com ressemble à un appel serveur first-party, pas à un tracker tiers.
L’architecture nécessite un conteneur serveur déployé — ce n’est pas simplement une configuration GTM, c’est une infrastructure réelle que vous gérez (ou payez quelqu’un pour gérer à votre place).