Configurer le mode Consentement sur les sites Web

Cette page s'adresse aux développeurs qui gèrent leur propre solution de consentement sur leur site Web et qui souhaitent intégrer le mode Consentement. Pour en savoir plus sur le mode Consentement, consultez la section Présentation du mode Consentement. Si vous utilisez une plate-forme de gestion du consentement (CMP) pour obtenir le consentement des utilisateurs, découvrez comment configurer le mode Consentement avec une CMP.

Vous pouvez implémenter le mode Consentement de manière basique ou avancée. Consultez les consignes de votre entreprise pour choisir une méthode d'implémentation et les paramètres par défaut. En savoir plus sur la différence entre le mode Consentement de base et le mode Consentement avancé

Tenez compte des points suivants avant d'implémenter le mode Consentement :

  • Si vous utilisez Tag Manager et que vous souhaitez gérer votre propre bannière, nous vous recommandons de la charger via le conteneur Tag Manager. Pour ce faire, vous devez créer un modèle de mode Consentement. Vous pouvez également utiliser un modèle de mode Consentement dans la galerie de modèles de la communauté.

  • Si vous utilisez gtag.js, assurez-vous d'avoir installé la balise Google sur chaque page de votre site Web. Le code du mode Consentement est ajouté à chaque page de votre site Web.

Pour configurer le mode Consentement, procédez comme suit :
  1. Avant qu'un utilisateur n'accorde son consentement: définissez l'état du consentement par défaut.
  2. Mettez à jour l'état du consentement en fonction de l'interaction de l'utilisateur avec vos paramètres de consentement.

Définissez une valeur par défaut pour chaque type de consentement que vous utilisez. Par défaut, aucune valeur n'est définie pour le mode Consentement.

Il est recommandé de limiter les paramètres de consentement par défaut aux régions où vous diffusez des bannières de consentement auprès de vos visiteurs. Cela permet de conserver la qualité des mesures dans les régions où les bannières de consentement sont requises et où les balises Google ajustent leur comportement en conséquence. Vous évitez également toute perte de mesure lorsqu'aucune bannière de consentement n'est appliquée ou ne s'applique. Consultez la section Comportement spécifique à la région.

Pour ajuster les fonctionnalités de mesure par défaut, appelez la commande gtag('consent', 'default', ...) sur chaque page de votre site avant toute commande qui envoie des données de mesure (telles que config ou event).

Par exemple, pour définir le refus du consentement pour tous les paramètres par défaut:

gtag('consent', 'default', {
 
'ad_storage': 'denied',
 
'ad_user_data': 'denied',
 
'ad_personalization': 'denied',
 
'analytics_storage': 'denied'
});

Facultatif: Intégrer les plates-formes de gestion du consentement asynchrone

Si votre bannière se charge de manière asynchrone, il est possible qu'elle ne s'exécute pas toujours avant vos balises Google. Pour gérer de telles situations, spécifiez wait_for_update avec une valeur en millisecondes pour contrôler le délai d'attente avant l'envoi des données.

Par exemple, pour refuser ad_storage par défaut sur une page particulière, mais pour autoriser votre CMP à mettre à jour l'état du consentement, utilisez wait_for_update. Dans le code suivant, ad_storage est défini par défaut sur denied, et l'outil de consentement dispose de 500 millisecondes pour appeler gtag('consent', 'update', ...) avant le déclenchement des balises:

  gtag('consent', 'default', {
   
'ad_storage': 'denied',
   
'wait_for_update': 500
 
});

Lorsque vous utilisez Google Tag Manager, créez votre propre modèle à l'aide des API de consentement Tag Manager. Vous pouvez vous reporter à l'exemple suivant pour commencer.

Utilisez les API spécifiques à Tag Manager pour gérer les états de consentement setDefaultConsentState et updateConsentState. L'API gtagSet peut être utilisée pour définir les paramètres de passthrough ads_data_redaction et d'URL si nécessaire.

Pour envoyer l'état du consentement de l'utilisateur, utilisez la commande update. Étant donné que le mode Consentement n'enregistre pas les choix de consentement, mettez à jour l'état du consentement dès qu'un utilisateur interagit avec votre solution de gestion du consentement. Une fois qu'un utilisateur a donné son consentement, conservez son choix et appelez la commande de mise à jour en conséquence sur les pages suivantes.

Il vous incombe de vous assurer que les valeurs appropriées sont définies pour tous les types de consentement. Pour en savoir plus sur les types acceptés, consultez la documentation de référence de l'API.

