API JavaScript de confidentialité et de messagerie

Introduction

Cette API fournit des outils permettant d'interagir avec les messages proposés dans l'onglet "Confidentialité et messages". Grâce cet outil, vous pouvez effectuer les opérations suivantes :

et plus encore.

Vous pouvez également utiliser ces outils pour recueillir le consentement des utilisateurs à l'aide de protocoles standards du secteur :

Dans ce cas, l'état du consentement est communiqué par le biais de ces API.

Vous pouvez déployer cette fonctionnalité de messagerie utilisateur sur votre site de plusieurs façons :

  1. Dans la plupart des cas, vous n'avez pas besoin de retaguer votre site. Vos Google Publisher Tags ou tags AdSense existants déploient les messages aux utilisateurs une fois qu'ils sont publiés dans le produit concerné.
  2. Si vous utilisez le message de récupération sur le blocage des annonces, vous devez ajouter explicitement le tag de blocage des annonces à votre page. Pour en savoir plus, consultez les instructions de taggage Ad Manager et AdSense.

googlefc est l'espace de noms global que la fonctionnalité de messagerie utilisateur utilise pour son API sur le Window JavaScript.

Récapitulatifs des champs

Nom Type Définition
googlefc.controlledMessagingFunction function(!Object) Fonction qui détermine s'il faut poursuivre l'envoi de messages. Cette fonctionnalité est compatible avec tous les types de messages.
googlefc.callbackQueue !Array<!Object<string, function()>> | !Array<function()> | !googlefc.CallbackQueue Référence à la file d'attente de rappel pour l'exécution asynchrone des requêtes de messagerie utilisateur.
googlefc.CallbackQueue !Object Type de l'objet de file d'attente de rappel.
googlefc.AdBlockerStatusEnum !Object<string, number> Énumération représentant l'état du bloqueur de publicité de l'utilisateur.
googlefc.AllowAdsStatusEnum !Object<string, number> Énumération représentant l'état d'autorisation des annonces de l'utilisateur.
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum !Object<string, number> Énumération représentant l'état de désactivation initial de l'utilisateur dans les États américains. Cela tient compte de l'État américain dans lequel se trouve l'utilisateur.
googlefc.GoogleFcConsentModeUserStatus !Object Type renvoyé pour googlefc.getGoogleConsentModeValues.
googlefc.ConsentModePurposeStatusEnum !Object<string, number> Énumération représentant la décision de l'utilisateur final concernant une finalité du mode Consentement.
googlefc.usstatesoptout.overrideDnsLink undefined|boolean Valeur booléenne pouvant être définie sur "true" pour utiliser votre propre lien personnalisé "Ne pas vendre ni partager".
googlefc.ccpa.InitialCcpaStatusEnum

Ancienne. Préférez googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.
!Object<string, number> Énumération représentant l'état initial de l'utilisateur concernant les réglementations dans les États américains.
googlefc.ccpa.overrideDnsLink

Ancienne. Préférez googlefc.usstatesoptout.overrideDnsLink.
undefined|boolean Valeur booléenne pouvant être définie sur "true" pour utiliser votre propre lien personnalisé "Ne pas vendre ni partager".

Résumés des méthodes

Nom Type renvoyé Définition
googlefc.showRevocationMessage() undefined Efface l'enregistrement du consentement et recharge le script googlefc pour afficher le message de consentement applicable à l'utilisateur.
googlefc.getAdBlockerStatus() Total Renvoie une valeur dans AdBlockerStatusEnum en fonction de l'état du blocage des annonces par l'utilisateur.
googlefc.getAllowAdsStatus() Total Renvoie une valeur dans AllowAdsStatusEnum en fonction de l'état d'autorisation des annonces de l'utilisateur.
googlefc.usstatesoptout.getInitialUsStatesOptOutStatus() Total Renvoie une valeur dans InitialUsStatesOptOutStatusEnum en fonction de l'état de désactivation initial de l'utilisateur concernant les réglementations des États américains. Cela tient compte de la réglementation qui s'applique à l'utilisateur en fonction de sa position actuelle.
googlefc.usstatesoptout.openConfirmationDialog(function(boolean)) undefined Ouvre la boîte de dialogue de confirmation de désactivation des réglementations des États américains si le lien par défaut "Ne pas vendre ni partager" est remplacé.
googlefc.getGoogleConsentModeValues() !Object Renvoie un objet googlefc.GoogleFcConsentModeUserStatus contenant les valeurs actuelles du mode Consentement pour l'utilisateur, une pour chaque finalité du mode Consentement disponible.
googlefc.ccpa.getInitialCcpaStatus()

Ancienne. Préférez googlefc.usstatesoptout.getInitialUsStatesOptOutStatus().
Total Renvoie une valeur dans InitialCcpaStatusEnum en fonction de l'état de désactivation initial de l'utilisateur concernant les réglementations des États américains.
googlefc.ccpa.openConfirmationDialog(function(boolean))

