API Privacy & Messaging JavaScript

Introduzione

Questa API fornisce strumenti per interagire con i messaggi offerti dalla scheda Privacy e messaggi. Con questa app puoi:

e altri.

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

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 eseguire nuovamente il tagging: il Tag publisher di Google o il tag AdSense esistente implementa i messaggi per gli utenti una volta che il messaggio viene pubblicato nel prodotto pertinente.
  2. Se utilizzi il messaggio di risposta al blocco degli annunci, devi aggiungere esplicitamente il tag di blocco degli annunci alla pagina. Per saperne di più, consulta le istruzioni di tagging di Ad Manager e AdSense.

googlefc è lo spazio dei nomi globale utilizzato dalla funzionalità di messaggistica per gli utenti per la relativa API nell'oggetto JavaScript Window.

Riepiloghi dei campi

Nome Tipo Definizione
googlefc.controlledMessagingFunction function(!Object) Una funzione che determina se procedere con l'invio di messaggi. Questa funzionalità è supportata per tutti i tipi di messaggi.
googlefc.callbackQueue !Array<!Object<string, function()>> | !Array<function()> | !googlefc.CallbackQueue Riferimento alla coda di callback per l'esecuzione asincrona delle query di messaggistica degli utenti.
googlefc.CallbackQueue !Object Il tipo di oggetto della coda di callback.
googlefc.AdBlockerStatusEnum !Object<string, number> Un enum per rappresentare lo stato del blocco degli annunci dell'utente.
googlefc.AllowAdsStatusEnum !Object<string, number> Un enum per rappresentare lo stato di autorizzazione degli annunci dell'utente.
googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum !Object<string, number> Un enum per rappresentare lo stato iniziale di revoca del consenso degli utenti degli stati USA. Questo tiene conto dello stato degli Stati Uniti in cui si trova l'utente.
googlefc.GoogleFcConsentModeUserStatus !Object Il tipo restituito per googlefc.getGoogleConsentModeValues.
googlefc.ConsentModePurposeStatusEnum !Object<string, number> Un enum per rappresentare la decisione dell'utente finale per uno scopo della modalità di consenso.
googlefc.usstatesoptout.overrideDnsLink undefined|boolean Un valore booleano che può essere impostato su true per utilizzare il tuo link Non vendere o condividere personalizzato.
googlefc.ccpa.InitialCcpaStatusEnum

Legacy. Preferisci googlefc.usstatesoptout.InitialUsStatesOptOutStatusEnum.
!Object<string, number> Un enum per rappresentare lo stato iniziale dei regolamenti statali degli Stati Uniti dell'utente.
googlefc.ccpa.overrideDnsLink

Legacy. Preferisci googlefc.usstatesoptout.overrideDnsLink.
undefined|boolean Un valore booleano che può essere impostato su true per utilizzare il tuo link Non vendere o condividere personalizzato.

Riepiloghi dei metodi

Nome Tipo restituito Definizione
googlefc.showRevocationMessage() non definito Cancella il record del consenso e ricarica lo script googlefc per mostrare il messaggio per il consenso applicabile all'utente.
googlefc.getAdBlockerStatus() numero Restituisce un valore in AdBlockerStatusEnum a seconda dello stato di blocco degli annunci dell'utente.
googlefc.getAllowAdsStatus() numero Restituisce un valore in AllowAdsStatusEnum a seconda dello stato di autorizzazione degli annunci dell'utente.
googlefc.usstatesoptout.getInitialUsStatesOptOutStatus() numero Restituisce un valore in InitialUsStatesOptOutStatusEnum a seconda dello stato iniziale di disattivazione dei regolamenti statali degli Stati Uniti dell'utente. In questo modo viene preso in considerazione il regolamento che si applica all'utente in base alla sua posizione attuale.
googlefc.usstatesoptout.openConfirmationDialog(function(boolean)) non definito Apre la finestra di dialogo di conferma della disattivazione dei regolamenti statali degli Stati Uniti se il link Non vendere e non condividere predefinito viene sostituito.
googlefc.getGoogleConsentModeValues() !Object Restituisce un oggetto googlefc.GoogleFcConsentModeUserStatus contenente i valori della modalità di consenso corrente per l'utente, uno per ogni scopo della modalità di consenso disponibile.
googlefc.ccpa.getInitialCcpaStatus()