L'exemple de code suivant montre comment mettre à jour l'état du consentement sur granted lorsque l'utilisateur accepte toutes les options:

<script>
function allConsentGranted() {
  gtag
('consent', 'update', {
   
'ad_user_data': 'granted',
   
'ad_personalization': 'granted',
   
'ad_storage': 'granted',
   
'analytics_storage': 'granted'
 
});
}
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
  ...
 
<button onclick="allConsentGranted()">Yes</button>
  ...
</body>

Lorsque vous utilisez un modèle de mode Consentement, le consentement de l'utilisateur doit automatiquement être mis à jour lorsqu'il interagit avec la bannière.

Si vous créez vous-même un modèle de mode Consentement, utilisez les API spécifiques à Tag Manager pour gérer les états de consentement setDefaultConsentState et updateConsentState. L'API gtagSet peut être utilisée pour définir les paramètres de passthrough ads_data_redaction et d'URL si nécessaire.

Exemple d'implémentation

L'exemple suivant définit plusieurs paramètres de mode de consentement sur denied par défaut. Une fois qu'un utilisateur a indiqué ses choix de consentement, les paramètres concernés sont mis à jour avec granted.

L'ordre du code est ici essentiel. Si votre code de consentement est appelé dans le désordre, les valeurs par défaut du consentement ne fonctionneront pas. Selon les exigences métier, les détails peuvent varier, mais en général, le code doit s'exécuter dans l'ordre suivant:

  1. Chargez la balise Google. Il s'agit du code de l'extrait par défaut. L'extrait par défaut doit être mis à jour (voir ci-dessous) pour inclure un appel à gtag('consent', 'default', ...).

  2. Chargez votre solution de consentement. Si votre solution de gestion du consentement se charge de manière asynchrone, consultez Intégrer des plates-formes de gestion du consentement asynchrone pour savoir comment vous assurer que cela se produit dans l'ordre approprié.

  3. Si votre solution de gestion du consentement ne le gère pas, appelez gtag('consent', 'update', ...) après que l'utilisateur a donné son consentement.

<script>
// Define dataLayer and the gtag function.
window
.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

// Set default consent to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag
('consent', 'default', {
 
'ad_storage': 'denied',
 
'ad_user_data': 'denied',
 
'ad_personalization': 'denied',
 
'analytics_storage': 'denied'
});
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID">
</script>
<script>
  window
.dataLayer = window.dataLayer || [];
 
function gtag(){dataLayer.push(arguments);}

  gtag
('js', new Date());
  gtag
('config', 'TAG_ID');
</script>

<!-- Create one update function for each consent parameter -->
<script>
 
function consentGrantedAdStorage() {
    gtag
('consent', 'update', {
     
'ad_storage': 'granted'
   
});
 
}
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
  ...
 
<button onclick="consentGrantedAdStorage">Yes</button>
  ...
</body>

Pour les sites qui utilisent Tag Manager, nous vous recommandons d'utiliser une PGC pour gérer les mises à jour des choix de consentement des visiteurs. Les CMP fournissent des modèles dans la galerie de modèles de la communauté pour créer une balise permettant de gérer le mode Consentement.

Si vous ne pouvez pas utiliser de modèle, vous pouvez modifier le code de votre page comme suit. L'ordre du code est ici essentiel. Si votre code de consentement est appelé dans le désordre, les valeurs par défaut du consentement ne fonctionneront pas.

<script>
 
// Define dataLayer and the gtag function.
  window
.dataLayer = window.dataLayer || [];
 
function gtag(){dataLayer.push(arguments);}

 
// Set default consent to 'denied' as a placeholder
 
// Determine actual values based on your own requirements
  gtag
('consent', 'default', {
   
'ad_storage': 'denied',
   
'ad_user_data': 'denied',
   
'ad_personalization': 'denied',
   
'analytics_storage': 'denied'
 
});
</script>

<!-- Google Tag Manager -->
<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>
<!-- End Google Tag Manager -->

<!-- Create one update function for each consent parameter -->
<script>
 
function consentGrantedAdStorage() {
    gtag
('consent', 'update', {
     
'ad_storage': 'granted'
   
});
 
}
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
  ...
 
<button onclick="consentGrantedAdStorage()">Yes</button>
  ...
</body>

Google s'engage de façon continue en faveur d'un écosystème de publicité digitale respectueux de la confidentialité. Dans cette optique, nous renforçons l'application de nos Règles relatives au consentement de l'utilisateur dans l'UE.

En savoir plus sur les modifications apportées au mode Consentement pour le trafic dans l'Espace économique européen (EEE)