Ancienne. Préférez googlefc.usstatesoptout.openConfirmationDialog().
undefined Ouvre la boîte de dialogue de confirmation de désactivation des réglementations des États américains si le lien par défaut "Ne pas vendre ni partager" est remplacé.

Tester et déboguer sur votre site

La fonctionnalité Confidentialité et messages fournit des fonctionnalités de débogage et de test qui vous permettent de voir à quoi ressemblent des messages spécifiques, des sous-types de messages ou des combinaisons de messages sur votre site.

Prérequis :

  • Le ou les messages que vous souhaitez prévisualiser doivent être publiés sur le site que vous testez.

Vous pouvez afficher un aperçu en direct sur votre site à l'aide des paramètres d'URL de débogage suivants :

Paramètre de débogage Valeurs autorisées
fc alwaysshow (pour déclencher le mode débogage/aperçu)
fctype ab (messages sur le blocage de publicité), ccpa (messages de désactivation pour les réglementations des États américains), gdpr (messages de consentement pour le RGPD), monetization (messages Offerwall), usfl (messages de désactivation pour les réglementations des États américains, spécifiques à la Floride), usnat (messages de désactivation pour les réglementations des États américains, tous les États acceptés sauf la Floride ; équivalent à ccpa)

Voici quelques exemples d'utilisation pour prévisualiser votre site (foo.com) :

  • Tester les messages de désactivation liés aux réglementations des États américains : http://foo.com/?fc=alwaysshow&fctype=ccpa
  • Tester les messages sur le RGPD : http://foo.com/?fc=alwaysshow&fctype=gdpr

Champs : explications et exemples

googlefc.controlledMessagingFunction {function(!Object)}

Fonction qui détermine si les messages doivent s'afficher ou non. Il peut être utilisé pour contrôler l'affichage des messages en fonction de conditions spécifiées par l'éditeur, telles que l'état de l'abonné ou l'URL de la page.

Lorsque vous définissez googlefc.controlledMessagingFunction sur la fenêtre avant le chargement d'autres scripts, les messages ne s'affichent pas tant que vous n'appelez pas message.proceed(boolean). L'appel de message.proceed(true) permet à la messagerie de fonctionner comme d'habitude, tandis que l'appel de message.proceed(false) empêche l'affichage de tout message pour la page vue.

Exemple : supposons que vous ayez ce script sur la page qui définit une fonction asynchrone determineIfUserIsSubscriber() qui vérifie si l'utilisateur connecté est un abonné.

<head>
  <script>
    window.isSubscriber = undefined;
    function determineIfUserIsSubscriber() {
      if (isSubscriber !== undefined) {
        return isSubscriber;
      }
      return new Promise(resolve => {
        setTimeout(() => {
          // Change this to true if you want to test what subscribers would see.
          window.isSubscriber = false;
          resolve(window.isSubscriber);
        }, 1000);
      });
    }
  </script>
</head>

Voici un exemple d'utilisation de googlefc.controlledMessagingFunction pour n'afficher le message qu'aux non-abonnés.

<head>
  <script>
    // Define googlefc and the controlled messaging function on the Window.
    window.googlefc = window.googlefc || {};
    googlefc.controlledMessagingFunction = async (message) => {
      // Determine if the user is a subscriber asynchronously.
      const isSubscriber = await determineIfUserIsSubscriber();

      if (isSubscriber) {
        // If the user is a subscriber, don't show any messages.
        message.proceed(false);
      } else {
        // Otherwise, show messages as usual.
        message.proceed(true);
      }
    }
  </script>
</head>

Il existe également une extension de cette fonctionnalité qui permet aux éditeurs de spécifier que seule l'Offerwall doit être supprimée. Utilisez cette extension de fonctionnalité pour supprimer l'Offerwall sans supprimer d'autres types de messages.

Pour afficher des messages contrôlés spécifiques aux offerwalls, vous devez transmettre un paramètre supplémentaire à message.proceed(), un Array de type googlefc.MessageTypeEnum.

Exemple : Voici un exemple d'utilisation de googlefc.controlledMessagingFunction pour supprimer uniquement la diffusion d'Offerwall pour les abonnés, sans supprimer les autres types de messages :

<head>
  <script>
    // Define googlefc and the controlled messaging function on the Window.
    window.googlefc = window.googlefc || {};
    googlefc.controlledMessagingFunction = async (message) => {
     // Determine if the Offerwall should display or not.
     const shouldDisplayOfferwall = await determineIfUserIsSubscriber();
     const applicableMessageTypes = [];

     if (!shouldDisplayOfferwall) {
       // Do not show the Offerwall, but allow other message types to display.
       applicableMessageTypes.push(window.googlefc.MessageTypeEnum.OFFERWALL);
       message.proceed(false, applicableMessageTypes);
     } else {
       // Otherwise, show messages as usual.
       message.proceed(true);
     }
    }
  </script>
</head>

googlefc.callbackQueue {!Array<!Object<string, function()>> | !Array<function()> | !googlefc.CallbackQueue}