Legacy. Preferenza: googlefc.usstatesoptout.getInitialUsStatesOptOutStatus().
numero Restituisce un valore in InitialCcpaStatusEnum a seconda dello stato di disattivazione iniziale dei regolamenti statali degli Stati Uniti dell'utente.
googlefc.ccpa.openConfirmationDialog(function(boolean))

Legacy. Preferenza: googlefc.usstatesoptout.openConfirmationDialog().
non definito Apre la finestra di dialogo di conferma della disattivazione dei regolamenti statali degli Stati Uniti se il link Non vendere e non condividere predefinito viene sostituito.

Test e debug sul tuo sito

Privacy e messaggi offre funzionalità di debug e test che ti consentono di vedere l'aspetto di messaggi specifici, sottotipi di messaggi o combinazioni di messaggi sul tuo sito effettivo.

Prerequisiti:

  • I messaggi di cui vuoi visualizzare l'anteprima devono essere pubblicati sul sito che stai testando.

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

Parametro di debug Valori consentiti
fc alwaysshow (per attivare la modalità di debug/anteprima)
fctype ab (messaggi di risposta al blocco degli annunci), ccpa (messaggi di disattivazione dei regolamenti statali degli Stati Uniti), gdpr (messaggi per il consenso GDPR), monetization (messaggi Offerwall), usfl (messaggi di disattivazione dei regolamenti statali degli Stati Uniti, specifici per la Florida), usnat (messaggi di disattivazione dei regolamenti statali degli Stati Uniti, tutti gli stati supportati ad eccezione della Florida; equivalente a ccpa)

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

  • Testa i messaggi di disattivazione dei regolamenti statali degli Stati Uniti - http://foo.com/?fc=alwaysshow&fctype=ccpa
  • Testa i messaggi GDPR - http://foo.com/?fc=alwaysshow&fctype=gdpr

Campi: spiegazioni ed esempi

googlefc.controlledMessagingFunction {function(!Object)}

Una funzione che determina se i messaggi devono essere visualizzati o meno. Può essere utilizzato per bloccare il rendering dei messaggi in base a condizioni specificate dal publisher, come lo stato dell'abbonato o l'URL della pagina.

Quando definisci googlefc.controlledMessagingFunction nella finestra prima del caricamento di altri script, i messaggi non vengono visualizzati finché non chiami message.proceed(boolean). La chiamata di message.proceed(true) consente di procedere con la messaggistica come di consueto, mentre la chiamata di message.proceed(false) impedisce la visualizzazione di qualsiasi messaggio per la visualizzazione di pagina.

Ad esempio, supponiamo che nella pagina sia presente questo script che definisce una funzione asincrona determineIfUserIsSubscriber() che verifica se l'utente che ha eseguito l'accesso è un abbonato.

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

Questo è un esempio di come puoi utilizzare googlefc.controlledMessagingFunction per mostrare il messaggio solo ai non abbonati.

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

Esiste anche un'estensione di questa funzionalità che consente ai publisher di specificare che devono essere soppressi solo tipi di messaggi specifici. Utilizza questa estensione della funzionalità per sopprimere tipi di messaggi specifici senza sopprimere altri tipi di messaggi.

La messaggistica controllata specifica per il tipo di messaggio viene ottenuta passando un parametro aggiuntivo a message.proceed(), un Array di tipo googlefc.MessageTypeEnum.

Esempio: questo è un esempio di utilizzo di googlefc.controlledMessagingFunction per disattivare la pubblicazione della Offerwall solo per gli abbonati, senza disattivare 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 di callback globale per l'esecuzione asincrona delle chiamate relative ai messaggi. L'unico modo supportato per richiamare una funzione è aggiungerla a callbackQueue.

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