Les utilisateurs du mode Consentement doivent envoyer deux nouveaux paramètres en plus de ad_storage et analytics_storage:

Nom du champ Valeurs autorisées Description
ad_user_data 'granted' | 'denied' Définit le consentement pour envoyer à Google des données utilisateur liées à la publicité.
ad_personalization 'granted' | 'denied' Définit le consentement pour la publicité personnalisée.

Les fonctionnalités avancées de consentement incluent les suivantes:

  • Définissez les services Google avec lesquels vous partagez des données à l'aide de l'interface utilisateur de la balise Google.
  • Définissez le comportement pour une région géographique.
  • Transmettez les informations sur les clics sur les annonces, l'ID client et l'ID de session dans les URL lorsque les utilisateurs n'ont pas autorisé les cookies.
  • Masquer complètement (supprimer) les informations sur les annonces lorsque les utilisateurs refusent les cookies publicitaires

Comportement spécifique à la région

Pour modifier le comportement par défaut de vos balises pour les utilisateurs de certaines régions, spécifiez une région dans votre commande de consentement. En fournissant une valeur de région, vous pouvez affiner les valeurs par défaut en fonction de la zone géographique de vos utilisateurs. Pour en savoir plus sur l'identification des régions, consultez la page ID géographiques.

L'exemple suivant définit analytics_storage sur denied pour les utilisateurs situés en Espagne et en Alaska, et définit ad_storage sur denied pour tous les utilisateurs.

  gtag('consent', 'default', {
   
'analytics_storage': 'denied',
   
'region': ['ES', 'US-AK']
 
});

  gtag
('consent', 'default', {
   
'ad_storage': 'denied'
 
});

Si vous utilisez un modèle pour créer votre balise, il peut comporter des commandes permettant de définir un comportement spécifique à la région. Si vous créez vous-même une balise de modèle, consultez Créer un modèle de mode Consentement pour en savoir plus sur la configuration du comportement spécifique à la région.

Le paramètre le plus spécifique est prioritaire

Si deux commandes de consentement par défaut apparaissent sur la même page avec des valeurs pour une région et une sous-région, celle avec une région plus spécifique sera appliquée. Par exemple, si vous avez défini ad_storage sur granted pour la région États-Unis et ad_storage sur denied pour la région États-Unis-Californie, le paramètre plus spécifique États-Unis-Californie s'appliquera à un visiteur de Californie. Dans cet exemple, cela signifie qu'un visiteur provenant de CA-US aurait ad_storage défini sur denied.

Région ad_storage Comportement
États-Unis 'granted' S'applique aux utilisateurs situés aux États-Unis qui ne se trouvent pas au Canada
US-CA 'denied' S'applique aux utilisateurs situés au Canada et aux États-Unis
Non spécifié 'granted' Utilise la valeur par défaut 'granted'. Dans l'exemple, s'applique aux visiteurs qui ne se trouvent pas aux États-Unis ni au Canada

Transmettre des informations sur les clics sur les annonces, l'ID client et l'ID de session dans les URL

Lorsqu'un utilisateur accède à votre site Web après avoir cliqué sur une annonce, des informations sur l'annonce peuvent être ajoutées à l'URL de votre page de destination en tant que paramètre de requête. Pour améliorer la précision des événements clés, ces informations sont généralement stockées dans des cookies propriétaires sur votre domaine.

Toutefois, si ad_storage est défini sur denied, ces informations ne seront pas stockées localement. Pour améliorer la qualité de mesure des clics sur les annonces lorsque ad_storage est denied, vous pouvez choisir de transmettre des informations sur les clics sur les annonces via des paramètres d'URL sur les pages à l'aide du transfert d'URL.

De même, si analytics_storage est défini sur denied, le transfert d'URL peut être utilisé pour envoyer des analyses basées sur les événements et les sessions (y compris les événements clés) sans cookies sur les pages.

Pour utiliser le transfert d'URL, vous devez remplir les conditions suivantes:

  • Votre balise Google est compatible avec le consentement et est présente sur la page.
  • L'annonceur a activé la fonctionnalité de transfert d'URL.
  • Le mode Consentement est implémenté sur la page.
  • Le lien sortant fait référence au même domaine que celui de la page actuelle.
  • Un GCLID ou un DCLID est présent dans l'URL (balise Google Ads et Floodlight uniquement)

Pour activer cette fonctionnalité, définissez le paramètre url_passthrough sur true. Ajoutez la commande suivante à l'extrait par défaut avant toute commande config:

gtag('set', 'url_passthrough', true);

