Academy · TrackingGoogle Analytics 4

Google Analytics 4

Guide technique pour mesurer le trafic et les conversions e-commerce : architecture côté serveur, couche de transport, débogage, attribution.

Série Tracking · Analytics · environ 15 min de lecture.

Identifiants nécessaires pour ce guide :

IdentifiantVariable GTMOù le trouver
ID de mesure GA4Const - GA4 - Measurement IDGA4 > Administration > Flux de données > flux Web (p. ex. G-XXXXXXX)

Rôle et objectif

Dans notre dispositif de tracking, GA4 joue deux rôles :

GA4 est à la fois l'outil d'analytics et le véhicule technique qui alimente toutes les destinations côté serveur (Meta CAPI, Google Ads, etc.).

Architecture côté serveur

Le flux complet

Addingwell DataLayer
        |
GTM Web Container
        |
GA4 Config Tag (transport_url = sGTM)
        |
Server-Side GTM (domaine personnalisé)
        |
+-- GA4 Server Tag --> Google Analytics
+-- Meta CAPI Tag --> Meta Conversions API
+-- Google Ads Tag --> Enhanced Conversions
+-- Autres destinations côté serveur

Pourquoi côté serveur ?

  • Contourne les bloqueurs de publicité (domaine personnalisé first-party)
  • Données plus fiables (aucune perte côté client)
  • Consent Mode géré côté serveur
  • Un point de collecte unique pour toutes les destinations
  • Cookie restore contre l'ITP, via Addingwell

Transport des données

Dans notre architecture, GA4 sert de couche de transport entre le GTM Web et le sGTM. Les événements GA4 transportent toutes les données dont les destinations ont besoin.

server_container_url

Le champ server_container_url de la balise GA4 Config envoie les hits vers le sGTM au lieu de google-analytics.com.

Sans server_container_url :
  navigateur --> google-analytics.com (bloqué par les bloqueurs de publicité)

Avec server_container_url :
  navigateur --> tags.ma-boutique.com --> sGTM --> GA4 + destinations

Point critique

Sans server_container_url, les hits GA4 partent directement chez Google et aucune destination côté serveur ne fonctionne (Meta CAPI, conversions améliorées Google Ads, etc.).

Le parcours des données GA4

GA4 est branché automatiquement sur le transport côté serveur. La balise GA4 Config du GTM Web envoie les hits vers le domaine personnalisé du sGTM (first-party), qui les reçoit et les redistribue.

GTM Web (client)
  --> GA4 Config + Transport tag
    --> Requête HTTP vers le domaine personnalisé du sGTM (first-party)

sGTM (serveur)
  --> GA4 Client (reçoit la requête)
    +-- GA4 Server tag --> Google Analytics 4
    +-- META - CAPI - All Events --> Meta (Full CAPI, server-only)
    +-- GADS - Conv - purchase --> Google Ads Enhanced Conversions
    +-- (bientôt) TikTok Events API, Snap CAPI

Enrichissement côté serveur :
  - Hachage SHA-256 automatique (e-mail, téléphone, adresse)
  - Cookies d'attribution (fbp, fbc, gclid, wbraid, gbraid)
  - event_id pour la déduplication
  - Signaux Consent Mode v2 transmis

Ce que GA4 reçoit

  • Tous les événements e-commerce du DataLayer (page_view, view_item, add_to_cart, purchase, etc.)
  • Les paramètres enrichis (items[], value, currency, transaction_id)
  • Les signaux Consent Mode v2 (analytics_storage, ad_storage)
  • Les cookies d'attribution first-party (fbp, fbc, gclid), grâce au cookie restore

