API Privacy & Messaging JavaScript

Introduzione

Questa API fornisce strumenti per interagire con i messaggi offerti dall'Informativa sulla privacy e nella scheda Messaggi. che ti consente di:

  • elimina i messaggi per un determinato utente
  • interroga lo stato di blocco degli annunci di un utente
  • consentire a un utente di revocare il consenso (se applicabile)

Puoi utilizzare questi strumenti anche per raccogliere il consenso degli utenti utilizzando alcuni standard di settore protocolli:

In questi casi, lo stato del consenso viene comunicato tramite queste API.

Puoi implementare questa funzionalità di messaggistica per gli utenti sul tuo sito in un paio di modi:

  1. Nella maggior parte dei casi non è necessario ricodificare perché il tuo account Google Editore Tag o Implementazione del tag AdSense i messaggi per gli utenti dopo che sono stati pubblicati nel prodotto pertinente.
  2. Se utilizzi il messaggio di risposta al blocco degli annunci, devi aggiungere l'annuncio che bloccano esplicitamente il tag alla tua pagina. Vedi Annuncio Gestore e Tagging di AdSense istruzioni per ulteriori informazioni.

googlefc è lo spazio dei nomi globale utilizzato dalla funzionalità di messaggistica per gli utenti per la sua API nel file JavaScript Window.

Riepiloghi campi

Nome Tipo Definizione
googlefc.controlledMessagingFunction funzione(!Oggetto) Una funzione che determina se procedere con qualsiasi messaggio. Questa funzionalità è supportata per tutti i tipi di messaggi.
googlefc.callbackQueue !Array<!Oggetto<stringa, funzione()>> | !Array&lt;function()&gt; | !googlefc.CallbackQueue Riferimento alla coda di callback per l'esecuzione asincrona delle query di messaggistica per gli utenti.
googlefc.CallbackQueue !Object Il tipo di oggetto coda di callback.
googlefc.AdBlockerStatusEnum !Object<stringa, number> Un'enumerazione per rappresentare lo stato di blocco degli annunci dell'utente.
googlefc.AllowAdsStatusEnum !Object<stringa, number> Un'enumerazione che rappresenta lo stato di autorizzazione degli annunci dell'utente.
googlefc.ccpa.InitialCcpaStatusEnum !Object<stringa, number> Un'enumerazione per rappresentare lo stato CPRA iniziale dell'utente.
googlefc.ccpa.overrideDnsLink non definito|booleano Un valore booleano che può essere impostato su true per utilizzare un link personalizzato Non vendere.

Riepiloghi dei metodi

Nome Tipo restituito Definizione
googlefc.showRevocationMessage() non definito Cancella il record per il consenso e ricarica lo script googlefc per mostrare il messaggio per il consenso applicabile all'utente.
googlefc.getAdBlockerStatus() numero Restituisce un valore nell'attributo AdBlockerStatusEnum in base allo stato di blocco degli annunci dell'utente.
googlefc.getAllowAdsStatus() numero Restituisce un valore nell'attributo AllowAdsStatusEnum in base allo stato di autorizzazione degli annunci dell'utente.
googlefc.ccpa.getInitialCcpaStatus() numero Restituisce un valore nell'attributo InitialCcpaStatusEnum a seconda dello stato CPRA iniziale dell'utente.
googlefc.ccpa.openConfirmationDialog(function(boolean)) non definito Apre la finestra di dialogo di conferma CPRA se viene eseguito l'override del link predefinito Non vendere.

Test e debug sul tuo sito

Privacy e Messaggistica fornisce funzionalità di debug e test che consentono di vedere come appaiono messaggi specifici (o combinazioni di messaggi) nel tuo sito effettivo.

Prerequisiti:

  • I messaggi di cui vuoi visualizzare l'anteprima devono essere pubblicati nel sito test

Puoi visualizzare un'anteprima in tempo reale sul tuo sito utilizzando il seguente URL di debug parametri:

Parametro di debug Valori consentiti
fc alwaysshow (per attivare la modalità di debug/anteprima)
fctype ab (messaggi per il blocco degli annunci), ccpa (messaggi di disattivazione CPRA), gdpr (messaggi per il consenso GDPR), monetization (messaggi di Offerwall)

Alcuni esempi di come utilizzare questa funzionalità per visualizzare l'anteprima sul tuo sito (foo.com):

  • Testa il messaggio CPRA - http://foo.com/?fc=alwaysshow&fctype=ccpa
  • Testa il messaggio GDPR - http://foo.com/?fc=alwaysshow&fctype=gdpr
di Gemini Advanced.

