API JavaScript de confidentialité et de messagerie

Introduction

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

  • supprimer l'option Messages d'un utilisateur donné
  • demander l'état de blocage des annonces d'un utilisateur
  • permettre à un utilisateur de révoquer son consentement (le cas échéant) ;

Vous pouvez également utiliser ces outils pour recueillir le consentement de l'utilisateur à l'aide de certaines normes du secteur protocoles:

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

Vous pouvez déployer cette fonctionnalité de messagerie pour les utilisateurs sur votre site en différentes manières:

  1. Dans la plupart des cas, vous n'avez pas besoin d'ajouter de nouvelles balises. votre compte Google Éditeur Tag ou Déploiement de la balise AdSense messages utilisateur une fois qu'ils sont publiés dans le produit concerné.
  2. Si vous utilisez le message d'incitation à réautoriser les annonces, vous devez ajouter l'annonce le blocage explicite d'une balise sur votre page. Voir Annonce Administrateur et Ajout de tags AdSense pour obtenir plus d'informations.

googlefc est l'espace de noms global utilisé par la fonctionnalité de messagerie destinée aux utilisateurs. pour son API sur le Window JavaScript.

<ph type="x-smartling-placeholder">

Synthèses de champs

Nom Type Définition
googlefc.controlledMessagingFunction function(!Object) Fonction qui détermine s'il faut poursuivre avec un message. Cette fonctionnalité est compatible avec tous les types de messages.
googlefc.callbackQueue !Tableau<!Objet<chaîne, fonction()>> | !Array&lt;function()&gt; | !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 !Objet<chaîne, nombre> Énumération représentant l'état du bloqueur d'annonces de l'utilisateur.
googlefc.AllowAdsStatusEnum !Objet<chaîne, nombre> Énumération représentant l'état d'autorisation des annonces de l'utilisateur.
googlefc.ccpa.InitialCcpaStatusEnum !Objet<chaîne, nombre> Énumération représentant l'état initial de l'utilisateur concernant le CPRA.
googlefc.ccpa.overrideDnsLink non défini|booléen Booléen pouvant être défini sur "true" pour utiliser un lien "Ne pas vendre" personnalisé.

Récapitulatifs des méthodes

Nom Type renvoyé Définition
googlefc.showRevocationMessage() undefined Efface l'enregistrement de consentement et actualise le script googlefc pour afficher le message de consentement applicable à l'utilisateur.
googlefc.getAdBlockerStatus() Nombre Affiche une valeur dans AdBlockerStatusEnum en fonction de l'état de blocage des annonces de l'utilisateur.
googlefc.getAllowAdsStatus() Nombre Affiche une valeur dans AllowAdsStatusEnum en fonction de l'état d'autorisation des annonces de l'utilisateur.
googlefc.ccpa.getInitialCcpaStatus() Nombre Affiche une valeur dans InitialCcpaStatusEnum en fonction de l'état initial de l'utilisateur concernant le CPRA.
googlefc.ccpa.openConfirmationDialog(function(boolean)) undefined Ouvre la boîte de dialogue de confirmation de la loi CPRA si le lien par défaut "Ne pas vendre" est remplacé.

Tester et déboguer sur votre site

Confidentialité et propose des fonctionnalités de débogage et de test qui vous permettent voir à quoi ressemblent des messages spécifiques (ou des combinaisons de messages) site réel.

Conditions préalables :

  • Les messages que vous souhaitez prévisualiser doivent être publiés sur le site auquel vous des tests par rapport à

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

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 des annonces), ccpa (messages sur la désactivation CPRA), gdpr (messages de consentement sur le RGPD), monetization (messages Offerwall)

Voici quelques exemples d'utilisation de cette fonction pour afficher un aperçu sur votre site (foo.com):

  • Tester les messages sur le CPRA -- http://foo.com/?fc=alwaysshow&fctype=ccpa
  • Tester le message sur le RGPD – http://foo.com/?fc=alwaysshow&fctype=gdpr
<ph type="x-smartling-placeholder">

Champs: explications et exemples

googlefc.controlledMessagingFunction {function(!Object)}

Fonction qui détermine si les messages doivent ou non s'afficher. Il peut s'agir pour contrôler l'affichage du message selon des 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 chargement d'autres scripts, les messages ne s'affichent qu'une fois que vous avez appelé message.proceed(boolean) En appelant message.proceed(true), vous pouvez envoyer des messages à de procéder comme d'habitude, alors que l'appel de message.proceed(false) vous permet de ne pas recevoir pour la page vue.

