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 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 base ou avancé. Consultez les consignes de votre entreprise pour choisir une méthode d'implémentation et les valeurs par défaut à définir. En savoir plus sur la différence entre le mode Consentement de base et le mode Consentement avancé

Avant de commencer

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

  • Si vous utilisez Tag Manager et que vous souhaitez conserver 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 de 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, vous devez :
  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.

gtag.js

Pour ajuster les capacité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 (comme 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 asynchrones

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 temps d'attente avant l'envoi des données.

Par exemple, pour refuser ad_storage sur une page spécifique par défaut, mais 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
  });

Tag Manager

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

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 éventuellement les paramètres ads_data_redaction et de transfert d'URL, selon les besoins.

gtag.js

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 "update" en conséquence sur les pages suivantes.

Il vous incombe de vous assurer que les valeurs correctes 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 définir 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>

Tag Manager

Lorsque vous utilisez un modèle de mode Consentement, le consentement de l'utilisateur doit être automatiquement 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 éventuellement les paramètres ads_data_redaction et de transfert d'URL, selon les besoins.

Exemple d'implémentation

L'exemple suivant définit plusieurs paramètres du mode Consentement sur denied par défaut. Une fois que l'utilisateur a indiqué ses choix de consentement, les paramètres concernés sont définis sur granted.

gtag.js

L'ordre du code est essentiel. Si votre code de consentement est appelé dans le désordre, les paramètres de consentement par défaut ne fonctionneront pas. Selon les exigences de l'entreprise, les spécificités 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 de votre code d'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 consentement se charge de manière asynchrone, consultez Intégrer des plates-formes de gestion du consentement asynchrones pour savoir comment vous assurer que cela se produit dans le bon ordre.

  3. Si votre solution de 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>

Tag Manager

Pour les sites qui utilisent Tag Manager, nous vous recommandons d'utiliser une CMP 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 à la place mettre à jour le code de votre page comme suit. L'ordre du code est essentiel. Si votre code de consentement est appelé dans le désordre, les paramètres de consentement par défaut 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 par Google 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 vous permettent, entre autres, de :

  • 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 donné leur consentement pour les cookies.
  • Masquez complètement (supprimez) les informations sur les annonces lorsque les utilisateurs refusent les cookies publicitaires.

Comportement spécifique à la région

Pour définir des états de consentement par défaut qui s'appliquent aux visiteurs de zones spécifiques, indiquez une région (selon la norme ISO 3166-2) dans votre commande gtag consent default. L'utilisation de valeurs régionales vous permet de respecter les réglementations régionales.

Vous pouvez définir des valeurs par défaut pour des régions spécifiques, puis une autre valeur par défaut pour toutes les autres régions. Une commande gtag de consentement par défaut sans paramètre de région définit la valeur par défaut pour tous les visiteurs non couverts par une autre commande spécifique à une région.

gtag.js

L'exemple suivant définit analytics_storage sur denied pour les utilisateurs d'Espagne et d'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'
  });

Tag Manager

Si vous utilisez un modèle pour créer votre balise, il peut contenir des commandes permettant de définir un comportement spécifique à une région. Si vous créez vous-même un tag de modèle, consultez Créer un modèle de mode Consentement pour en savoir plus sur la configuration d'un comportement spécifique à une 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 la région la plus spécifique prendra effet. 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 le plus spécifique "États-Unis-Californie" s'appliquera à un visiteur venant de Californie. Dans cet exemple, cela signifie qu'un visiteur provenant de US-CA aura ad_storage défini sur denied.

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

Transmettre les 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 aux URL de vos pages 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é des mesures des clics sur les annonces lorsque ad_storage est défini sur denied, vous pouvez choisir de transmettre des informations sur les clics sur les annonces à vos 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 données analytiques basées sur les événements et les sessions (y compris les événements clés) sans cookies sur les pages.

Pour utiliser la transmission d'URL, vous devez remplir les conditions suivantes :

  • Votre balise Google est sensible au consentement et 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 renvoie au même domaine que celui de la page actuelle.
  • Un GCLID ou un DCLID est présent dans l'URL (balises Google Ads et Floodlight uniquement).

gtag.js

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);

Tag Manager

Si vous utilisez un modèle pour créer votre balise, il peut contenir 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 transfert 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 Analytics.

Pour les balises Google Ads et Floodlight :

Pour activer cette fonctionnalité, créez (ou utilisez une balise Conversion Linker existante) et assurez-vous que l'option Activer l'association sur les URL de toutes les pages est cochée. Pour savoir comment créer une balise Conversion Linker, consultez la 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**.

    1. Lorsque la section "Champs à définir" est développée, cliquez sur Ajouter une ligne.
    2. Dans le champ Nom du champ, saisissez url_passthrough.
    3. Pour Valeur, saisissez "true" (vrai).
    4. 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 parcourent les pages de votre site Web :

    • gclid
    • dclid
    • gclsrc
    • _gl
    • wbraid

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

    1. Les redirections sur votre site transmettent tous les paramètres de requête ci-dessus.
    2. Vos outils d'analyse ignorent ces paramètres dans les URL de page.
    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 pas utilisés, sauf à des fins de protection 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.

gtag.js

Pour masquer davantage les données de vos 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 défini sur true et que ad_storage est défini sur 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.

Tag Manager

Si vous utilisez un modèle pour créer votre balise, il peut contenir des commandes permettant de masquer davantage les données des annonces. 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 redaction 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 où l'utilisateur donne son consentement.

Lorsqu'une page se charge avec le consentement refusé, puis se recharge avec le 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 peuvent être incomplets.

Par exemple, dans Google Analytics, il peut manquer un événement session_start à de nombreuses sessions avec consentement.

Pour éviter ce problème, appelez la commande "update" 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 basées sur cette modification. Si la commande de mise à jour est appelée lors du déchargement de la page, le navigateur peut annuler ce trafic réseau avant qu'il ne soit terminé. Les rapports suivants peuvent être incomplets.

Si possible, assurez-vous que les commandes de mise à jour sont enregistrées bien avant le déchargement de la page.

Étapes suivantes

Anciens contrôles des 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 autres paramètres de confidentialité des anciennes balises, consultez la documentation suivante :