Campi: spiegazioni ed esempi

googlefc.controlledMessagingFunction {function(!Object)}

Una funzione che determina se i messaggi devono essere visualizzati o meno. È possibile utilizzata per limitare il rendering dei messaggi in condizioni specificate dal publisher, ad esempio stato dell'abbonato o URL della pagina.

Quando definisci googlefc.controlledMessagingFunction nella finestra prima di vengono caricati altri script, i messaggi non vengono visualizzati finché non chiami message.proceed(boolean). La chiamata a message.proceed(true) consente di inviare messaggi a procedere come al solito, mentre la chiamata al numero message.proceed(false) impedisce qualsiasi messaggio non vengano mostrati per la visualizzazione di pagina.

Esempio: supponiamo che nella pagina ci sia questo script che definisce uno script funzione determineIfUserIsSubscriber() che controlla se l'utente che ha eseguito l'accesso è un sottoscrittore.

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

Ecco un esempio di come potresti utilizzare googlefc.controlledMessagingFunction per mostrare il messaggio solo a non iscritti.

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

C'è anche un'estensione di questa funzione che consente ai publisher la versione beta chiusa della Offerwall per specificare che deve essere in modo soppresso. Gli altri tipi di messaggi non sono interessati quando questa funzionalità è attiva.

I messaggi controllati specifici della Offerwall si ottengono trasmettendo un'ulteriore parametro message.proceed(), un Array di tipo googlefc.MessageTypeEnum.

Esempio: questo è un esempio di utilizzo di googlefc.controlledMessagingFunction per Elimina la pubblicazione della Offerwall solo per gli abbonati, senza eliminare altri tipi di messaggi:

<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}

Riferimento alla coda globale di callback per l'esecuzione asincrona di per chiamate correlate alla messaggistica. L'unico modo supportato per richiamare una funzione è aggiungendolo a callbackQueue.

Poiché tipi di dati diversi diventano disponibili in momenti diversi, una funzione deve essere aggiunta come mappa, con una delle seguenti stringhe come chiave e funzione da eseguire come valore.

Tasti supportati:

Nome chiave Utilizzo Latenza relativa
CONSENT_API_READY Le funzioni inviate alla coda di callback con la chiave CONSENT_API_READY vengono eseguite quando le API per i framework di consenso supportati sono definite e richiamabili. Da questo momento in poi, l'esecuzione di qualsiasi funzione con chiave CONSENT_API_READY aggiunta successivamente è sincrona. Per dettagli specifici sui framework, consulta le sezioni sui framework IAB. Bassa
CONSENT_DATA_READY Le funzioni inviate alla coda di callback con la chiave CONSENT_DATA_READY vengono eseguite quando il consenso dell'utente raccolto in un framework per il consenso supportato è noto (da un'esecuzione precedente o dopo che l'utente ha interagito con il messaggio per il consenso). Da questo momento in poi, l'esecuzione di qualsiasi funzione con chiave CONSENT_DATA_READY aggiunta successivamente è sincrona. Alta
AD_BLOCK_DATA_READY Le funzioni trasferite alla coda di callback con la chiave AD_BLOCK_DATA_READY vengono eseguite quando i dati sul blocco degli annunci diventano disponibili nel flusso. Da questo momento in poi, l'esecuzione di qualsiasi funzione con chiave AD_BLOCK_DATA_READY aggiunta successivamente è sincrona. Alta
INITIAL_CCPA_DATA_READY Le funzioni inviate alla coda di callback con INITIAL_CCPA_DATA_READY vengono eseguite quando i dati CPRA diventano disponibili nel flusso. Tieni presente che qualsiasi richiesta successiva di dati CPRA deve essere ottenuta chiamando direttamente l'API US Privacy (__uspapi). Medio

googlefc.CallbackQueue {!Object}

Riepilogo del metodo:

Nome Tipo Parametro Tipo restituito Ruolo
push(data) numero data: una coppia chiave-valore con la chiave come uno dei dati i tipi di disponibilità e il valore da eseguire come funzione JavaScript. Le chiavi accettabili per la disponibilità dei dati sono CONSENT_API_READY, CONSENT_DATA_READY, AD_BLOCK_DATA_READY e INITIAL_CCPA_DATA_READY. Il numero di comandi aggiunti finora. Restituisce la lunghezza corrente dell'array. Esegue la funzione passata, nell'ordine in cui i dati diventano disponibili, quindi in base all'ordine in cui queste funzioni vengono aggiunte in coda.

Esempio:

<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>}

Rappresenta i diversi stati di blocco degli annunci dell'utente. I diversi stati sono:

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>}