Chiavi supportate:

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 per il consenso supportati sono definite e richiamabili. Da questo momento in poi, l'esecuzione di tutte le funzioni con chiave CONSENT_API_READY aggiunte successivamente è sincrona. Per informazioni specifiche 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 è noto il consenso dell'utente raccolto nell'ambito di un framework per il consenso supportato (da un'esecuzione precedente o una volta che l'utente interagisce con il messaggio per il consenso). Da questo momento in poi, l'esecuzione di tutte le funzioni con chiave CONSENT_DATA_READY aggiunte successivamente è sincrona. Alto
AD_BLOCK_DATA_READY Le funzioni inviate 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 tutte le funzioni con chiave AD_BLOCK_DATA_READY aggiunte successivamente è sincrona. Alto
CONSENT_MODE_DATA_READY Le funzioni inviate alla coda di callback con la chiave CONSENT_MODE_DATA_READY vengono eseguite quando i dati della [modalità di consenso](https://support.google.com/google-ads/answer/10000067) di Google (da utilizzare con i tag Google Ads e Analytics) diventano disponibili nel flusso. Una volta che i dati della modalità di consenso sono pronti, puoi accedere ai valori della modalità di consenso in qualsiasi momento utilizzando googlefc.getGoogleConsentModeValues. Media
INITIAL_US_STATES_OPT_OUT_DATA_READY Le funzioni inviate alla coda di callback con la chiave INITIAL_US_STATES_OPT_OUT_DATA_READY vengono eseguite quando i dati relativi ai regolamenti statali degli Stati Uniti diventano disponibili nel flusso. Tieni presente che qualsiasi richiesta successiva di dati relativi ai regolamenti statali degli Stati Uniti deve essere ottenuta chiamando direttamente l'API GPP (__gpp). Media
INITIAL_CCPA_DATA_READY Chiave precedente per i regolamenti statali degli Stati Uniti. Preferenza: INITIAL_US_STATES_OPT_OUT_DATA_READY.

Le funzioni inviate alla coda di callback con la chiave INITIAL_CCPA_DATA_READY vengono eseguite quando i dati relativi ai regolamenti statali degli Stati Uniti diventano disponibili nel flusso. Tieni presente che qualsiasi richiesta successiva di dati relativi ai regolamenti statali degli Stati Uniti deve essere ottenuta chiamando direttamente l'API GPP (__gpp).
Media

googlefc.CallbackQueue {!Object}

Riepilogo dei metodi:

Nome Tipo Parametro Tipo restituito Ruolo
push(data) numero data: una coppia chiave-valore con la chiave come uno dei tipi di disponibilità dei dati e il valore come funzione JavaScript da eseguire. Le chiavi di disponibilità dei dati accettabili sono CONSENT_API_READY, CONSENT_DATA_READY, AD_BLOCK_DATA_READY, INITIAL_US_STATES_OPT_OUT_DATA_READY, CONSENT_MODE_DATA_READY e (legacy) 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 nell'ordine in cui queste funzioni vengono aggiunte alla coda.

Esempio:

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

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 del blocco degli annunci dell'utente. I diversi stati 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.usstatesoptout.InitialUsStatesOptOutStatusEnum{!Object<string, number>}

Rappresenta i diversi stati di disattivazione dei regolamenti statali degli Stati Uniti dell'utente. I diversi stati sono:

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}

Il tipo di oggetto restituito da 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;
}

Il valore di ogni campo è un numero che corrisponde a un valore enum googlefc.ConsentModePurposeStatusEnum.


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

Rappresenta i diversi possibili valori di consenso dell'utente finale per uno scopo della modalità di consenso. I diversi valori sono:

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}

Imposta questo campo su true per nascondere il link Non vendere o condividere predefinito e utilizzare il tuo link Non vendere o condividere personalizzato. Tieni presente che questa funzionalità è supportata solo in Ad Manager.

Esempio:

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

Rappresenta i diversi stati di disattivazione dei regolamenti statali degli Stati Uniti dell'utente. I diversi stati sono:

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}

Imposta questo campo su true per nascondere il link Non vendere o condividere predefinito e utilizzare il tuo link Non vendere o condividere personalizzato. Tieni presente che se imposti questo campo su true, sei responsabile del rendering di un link Non vendere o condividere sul tuo sito. Questo campo deve essere utilizzato insieme a openConfirmationDialog. Inoltre, l'utilizzo di un link Non vendere e non condividere personalizzato per la funzionalità di messaggistica "Regolamenti degli stati USA" è supportato solo in Ad Manager.

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. Ora restituisce sempre un elenco vuoto quando viene chiamato.

googlefc.showRevocationMessage(): {undefined}