Référence à la file d'attente de rappel globale pour l'exécution asynchrone des appels liés à la messagerie. La seule façon d'appeler une fonction est de l'ajouter à callbackQueue.

Étant donné que différents types de données sont disponibles à différents moments, une fonction doit être ajoutée en tant que carte, avec l'une des chaînes suivantes comme clé et la fonction à exécuter comme valeur.

Clés compatibles :

Nom de la clé Utilisation Latence relative
CONSENT_API_READY Les fonctions envoyées à la file d'attente de rappel avec la clé CONSENT_API_READY sont exécutées lorsque les API pour les frameworks de consentement compatibles sont définies et appelables. À partir de ce moment, l'exécution de toutes les fonctions à clé CONSENT_API_READY ajoutées par la suite est synchrone. Pour en savoir plus sur les frameworks, consultez les sections sur les frameworks de l'IAB. Faible
CONSENT_DATA_READY Les fonctions ajoutées à la file d'attente de rappel avec la clé CONSENT_DATA_READY sont exécutées lorsque le consentement de l'utilisateur recueilli dans un framework de consentement compatible est connu (soit à partir d'une exécution précédente, soit une fois que l'utilisateur a interagi avec le message de consentement). À partir de ce moment, l'exécution de toutes les fonctions à clé CONSENT_DATA_READY ajoutées par la suite est synchrone. Élevée
AD_BLOCK_DATA_READY Les fonctions envoyées à la file d'attente de rappel avec la clé AD_BLOCK_DATA_READY sont exécutées lorsque les données de blocage des annonces deviennent disponibles dans le flux. À partir de ce moment, l'exécution de toutes les fonctions à clé AD_BLOCK_DATA_READY ajoutées par la suite est synchrone. Élevée
CONSENT_MODE_DATA_READY Les fonctions envoyées à la file d'attente des rappels avec la clé CONSENT_MODE_DATA_READY sont exécutées lorsque les données du [mode Consentement](https://support.google.com/google-ads/answer/10000067) de Google (à utiliser avec les balises Google Ads et Analytics) deviennent disponibles dans le flux. Une fois les données du mode Consentement disponibles, vous pouvez y accéder à tout moment à l'aide de googlefc.getGoogleConsentModeValues. Moyenne
INITIAL_US_STATES_OPT_OUT_DATA_READY Les fonctions ajoutées à la file d'attente de rappel avec la clé INITIAL_US_STATES_OPT_OUT_DATA_READY sont exécutées lorsque les données sur les réglementations des États américains deviennent disponibles dans le flux. Notez que toute demande ultérieure de données sur les réglementations des États américains doit être obtenue en appelant directement l'API GPP (__gpp). Moyenne
INITIAL_CCPA_DATA_READY Ancienne clé pour les réglementations des États américains. Préférez INITIAL_US_STATES_OPT_OUT_DATA_READY.

Les fonctions envoyées à la file d'attente de rappel avec la clé INITIAL_CCPA_DATA_READY sont exécutées lorsque les données sur les réglementations des États américains deviennent disponibles dans le flux. Notez que toute demande ultérieure de données sur les réglementations des États américains doit être obtenue en appelant directement l'API GPP (__gpp).
Moyenne

googlefc.CallbackQueue {!Object}

Résumé de la méthode :

Nom Type Paramètre Type renvoyé Rôle
push(data) Total data : paire clé-valeur dont la clé est l'un des types de disponibilité des données et la valeur est une fonction JavaScript à exécuter. Les clés de disponibilité des données acceptables sont CONSENT_API_READY, CONSENT_DATA_READY, AD_BLOCK_DATA_READY, INITIAL_US_STATES_OPT_OUT_DATA_READY, CONSENT_MODE_DATA_READY et (ancienne) INITIAL_CCPA_DATA_READY. Nombre de commandes ajoutées jusqu'à présent. Cela renvoie la longueur actuelle du tableau. Exécute la fonction transmise, dans l'ordre dans lequel les données deviennent disponibles, puis dans l'ordre dans lequel ces fonctions sont ajoutées à la file d'attente.

Exemple :

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  googlefc.callbackQueue.push({
    'AD_BLOCK_DATA_READY':
    () => {
      if (googlefc.getAdBlockerStatus() == googlefc.AdBlockerStatusEnum.NO_AD_BLOCKER) {
        // Handle a non-ad blocking user.
      }
    }
  });
</script>

googlefc.AdBlockerStatusEnum {!Object<string, number>}

Représente les différents états de blocage des annonces de l'utilisateur. Voici les différents états :

googlefc.AdBlockerStatusEnum = {
  // Something failed, in an unknown state.
  UNKNOWN: 0,
  // The user was running an extension level ad blocker.
  EXTENSION_AD_BLOCKER: 1,
  // The user was running a network level ad blocker.
  NETWORK_LEVEL_AD_BLOCKER: 2,
  // The user was not blocking ads.
  NO_AD_BLOCKER: 3,
};