Ce que GA4 ne reçoit pas directement

  • Les données personnelles en clair (hachées uniquement côté serveur)
  • Les événements destinés aux autres plateformes (Meta, Google Ads) : le sGTM les traite en parallèle
  • Les événements sans consentement analytics (seulement les pings anonymisés de l'Advanced Consent Mode)

GA4 n'a besoin d'aucune configuration supplémentaire pour servir de transport. L'ID de mesure et le server_container_url renseignés dans le conteneur GTM Web suffisent : les conteneurs GTM préconfigurés font le reste.

Événements e-commerce

Événements suivis dans GA4

Événement GA4Étape du tunnelParamètres clés
page_viewToutes les pagespage_location, page_title
view_item_listDécouverteitem_list_name, items[]
select_itemDécouverteitem_list_name, items[]
view_itemConsidérationcurrency, value, items[]
add_to_cartConsidérationcurrency, value, items[]
remove_from_cartConsidérationcurrency, value, items[]
view_cartConsidérationcurrency, value, items[]
begin_checkoutConversioncurrency, value, items[]
add_shipping_infoConversionshipping_tier, currency, value
add_payment_infoConversionpayment_type, currency, value
purchaseConversiontransaction_id, currency, value, items[]

Paramètres enrichis

Chaque événement e-commerce contient le tableau items[] complet : item_id, item_name, price, quantity, item_category et item_variant.

Balise Config (GTM Web)

La balise GA4 Config du conteneur GTM Web règle la collecte et le transport vers le sGTM.

ParamètreValeurRôle
ID de mesureG-XXXXXXXXXXIdentifie la propriété GA4
server_container_urlhttps://tags.ma-boutique.comEnvoie les hits vers le sGTM
Consentementanalytics_storageSoumis au consentement Cookiebot
DéclencheurAll Pages (toutes les pages)Initialisée sur chaque page

Balise GA4 Transport

Une seconde balise GA4 Event sert de transport aux événements e-commerce : elle relaie les événements du DataLayer jusqu'au conteneur serveur (sGTM).

Les deux balises (Config et Transport) sont incluses dans le conteneur GTM Web préconfiguré. Les identifiants (ID de mesure, server_container_url) y sont des constantes à renseigner avec vos valeurs.

Balise GA4 Server (sGTM)

Dans le sGTM, la balise GA4 Server reçoit les événements et les transmet à la propriété Google Analytics.

GA4 Client (sGTM) reçoit le hit
        |
GA4 Server Tag --> transmis à Google Analytics
        |
Autres balises (Meta, Google Ads) --> lisent les mêmes événements
        |
Chaque destination reçoit les données enrichies
  • Le client GA4 analyse les hits entrants
  • La balise GA4 Server les transmet à Google Analytics
  • Les autres balises (Meta CAPI, Google Ads) se déclenchent sur les mêmes événements
  • Aucun double envoi : un seul hit GA4 alimente toutes les destinations

Conversions et attribution

Dans GA4, marquez comme conversions (« événements clés » dans l'interface de GA4) les événements qui comptent :

ÉvénementConversionValeur
purchaseOuiChiffre d'affaires de la transaction
begin_checkoutFacultatifValeur du panier
add_to_cartNon-
page_viewNon-

Modèle d'attribution

  • Par défaut, GA4 utilise l'attribution basée sur les données (Data-Driven Attribution)
  • Les conversions modélisées compensent les pertes de données (consentement, bloqueurs de publicité)
  • L'Advanced Consent Mode envoie des pings anonymisés, même sans consentement analytics
  • Les conversions Google Ads importées depuis GA4 profitent de cette modélisation

Configuration

Prérequis

  • Propriété GA4 créée dans Google Analytics
  • ID de mesure (G-XXXXXXXXXX)
  • Flux Web configuré
  • Domaine personnalisé du sGTM configuré (server_container_url)

Identifiants GA4

Les identifiants GA4 à renseigner dans le conteneur GTM Web :

ChampExempleUtilisation
ga4_measurement_idG-XXXXXXXXXXBalise GA4 Config du GTM Web
server_container_urlhttps://tags.ma-boutique.comTransport vers le sGTM

Remplacez ces valeurs d'exemple dans le conteneur GTM Web avant de le publier (guide Google Tag Manager).

DebugView et Temps réel

DebugView

  1. Administration GA4 → DebugView
  2. Activez le mode débogage (aperçu GTM ou debug_mode=true)
  3. Les événements apparaissent en temps réel, avec tous leurs paramètres
  4. Vérifiez les paramètres ecommerce GA4 (items[], value, currency)
  5. Vérifiez que les événements arrivent bien (aucun trou dans le tunnel)

Temps réel

  • GA4 → Rapports → Temps réel
  • Affiche les événements des 30 dernières minutes
  • Pratique pour vérifier rapidement un changement
  • N'affiche pas le détail des paramètres (passez par DebugView pour cela)

Latence

Les rapports GA4 standards ont 24 à 48 h de retard. Pour déboguer, utilisez toujours DebugView ou le rapport Temps réel.

Vérification

Vérifier le transport vers le sGTM

  1. Ouvrez l'onglet Réseau (Network) du navigateur
  2. Filtrez sur le domaine personnalisé (tags.ma-boutique.com)
  3. Les requêtes /collect doivent pointer vers le sGTM
  4. Aucune requête directe vers google-analytics.com

Vérifier les événements GA4

  1. GA4 → DebugView (activez le mode débogage)
  2. Naviguez sur la boutique : accueil → collection → produit → panier → paiement
  3. Vérifiez chaque événement du tunnel
  4. Vérifiez les paramètres ecommerce GA4 (items[], value, currency)
  5. Passez un achat test → vérifiez que purchase porte bien un transaction_id

Vérifier le consentement

  • Avant consentement : uniquement des pings anonymisés (Advanced Consent Mode)
  • Après consentement analytics : événements complets, avec les cookies GA4
  • Vérifiez dans le mode Aperçu de GTM que le consentement conditionne bien les balises

Contrôles de GA4 en tant que destination (phase 3)

Points de contrôle propres à GA4 en tant que destination du sGTM :

  • Événements visibles dans le rapport Temps réel de GA4 après consentement
  • Requêtes envoyées par le domaine personnalisé du sGTM (et non par googletagmanager.com)
  • Balise GA4 Server active dans le sGTM, qui transmet bien à Google Analytics
  • Vérifiez dans GA4 → Administration → DebugView que les événements arrivent bien du serveur

Dépannage

Checklist GA4

Checklist GA4

  • ID de mesure (G-XXXXXXXXXX) renseigné dans le conteneur GTM Web
  • server_container_url pointe vers le domaine personnalisé du sGTM
  • Balise GA4 Config présente et active dans GTM Web
  • Transport sGTM : requêtes visibles via le domaine personnalisé dans l'onglet Réseau
  • Événements visibles dans le rapport Temps réel de GA4 après consentement
  • Requêtes envoyées par le domaine personnalisé du sGTM (et non par googletagmanager.com)
  • DebugView : événements e-commerce avec tous leurs paramètres (items[], value, currency)
  • Événement purchase avec un transaction_id unique
  • Consent Mode : uniquement des pings anonymisés avant le consentement analytics
  • Aucun doublon : un seul conteneur GTM, aucune app de tracking native

Et ensuite