Rappresenta i diversi stati di autorizzazione degli annunci per il blocco degli annunci dell'utente. Le diverse sono:

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>}

Rappresenta i diversi stati di autorizzazione degli annunci per il blocco degli annunci dell'utente. Le diverse sono:

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}

Imposta questo campo su true per nascondere il link predefinito Non vendere e utilizzare un personalizzato Non vendere.

Esempio:

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

Metodi: spiegazioni ed esempi

googlefc.getConsentStatus(): {number}


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

  1. In questo modo viene sempre restituito un elenco vuoto quando viene eseguita la chiamata.

googlefc.showRevocationMessage(): {undefined}

Cancella il record relativo al consenso corrente e mostra il messaggio per il consenso visualizzato applicabile a questo utente. La chiave che deve essere specificata per questa funzione è CONSENT_DATA_READY.

Esempio:

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

googlefc.getAdBlockerStatus(): {number}

Restituisce un valore in AdBlockerStatusEnum in base allo stato di blocco degli annunci dell'utente. La chiave che deve essere specificata per questa funzione è AD_BLOCK_DATA_READY.

Esempio:

<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}

Restituisce un valore nell'attributo AllowAdsStatusEnum in base allo stato di autorizzazione degli annunci di per l'utente. La chiave che deve essere specificata per questa funzione è AD_BLOCK_DATA_READY.

Esempio:

<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}

Restituisce un valore nell'intervallo InitialCcpaStatusEnum a seconda dello stato CPRA di per l'utente. La chiave che deve essere specificata per questa funzione è INITIAL_CCPA_DATA_READY. Tieni presente che qualsiasi richiesta successiva di dati CPRA deve ottenibile chiamando direttamente l'API US Privacy (__uspapi).

Esempio:

<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}

Apre la finestra di dialogo di conferma CPRA se il link predefinito Non vendere è con override. Una volta che l'utente interagisce con la finestra di dialogo di conferma, lo strumento fornito la funzione di callback viene chiamata con true se l'utente decide di disattivarla e false negli altri casi.

Esempio:

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

Se utilizzi soluzioni di gestione del consenso di Google per raccogliere il consenso GDPR Nell'ambito della versione 2 del TCF di IAB, devi utilizzare la versione 2 del TCF di IAB tramite Google Cloud.

Puoi utilizzare la CONSENT_API_READY per garantire che i callback corrispondenti vengano richiamati solo quando l'API della versione 2 del TCF di IAB è definita nella pagina. Da utilizzare insieme con 'addEventListener' dell'API della versione 2 del TCF di IAB.

Esempio:

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

Puoi utilizzare lo strumento CONSENT_DATA_READY tasto coda di callback per assicurarsi che vengano richiamati i callback corrispondenti solo quando il consenso dell'utente viene raccolto e accessibile tramite l'API della versione 2 del TCF di IAB. Questa opzione può essere utilizzata in combinazione 'addEventListener' : i dati forniti nella prima chiamata del callback fornito conterrà le selezioni relative al consenso dell'utente (purché la versione 2 del TCF si applichi a questo dell'utente). Tieni presente che con il rilascio della versione 2.2 del TCF, 'getTCData' è deprecato.

Esempio:

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

Utilizzare le soluzioni di Google per la gestione del consenso con il framework GPP di IAB per il CPRA

Se utilizzi soluzioni di Google per la gestione del consenso per raccogliere la disattivazione del CPRA nell'ambito del framework GPP di IAB, devi utilizzare la GPP di IAB tramite Google Cloud.

Data la natura di disattivazione del regolamento CPRA, puoi utilizzare CONSENT_API_READY oppure Chiamata di CONSENT_DATA_READY chiave di coda per garantire che l'API GPP di IAB sia richiamabile e che restituisca i dati relativi al consenso nel momento in cui vengono richiamati i callback.

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

Utilizzo delle soluzioni di gestione del consenso di Google con il framework GPP di IAB per il CPRA con un link Non vendere personalizzato

Se utilizzi soluzioni di Google per la gestione del consenso per raccogliere la disattivazione del CPRA nel framework GPP di IAB, è possibile fornire un link Non vendere personalizzato impostando il flag googlefc.ccpa.overrideDnsLink su 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>

In questo modo ti assicuri che il link predefinito Non vendere non venga visualizzato. Tieni presente che responsabili di eseguire il rendering del tuo link Non vendere per garantire con il CPRA. Poi devi gestire l'interazione dell'utente con il prompt personalizzato di Non Link per la vendita richiamando la finestra di dialogo di conferma del 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>