googlefc.AllowAdsStatusEnum {!Object<string, number>}

Représente les différents états de l'utilisateur concernant l'autorisation des annonces et le blocage des annonces. Voici les différents états :

googlefc.AllowAdsStatusEnum = {
  // Something failed, in an unknown state.
  UNKNOWN: 0,
  // User is currently using an ad blocker, was never using an ad blocker, or
  // allowed ads, but not because they saw the Privacy & messaging message.
  ADS_NOT_ALLOWED: 1,
  // User is no longer using an ad blocker after seeing the ad blocking message.
  ADS_ALLOWED: 2,
};

googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum{!Object<string, number>}

Représente les différents états de désactivation des réglementations des États américains pour l'utilisateur. Voici les différents états :

googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum = {
  // Something failed, status unknown.
  UNKNOWN: 0,
  // No US state regulation applies to this user.
  DOES_NOT_APPLY: 1,
  // A US state regulation applies to this user, and the user has not opted out yet.
  NOT_OPTED_OUT: 2,
  // A US state regulation applies to this user, and the user has opted out.
  OPTED_OUT: 3,
};

googlefc.GoogleFcConsentModeUserStatus{!Object}

Type de l'objet renvoyé par googlefc.getGoogleConsentModeValues.

interface GoogleFcConsentModeUserStatus {

  // End user consent decision value for the ad_storage consent mode purpose.
  adStoragePurposeConsentStatus: number;

  // End user consent decision value for the ad_user_data consent mode purpose.
  adUserDataPurposeConsentStatus: number;

  // End user consent decision value for the ad_personalization consent mode purpose.
  adPersonalizationPurposeConsentStatus: number;

  // End user consent decision value for the analytics_storage consent mode purpose.
  analyticsStoragePurposeConsentStatus: number;
}

La valeur de chaque champ est un nombre qui correspond à une valeur d'énumération googlefc.ConsentModePurposeStatusEnum.


googlefc.ConsentModePurposeStatusEnum{!Object<string, number>}

Représente les différentes valeurs de consentement de l'utilisateur final possibles pour un objectif du mode Consentement. Voici les différentes valeurs :

googlefc.ConsentModePurposeStatusEnum = {
  // Indicates either an error state, or that consent mode data is not ready
  // yet.
  UNKNOWN: 0,
  // Consent is granted for the given consent mode purpose.
  GRANTED: 1,
  // Consent is denied for the given consent mode purpose.
  DENIED: 2,
  // Consent is not applicable for the given consent mode purpose.
  NOT_APPLICABLE: 3,
  // The consent mode purpose has not been configured for use in the Privacy &
  // messaging UI.
  NOT_CONFIGURED: 4
};

googlefc.usstatesoptout.overrideDnsLink{undefined|boolean}

Définissez ce champ sur "true" pour masquer le lien par défaut "Ne pas vendre ni partager" et utiliser votre propre lien personnalisé "Ne pas vendre ni partager".

Exemple :

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
  // Signals that the default DNS link will be overridden.
  googlefc.usstatesoptout.overrideDnsLink = true;
</script>

googlefc.ccpa.InitialCcpaStatusEnum{!Object<string, number>}

Représente les différents états de désactivation des réglementations des États américains pour l'utilisateur. Voici les différents états :

googlefc.ccpa.InitialCcpaStatusEnum = {
  // Something failed, in an unknown state.
  UNKNOWN: 0,
  // No US state regulation applies to this user.
  CCPA_DOES_NOT_APPLY: 1,
  // A US state regulation applies to this user, and the user has not opted out yet.
  NOT_OPTED_OUT: 2,
  // A US state regulation applies to this user, and the user has opted out.
  OPTED_OUT: 3,
};

googlefc.ccpa.overrideDnsLink{undefined|boolean}

Définissez ce champ sur "true" pour masquer le lien par défaut "Ne pas vendre ni partager" et utiliser votre propre lien personnalisé "Ne pas vendre ni partager". Notez que si vous définissez ce champ sur "true", vous êtes responsable de l'affichage d'un lien "Ne pas vendre ni partager mes informations personnelles" sur votre site. Ce champ doit être utilisé conjointement avec openConfirmationDialog.

Exemple :

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.ccpa = window.googlefc.ccpa || {};
  // Signals that the default DNS link will be overridden.
  googlefc.ccpa.overrideDnsLink = true;
</script>

Méthodes : explications et exemples

googlefc.getConsentStatus(): {number}


googlefc.getConsentedProviderIds(): {!Array<string>}

  1. Cette méthode renvoie désormais toujours une liste vide lorsqu'elle est appelée.

googlefc.showRevocationMessage(): {undefined}

Efface l'enregistrement actuel du consentement aux réglementations de l'UE, le cas échéant, et affiche à nouveau le message sur les réglementations de l'UE pour permettre à l'utilisateur de modifier sa décision de consentement.