Si vous utilisez un modèle pour créer votre balise, il peut comporter les commandes permettant de définir le transfert d'URL. Si vous créez vous-même une balise de modèle, consultez Créer un modèle de mode Consentement pour en savoir plus sur la configuration du passthrough d'URL à l'aide de l'API de modèle personnalisé gtagSet.

Vous pouvez également utiliser les options suivantes pour le définir dans Conversion Linker et/ou les balises d'analyse.

Pour les balises Google Ads et Floodlight:

Pour activer cette fonctionnalité, créez (ou utilisez) une balise Conversion Linker et assurez-vous que la case Activer l'association sur les URL de toutes les pages est cochée. Pour savoir comment créer une balise Conversion Linker, consultez la section Configuration de base.

Pour les balises Google Analytics:

  1. Dans Tag Manager, accédez à Champs à définir, puis sélectionnez Configuration de la balise > Champs à définir.
  2. Lorsque la section "Champs à définir" est développée, cliquez sur Ajouter une ligne.
  3. Dans le champ Nom du champ, saisissez url_passthrough.
  4. Dans Value (Valeur), saisissez "true".
  5. Enregistrez la balise et publiez-la.

Vous pouvez également définir le paramètre url_passthrough sur true sur chaque page de votre site avant l'extrait d'installation GTM.

window.dataLayer = window.dataLayer || [];
function gtag(){window.dataLayer.push(arguments);}
gtag('set', 'url_passthrough', true);

Lorsque vous activez le transfert d'URL, quelques paramètres de requête peuvent être ajoutés aux liens lorsque les utilisateurs naviguent sur les pages de votre site Web:

  • gclid
  • dclid
  • gclsrc
  • _gl
  • wbraid

Pour obtenir les meilleurs résultats possible, assurez-vous que:

  1. Les redirections de votre site transmettent tous les paramètres de requête ci-dessus.
  2. Vos outils d'analyse ignorent ces paramètres dans les URL des pages.
  3. Ces paramètres n'interfèrent pas avec le comportement de votre site.

Masquer les données relatives aux annonces

Lorsque ad_storage est défini sur denied, aucun nouveau cookie n'est défini à des fins publicitaires. De plus, les cookies tiers précédemment définis sur google.com et doubleclick.net ne seront utilisés que pour lutter contre le spam et la fraude. Les données envoyées à Google incluront toujours l'URL complète de la page, y compris les informations sur les clics sur les annonces dans les paramètres d'URL.

Pour masquer davantage vos données d'annonces lorsque ad_storage est défini sur denied, définissez ads_data_redaction sur true.

gtag('set', 'ads_data_redaction', true);

Lorsque ads_data_redaction est true et ad_storage est denied, les identifiants de clics sur les annonces envoyés dans les requêtes réseau par les balises Google Ads et Floodlight sont masqués. Les requêtes réseau seront également envoyées via un domaine sans cookie.

Si vous utilisez un modèle pour créer votre balise, il peut comporter des commandes permettant de masquer davantage les données des annonces. Si vous créez vous-même une balise de modèle, consultez la section Créer un modèle de mode Consentement pour en savoir plus sur le masquage des données publicitaires.

Problèmes courants

Lorsque vous implémentez le mode Consentement avancé, vous devez appeler une commande de mise à jour sur la page sur laquelle l'utilisateur donne son consentement.

Lorsqu'une page se charge avec un refus de consentement, puis qu'elle se recharge avec un consentement accordé après un changement de consentement, les balises Google peuvent perdre des points de données clés de la page d'origine. Les rapports suivants risquent d'être incomplets.

Par exemple, dans Google Analytics, il est possible qu'un événement session_start manque pour de nombreuses sessions avec consentement.

Pour éviter ce problème, appelez la commande de mise à jour chaque fois que l'état du consentement d'un utilisateur change.

Dans certains cas, lorsqu'un type de consentement passe de refusé à accordé, les balises Google peuvent envoyer des mesures en fonction de cette mise à jour. Si la commande de mise à jour est appelée lorsque la page est désinstallée, le navigateur peut annuler ce trafic réseau avant qu'il ne soit terminé. Les rapports suivants risquent d'être incomplets.

Dans la mesure du possible, assurez-vous que les commandes de mise à jour sont enregistrées bien avant la décharge de la page.

Étapes suivantes

Commandes des anciennes balises

Si vous utilisez d'anciennes balises, telles que ga.js, analytics.js ou conversion.js, passez à gtag.js ou Google Tag Manager.

Pour en savoir plus sur les paramètres de confidentialité des autres anciennes balises, consultez la documentation suivante: