Connecter la bannière cookies à Google Consent Mode v2 (suivi des conversions Google Ads et Meta)

Connectez la bannière cookies CrocoClick à Google Consent Mode v2 pour activer le suivi des conversions Google Ads et Meta à l'acceptation.

Écrit par Baptiste Lorreyte

Dernière mise à jour Il y a environ 20 heures

La bannière de consentement aux cookies de CrocoClick enregistre bien le choix de vos visiteurs (le cookie cookie-config est posé), mais par défaut elle ne transmet pas ce choix à Google. Résultat : même après un clic sur "Tout accepter", Google reste en denied, vos requêtes partent avec gcs=G100 et aucune conversion Google Ads n'est comptabilisée.

Ce guide vous explique comment créer le "pont" entre la bannière native (Configurer la bannière de consentement aux cookies sur vos sites et funnels CrocoClick) et Google Consent Mode v2, pour que l'acceptation des cookies active réellement votre suivi. Le principe s'applique aussi au Pixel Meta.

Le "pourquoi" : ce qui se passe réellement

La bannière native gère deux choses distinctes :

  1. Elle affiche le bandeau et enregistre le choix du visiteur dans un cookie.

  2. Elle émet un événement au moment du choix (par exemple LCCookieConsentDoneGTM).

Or, si vous collez simplement le code GTM ou Google Analytics standard, personne n'écoute cet événement. Le choix est donc stocké, mais jamais transmis à Google.

C'est la cause exacte du blocage avec Consent Mode v2 : l'état interne reste default: denied sur les 4 catégories et aucun consent update n'est envoyé.

🟢 Important : la bannière native est bien compatible Google Consent Mode v2. Il ne manque que le code qui écoute son événement et déclenche le gtag('consent','update', …).

La solution : remplacer votre code de suivi par la version compatible consentement

Le code ci-dessous remplace votre code GTM, Google Analytics ou Pixel Meta existant. Il se place dans le code de suivi de l'en-tête (Paramètres du site ou funnel, ou paramètres d'en-tête de la page).

⚠️ Remarque : ne collez pas ce code EN PLUS de votre ancien code de suivi. Retirez d'abord l'ancien, sinon les tags se chargent deux fois et le consentement n'est pas respecté.

Option A : vous utilisez Google Tag Manager (GTM)

<!-- Consentement par défaut : tout refusé au chargement --><script>  window.dataLayer = window.dataLayer || [];  function gtag() {    dataLayer.push(arguments);  }  gtag("consent", "default", {    ad_storage: "denied",    ad_user_data: "denied",    ad_personalization: "denied",    analytics_storage: "denied",  });  window.addEventListener(    "LCCookieConsentDoneGTM",    function (cookieConsent) {      if (cookieConsent.detail.gtm === 'grant'){        gtag("consent", "update", {          ad_storage: "granted",          ad_user_data: "granted",          ad_personalization: "granted",          analytics_storage: "granted",        });      }    },    !1  );</script><!-- Google Tag Manager : remplacez GTM-XXXXXX par votre ID --><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-XXXXXX');</script>

Option B : vous utilisez Google Tag / Google Analytics (gtag.js) directement

<script>  window.dataLayer = window.dataLayer || [];  function gtag() {    dataLayer.push(arguments);  }  gtag("consent", "default", {    ad_storage: "denied",    ad_user_data: "denied",    ad_personalization: "denied",    analytics_storage: "denied",  });  window.addEventListener(    "LCCookieConsentDoneGTag",    function (cookieConsent) {      if (cookieConsent.detail.gtag === 'grant'){        gtag("consent", "update", {          ad_storage: "granted",          ad_user_data: "granted",          ad_personalization: "granted",          analytics_storage: "granted",        });      }    },    !1  );</script><!-- Google tag (gtag.js) : remplacez TAG_ID par votre ID --><script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID"></script><script>  gtag("js", new Date());  gtag("config", "TAG_ID");</script>