Exemple 1 : Exemple simple de configuration d'un lien qui affichera le message de révocation lorsqu'un utilisateur cliquera dessus :

<a href="javascript:window.googlefc.showRevocationMessage();">Privacy and cookie settings</a>
<a href="javascript:window.googlefc.showRevocationMessage();" style="display: none;" id="revocation-link">Privacy and cookie settings</a>
<script>
  window.googlefc = window.googlefc || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
  window.googlefc.callbackQueue.push({
    'CONSENT_API_READY':
    () => {
      // Update the revocation link so that it shows on the page.
      const revocationLink = document.getElementById('revocation-link');
      revocationLink.style.display = 'block';
    }
  });
</script>

Exemple 2 : Si vous souhaitez que le lien ne soit visible que lorsque les réglementations de l'UE s'appliquent à l'utilisateur actuel, vous pouvez utiliser la file d'attente de rappel googlefc avec l'API TCF pour mettre à jour l'affichage du bouton de manière conditionnelle en fonction de la valeur gdprApplies une fois qu'elle est déterminée. Pour ce faire, utilisez la clé API CONSENT_API_READY.

<a href="javascript:window.googlefc.showRevocationMessage();" style="display: none;" id="revocation-link">Privacy and cookie settings</a>
<script>
  window.googlefc = window.googlefc || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
  window.googlefc.callbackQueue.push({
    'CONSENT_API_READY':
    // Specifying "0" for the version parameter will result in the API call
    // using the latest version of the TCF spec.
    () => __tcfapi('addEventListener', 0, (tcdata, success) => {
      const revocationLink = document.getElementById('revocation-link');
      if (!success || !tcdata) {
        // Something went wrong, don't show the revocation link.
        revocationLink.style.display = 'none';
      }
      else if (tcdata.gdprApplies) {
        revocationLink.style.display = 'block';
      } else {
        // GDPR does not apply so don't show the revocation link.
        revocationLink.style.display = 'none';
      }
    })
  });
</script>

googlefc.getAdBlockerStatus(): {number}

Renvoie une valeur dans AdBlockerStatusEnum en fonction de l'état du bloqueur de publicité de l'utilisateur. La clé à spécifier pour cette fonction est AD_BLOCK_DATA_READY.

Exemple :

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  googlefc.callbackQueue.push({
    'AD_BLOCK_DATA_READY':
    () => {
      switch (googlefc.getAdBlockerStatus()) {
          case googlefc.AdBlockerStatusEnum.EXTENSION_LEVEL_AD_BLOCKER:
          case googlefc.AdBlockerStatusEnum.NETWORK_LEVEL_AD_BLOCKER:
            // Insert handling for cases where the user is blocking ads.
            break;
          case googlefc.AdBlockerStatusEnum.NO_AD_BLOCKER:
            // Insert handling for cases where the user is not blocking ads.
            break;
          case googlefc.AdBlockerStatusEnum.UNKNOWN:
            // Insert handling for unknown cases.
            break;
      }
    }
  });
</script>

googlefc.getAllowAdsStatus(): {number}

Renvoie une valeur dans AllowAdsStatusEnum en fonction de l'état "allow-ads" de l'utilisateur. La clé à spécifier pour cette fonction est AD_BLOCK_DATA_READY.

Exemple :

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  googlefc.callbackQueue.push({
    'AD_BLOCK_DATA_READY':
    () => {
      switch (googlefc.getAllowAdsStatus()) {
        case googlefc.AllowAdsStatusEnum.ADS_NOT_ALLOWED:
          // Insert handling for cases where the user has not allowed ads.
          // The user may have never been an ad blocker.
          break;
        case googlefc.AllowAdsStatusEnum.ADS_ALLOWED:
          // Insert handling for cases where the user saw the ad blocking
          // message and allowed ads on the site.
          break;
        case googlefc.AllowAdsStatusEnum.UNKNOWN:
          // Insert handling for unknown cases.
          break;
      }
    }
  });
</script>

googlefc.usstatesoptout.getInitialUsStatesOptOutStatus(): {number}

Renvoie une valeur dans InitialUsStatesOptOutStatusEnum en fonction de l'état de désactivation des réglementations des États américains de l'utilisateur. La clé à spécifier pour cette fonction est INITIAL_US_STATES_OPT_OUT_DATA_READY. Notez que toute demande ultérieure de données sur les réglementations des États américains doit être obtenue en appelant directement l'API GPP (__gpp).

Si vous remplacez le lien "Ne pas vendre ni partager mes informations personnelles", vous pouvez utiliser cette méthode pour déterminer quand inclure le lien sur votre site.

Exemple :

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {}
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  googlefc.callbackQueue.push({
    'INITIAL_US_STATES_OPT_OUT_DATA_READY':
    () => {
      switch (googlefc.usstatesoptout.getInitialUsStatesOptOutStatus()) {
        case googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.DOES_NOT_APPLY:
          // Insert handling for cases where no US state regulation applies to
          // the user.
          break;
        case googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.NOT_OPTED_OUT:
          // Insert handling for cases where a US state regulation applies to
          // the user, and the user has not opted out.
          break;
        case googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.OPTED_OUT:
          // Insert handling for cases where a US state regulation applies to the
          // user, and the user has opted out.
          break;
      }
    }
  });
