GuideInfrastructure~25 min

Google Tag Manager

Guide complet des conteneurs GTM Web (côté client) et serveur (côté serveur) : import des conteneurs préconfigurés, contrôle des valeurs, publication, architecture des balises, consentement, transport GA4, destinations CAPI et conversions améliorées.

Connecteurs0/3
ID du conteneur GTM Web
tagmanager.google.com (p. ex. GTM-XXXXXXX)
ID du conteneur GTM serveur
tagmanager.google.com (p. ex. GTM-XXXXXXX)
URL du conteneur serveur
Addingwell > Server > Custom Domain (p. ex. https://tags.domain.com)
Identifiants requis0/7
ID de mesure GA4URL du conteneur serveurCBID CookiebotID du pixel MetaJeton d'accès MetaID de conv. Google AdsLibellé de conv. Google Ads

À renseigner dans les guides correspondants (section Connecteurs en haut de chaque guide).

1Rôle et objectif

GTM est la pièce centrale du tracking. Il reçoit les événements du DataLayer (injecté par Addingwell), gère le consentement (Cookiebot CMP), bloque les balises marketing tant que le visiteur n'a pas donné son accord et achemine les hits vers le conteneur serveur (sGTM) par un domaine personnalisé first-party.

Boutique Shopify
      ↓
Addingwell (DataLayer + pixel personnalisé + injection GTM)
      ↓
┌─────────────────────────────────────────────────┐
│  Conteneur GTM Web (côté client)                │
│  Consentement, balises marketing, transport GA4 │
└─────────────────────────────────────────────────┘
      ↓  hits GA4 via server_container_url
┌─────────────────────────────────────────────────┐
│  Conteneur GTM serveur (côté serveur)           │
│  GA4 Server, Meta CAPI, Google Ads EC, etc.     │
└─────────────────────────────────────────────────┘
ConteneurRôleHébergement
Web (côté client)Consentement, pixels marketing, configuration et transport GA4, relais vers le sGTMNavigateur (via Addingwell)
Serveur (côté serveur)Destinations CAPI, conversions améliorées, tracking first-partyDomaine personnalisé (tags.ma-boutique.com)

Les deux conteneurs sont livrés complets et préconfigurés : balises, déclencheurs, variables et modèles d'éditeurs, tout y est. Vos identifiants y sont injectés depuis le bloc Connecteurs au moment du téléchargement.

2Architecture Web + serveur

Organisation du conteneur Web

Conteneur GTM Web
├── Consent Initialization
│   └── Cookiebot CMP (Denied par défaut)
│
├── GA4 Config / Transport
│   └── balise GA4 → server_container_url → sGTM
│
├── Balises marketing (en attente du consentement)
│   ├── Meta Pixel (PageView, ViewContent, AddToCart, Purchase)
│   └── Google Ads Remarketing
│
├── Déclencheurs DataLayer
│   ├── page_view, view_item_list, view_item
│   ├── add_to_cart, remove_from_cart, view_cart
│   └── begin_checkout, purchase
│
└── Variables
  ├── Variables DataLayer (ecommerce.*)
  ├── Variables d'état du consentement
  └── Variables du bloc Connecteurs

Organisation du conteneur serveur

Conteneur serveur sGTM
├── Client
│   └── GA4 Client (reçoit les hits du conteneur Web)
│
├── Balises
│   ├── GA4 Server Tag → Google Analytics
│   ├── Meta Conversions API Tag → Meta
│   └── Google Ads Server Conversions Tag → Google Ads
│
├── Déclencheurs
│   └── Fondés sur l'event_name GA4 (purchase, page_view, etc.)
│
└── Variables
  ├── Variables Event Data (transaction_id, value, etc.)
  └── Variables User Data (e-mail, téléphone : hachés)

Flux complet Web → serveur

GTM Web → GA4 transport → server_container_url
                                  ↓
                          sGTM Server Container
                                  ↓
                  ┌───────────────┼───────────────┐
                  ↓               ↓               ↓
            GA4 Server       Meta CAPI      Google Ads EC
                  ↓               ↓               ↓
          google-analytics   graph.facebook   googleads.g

Principes

  • Chaque balise a son propre déclencheur DataLayer
  • Les balises marketing dépendent du consentement
  • GA4 sert de transport vers le sGTM, par le domaine personnalisé first-party
  • Aucune balise ne part sans déclencheur explicite
  • Le client et le serveur partagent le même event_id, ce qui permet la déduplication
Conteneur Web (côté client)

3Conteneur GTM Web

Procédure d'import

Importer le conteneur Web
1

Téléchargez le conteneur Web ci-dessous

2

GTM Web → Administration → Importer un conteneur

3

Espace de travail : Default

4

Mode d'import : Fusionner, en écrasant les balises, déclencheurs et variables en conflit

0/8 variables

Contenu du conteneur

17 balisesCookiebot CMP, GA4 Config + Transport Addingwell, Conversion Linker, Google Ads Remarketing, etc.
18 déclencheursÉvénements e-commerce (page_view, view_item, add_to_cart, begin_checkout, purchase) et mises à jour du consentement
32 variablesConstantes du bloc Connecteurs (ID GA4, URL du serveur, CBID), plus les variables DataLayer, Event Data et User Data
3 modèlesCookiebot CMP, Facebook Pixel, Event ID

DataLayer et déclencheurs

C'est Addingwell qui alimente le DataLayer, pas le thème. Les événements arrivent d'eux-mêmes dans GTM.

Événement DataLayerDéclencheur GTMBalises associées
page_viewCE - page_viewGA4, Meta PageView
view_itemCE - view_itemGA4, Meta ViewContent
add_to_cartCE - add_to_cartGA4, Meta AddToCart
begin_checkoutCE - begin_checkoutGA4, Meta InitiateCheckout
purchaseCE - purchaseGA4, Meta Purchase, Google Ads Conversion

Consent Mode v2

1. Consent Initialization
 └── Cookiebot → Denied par défaut
     (ad_storage, analytics_storage, ad_user_data, ad_personalization)

2. Le visiteur accepte ou refuse
 └── Cookiebot → consent_update

3. Balises conditionnées
 └── Vérification intégrée du consentement avant chaque déclenchement
BaliseConsentement requis
Cookiebot CMPAucun (Consent Initialization)
GA4 Configanalytics_storage (Advanced Consent Mode)
Meta Pixelad_storage + ad_user_data
Google Ads Remarketingad_storage + ad_personalization

Advanced Consent Mode

GA4 fonctionne en Advanced Consent Mode (mode Consentement avancé) : même sans consentement, il envoie des pings anonymisés, sans cookies. Les balises marketing, elles, restent strictement bloquées tant que le consentement manque.

GA4 Config / Transport

La balise GA4 Config initialise GA4 et règle l'envoi des hits vers le conteneur serveur (sGTM) par le domaine personnalisé.

ParamètreValeurRôle
ID de mesureG-XXXXXXXXXXIdentifiant GA4
server_container_urlhttps://tags.ma-boutique.comDomaine personnalisé du sGTM (first-party)
send_page_viewfalseDésactivé : c'est le déclencheur page_view qui s'en charge
Événement DataLayer (p. ex. purchase)
      ↓
GA4 Event Tag (purchase)
      ↓
GA4 Config (server_container_url)
      ↓
https://tags.ma-boutique.com (sGTM)
      ↓
Destinations côté serveur

server_container_url

Le paramètre server_container_url envoie les hits GA4 vers le sGTM au lieu de google-analytics.com. C'est lui qui permet de passer outre les bloqueurs de publicité et de faire du tracking first-party.

Balises marketing côté client

PlateformeBaliseÉvénements
MetaMeta PixelPageView, ViewContent, AddToCart, InitiateCheckout, Purchase
Google AdsRemarketingPages vues + audiences
  • Côté client : enrichit les signaux first-party (cookies _fbp, _fbc, ttclid, etc.)
  • Côté serveur (sGTM) : envoie les conversions par API (plus robuste, avec déduplication)
  • La déduplication par event_id / transaction_id évite les doublons
  • Les deux canaux se complètent pour maximiser le signal

Rappel : Consent Mode

Le Consent Mode v2 (toutes les valeurs par défaut à Denied) est piloté par la balise Cookiebot CMP dans GTM. C'est elle qui charge la bannière, pose les valeurs par défaut, transmet les mises à jour du consentement et active les déclencheurs conditionnels.

Conteneur serveur (côté serveur)

4Conteneur GTM serveur

Procédure d'import

Importer le conteneur serveur
1

Téléchargez le conteneur serveur ci-dessous

2

GTM serveur (via Addingwell) → Administration → Importer un conteneur

3

Espace de travail : Default

4

Mode d'import : Fusionner, en écrasant les balises, déclencheurs et variables en conflit

0/7 variables

Contenu du conteneur

15 balisesGA4 Server, Meta CAPI (Full server-only), Google Ads EC (10 conversions), Addingwell Monitoring
12 déclencheursÉvénements du client GA4 (page_view, purchase, add_to_cart, view_item, begin_checkout, etc.)
8 variablesEvent Data (items, value, currency, event_id, fbc, gclid) et la constante Conversion ID
4 modèlesMeta CAPI by Addingwell, Addingwell Monitoring, URL Builder, Facebook CAPI

Routage dans le sGTM

GA4 Client (reçoit les requêtes du transport Addingwell)
├── GA4 Server → transfert vers GA4
├── META – CAPI → API Conversions (Full server-only)
│   └── cookies 1P fbp/fbc, event_id, user_data
├── GADS – Conv (x10) → conversions améliorées
│   └── purchase, add_to_cart, begin_checkout, view_item, etc.
├── Addingwell Monitoring → logs et analyses
└── Enrichissement automatique :
  • user data via la GA4 Event Settings Variable
  • event_id pour la déduplication Meta
  • signaux Consent Mode v2

Domaine personnalisé first-party

  • Les hits partent vers tags.ma-boutique.com au lieu de google-analytics.com
  • Les bloqueurs de publicité laissent passer les requêtes first-party
  • Les cookies sont first-party : l'ITP n'y touche pas
  • Une meilleure attribution et des cookies qui durent plus longtemps
DNS
tags.ma-boutique.com → CNAME → hébergement du sGTM

GTM Web
GA4 Config → server_container_url = https://tags.ma-boutique.com

Résultat
Tous les hits GA4 passent par le domaine personnalisé

HTTPS obligatoire

Le domaine personnalisé doit être servi en HTTPS. Le fournisseur du sGTM (Addingwell, Stape, etc.) gère le certificat SSL automatiquement.

Destinations côté serveur

DestinationBalise sGTMAPIÉvénements
MetaMeta Conversions APIgraph.facebook.comPageView, ViewContent, AddToCart, Purchase
Google AdsGoogle Ads Conversionsgoogleads.googleapis.compurchase (action de conversion)

Déduplication

PlateformeClé de déduplication
Metaevent_id (identique côté client et côté serveur)
Google Adstransaction_id / order_id

Modèles Addingwell

Les modèles Addingwell (Meta CAPI, Google Ads Conversions) enrichissent automatiquement les événements avec les user_data, les cookies et les paramètres d'URL. Aucune variable à configurer à la main.

Conteneur clé en main : les connecteurs côté serveur, le routage first-party et les identifiants des destinations (ID de pixel, jetons d'accès) sont préremplis depuis le bloc Connecteurs. Meta tourne en Full CAPI, sans pixel dans le navigateur.

Configuration et publication

5Vérifier les valeurs

Toutes les valeurs sont déjà renseignées dans les conteneurs importés. Ouvrez chaque variable ou balise dans GTM et vérifiez que la valeur est la bonne.

GTM Web : 3 constantes
ID de mesure GA4
ID de mesureG-XXXXXXX
URL du conteneur serveur
URL du conteneurhttps://tags.ma-boutique.com
CBID Cookiebot
CBIDxxxxxxxx-xxxx-...
GTM serveur : identifiants des destinations
Meta CAPI
ID du pixel123456789
Jeton d'accèsEAAG...
Google Ads
ID de conversionAW-XXXXXXXXX
Libellé de conv.AbCdEf...

Procédure : GTM → Variables (conteneur Web) ou Balises (conteneur serveur) → ouvrez l'élément → vérifiez la valeur reprise du bloc Connecteurs. Les variables DataLayer (DLV - ecommerce - *) se remplissent d'elles-mêmes grâce à Addingwell.

6Désactiver les destinations inutilisées

Si une destination ne vous sert pas, mettez ses balises en pause : ne les supprimez pas.

Destination absente
Balise Web à suspendre
Balise serveur à suspendre
Pas de Meta Ads
META - Pixel - All Events
META - CAPI - All Events
Pas de Google Ads
GADS - Remarketing - All Pages
GADS - Conv - purchase

Procédure : GTM → Balises → ouvrez la balise → menu ... → « Pause » (suspendre) → enregistrez.

7Publier les conteneurs

Une fois les valeurs vérifiées et les destinations inutiles mises en pause :

GTM Web
1Envoyer
2Nommer la version
3Publier
GTM serveur
1Envoyer
2Nommer la version
3Publier

Avant de publier

Ne publiez pas si une valeur vous semble fausse, ou si des valeurs d'exemple (placeholders) apparaissent encore dans les variables ou les balises. Corrigez-les d'abord dans le bloc Connecteurs.

Référence et vérification

8Référence des balises

Conversions améliorées (Enhanced Conversions)

Les conversions améliorées envoient aux plateformes des données hachées (SHA-256), ce qui améliore la correspondance avec les utilisateurs.

DonnéeSourceHachage
E-mailDataLayer (purchase)SHA-256 automatique
TéléphoneDataLayer (purchase)SHA-256 automatique
PrénomDataLayer (purchase)SHA-256 automatique
NomDataLayer (purchase)SHA-256 automatique
AdresseDataLayer (purchase)SHA-256 automatique
Tunnel de paiement Shopify (purchase)
      ↓
DataLayer (user_data en clair)
      ↓
GTM Web → transport GA4 → sGTM
      ↓
Les modèles sGTM hachent automatiquement
      ↓
Les plateformes reçoivent les données hachées

Consentement obligatoire

Les données utilisateur ne partent jamais sans consentement marketing. Le Consent Mode v2 bloque leur transmission si ad_user_data = Denied.

Variables DataLayer (conteneur Web)

VariableChemin DataLayerUtilisation
DLV - ecommerce.currencyecommerce.currencyDevise (EUR, USD, etc.)
DLV - ecommerce.valueecommerce.valueMontant de la transaction
DLV - ecommerce.transaction_idecommerce.transaction_idID unique de la commande
DLV - ecommerce.itemsecommerce.itemsProduits (tableau)

Identifiants nécessaires (conteneur serveur)

DestinationIdentifiants
Meta CAPIID du pixel + jeton d'accès
Google AdsID de conversion + libellé de conversion
GA4ID de mesure (repris du conteneur Web)

Convention de nommage

Les variables DataLayer portent le préfixe DLV -. Les constantes de configuration sont nommées d'après leur rôle. Les déclencheurs portent le préfixe CE - (Custom Event, soit événement personnalisé).

9Vérification

Mode Aperçu de GTM (conteneur Web)

  1. 1Ouvrez GTM → Prévisualiser (bouton en haut à droite)
  2. 2Saisissez l'URL de la boutique Shopify
  3. 3Naviguez sur la boutique dans l'onglet d'aperçu
  4. 4Regardez dans le panneau de débogage quelles balises se déclenchent
ContrôleRésultat attendu
Consent InitializationCookiebot CMP se déclenche en premier
Avant consentementSeules les balises Cookiebot et GA4 Config se déclenchent
Après consentement marketingMeta et Google Ads se déclenchent
Événement purchaseToutes les variables ecommerce sont remplies
server_container_urlLes hits GA4 partent vers le domaine personnalisé

Mode Aperçu de GTM (conteneur serveur)

  1. 1Ouvrez GTM serveur → mode Aperçu
  2. 2Naviguez sur la boutique et déclenchez quelques événements
  3. 3Vérifiez que le client GA4 reçoit les hits
  4. 4Vérifiez que chaque balise serveur se déclenche correctement

Vérifier les destinations

DestinationOutil de vérification
Meta CAPIGestionnaire d'événements Meta → Tester les événements
Google AdsGoogle Ads → Conversions → Diagnostics
GA4DebugView de GA4 (temps réel)

Proxy CDN et mode Aperçu

Quand le proxy CDN d'Addingwell est actif, le mode Aperçu peut ne pas fonctionner sur le domaine personnalisé. Testez en désactivant le proxy le temps du test, ou passez par l'URL GTM directe.

Phase 2 : socle GTM et consentement

Socle GTM et consentement0/7
Test avant consentement (navigation privée)
1Ouvrez le site en navigation privée
2Cliquez sur « Tout refuser » dans la bannière Cookiebot
3Aperçu GTM : vérifiez que seules les balises nécessaires (Necessary) se déclenchent
4Onglet Réseau : aucune requête vers GA4, Meta ou Google Ads
Test après consentement
1Ouvrez le site en navigation privée
2Cliquez sur « Tout accepter » dans la bannière
3Aperçu GTM : les balises analytics et marketing doivent se déclencher
4DebugView de GA4 : les événements apparaissent en temps réel

10Dépannage

Les balises ne se déclenchent pas (Web)

Vérifier :

  1. 1GTM injecté par Addingwell (aucun snippet manuel en conflit)
  2. 2ID de conteneur correct
  3. 3Événements DataLayer présents (console → dataLayer)
  4. 4Déclencheurs bien associés aux événements
Balises marketing déclenchées sans consentement

Vérifier :

  • Balise Cookiebot sur Consent Initialization (et non sur All Pages)
  • Consentement intégré configuré sur chaque balise marketing
  • Aucune balise réglée sur « No additional consent required » (aucun consentement supplémentaire requis)
Le sGTM ne reçoit aucun hit

Vérifier :

  1. 1server_container_url correct dans GTM Web (balise GA4 Config)
  2. 2Domaine personnalisé opérationnel (curl https://tags.ma-boutique.com/healthz)
  3. 3Conteneur serveur publié
  4. 4Client GA4 configuré dans le sGTM
Meta CAPI renvoie des erreurs

Vérifier :

  • Jeton d'accès valide et non expiré
  • ID du pixel correct
  • Permissions du jeton (ads_management, ads_read)
  • Format des événements (event_name, user_data)
Conversions en double

Vérifier :

  • event_id identique côté client et côté serveur
  • Pas de balise purchase en double dans GTM Web
  • Aucune conversion importée à la main en parallèle
  • Déduplication activée côté plateforme
Conversions améliorées : taux de correspondance faible

Vérifier :

  • user_data présent dans le DataLayer (e-mail, téléphone)
  • Données non vides au moment du purchase
  • Hachage automatique actif dans les modèles
  • Consentement ad_user_data = Granted

Checklist complète

GTM : import, configuration et publication0/9

Vérifiez la couche que vous venez d'installer

Scannez la boutique : 41 contrôles lisent ce qu'elle envoie maintenant à GA4, Meta et Google Ads.