Cancella il record del consenso ai regolamenti dell'UE corrente, se presente, e mostra di nuovo il messaggio relativo ai regolamenti dell'UE per consentire all'utente di modificare la propria decisione sul consenso.

Esempio 1: esempio semplice di configurazione di un link che, se selezionato, mostrerà il messaggio di revoca:

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

Esempio 2: se vuoi che il link sia visibile solo quando i regolamenti dell'UE si applicano all'utente corrente, puoi utilizzare la coda di callback googlefc con l'API TCF per aggiornare in modo condizionale la visualizzazione del pulsante in base al valore gdprApplies una volta determinato. Per farlo, utilizza la chiave 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}

Restituisce un valore in AdBlockerStatusEnum a seconda dello stato di blocco degli annunci dell'utente. La chiave da specificare per questa funzione è AD_BLOCK_DATA_READY.

Esempio:

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

Restituisce un valore in AllowAdsStatusEnum a seconda dello stato di autorizzazione degli annunci dell'utente. La chiave da specificare per questa funzione è AD_BLOCK_DATA_READY.

Esempio:

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

Restituisce un valore in InitialUsStatesOptOutStatusEnum a seconda dello stato di disattivazione dell'utente in base ai regolamenti statali degli Stati Uniti. La chiave da specificare per questa funzione è INITIAL_US_STATES_OPT_OUT_DATA_READY. Tieni presente che qualsiasi richiesta successiva di dati relativi ai regolamenti statali degli Stati Uniti deve essere ottenuta chiamando direttamente l'API GPP (__gpp).

Se esegui l'override del link Non vendere o condividere, puoi utilizzare questo metodo per determinare quando includere il link sul tuo sito.

Esempio:

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

Apre la finestra di dialogo di conferma della disattivazione dei regolamenti statali degli Stati Uniti se il link Non vendere predefinito viene sostituito. Una volta che l'utente interagisce con la finestra di dialogo di conferma, la funzione di callback fornita viene chiamata con true se l'utente decide di disattivare la funzionalità e con false in caso contrario.

Esempio:

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

Restituisce un oggetto googlefc.GoogleFcConsentModeUserStatus contenente i valori correnti di ogni finalità della modalità di consenso, in base alla decisione dell'utente in merito al consenso.

Per l'utilizzo previsto, consulta Utilizzo delle soluzioni di gestione del consenso di Google con il supporto della modalità di consenso per i regolamenti dell'UE.


googlefc.ccpa.getInitialCcpaStatus(): {number}

Restituisce un valore in InitialCcpaStatusEnum a seconda dello stato di disattivazione dei regolamenti statali degli Stati Uniti dell'utente. La chiave da specificare per questa funzione è INITIAL_CCPA_DATA_READY. Tieni presente che qualsiasi richiesta successiva di dati relativi ai regolamenti statali degli Stati Uniti deve essere ottenuta chiamando direttamente l'API GPP (__gpp).

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

Apre la finestra di dialogo di conferma della disattivazione dei regolamenti statali degli Stati Uniti se il link Non vendere predefinito viene sostituito. Una volta che l'utente interagisce con la finestra di dialogo di conferma, la funzione di callback fornita viene chiamata con true se l'utente decide di disattivare la funzionalità e con false in caso contrario.

Esempio:

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

Se utilizzi le soluzioni di gestione del consenso di Google per raccogliere il consenso GDPR nell'ambito del framework 2.0 del TCF di IAB, devi utilizzare l'API della versione 2.0 del TCF di IAB.

Puoi utilizzare la chiave della coda di callback CONSENT_API_READY per assicurarti che i callback corrispondenti vengano richiamati solo quando l'API TCF v2 di IAB è definita nella pagina. Deve essere utilizzato insieme al comando 'addEventListener' dell'API TCF v2 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 la chiave della coda di callback CONSENT_DATA_READY per assicurarti che i callback corrispondenti vengano richiamati solo quando il consenso dell'utente viene raccolto e reso accessibile utilizzando l'API TCF v2 di IAB. Può essere utilizzato insieme al comando 'addEventListener': i dati forniti nella prima chiamata del callback fornito conterranno le selezioni del consenso dell'utente (purché la versione 2 del TCF si applichi a questo utente). Tieni presente che, con il rilascio della versione 2.2 del TCF, il comando 'getTCData' è ora 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>

