Gérer le consentement Google Tag Manager avec Tarteaucitron et Google Consent Mode

Créé par vistalid r&d, Modifié le  Jeu, 7 Mai à 4:00 H par  vistalid r&d

De plus en plus de sites web utilisent Google Tag Manager (GTM) pour gérer leurs balises marketing et analytiques. Dans le cadre du RGPD et de la loi ePrivacy, il est essentiel de respecter le consentement des utilisateurs. Tarteaucitron.js est une solution populaire pour gérer ce consentement. Cependant, il existe parfois des problèmes de synchronisation entre Tarteaucitron et Google Consent Mode (gtag), ce qui fait que même après l’acceptation, Google Tag Assistant continue d’afficher “refusé”.

Dans cet article, nous expliquons comment résoudre ce problème et mettre en place un code simple pour que le consentement soit correctement pris en compte.


Pourquoi le consentement reste “refusé”

Le problème vient du moment où GTM et Google Consent Mode sont initialisés :

  • Tarteaucitron bloque les scripts GTM par défaut jusqu’au consentement.

  • Google Tag Assistant lit l’état du consentement au moment du chargement de la page.

  • Si gtag('consent', 'update', ... ) est appelé avant que GTM soit chargé, l’assistant continuera à afficher “refusé”.


La solution

La solution consiste à :

  1. Initialiser le consentement par défaut à refusé.

  2. Mettre à jour Google Consent Mode au moment exact du clic sur Autoriser GTM ou Tout accepter.

    Copier coller ce code dans javascript custom 

Avant le script de L'intégration du GTM , rajouter cette ligne : 

window.dataLayer = window.dataLayer || [];


Exemple des balises intégrées : 

window.dataLayer = window.dataLayer || [];

tarteaucitron.user.googletagmanagerId = 'GTM-WFX7KNGS';
(tarteaucitron.job = tarteaucitron.job || []).push('googletagmanager');
tarteaucitron.user.googleadsId = 'AW-11029697129';
(tarteaucitron.job = tarteaucitron.job || []).push('googleads');
tarteaucitron.user.gtagUa = 'G-HYJ19B1RFM';
(tarteaucitron.job = tarteaucitron.job || []).push('gtag');
(tarteaucitron.job = tarteaucitron.job || []).push('googleads');
(tarteaucitron.job = tarteaucitron.job || []).push('gcmanalyticsstorage');
(tarteaucitron.job = tarteaucitron.job || []).push('gcmadstorage');

function consentGtm(){dataLayer.push(arguments);}

consentGtm('consent', 'update', {
    ad_storage: 'granted',
    analytics_storage: 'granted',
    ad_user_data: 'granted',
    ad_personalization: 'granted'
});




Cet article a-t-il été utile ?

C'est super !

Merci pour votre commentaire

Désolé ! Nous n'avons pas pu vous être utile

Merci pour votre commentaire

Dites-nous comment nous pouvons améliorer cet article !

Sélectionner au moins l'une des raisons
La vérification CAPTCHA est requise.

Commentaires envoyés

Nous apprécions vos efforts et nous allons corriger l'article