Option C : vous utilisez le Pixel Meta (Facebook)

<script>    !function(f,b,e,v,n,t,s)    {if(f.fbq)return;n=f.fbq=function(){n.callMethod?    n.callMethod.apply(n,arguments):n.queue.push(arguments)};    if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';    n.queue=[];t=b.createElement(e);t.async=!0;    t.src=v;s=b.getElementsByTagName(e)[0];    s.parentNode.insertBefore(t,s)}(window, document,'script',    'https://connect.facebook.net/en_US/fbevents.js');    fbq('consent', 'revoke');    fbq('init', '{votre-pixel-id}');    fbq('track', 'PageView');    window.addEventListener('LCCookieConsentDoneFB',function(cookieConsent){    fbq('consent', cookieConsent.detail.fb)},!1)</script>

💡 ASTUCE : ce code fait trois choses : au chargement, Google reste en denied (normal et conforme). Au clic sur "Tout accepter", il écoute l'événement de la bannière et envoie un consent update en granted. Au rechargement, la bannière ré-émet l'événement si le choix a déjà été fait.

Le piège du noscript

⚠️ Remarque : si votre code GTM d'origine contenait une balise <noscript> (celle destinée au <body>), retirez-la. La bannière est une solution JavaScript ; le <noscript> peut déposer des cookies sans passer par le consentement, ce qui casse la conformité.

Vérifier que ça fonctionne

Utilisez l'extension Google Tag Assistant ou l'onglet Réseau de votre navigateur, en navigation privée après avoir supprimé les cookies du domaine :

Moment

Résultat attendu

Avant consentement

Les 4 signaux (ad_storage, ad_user_data, ad_personalization, analytics_storage) sont sur denied

Après "Tout accepter"

Les 4 signaux passent à granted

Requête Google après acceptation

Le paramètre gcs passe de G100 à G111

🟢 Important : gcs=G111 confirme ad_storage et analytics_storage. Comme Consent Mode v2 ajoute ad_user_data et ad_personalization, vérifiez aussi l'état complet dans Tag Assistant (paramètre gcd) pour valider les 4 signaux.

Alternative : utiliser un CMP tiers (Axeptio, Cookiebot, etc.)

Si vous préférez une gestion avancée (historique des consentements, réouverture du panneau de préférences, templates GTM officiels), vous pouvez désactiver la bannière native et installer un CMP tiers compatible Consent Mode v2 via le code de suivi de l'en-tête du funnel. C'est possible sans conflit, à condition de respecter ces règles :

  • Ne gardez qu'un seul gestionnaire de consentement actif.

  • Désactivez la bannière native CrocoClick (voir ci-dessous).

  • Retirez tout ancien script Consent Mode qui pourrait entrer en conflit.

  • Suivez la documentation du CMP choisi pour GTM, Google Ads et GA4.

  • Vérifiez dans Tag Assistant que les 4 signaux sont bien mis à jour.

Désactiver proprement la bannière native (pour éviter deux bandeaux)

  1. Ouvrez le site ou le funnel concerné dans le Constructeur.

  2. Allez sur la page concernée.

  3. Cliquez sur l'icône Bannière de consentement aux cookies (icône cookie).

  4. Désactivez le bouton de la bannière.

  5. Sauvegardez et republiez.

  6. Testez en navigation privée après avoir supprimé les cookies du domaine.

🟢 Important : le consentement s'applique au niveau du domaine. En désactivant la bannière, vous la retirez de toutes les pages du site ou funnel concerné.

Questions fréquentes

Pour configurer la bannière elle-même, voir : Configurer la bannière de consentement aux cookies sur vos sites et funnels CrocoClick.

Pour poser vos codes GTM ou GA, voir : Comment ajouter Google Tag Manager ou Google Analytics pour tracker un funnel ou un site web sur CrocoClick