Google Ads server-side: Suivi des conversions et Enhanced Conversions via sGTM
Les chiffres d'amélioration des conversions (+5% Search, +17% YouTube) sont issus des données publiées par Google et varient selon le secteur, l'audience et la qualité de l'implémentation. Mesurez toujours votre situation réelle via les Diagnostics de votre compte Google Ads.
Le tracking Google Ads server-side consiste à router vos événements de conversion via votre conteneur sGTM avant de les envoyer à Google Ads — plutôt que depuis le navigateur. Avantages : résistance aux adblockers, cookie FPGCLAW en first-party avec 90 jours de durée (vs 7 jours en JavaScript sur Safari), et activation des Enhanced Conversions avec enrichissement first-party.
Selon les données Google : +5% de conversions remontées sur Search et +17% sur YouTube avec les Enhanced Conversions. Sur les audiences à fort taux d'adblocking (tech, finance, B2B), le gain réel peut dépasser ces estimations.
user_data. Depuis juin 2024, la case "Include user-provided data" n'existe plus dans le sGTM — la configuration a changé.
Pourquoi le tracking Google Ads client-side perd des conversions
| Cause | Impact sur Google Ads | Estimation FR |
|---|---|---|
| Adblockers (uBlock, Brave, AdBlock) | Le script Google Ads (gtag.js) est bloqué avant chargement. La conversion n'est jamais envoyée. Le gclid n'est pas stocké. | 29–35% du trafic internet FR, jusqu'à 40–50% sur les audiences tech et B2B |
| Safari ITP | Les cookies JavaScript sont limités à 7 jours. Un utilisateur qui convertit après 8 jours n'est pas attribué. | iOS représente ~40–50% du trafic mobile e-commerce en France |
| Fermeture de page avant chargement du pixel | Sur les pages de confirmation lentes, le pixel peut ne pas se déclencher si l'utilisateur ferme l'onglet immédiatement. | Variable selon la vitesse de chargement — typiquement 2–8% des conversions |
L'effet sur le Smart Bidding est direct. Si 20–30% de vos conversions réelles sont invisibles, votre CPA apparent est surestimé et votre ROAS sous-estimé. Les algorithmes (Maximize Conversions, Target ROAS) manquent de signal et deviennent moins efficaces — vous payez plus pour des résultats identiques ou dégradés.
Browser-side vs server-side — les vraies différences pour Google Ads
| Aspect | Client-side (navigateur) | Server-side (sGTM) |
|---|---|---|
| Résistance aux adblockers | ❌ Bloqué par uBlock Origin, Brave Shields — listes filtrent gtag.js et googletagmanager.com | ✅ Requêtes partent de votre sous-domaine — non reconnu par les listes de blocage |
| Cookie FPGCLAW (attribution gclid) | JavaScript — limité à 7 jours sur Safari ITP. Expiré = pas d'attribution sur les cycles longs | HTTP Set-Cookie — 90 jours de durée, non soumis à ITP. Attribution correcte sur les cycles long |
| Enhanced Conversions | Données collectées dans le navigateur via variables GTM | Données transmises via user_data, parsées et hashées automatiquement par le sGTM |
| Fiabilité sur page lente | ❌ Si l'utilisateur ferme l'onglet avant le chargement, la conversion est perdue | ✅ La conversion part depuis votre serveur — indépendamment du navigateur |
| Consent Mode et ad_user_data | Requiert le signal ad_user_data granted pour les Enhanced Conversions en EEE |
Même prérequis — le sGTM vérifie le signal ad_user_data avant d'envoyer les données hashées |
| Complexité | ✅ Balise GTM + Conversion Linker — 30 minutes pour un setup de base | ⚠️ Infrastructure sGTM requise (Stape, GCP) + config — 2 à 4 heures minimum |
L'architecture hybride recommandée
La configuration optimale pour Google Ads n'est pas "l'un ou l'autre" — c'est les deux en parallèle :
- Client-side : lecture du
gcliddans l'URL, stockage immédiat du cookie de clic, déclenchement rapide du Conversion Linker - Server-side : balise Google Ads Conversion Tracking sur l'événement
purchase, cookie FPGCLAW en first-party, Enhanced Conversions enrichies viauser_data
La déduplication se fait via le transaction_id — Google Ads ignore les doublons qui partagent le même identifiant de transaction.
Vous n'avez pas encore de conteneur sGTM ? Notre guide détaille les options d'hébergement.
Stape.io — héberger votre sGTM →Enhanced Conversions — ce que c'est et ce que ça change vraiment
Les Enhanced Conversions envoient à Google des données first-party hashées — email, téléphone, prénom/nom — au moment d'une conversion. Google hache ces données en SHA-256 avant de les utiliser.
Quand cet utilisateur est connu de Google (compte Gmail, Google Search, YouTube), Google peut relier la conversion à une session publicitaire — même si le cookie de clic (gclid) a expiré ou n'existe pas (adblocker, appareil différent).
Chiffres réels publiés par Google
| Canal | Gain médian de conversions remontées | Source |
|---|---|---|
| Google Search | +5% de conversions remontées | Google (données terrain, 2024-2025) |
| YouTube | +17% de conversions remontées | Google (données terrain, 2024-2025) |
| Performance Max | Variable selon la part YouTube/Display | Estimations terrain, 2025 |
Enhanced Conversions et Consent Mode — le signal ad_user_data
Pour les utilisateurs dans l'EEE (dont la France), les Enhanced Conversions ne fonctionnent que si le signal ad_user_data du Consent Mode v2 est accordé. Sans ce signal, Google Ads ne peut pas recevoir les données hashées — même si vous les envoyez côté serveur.
ad_user_data est bien transmis (distinct de ad_storage). Un Consent Mode v2 qui envoie seulement les 2 signaux v1 (ad_storage + analytics_storage) sans les 2 signaux v2 (ad_user_data + ad_personalization) ne suffit pas pour les Enhanced Conversions. Guide : Consent Mode v2 complet →Changement juin 2024 — comment passer user_data au sGTM
Depuis juin 2024, la case "Include user-provided data" n'existe plus dans les paramètres de la balise Google Ads Conversion Tracking du conteneur serveur GTM. Ce changement de Google affecte toutes les implémentations existantes et toute la documentation antérieure à cette date.
Comment ça fonctionnait avant (obsolète)
Avant juin 2024 : vous activiez une case "Include user-provided data from your website" dans la balise Google Ads du sGTM, et le sGTM allait chercher les données côté web.
Comment ça fonctionne maintenant
Nouveau flux : vous passez les données utilisateur via le paramètre user_data dans votre DataLayer côté web. Le sGTM parse automatiquement ce paramètre, hache les données en SHA-256, et les transmet à Google Ads.
Ce qu'il faut faire dans le conteneur web GTM :
window.dataLayer.push({
event: 'purchase',
user_data: {
email_address: 'client@example.com', // hashé automatiquement par le sGTM
phone_number: '+33612345678',
address: {
first_name: 'Marie',
last_name: 'Dupont'
}
},
ecommerce: {
transaction_id: 'CMD-2026-001234',
value: 129.99,
currency: 'EUR'
}
});
Une fois ces données dans le DataLayer, la balise GA4 web les transmet au sGTM via l'URL de transport. Le sGTM les parse automatiquement depuis les données de l'événement GA4 — sans configuration supplémentaire dans la balise Google Ads du sGTM.
Stape documente également une nouvelle balise distincte : Google Ads User-provided Data Event, ajoutée dans le sGTM pour faciliter l'envoi des données utilisateur séparément du tracking de conversion standard. Si vous avez une configuration existante antérieure à juin 2024 avec la case à cocher, vérifiez qu'elle fonctionne encore — il est probable qu'une mise à jour soit nécessaire.
- L'email collecté lors de la soumission du formulaire est transmis via
user_datadans le DataLayer - Google peut retrouver l'attribution même si l'utilisateur a changé d'appareil entre le clic et le formulaire
- Configuration spécifique dans Google Ads : onglet Conversions améliorées pour les leads — distincte des Enhanced Conversions e-commerce
- Signal requis :
ad_user_data: 'granted'dans le Consent Mode v2
- L'email de facturation (et optionnellement téléphone, nom) est transmis via
user_dataavec l'événementpurchase - Améliore l'attribution sur les cycles d'achat longs — retour après 10 jours sur Safari = attribution correcte
- Le
transaction_idest indispensable pour la déduplication client-side + server-side
Configuration Google Ads server-side — les 5 étapes
Prérequis : un conteneur sGTM opérationnel avec sous-domaine first-party configuré, et un conteneur web GTM qui envoie les événements GA4 vers ce conteneur serveur. Si ce n'est pas encore en place : guide complet du tracking server-side →
-
1Configurer le Conversion Linker server-side
Dans votre conteneur sGTM, créez une balise de type Conversion Linker. Activez l'option "Permettre la définition de nouveaux cookies first-party". Déclenchez-la sur toutes les requêtes (All Pages dans le conteneur serveur).
Cette balise crée le cookie FPGCLAW côté serveur avec une durée de vie de 90 jours — contre 7 jours maximum pour le cookie JavaScript en client-side sur Safari. Conservez également le Conversion Linker client-side dans votre conteneur web GTM — les deux opèrent en parallèle.
-
2Créer la balise Google Ads Conversion Tracking dans le conteneur serveur
Dans le sGTM : Balises → Nouvelle → Google Ads Conversion Tracking. Renseignez votre Conversion ID (ex:
AW-XXXXXXXXX) et votre Conversion Label — disponibles dans Google Ads → Outils → Conversions → votre action → Instructions de balise.La balise lit automatiquement
transaction_id,valueetcurrencydepuis les données de l'événement GA4. Déclencheur : événement GA4purchasedans le conteneur serveur. -
3Passer user_data depuis le DataLayer web
Dans votre site (ou DataLayer), incluez le paramètre
user_datadans votre push DataLayer avant ou avec l'événement de conversion. Le sGTM parse automatiquement ce paramètre depuis les données GA4 transmises via l'URL de transport.Champs reconnus :
email_address,phone_number,address.first_name,address.last_name. Le hachage SHA-256 est effectué automatiquement côté sGTM — n'envoyez jamais de données déjà hashées manuellement, cela créerait un double hachage.Note : si vous utilisez une version antérieure à juin 2024 avec la case "Include user-provided data", vérifiez si cette case est toujours présente. Si elle a disparu de votre interface, migrez vers la méthode
user_datadécrite ici. -
4Activer les Enhanced Conversions dans Google Ads et vérifier le Consent Mode
Dans Google Ads : Outils → Conversions → Paramètres → Conversions améliorées. Activez et acceptez les conditions (engagement unique sur la gestion des données clients). Sélectionnez Google Tag Manager comme méthode.
Pour les utilisateurs EEE : vérifiez que votre CMP transmet bien le signal
ad_user_data: 'granted'via le Consent Mode v2. Sans ce signal, les Enhanced Conversions n'envoient aucune donnée hashée — même si le paramètreuser_dataest présent dans le DataLayer. -
5Connecter Google Ads à GA4 pour l'import des Key Events (optionnel)
Si vous utilisez les Key Events GA4 comme source de conversion Google Ads : Google Ads → Outils → Conversions → Importer → Google Analytics 4 → Web. Cette connexion doit être configurée explicitement après avoir lié les deux comptes dans GA4 Admin → Liens de produits → Google Ads.
Cette configuration vous semble complexe ou vous n'avez pas de conteneur sGTM ? Nos experts configurent le tracking Google Ads server-side de A à Z.
Parlez-nous de votre projet →Cookie FPGCLAW — vérification et erreurs fréquentes
Le cookie FPGCLAW est le mécanisme d'attribution côté serveur pour Google Ads. Il stocke le Google Click ID (gclid) avec une durée de 90 jours, via un Set-Cookie HTTP — non soumis aux restrictions ITP de Safari. C'est l'équivalent server-side du cookie _gcl_aw créé par le Conversion Linker client-side.
Vérifier la présence du FPGCLAW
-
1Simuler un clic publicitaire
Ajoutez
?gclid=test_12345à une URL de votre site. Un vrai gclid ressemble àEAIaIQobChMI...mais une valeur de test suffit pour déclencher le Conversion Linker. -
2Vérifier dans DevTools
DevTools (F12) → onglet Application → Cookies → votre domaine. Cherchez le cookie
FPGCLAW— il doit apparaître avec une expiration de ~90 jours. Vérifiez aussi_gcl_aw(Conversion Linker client-side).
Erreurs fréquentes
| Symptôme | Cause probable | Solution |
|---|---|---|
FPGCLAW absent après ajout du gclid |
Conversion Linker server-side non configuré, ou sous-domaine sGTM mal paramétré | Vérifiez que le Conversion Linker est déclenché sur toutes les requêtes dans le sGTM. Vérifiez que votre sous-domaine sGTM est un sous-domaine first-party de votre domaine principal. |
| Balise Conversion Tracking ne se déclenche pas dans le Preview sGTM | L'événement GA4 purchase n'arrive pas au conteneur serveur, ou le client GA4 n'est pas configuré |
Vérifiez dans le Preview sGTM que les événements GA4 arrivent. Vérifiez l'URL de transport dans la balise GA4 web. |
| Enhanced Conversions : statut "Inactif" dans Google Ads après 72h | Le paramètre user_data est absent ou vide dans le DataLayer, ou le signal ad_user_data n'est pas granted |
Testez une conversion et vérifiez dans GTM Preview que user_data.email_address est bien présent. Vérifiez le signal ad_user_data dans Tag Assistant Companion. |
| Enhanced Conversions non visibles — interface sGTM ne montre plus la case | Mise à jour Google de juin 2024 — la case "Include user-provided data" a été supprimée | Migrez vers la méthode user_data dans le DataLayer web. La balise Google Ads du sGTM parse automatiquement ces données si elles transitent via le client GA4. |
| Conversions doublées dans Google Ads | Balise Conversion Tracking active en client-side ET server-side sans transaction_id commun |
Assurez-vous que votre événement purchase inclut un transaction_id unique et identique dans les deux signaux. |
Déduplication — éviter les conversions doubles
Si vous activez le server-side sans désactiver le client-side — ce qui est la configuration hybride recommandée — la déduplication est obligatoire pour éviter de comptabiliser deux fois la même conversion.
Google Ads déduplique automatiquement les conversions qui partagent le même transaction_id. Si les deux signaux (client-side et server-side) envoient le même identifiant dans la fenêtre de déduplication (~24h), Google Ads ne comptabilise qu'une conversion.
window.dataLayer.push({
event: 'purchase',
user_data: {
email_address: 'client@example.com',
phone_number: '+33612345678'
},
ecommerce: {
transaction_id: 'CMD-2026-001234', // ID unique — même valeur côté client et serveur
value: 129.99,
currency: 'EUR',
items: [{ item_id: 'SKU-001', item_name: 'Produit', price: 129.99, quantity: 1 }]
}
});
transaction_id doit être identique et présent dans les deux signaux. Si votre DataLayer envoie l'ID de commande sous un nom différent côté client et côté serveur, ou si le champ est vide dans l'un des deux, Google Ads peut comptabiliser des doublons. Vérifiez dans les Diagnostics Google Ads si le volume de conversions semble anormalement élevé après activation du server-side.Valider et diagnostiquer le setup
- Cookie FPGCLAW présent dans DevTools → Application → Cookies après ajout de
?gclid=test— durée ~90 jours, domaine first-party - Conversion Linker server-side déclenché dans le Preview sGTM lors du chargement de page
- Balise Google Ads Conversion Tracking déclenchée dans le Preview sGTM avec
transaction_id,valueetcurrencycorrectement renseignés - Paramètre user_data présent dans les données de l'événement GA4 reçu par le sGTM — vérifiez dans l'onglet Event Data du Preview sGTM
- Signal ad_user_data : granted dans Tag Assistant Companion → onglet Consent pour les utilisateurs EEE
- Statut Enhanced Conversions : Actif dans Google Ads → Conversions → Diagnostics — après 48-72h
- Taux de conversions améliorées ≥50% — en dessous de 30%, la collecte de
user_dataest insuffisante sur certains parcours
Où trouver les diagnostics dans Google Ads
Google Ads → Objectifs → Conversions → Résumé → cliquez sur votre action de conversion → onglet Diagnostics. Cet onglet affiche le statut des Enhanced Conversions (Actif / Inactif / Limité), le pourcentage de conversions avec données améliorées, et les erreurs de configuration éventuelles.
Google recommande d'attendre 48 à 72 heures après l'activation avant de consulter les diagnostics — les premières données Enhanced Conversions mettent du temps à apparaître.
Décrivez-nous votre situation.
CMS utilisé, outils Google en place, symptômes observés — plus vous êtes précis, plus notre retour sera concret. Réponse sous 24h.
Parlez-nous de votre projet →Réponse sous 24h · Sans engagement · Devis sur mesure
Questions fréquentes
user_data dans votre DataLayer côté web — le sGTM les parse automatiquement et les hache en SHA-256 avant envoi. Pour les utilisateurs EEE, le signal ad_user_data: 'granted' du Consent Mode v2 est obligatoire.?gclid=test à une URL de votre site et vérifiez dans DevTools → Application → Cookies que le cookie FPGCLAW apparaît avec ~90 jours d'expiration. (2) Dans le Preview sGTM, vérifiez que les balises Conversion Linker et Google Ads Conversion Tracking se déclenchent avec les bons paramètres. (3) Dans Google Ads → Conversions → votre action → onglet Diagnostics après 48-72h : "Enhanced Conversions : Actif" avec un taux ≥50% de conversions améliorées.transaction_id identique dans les deux signaux évite les doublons. Si vous observez des doublons, vérifiez que l'identifiant de transaction est bien présent et identique des deux côtés.