</script>

googlefc.usstatesoptout.openConfirmationDialog(function(boolean)): {undefined}

Ouvre la boîte de dialogue de confirmation de la désactivation des réglementations des États américains si le lien par défaut "Ne pas vendre mes informations personnelles" est remplacé. Une fois que l'utilisateur a interagi avec la boîte de dialogue de confirmation, la fonction de rappel fournie est appelée avec true si l'utilisateur décide de se désinscrire, et false dans le cas contraire.

Exemple :

<script>
// This callback will be called with the user's US state regulation opt-out
// decision.
const usStateRegCompletionCallback = (userOptedOut) => {
  // Insert handling for user opt-out status here.
}
// Invoke the US state regulations confirmation dialog when the user clicks the
// link.
document.getElementById("your-custom-do-not-sell-link").addEventListener(
  "click", () => googlefc.usstatesoptout.openConfirmationDialog(usStateRegCompletionCallback));
</script>

googlefc.getGoogleConsentModeValues(): {!Object}

Renvoie un objet googlefc.GoogleFcConsentModeUserStatus contenant les valeurs actuelles de chaque objectif du mode Consentement, en fonction de la décision de consentement de l'utilisateur.

Pour connaître l'utilisation prévue, consultez Utiliser les solutions de gestion du consentement de Google avec le mode Consentement pour les réglementations de l'UE.


googlefc.ccpa.getInitialCcpaStatus(): {number}

Renvoie une valeur dans InitialCcpaStatusEnum en fonction de l'état de désactivation des réglementations des États américains pour l'utilisateur. La clé à spécifier pour cette fonction est INITIAL_CCPA_DATA_READY. Notez que toute demande ultérieure de données sur les réglementations des États américains doit être obtenue en appelant directement l'API GPP (__gpp).

Exemple :

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.ccpa = window.googlefc.ccpa || {}
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  googlefc.callbackQueue.push({
    'INITIAL_CCPA_DATA_READY':
    () => {
      switch (googlefc.ccpa.getInitialCcpaStatus()) {
        case googlefc.ccpa.InitialCcpaStatusEnum.CCPA_DOES_NOT_APPLY:
          // Insert handling for cases where no US state regulation applies to
          // the user.
          break;
        case googlefc.ccpa.InitialCcpaStatusEnum.NOT_OPTED_OUT:
          // Insert handling for cases where a US state regulation applies to
          // the user, and the user has not opted out.
          break;
        case googlefc.ccpa.InitialCcpaStatusEnum.OPTED_OUT:
          // Insert handling for cases where a US state regulation applies to the
          // user, and the user has opted out.
          break;
      }
    }
  });
</script>

googlefc.ccpa.openConfirmationDialog(function(boolean)): {undefined}

Ouvre la boîte de dialogue de confirmation de la désactivation des réglementations des États américains si le lien par défaut "Ne pas vendre mes informations personnelles" est remplacé. Une fois que l'utilisateur interagit avec la boîte de dialogue de confirmation, la fonction de rappel fournie est appelée avec true si l'utilisateur décide de se désinscrire, et false dans le cas contraire.

Exemple :

<script>
// This callback will be called with the user's US state regulation opt-out
// decision.
const usStateRegCompletionCallback = (userOptedOut) => {
  // Insert handling for user opt-out status here.
}
// Invoke the US state regulations confirmation dialog when the user clicks the
// link.
document.getElementById("your-custom-ccpa-do-not-sell-link").addEventListener(
  "click", () => googlefc.ccpa.openConfirmationDialog(ccpaCompletionCallback));
</script>

Si vous utilisez les solutions de gestion du consentement de Google pour recueillir le consentement RGPD dans le cadre de la version 2 du TCF de l'IAB, vous devez utiliser l'API IAB TCF v2.

Vous pouvez utiliser la clé de file d'attente de rappel CONSENT_API_READY pour vous assurer que les rappels correspondants ne sont appelés que lorsque l'API IAB TCF v2 est définie sur la page. Il doit être utilisé conjointement avec la commande 'addEventListener' de l'API IAB TCF v2.

Exemple :

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback using the CONSENT_API_READY key on the callbackQueue.
  window.googlefc.callbackQueue.push({
    'CONSENT_API_READY':
    () => __tcfapi('addEventListener', 2.2, (data, success) => {
      // Do something with consent data value; this callback may be invoked
      // multiple times as user completes consent flow.
    })
  });
</script>