Exemple: supposons que ce script figure sur la page, lequel définit une règle asynchrone fonction determineIfUserIsSubscriber() qui vérifie si l'utilisateur connecté est 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 googlefc.controlledMessagingFunction pour n'afficher le message que pour 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 l'Offerwall fermé en version bêta afin de spécifier que seul l'Offerwall doit supprimés. Les autres types de messages ne sont pas affectés lorsque cette fonctionnalité est activée.

Les messages contrôlés spécifiques à l'Offerwall s'obtiennent en transmettant une valeur sur message.proceed(), une Array de type googlefc.MessageTypeEnum.

Exemple: Voici un exemple d'utilisation de googlefc.controlledMessagingFunction pour ne suppriment les messages Offerwall que pour les abonnés, 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 de les appels liés à la messagerie. Le seul moyen d'appeler une fonction est en l'ajoutant à callbackQueue.

Étant donné que différents types de données deviennent disponibles à différents moments, une fonction doit être ajoutée sous forme de mappage, avec l'une des chaînes suivantes comme clé et le paramètre à exécuter en tant que valeur.

Clés compatibles:

Nom de la clé Utilisation Latence relative
CONSENT_API_READY Les fonctions transmises à 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 peuvent être appelées. À partir de ce moment, l'exécution de toutes les fonctions clés CONSENT_API_READY ajoutées par la suite est synchrone. Pour en savoir plus, consultez les sections sur les frameworks de l'IAB. Faible
CONSENT_DATA_READY Les fonctions transmises à 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 lors d'une exécution antérieure, 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és CONSENT_DATA_READY ajoutées par la suite est synchrone. Élevée
AD_BLOCK_DATA_READY Les fonctions transmises à la file d'attente de rappel avec la clé AD_BLOCK_DATA_READY sont exécutées lorsque des données sur le blocage des annonces deviennent disponibles dans le flux. À partir de ce moment, l'exécution de toutes les fonctions clés AD_BLOCK_DATA_READY ajoutées par la suite est synchrone. Élevée
INITIAL_CCPA_DATA_READY Les fonctions transmises à la file d'attente de rappel avec le INITIAL_CCPA_DATA_READY sont exécutées lorsque les données CPRA deviennent disponibles dans le flux. Notez que toute demande ultérieure de données sur le CPRA doit être obtenue en appelant directement l'API US Privacy (__uspapi). Moyenne

googlefc.CallbackQueue {!Object}

Résumé de la méthode:

Nom Type Paramètre Type renvoyé Rôle
push(data) Nombre data: paire clé-valeur avec la clé faisant partie des données types de disponibilité et la valeur en tant que fonction JavaScript à exécuter. Les clés de disponibilité des données acceptables sont CONSENT_API_READY, CONSENT_DATA_READY, AD_BLOCK_DATA_READY et INITIAL_CCPA_DATA_READY Nombre de commandes ajoutées jusqu'à présent. Renvoie la longueur actuelle du tableau. Exécute la fonction transmise, dans l'ordre dans lequel les données deviennent disponibles, puis selon l'ordre dans lequel ces fonctions sont ajoutées file d'attente.

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({
    '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. Les différents états sont:

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 d'autorisation des annonces pour le blocage des annonces de l'utilisateur. Les différentes sont les suivants:

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.ccpa.InitialCcpaStatusEnum{!Object<string, number>}

Représente les différents états d'autorisation des annonces pour le blocage des annonces de l'utilisateur. Les différentes sont les suivants:

googlefc.ccpa.InitialCcpaStatusEnum = {
  // Something failed, in an unknown state.
  UNKNOWN: 0,
  // CPRA does not apply to this user.
  CCPA_DOES_NOT_APPLY: 1,
  // CPPA applies to this user, and the user has not opted out yet.
  NOT_OPTED_OUT: 2,
  // CPPA 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 "Ne pas vendre" par défaut et utiliser un lien "Ne pas vendre" personnalisé.

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. Désormais, une liste vide est toujours renvoyée lorsqu'elle est appelée.

googlefc.showRevocationMessage(): {undefined}

Efface l'enregistrement de consentement actuel et affiche le message de consentement qui est applicable à cet utilisateur. La clé qui doit être spécifiée pour cette fonction est CONSENT_DATA_READY

Exemple :

<button type="button" onclick="googlefc.callbackQueue.push({'CONSENT_DATA_READY': () => googlefc.showRevocationMessage()});">
  Click here to revoke
</button>

googlefc.getAdBlockerStatus(): {number}

Affiche une valeur dans AdBlockerStatusEnum en fonction de l'état du blocage des annonces de l'utilisateur. La clé qui doit être spécifiée 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.ccpa = window.googlefc.ccpa || {}
  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}

Affiche une valeur dans AllowAdsStatusEnum en fonction de l'état d'autorisation des annonces l'utilisateur. La clé qui doit être spécifiée 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.ccpa = window.googlefc.ccpa || {}
  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.ccpa.getInitialCcpaStatus(): {number}

Renvoie une valeur dans InitialCcpaStatusEnum en fonction du statut CPRA de l'utilisateur. La clé qui doit être spécifiée pour cette fonction est INITIAL_CCPA_DATA_READY Notez que toute demande ultérieure de données sur le CPRA doit être obtenu en appelant directement l'API US Privacy (__uspapi).

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 the user is not CPRA eligible.
          break;
        case googlefc.ccpa.InitialCcpaStatusEnum.NOT_OPTED_OUT:
          // Insert handling for cases where the user is CPRA eligible and has
          // not opted out.
          break;
        case googlefc.ccpa.InitialCcpaStatusEnum.OPTED_OUT:
          // Insert handling for cases where the user is CPRA eligible and has
          // opted out.
          break;
      }
    }
  });
