Comment récupérer le GCLID dans vos formulaires (guide technique)
Le GCLID (Google Click ID) doit être capturé dans vos formulaires pour relier chaque soumission au clic Google Ads d'origine. La méthode standard : extraire le GCLID de l'URL via JavaScript, le stocker dans un cookie first-party (durée 90 jours), puis l'injecter dans un champ caché du formulaire avant soumission.
Ce qu'il faut retenir
- • Méthode recommandée : extraire le GCLID de l'URL via JavaScript, le stocker dans un cookie first-party (90 jours, SameSite=Lax), puis l'injecter dans un champ hidden
- • Capturer aussi GBRAID et WBRAID pour le trafic iOS 14+ (Privacy Sandbox)
- • Compatible HubSpot, Typeform et Calendly via champs cachés ou paramètres d'URL
- • Créer un champ "GCLID" (texte, 100+ caractères) dans le CRM et vérifier le mapping formulaire vers CRM
- • Test de validation : ajouter ?gclid=test123 à l'URL, naviguer, soumettre le formulaire, vérifier la valeur dans le CRM
Rappel : qu'est-ce que le GCLID ?
Le GCLID (Google Click Identifier) est un identifiant unique généré par Google à chaque clic sur une annonce. Il ressemble à ceci :
EAIaIQobChMIwPLn5YXx9QIVhOvtCh2xGwKXEAAYASAAEgLwN_D_BwE
Quand l'auto-tagging est activé dans Google Ads (par défaut), ce paramètre est automatiquement ajouté à l'URL de destination :
https://votresite.com/landing-page?gclid=EAIaIQobChMI...
Pour importer des conversions offline, vous devez associer chaque lead à son GCLID d'origine. Le défi : le capturer au moment du formulaire, même si le visiteur a navigué sur plusieurs pages.
Important : ne capturez pas uniquement le GCLID. Sur iOS et Safari (plus de 25% du trafic web en France), Google utilise des identifiants alternatifs : WBRAID (navigateurs iOS) et GBRAID (apps iOS). Performance Max utilise aussi des emplacements qui ne génèrent pas de GCLID. Votre script doit capturer les trois paramètres pour ne perdre aucune attribution.
Méthode 1 : Cookie first-party (recommandée)
La méthode la plus fiable consiste à stocker le GCLID dans un cookie dès l'arrivée du visiteur, puis à le récupérer au moment de la soumission du formulaire.
Étape 1 : Stocker le GCLID à l'arrivée
Ajoutez ce script dans le <head> de toutes vos pages (via Google Tag Manager ou directement) :
<script>
(function() {
// Récupérer le GCLID depuis l'URL
function getParam(param) {
var urlParams = new URLSearchParams(window.location.search);
return urlParams.get(param);
}
// Stocker dans un cookie (90 jours, durée max d'attribution Google Ads)
function setCookie(name, value, days) {
var expires = '';
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = '; expires=' + date.toUTCString();
}
document.cookie = name + '=' + (value || '') + expires + '; path=/; SameSite=Lax';
}
// Si GCLID présent dans l'URL, le stocker
var gclid = getParam('gclid');
if (gclid) {
setCookie('_gclid', gclid, 90);
}
// Stocker aussi les autres identifiants publicitaires
var gbraid = getParam('gbraid');
var wbraid = getParam('wbraid');
if (gbraid) setCookie('_gbraid', gbraid, 90);
if (wbraid) setCookie('_wbraid', wbraid, 90);
})();
</script>
Points importants :
- Cookie first-party : Stocké sur votre propre domaine, non bloqué par les navigateurs
- 90 jours : Correspond à la fenêtre d'attribution maximum de Google Ads
- gbraid/wbraid : Identifiants alternatifs pour iOS 14+ (Privacy Sandbox)
- SameSite=Lax : Nécessaire pour la compatibilité navigateurs modernes
Étape 2 : Récupérer le GCLID au moment du formulaire
Avant de soumettre le formulaire, récupérez le GCLID depuis le cookie et injectez-le dans un champ caché :
<script>
function getCookie(name) {
var nameEQ = name + '=';
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) === ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
// Au chargement de la page, remplir les champs cachés
document.addEventListener('DOMContentLoaded', function() {
var gclidField = document.querySelector('input[name="gclid"]');
var gbraidField = document.querySelector('input[name="gbraid"]');
var wbraidField = document.querySelector('input[name="wbraid"]');
if (gclidField) gclidField.value = getCookie('_gclid') || '';
if (gbraidField) gbraidField.value = getCookie('_gbraid') || '';
if (wbraidField) wbraidField.value = getCookie('_wbraid') || '';
});
</script>
Étape 3 : Ajouter les champs cachés au formulaire
Dans votre formulaire HTML, ajoutez ces champs hidden :
<form action="/contact" method="POST">
<!-- Vos champs visibles -->
<input type="text" name="nom" placeholder="Votre nom">
<input type="email" name="email" placeholder="Votre email">
<!-- Champs cachés pour le tracking -->
<input type="hidden" name="gclid" value="">
<input type="hidden" name="gbraid" value="">
<input type="hidden" name="wbraid" value="">
<input type="hidden" name="landing_url" value="">
<button type="submit">Envoyer</button>
</form>
<script>
// Capturer aussi l'URL de landing
document.addEventListener('DOMContentLoaded', function() {
var landingField = document.querySelector('input[name="landing_url"]');
if (landingField) {
// Récupérer depuis sessionStorage si stocké, sinon URL actuelle
landingField.value = sessionStorage.getItem('landing_url') || window.location.href;
}
});
// Stocker l'URL de landing à la première visite
if (!sessionStorage.getItem('landing_url')) {
sessionStorage.setItem('landing_url', window.location.href);
}
</script>
Méthode 2 : Via Google Tag Manager
Si vous utilisez Google Tag Manager, vous pouvez gérer le GCLID via des variables et triggers. Si vous préférez éviter GTM, consultez notre guide pour installer le tracking sans GTM.
Créer une variable pour lire le cookie
- Dans GTM, allez dans Variables > Nouvelle
- Choisissez Cookie propriétaire
- Nom du cookie :
_gclid - Nommez la variable :
Cookie - GCLID
Créer un tag pour stocker le GCLID
- Créez un tag HTML personnalisé
- Collez le script de stockage (Étape 1 de la méthode 1)
- Déclencheur : Toutes les pages
Injecter dans les formulaires
Créez un autre tag HTML personnalisé qui injecte les valeurs dans vos formulaires, déclenché sur DOM Ready.
Intégration avec les builders de formulaires
HubSpot Forms
HubSpot capture automatiquement le GCLID si vous activez l'intégration Google Ads (voir notre guide complet pour connecter HubSpot à Google Ads). Sinon, utilisez un champ personnalisé :
- Créez un champ Texte sur une ligne nommé "GCLID" dans HubSpot
- Ajoutez-le à votre formulaire en mode Champ caché
- Utilisez JavaScript pour le remplir avant soumission
<script>
window.addEventListener('message', function(event) {
if (event.data.type === 'hsFormCallback' && event.data.eventName === 'onFormReady') {
var gclidValue = getCookie('_gclid');
if (gclidValue) {
var gclidInput = document.querySelector('input[name="gclid"]');
if (gclidInput) gclidInput.value = gclidValue;
}
}
});
</script>
Typeform
Typeform supporte les champs cachés via les paramètres d'URL. Passez le GCLID dans l'URL d'embed :
<script>
var typeformUrl = 'https://votrecompte.typeform.com/to/XXXXX';
var gclid = getCookie('_gclid');
if (gclid) {
typeformUrl += '?gclid=' + encodeURIComponent(gclid);
}
// Utiliser typeformUrl pour l'embed
</script>
Calendly
Calendly accepte les paramètres UTM et personnalisés. Ajoutez le GCLID à l'URL du widget :
<script>
var calendlyUrl = 'https://calendly.com/votre-lien';
var gclid = getCookie('_gclid');
if (gclid) {
calendlyUrl += '?gclid=' + encodeURIComponent(gclid);
}
Calendly.initPopupWidget({ url: calendlyUrl });
</script>
Transmettre le GCLID au CRM
Une fois le GCLID capturé dans votre formulaire, il doit arriver dans votre CRM pour être utilisable lors de l'import des conversions.
Configuration CRM
Créez un champ personnalisé "GCLID" dans votre CRM :
- HubSpot : Propriété de contact de type "Texte sur une ligne"
- Salesforce : Champ personnalisé sur l'objet Lead
- Pipedrive : Champ personnalisé sur les Personnes
Mapping des champs
Configurez votre outil de formulaire pour mapper le champ caché "gclid" vers le champ CRM correspondant. La plupart des outils (HubSpot, Salesforce, etc.) permettent ce mapping dans leurs paramètres d'intégration.
Vérifier que le tracking fonctionne
Test manuel
- Ouvrez votre site avec un GCLID de test dans l'URL :
?gclid=test123 - Naviguez sur plusieurs pages
- Ouvrez les outils développeur (F12) > Application > Cookies
- Vérifiez que le cookie
_gclidcontient "test123" - Remplissez votre formulaire
- Vérifiez dans votre CRM que le lead a bien "test123" dans le champ GCLID
Test via Google Ads
- Cliquez sur une de vos annonces (utilisez le mode aperçu si nécessaire)
- Remplissez le formulaire
- Vérifiez que le GCLID (une longue chaîne de caractères) apparaît dans le CRM
Attention au consentement
Le stockage de cookies nécessite le consentement de l'utilisateur (RGPD). Assurez-vous que votre bandeau cookies couvre ces cookies de tracking. Les cookies first-party pour l'attribution sont généralement considérés comme "nécessaires" au fonctionnement du service, mais vérifiez avec votre DPO.
Quels sont les problèmes courants et comment les résoudre ?
Le GCLID n'est pas capturé
Causes possibles :
- Auto-tagging désactivé : Vérifiez dans Google Ads > Paramètres du compte
- Script bloqué : Vérifiez que votre script de capture se charge avant la navigation
- Redirection : Si vous redirigez vers une autre page, le GCLID peut être perdu. Utilisez la méthode cookie.
Le GCLID est vide au moment du formulaire
Causes possibles :
- Cookie expiré : Le visiteur est revenu après 90 jours
- Trafic non-Google Ads : Le visiteur n'est pas arrivé via une annonce
- Navigation privée : Les cookies sont supprimés à la fermeture
Le GCLID n'arrive pas dans le CRM
Causes possibles :
- Mapping incorrect : Vérifiez que le champ du formulaire est bien mappé au champ CRM
- Champ non créé : Créez le champ GCLID dans votre CRM avant de le mapper
- Valeur trop longue : Les GCLID font ~100 caractères. Assurez-vous que le champ CRM accepte cette longueur.
LeadZen capture le GCLID automatiquement
Avec LeadZen, pas besoin de configurer tout cela manuellement. Notre tracker JavaScript capture automatiquement le GCLID, les UTM et toutes les données d'attribution, puis les associe à chaque lead dans votre CRM.
Essayer gratuitement pendant 30 joursDocumentation officielle
- Auto-tagging et GCLID · Documentation Google Ads
- Import de conversions offline · Documentation Google Ads
Conclusion
La capture du GCLID est la première étape indispensable pour l'import des conversions offline. Sans ce lien entre le clic et le lead, impossible de dire à Google Ads quelles campagnes génèrent vos clients.
Les 3 points à retenir :
- Utilisez un cookie first-party : Plus fiable que la lecture directe de l'URL
- Capturez aussi gbraid/wbraid : Pour les utilisateurs iOS 14+
- Testez régulièrement : Vérifiez que le GCLID arrive bien dans votre CRM
Prêt à automatiser votre tracking ? Essayez LeadZen gratuitement pour capturer le GCLID et toutes les données d'attribution sans code.
Pour aller plus loin
Cet article fait partie de notre Conversions offline Google Ads : le guide complet. Voici d'autres ressources du même cluster :
Fondateur de LeadZen, spécialiste Google Ads Leadgen
Dans le web depuis 2002, +15 ans en SEO, +5 ans en Google Ads. Ex-responsable SEO chez Capifrance et Optimhome. +50 000 prospects générés pour les réseaux immobiliers français. Certifié Google Ads, formé à la Blaise & Bruno Academy.
LinkedIn