Vous pouvez utiliser la clé de file d'attente de rappel CONSENT_DATA_READY pour vous assurer que les rappels correspondants ne sont appelés que lorsque le consentement de l'utilisateur est recueilli et accessible à l'aide de l'API IAB TCF v2. Cette commande peut être utilisée conjointement avec la commande 'addEventListener'. Les données fournies lors de la première invocation de votre rappel fourni contiendront les choix de consentement de l'utilisateur (tant que le TCF v2 s'applique à cet utilisateur). Notez qu'avec la sortie de la TCF v2.2, la commande 'getTCData' est désormais obsolète.

Exemple :

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback using the CONSENT_DATA_READY key on the callbackQueue.
  window.googlefc.callbackQueue.push({
    'CONSENT_DATA_READY':
    () => __tcfapi('addEventListener', 2.2, (data, success) => {
      // Do something with consent data value; this callback may be invoked
      // multiple times if user consent selections change.
    })
  });
</script>

Les solutions de gestion du consentement de Google peuvent interpréter les choix de consentement de vos utilisateurs concernant les réglementations de l'UE pour le mode Consentement de Google (pour en savoir plus, consultez le Centre d'aide).

Vous pouvez implémenter le mode Consentement en mode de base ou en mode avancé, comme décrit dans la documentation Google Ads et Analytics. Consultez votre service juridique pour savoir quel mode Consentement implémenter afin de répondre à vos exigences légales.

Le mode Consentement avancé est compatible par défaut. Une fois que vous avez activé le mode Consentement dans l'interface utilisateur de Confidentialité et messages, aucune autre action n'est requise.

Pour implémenter le mode Consentement de base à l'aide des solutions Google de gestion du consentement, vous pouvez utiliser la clé de file d'attente de rappel CONSENT_MODE_DATA_READY pour charger conditionnellement vos balises Google Ads et Analytics une fois que les données du mode Consentement sont disponibles. Les données du mode Consentement seront disponibles une fois que Funding Choices aura déterminé que le mode Consentement ne s'applique pas à cette demande (par exemple, parce que les réglementations de l'UE ne s'appliquent pas à cette demande) ou une fois qu'un utilisateur aura pris une décision concernant le consentement aux réglementations de l'UE. Consultez votre service juridique pour connaître les critères à utiliser afin de déterminer si vos balises peuvent être chargées une fois le mode Consentement disponible.

Par exemple, pour charger vos balises une fois que les données du mode Consentement sont disponibles, quelle que soit la décision de consentement de l'utilisateur final :

<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

// Helper function to load Google Ads/Analytics tags once consent mode data is
// ready.
const loadGtagScript = () => {
  // Load gtag.js script - code taken from
  // https://developers.google.com/tag-platform/security/guides/consent?consentmode=basic#set_up_consent_mode
  var gtagScript = document.createElement('script');
  gtagScript.async = true;
  gtagScript.src = 'https://www.googletagmanager.com/gtag/js?id=<Google tag ID>';

  var firstScript = document.getElementsByTagName('script')[0];
  firstScript.parentNode.insertBefore(gtagScript,firstScript);
}

// Queue the callback using the CONSENT_MODE_DATA_READY key on the callbackQueue.
window.googlefc.callbackQueue.push({
  'CONSENT_MODE_DATA_READY':
  () => {
      loadGtagScript();
  },
});
</script>

Vous pouvez également utiliser l'API googlefc.getGoogleConsentModeValues() pour obtenir les valeurs des objectifs individuels du mode Consentement lorsque les données du mode Consentement sont disponibles. Cette API renvoie un objet GoogleFcConsentModeUserStatus qui contient un champ pour chaque objectif du mode Consentement compatible. La valeur de chaque champ est une valeur enum qui indique la valeur de cet objectif du mode Consentement.