</script>

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

Ouvre la boîte de dialogue de confirmation de la loi CPRA si le lien par défaut "Ne pas vendre" est être remplacées. Une fois que l'utilisateur a interagi avec la boîte de dialogue de confirmation, la fonction de rappel est appelée avec true si l'utilisateur décide de la désactiver ; et false dans les autres cas.

Exemple :

<script>
// This callback will be called with the user CPRA decision.
const ccpaCompletionCallback = (userOptedOut) => {
  // Insert handling for user opt-out status here.
}
// Invoke the CPRA 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 des 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 la version 2 API.

Vous pouvez utiliser le CONSENT_API_READY clé de file d'attente de rappel pour garantir que les rappels correspondants ne sont appelés que lorsque : l'API v2 du TCF de l'IAB est définie sur la page. Elle doit être utilisée en conjonction avec le 'addEventListener' de l'API v2 du TCF de l'IAB.

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 le CONSENT_DATA_READY Clé de file d'attente de rappel pour garantir que les rappels correspondants sont appelés uniquement lorsque le consentement de l'utilisateur est recueilli et accessible à l'aide de la version 2 de l'API du TCF de l'IAB. Vous pouvez l'utiliser en conjonction 'addEventListener' Commande : données fournies lors du premier appel du rappel fourni contiendra les choix de consentement de l'utilisateur (à condition que la version 2 du TCF s'applique à ce utilisateur). Notez qu'avec le lancement de la version 2.2 du TCF, '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>

Utiliser les solutions de gestion du consentement de Google avec le framework de la GPP de l'IAB pour le CPRA

Si vous utilisez des solutions de gestion du consentement de Google pour recueillir les informations sur le droit d'opposition en vertu du CPRA dans le cadre de la GPP de l'IAB, vous devez utiliser la GPP de l'IAB API.

En raison de la nature de la législation sur la renonciation au CPRA, vous pouvez utiliser les CONSENT_API_READY ou Rappel de CONSENT_DATA_READY Clé de file d'attente pour s'assurer que l'API GPP de l'IAB peut être appelée et renvoie les 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.ccpa = window.googlefc.ccpa || {}
  window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];

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

Utiliser les solutions de gestion du consentement de Google avec le framework de la GPP de l'IAB pour le CPRA avec un lien "Ne pas vendre" personnalisé

Si vous utilisez des solutions de gestion du consentement de Google pour recueillir les informations sur le droit d'opposition en vertu du CPRA dans le cadre de la GPP de l'IAB, il est possible de fournir un lien "Ne pas vendre" personnalisé en définissant l'option googlefc.ccpa.overrideDnsLink sur true.

<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 || [];

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

  // Register the callback for the initial CPRA data.
  window.googlefc.callbackQueue.push({
      'INITIAL_CCPA_DATA_READY': () => {
        if (googlefc.ccpa.getInitialCcpaStatus() ===
            googlefc.ccpa.InitialCcpaStatusEnum.NOT_OPTED_OUT) {
          // TODO: Display custom CPRA Do Not Sell link here.
        }
      }
    });
</script>

Cela permet de s'assurer que le lien "Ne pas vendre" par défaut ne s'affiche pas. Notez que vous devez sont chargés d'afficher votre propre lien "Ne pas vendre" afin de respecter avec le CPRA. Ensuite, vous devez gérer l'interaction de l'utilisateur avec votre Vendre le lien en appelant la boîte de dialogue de confirmation CPRA

<script>
// This callback will be called with the user CPRA decision.
const ccpaCompletionCallback = (userOptedOut) => {
  if (userOptedOut) {
    // TODO: Hide custom CPRA Do Not Sell link here.
  }
}
// Invoke the CPRA confirmation dialog when the user clicks the link.
document.getElementById("your-custom-ccpa-do-not-sell-link").addEventListener(
  "click", () => googlefc.ccpa.openConfirmationDialog(ccpaCompletionCallback));
</script>