Le soluzioni di gestione del consenso di Google possono interpretare le scelte di consenso degli utenti relative ai regolamenti dell'UE per la modalità di consenso di Google (scopri di più nel Centro assistenza).

La modalità di consenso può essere implementata in modalità di base o modalità avanzata, come descritto nella documentazione di Google Ads e Analytics. Ti consigliamo di rivolgerti al tuo ufficio legale per stabilire quale modalità di consenso implementare per soddisfare i requisiti legali.

La modalità di consenso avanzata è supportata per impostazione predefinita. Una volta attivata la modalità di consenso nell'interfaccia utente di Privacy e messaggi, non sono necessarie ulteriori operazioni.

Per implementare la modalità di consenso di base utilizzando le soluzioni di gestione del consenso di Google, puoi utilizzare la chiave della coda di callback CONSENT_MODE_DATA_READY per caricare in modo condizionale i tag Google Ads e Analytics una volta che i dati della modalità di consenso sono disponibili. I dati della modalità di consenso saranno disponibili dopo che Funding Choices avrà stabilito che la modalità di consenso non si applica a questa richiesta (ad esempio, perché i regolamenti dell'UE non si applicano a questa richiesta) o dopo che un utente avrà preso una decisione relativa al consenso ai sensi dei regolamenti dell'UE. Consulta il tuo ufficio legale per capire quali criteri utilizzare per determinare se i tag possono essere caricati una volta che la modalità di consenso è disponibile.

Ad esempio, per caricare i tag una volta che i dati della modalità di consenso sono disponibili, indipendentemente dalla decisione relativa al consenso dell'utente finale:

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

Puoi anche utilizzare l'API googlefc.getGoogleConsentModeValues() per ottenere i valori dei singoli scopi della modalità di consenso quando sono disponibili i dati della modalità di consenso. Questa API restituisce un oggetto GoogleFcConsentModeUserStatus che contiene un campo per ogni finalità della modalità di consenso supportata e il valore di ogni campo è un valore enum che indica il valore della finalità della modalità di consenso.

Ad esempio, puoi utilizzare googlefc.getGoogleConsentModeValues() per sbloccare i tag Google Ads e Analytics solo quando:

  • L'utente finale prende una decisione relativa al consenso per i regolamenti dell'UE che comporta la concessione del consenso per tutte le finalità della modalità di consenso oppure
  • Tutti gli scopi della modalità di consenso non sono applicabili alla richiesta corrente (ciò potrebbe accadere se i regolamenti dell'UE non si applicano o se la modalità di consenso non è configurata per uno o più scopi in Privacy e messaggi).
<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>

Se utilizzi le soluzioni di gestione del consenso di Google per fornire agli utenti finali messaggi di disattivazione ai sensi dei regolamenti statali degli Stati Uniti nell'ambito del framework GPP di IAB, devi utilizzare l'API GPP di IAB.

A causa della natura di disattivazione dei regolamenti statali degli Stati Uniti, puoi utilizzare la chiave della coda di callback CONSENT_API_READY o CONSENT_DATA_READY per assicurarti che l'API GPP di IAB sia richiamabile e restituisca i dati per i quali è stato dato il consenso al momento del richiamo dei callback.

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

Se utilizzi le soluzioni di gestione del consenso di Google per fornire agli utenti finali messaggi di revoca del consenso relativi ai regolamenti statali degli Stati Uniti nell'ambito del framework GPP di IAB, puoi fornire il tuo link Non vendere o condividere personalizzato impostando il flag googlefc.usstatesoptout.overrideDnsLink su 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>

In questo modo, il link Non vendere o condividere predefinito non viene visualizzato. Poi, devi gestire l'interazione dell'utente con il link Non vendere e non condividere personalizzato richiamando la finestra di dialogo di conferma della disattivazione dei regolamenti statali degli Stati Uniti.

Tieni presente che, se utilizzi il tuo link Non vendere e non condividere personalizzato, sei responsabile di garantire che sia conforme ai regolamenti statali degli Stati Uniti. Inoltre, l'utilizzo di un link Non vendere e non condividere personalizzato per la funzionalità di messaggistica "Regolamenti degli stati USA" è supportato solo in Ad Manager.

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