Par exemple, vous pouvez utiliser googlefc.getGoogleConsentModeValues() pour débloquer vos balises Google Ads et Analytics uniquement dans les cas suivants :

  • l'utilisateur final prend une décision concernant le consentement aux réglementations de l'UE qui se traduit par l'octroi du consentement pour toutes les finalités du mode Consentement, ou
  • toutes les finalités du mode Consentement sont inapplicables à la requête actuelle (ce qui peut se produire si les réglementations de l'UE ne s'appliquent pas ou si le mode Consentement n'est pas configuré pour une ou plusieurs finalités dans "Confidentialité et messages").
<script>
// Make sure that the properties exist on the window.
window.googlefc = window.googlefc || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

// Helper function to determine whether Google Ads and Analytics tags can be
// unblocked. Returns true if all consent mode purposes are set to GRANTED,
// NOT_APPLICABLE, or NOT_CONFIGURED.
const shouldUnblockConsentTags = (googleFcConsentModeStatus) => {
  const allConsentModeValues = [
    googleFcConsentModeStatus.adStoragePurposeConsentStatus,
    googleFcConsentModeStatus.adUserDataPurposeConsentStatus,
    googleFcConsentModeStatus.adPersonalizationPurposeConsentStatus,
    googleFcConsentModeStatus.analyticsStoragePurposeConsentStatus
  ];
  for (const consentModeValue of allConsentModeValues) {
    switch (consentModeValue) {
      case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_UNKNOWN:
        // Indicates either an error case or that consent mode data is not
        // ready yet. Cannot unblock tags until consent data is ready and valid,
        // so return false.
        return false;
      case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_GRANTED:
        // Consent is granted for this consent mode purpose.
        break;
      case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_DENIED:
        // Consent is denied for this consent mode purpose. Do not unblock tags.
        return false;
      case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_NOT_APPLICABLE:
        // Consent mode does not apply for this purpose.
        break;
      case googlefc.ConsentModePurposeStatusEnum.CONSENT_MODE_PURPOSE_STATUS_NOT_CONFIGURED:
        // Consent mode not configured for this purpose.
        // If you configured support for Ads purposes but not Analytics purposes in the
        // Privacy & messaging UI, the value of `analyticsStoragePurposeConsentStatus` will
        // always be set to NOT_CONFIGURED. If you do not enable any Consent Mode support
        // in the Privacy & messaging UI, the values of all purposes will always be set to
        // NOT_CONFIGURED.
        break;
      default:
        console.log("Unexpected consent mode value encountered");
    }
  }
  // If all prior checks pass, all consent mode values are either GRANTED,
  // NOT_APPLICABLE, or NOT_CONFIGURED.
  return true;
};

// Helper function to load Google Ads/Analytics tags.
const loadGtagScript = () => {
  // Load gtag.js script - code taken from
  // https://developers.google.com/tag-platform/security/guides/consent?consentmode=basic#set_up_consent_mode
  var gtagScript = document.createElement('script');
  gtagScript.async = true;
  gtagScript.src = 'https://www.googletagmanager.com/gtag/js?id=<Google tag ID>';

  var firstScript = document.getElementsByTagName('script')[0];
  firstScript.parentNode.insertBefore(gtagScript,firstScript);
}

googlefc.callbackQueue.push({
  CONSENT_MODE_DATA_READY: () => {
    if (shouldUnblockConsentTags(googlefc.getGoogleConsentModeValues())) {
      loadGtagScript();
    }
  },
});
</script>

Si vous utilisez les solutions de gestion du consentement de Google pour fournir des messages de désactivation concernant les réglementations des États américains aux utilisateurs finaux dans le cadre du framework GPP de l'IAB, vous devez utiliser l'API GPP de l'IAB.

En raison de la nature des réglementations des États américains (qui permettent aux utilisateurs de se désinscrire), vous pouvez utiliser la clé de file d'attente de rappel CONSENT_API_READY ou CONSENT_DATA_READY pour vous assurer que l'API GPP de l'IAB peut être appelée et renvoie des données de consentement au moment où les rappels sont invoqués.

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Queue the callback on the callbackQueue.
  window.googlefc.callbackQueue.push({
    'CONSENT_DATA_READY':
    () => __gpp('ping', (data, success) => {
        // Do something with consent data value.
    })
  });
</script>

Si vous utilisez les solutions de gestion du consentement de Google pour fournir des messages de désactivation concernant les réglementations des États américains aux utilisateurs finaux dans le framework GPP de l'IAB, vous pouvez fournir votre propre lien personnalisé "Ne pas vendre ni partager mes informations personnelles" en définissant le flag googlefc.usstatesoptout.overrideDnsLink sur true.

<script>
  // Make sure that the properties exist on the window.
  window.googlefc = window.googlefc || {};
  window.googlefc.usstatesoptout = window.googlefc.usstatesoptout || {};
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

  // Signals that the default DNS link will be overridden.
  window.googlefc.usstatesoptout.overrideDnsLink = true;

  // Register the callback for the initial US state regulations data.
  window.googlefc.callbackQueue.push({
      'INITIAL_US_STATES_OPT_OUT_DATA_READY': () => {
        if (googlefc.usstatesoptout.getInitialUsStatesOptOutStatus() ===
            googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.NOT_OPTED_OUT) {
          // TODO: Display custom Do Not Sell or Share link here.
        }
      }
    });
</script>

Cela garantit que le lien par défaut "Ne pas vendre ni partager" ne s'affiche pas. Ensuite, vous devez gérer l'interaction de l'utilisateur avec votre lien personnalisé "Ne pas vendre ni partager" en appelant la boîte de dialogue de confirmation de désactivation des réglementations des États américains.

Notez que lorsque vous utilisez votre propre lien personnalisé "Ne pas vendre ni partager", il vous incombe de vous assurer qu'il est conforme aux réglementations des États américains.

<script>
// This callback will be called when the user makes a US state regulations
// decision.
const usStateRegCompletionCallback = (userOptedOut) => {
  if (userOptedOut) {
    // TODO: Hide custom Do Not Sell or Share link here.
  }
}
// Invoke the US state regulations opt-out confirmation dialog when the user
// clicks the link.
document.getElementById("your-custom-do-not-sell-link").addEventListener(
  "click", () => googlefc.usstatesoptout.openConfirmationDialog(usStateRegCompletionCallback));
</script>