Configurare la modalità di consenso sui siti web

Questa pagina è rivolta agli sviluppatori che gestiscono la propria soluzione per il consenso sul proprio sito web e vogliono integrare la modalità di consenso. Per un'introduzione alla modalità di consenso, consulta la Panoramica della modalità di consenso. Se utilizzi una piattaforma di gestione del consenso (CMP) per ottenere il consenso degli utenti, scopri di più su come configurare la modalità di consenso con una CMP.

Puoi implementare la modalità di consenso in modo di base o avanzato. Consulta le linee guida della tua azienda per scegliere un metodo di implementazione e i valori predefiniti da impostare. Scopri di più sulla modalità di consenso di base e avanzata.

Prima di iniziare

Tieni presente quanto segue prima di implementare la modalità di consenso:

  • Se utilizzi Tag Manager e vuoi gestire il tuo banner, l'approccio consigliato è caricarlo tramite il contenitore Tag Manager. Per farlo, devi creare un modello per la modalità di consenso. In alternativa, puoi utilizzare un modello per la modalità di consenso dalla Galleria modelli della community.

  • Se utilizzi gtag.js, assicurati di aver installato il tag Google su ogni pagina del tuo sito web. Il codice della modalità di consenso viene aggiunto a ogni pagina del sito web.

Per configurare la modalità di consenso, devi:
  1. Prima che un utente conceda il consenso: imposta lo stato del consenso predefinito.
  2. Aggiorna lo stato del consenso in base all'interazione dell'utente con le impostazioni del consenso.

Imposta un valore predefinito per ogni tipo di consenso che utilizzi. Per impostazione predefinita, non è impostato nessun valore per la modalità di consenso.

Una best practice consiste nel limitare le impostazioni di consenso predefinite alle regioni in cui mostri i banner del consenso ai visitatori. Ciò consente di preservare la misurazione nelle regioni in cui sono richiesti i banner del consenso e i tag Google modificano il loro comportamento di conseguenza. Puoi anche evitare qualsiasi perdita di dati di misurazione in caso di assenza di banner del consenso o quando i banner del consenso non sono applicabili. Consulta la sezione Comportamento specifico per regione.

gtag.js

Per modificare le funzionalità di misurazione predefinite, chiama il comando gtag('consent', 'default', ...) su ogni pagina del tuo sito prima di qualsiasi comando che invii dati di misurazione (ad esempio config o event).

Ad esempio, per impostare il rifiuto del consenso per tutti i parametri per impostazione predefinita:

gtag('consent', 'default', {
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'analytics_storage': 'denied'
});

(Facoltativo) Esegui l'integrazione con le piattaforme di gestione del consenso asincrone

Se il banner viene caricato in modo asincrono, potrebbe non essere sempre eseguito prima dei tag Google. Per gestire queste situazioni, specifica wait_for_update insieme a un valore in millisecondi per controllare il tempo di attesa prima dell'invio dei dati.

Ad esempio, per negare ad_storage in una determinata pagina per impostazione predefinita, ma per consentire alla CMP di aggiornare lo stato del consenso, utilizza wait_for_update. Nel codice seguente, il valore predefinito di ad_storage è denied e allo strumento per il consenso viene dato un tempo di 500 millisecondi per chiamare gtag('consent', 'update', ...) prima dell'attivazione dei tag:

  gtag('consent', 'default', {
    'ad_storage': 'denied',
    'wait_for_update': 500
  });

Tag Manager

Quando utilizzi Google Tag Manager, crea un modello personalizzato utilizzando le API di consenso di Tag Manager. Il seguente esempio è disponibile come punto di partenza.

Utilizza le API specifiche di Tag Manager per gestire gli stati del consensosetDefaultConsentState e updateConsentState. L'API gtagSet può essere impiegata per impostare facoltativamente le impostazioni di ads_data_redaction e di trasmissione dell'URL come appropriato.

gtag.js

Per inviare lo stato del consenso dell'utente, utilizza il comando update. Poiché la modalità di consenso non salva le scelte relative al consenso, aggiorna lo stato del consenso non appena un utente interagisce con la tua soluzione di gestione del consenso. Una volta che un utente ha concesso il consenso, devi memorizzare la scelta e chiamare il comando di aggiornamento di conseguenza nelle pagine successive.

Spetta a te assicurarti che siano impostati i valori corretti per tutti i tipi di consenso. Per informazioni dettagliate sui tipi supportati, consulta il riferimento API.

L'esempio di codice seguente mostra come aggiornare lo stato del consenso su granted quando l'utente accetta tutte le opzioni:

<script>
function allConsentGranted() {
  gtag('consent', 'update', {
    'ad_user_data': 'granted',
    'ad_personalization': 'granted',
    'ad_storage': 'granted',
    'analytics_storage': 'granted'
  });
}
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
  ...
  <button onclick="allConsentGranted()">Yes</button>
  ...
</body>

Tag Manager

Quando utilizzi un modello per la modalità di consenso, il consenso dell'utente dovrebbe aggiornarsi automaticamente quando l'utente interagisce con il banner.

Se crei autonomamente un modello per la modalità di consenso, utilizza le API specifiche di Tag Manager per gestire gli stati del consenso setDefaultConsentState e updateConsentState. L'API gtagSet può essere utilizzata per impostare facoltativamente le impostazioni di ads_data_redaction e di trasmissione dell'URL, a seconda dei casi.

Esempio di implementazione

L'esempio seguente imposta più parametri della modalità di consenso su denied per default. Dopo che un utente ha indicato le proprie scelte relative al consenso, i parametri pertinenti vengono aggiornati a granted.

gtag.js

L'ordine del codice è fondamentale. Se il codice di consenso viene chiamato in modo scorretto, le impostazioni predefinite del consenso non funzioneranno. A seconda dei requisiti aziendali, le specifiche possono variare, ma in generale il codice deve essere eseguito nel seguente ordine:

  1. Carica il tag Google. Questo è il codice dello snippet predefinito. Lo snippet predefinito deve essere aggiornato (vedi di seguito) per includere una chiamata a gtag('consent', 'default', ...).

  2. Carica la tua soluzione per il consenso. Se la tua soluzione per il consenso viene caricata in modo asincrono, consulta l'articolo Eseguire l'integrazione con piattaforme di gestione del consenso asincrone per sapere come assicurarti che ciò avvenga nell'ordine corretto.

  3. Se non è gestito dalla tua soluzione per il consenso, chiama gtag('consent', 'update', ...) dopo che l'utente ha indicato il consenso.

<script>
// Define dataLayer and the gtag function.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

// Set default consent to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'analytics_storage': 'denied'
});
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID">
</script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  gtag('js', new Date());
  gtag('config', 'TAG_ID');
</script>

<!-- Create one update function for each consent parameter -->
<script>
  function consentGrantedAdStorage() {
    gtag('consent', 'update', {
      'ad_storage': 'granted'
    });
  }
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
  ...
  <button onclick="consentGrantedAdStorage">Yes</button>
  ...
</body>

Tag Manager

Per i siti che utilizzano Tag Manager, consigliamo di utilizzare una CMP per gestire gli aggiornamenti delle scelte relative al consenso dei visitatori. Le CMP forniscono modelli nella Galleria modelli della community per creare un tag per la gestione della modalità di consenso.

Se non è possibile utilizzare un modello, puoi aggiornare il codice sulla pagina come segue. L'ordine del codice è fondamentale. Se il codice di consenso viene chiamato in ordine diverso, le impostazioni predefinite del consenso non funzioneranno.

<script>
  // Define dataLayer and the gtag function.
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  // Set default consent to 'denied' as a placeholder
  // Determine actual values based on your own requirements
  gtag('consent', 'default', {
    'ad_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied',
    'analytics_storage': 'denied'
  });
</script>

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->

<!-- Create one update function for each consent parameter -->
<script>
  function consentGrantedAdStorage() {
    gtag('consent', 'update', {
      'ad_storage': 'granted'
    });
  }
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
  ...
  <button onclick="consentGrantedAdStorage()">Yes</button>
  ...
</body>

Nell'ambito del nostro costante impegno verso un ecosistema pubblicitario digitale incentrato sulla privacy, stiamo rafforzando l'applicazione delle nostre Norme relative al consenso degli utenti dell'UE.

Scopri di più sugli aggiornamenti alla modalità di consenso per il traffico nello Spazio economico europeo (SEE) di Google.

Gli utenti della modalità di consenso devono inviare due nuovi parametri oltre a ad_storage e analytics_storage:

Nome campo Valori consentiti Descrizione
ad_user_data 'granted' | 'denied' Imposta il consenso per l'invio a Google dei dati utente relativi alla pubblicità.
ad_personalization 'granted' | 'denied' Imposta il consenso per la pubblicità personalizzata.

Le funzionalità avanzate per il consenso includono la possibilità di:

  • Imposta i servizi Google con cui condividi i dati utilizzando l'interfaccia utente del tag Google.
  • Imposta il comportamento per una regione geografica.
  • Trasmetti le informazioni sui clic sugli annunci, sull'ID cliente e sull'ID sessione negli URL quando gli utenti non hanno fornito il consenso per i cookie.
  • Oscurare completamente (rimuovere) le informazioni sugli annunci quando gli utenti negano il consenso per i cookie degli annunci.

Comportamento specifico per regione

Per modificare il comportamento predefinito dei tag per gli utenti di determinate regioni, specifica una regione nel comando del consenso. Fornendo un valore di regione, puoi perfezionare le impostazioni predefinite in base alle posizioni geografiche dei tuoi utenti. Per saperne di più sull'identificazione delle regioni, consulta ID geografici.

gtag.js

Il seguente esempio imposta analytics_storage su denied per gli utenti di Spagna e Alaska e ad_storage su denied per tutti gli utenti.

  gtag('consent', 'default', {
    'analytics_storage': 'denied',
    'region': ['ES', 'US-AK']
  });

  gtag('consent', 'default', {
    'ad_storage': 'denied'
  });

Tag Manager

Se utilizzi un modello per creare il tag, questo potrebbe avere i controlli per impostare un comportamento specifico per regione. Se crei autonomamente un tag modello, consulta Creare un modello per la modalità di consenso per ulteriori informazioni su come impostare il comportamento specifico per regione.

Il parametro più specifico ha la precedenza

Se nella stessa pagina sono presenti due comandi di consenso predefiniti con valori per una regione e una sottoregione, verrà applicato quello con una regione più specifica. Ad esempio, se hai impostato ad_storage su granted per la regione US e ad_storage su denied per la regione US-CA, per un visitatore della California verrà applicata l'impostazione più specifica US-CA. In questo esempio, per un visitatore proveniente da US-CA, ad_storage viene impostato su denied.

Regione ad_storage Comportamento
US 'granted' Si applica agli utenti negli Stati Uniti non in California
US-CA 'denied' Si applica agli utenti di Stati Uniti e Canada
Non specificato 'granted' Utilizza il valore predefinito 'granted'. Nell'esempio, si applica ai visitatori che non si trovano negli Stati Uniti o in Canada

Trasmettere informazioni su clic sull'annuncio, ID cliente e ID sessione negli URL

Quando un utente arriva sul tuo sito web dopo aver fatto clic su un annuncio, le informazioni sull'annuncio possono essere aggiunte agli URL pagina di destinazione come parametro di query. Per migliorare la precisione degli eventi chiave, queste informazioni vengono in genere memorizzate nei cookie proprietari del tuo dominio.

Tuttavia, se ad_storage è impostato su denied, queste informazioni non verranno memorizzate localmente. Per migliorare la qualità della misurazione dei clic sugli annunci quando ad_storage è denied, se vuoi puoi scegliere di passare le informazioni sui clic sugli annunci tramite i parametri URL tra le pagine utilizzando il trasferimento dell'URL.

Analogamente, se analytics_storage è impostato su denied, il trasferimento dell'URL può essere utilizzato per inviare analisi basate su eventi e sessioni (inclusi gli eventi chiave) senza cookie tra le pagine.

Per utilizzare il passaggio di URL, devono essere soddisfatte le seguenti condizioni:

  • Il tag Google è conforme al consenso ed è presente nella pagina.
  • L'inserzionista ha attivato la funzionalità Passthrough URL.
  • La modalità di consenso è implementata nella pagina.
  • Il link in uscita fa riferimento allo stesso dominio della pagina corrente.
  • Nell'URL è presente un GCLID o un DCLID (solo tag Google Ads e Floodlight)

gtag.js

Per attivare questa funzionalità, imposta il parametro url_passthrough su true. Aggiungi il seguente comando allo snippet predefinito prima di qualsiasi comando config:

gtag('set', 'url_passthrough', true);

Tag Manager

Se utilizzi un modello per creare il tag, potrebbe avere i controlli per impostare il passaggio dell'URL. Se stai creando un tag modello autonomamente, consulta Creare un modello per la modalità di consenso per saperne di più su come impostare il traferimento dell'URL utilizzando l'API di modelli personalizzati gtagSet.

In alternativa, puoi utilizzare le seguenti opzioni per impostarlo nel Linker conversioni e/o nei tag di analisi

Per i tag Google Ads e Floodlight:

Per attivare questa funzionalità, crea (o utilizza uno esistente) un tag linker conversioni e assicurati che l'opzione Attiva il collegamento in tutti gli URL delle pagine sia selezionata. Consulta la configurazione di base per istruzioni su come creare un tag Linker conversioni.

Per i tag Google Analytics:

  1. In Tag Manager, vai a Campi da impostare e seleziona Configurazione tag > Campi da impostare.
  2. Quando la sezione Campi da impostare è espansa, fai clic su Aggiungi riga.
  3. In Nome campo, inserisci url_passthrough.
  4. In Valore, inserisci "true".
  5. Salva il tag e pubblica.

In alternativa, puoi impostare il parametro url_passthrough su true su ogni pagina del tuo sito prima dello snippet di installazione di GTM.

window.dataLayer = window.dataLayer || [];
function gtag(){window.dataLayer.push(arguments);}
gtag('set', 'url_passthrough', true);

Quando si utilizza il passthrough URL, alcuni parametri di query possono essere aggiunti ai link mentre gli utenti navigano tra le pagine del tuo sito web:

  • gclid
  • dclid
  • gclsrc
  • _gl
  • wbraid

Per ottenere risultati ottimali, assicurati che:

  1. I reindirizzamenti sul tuo sito devono trasmettere tutti i parametri di query sopra indicati.
  2. Gli strumenti di analisi ignorano questi parametri negli URL pagina.
  3. Questi parametri non interferiscono con il comportamento del tuo sito.

Oscurare i dati pubblicitari

Quando ad_storage è denied, non verranno impostati nuovi cookie per scopi pubblicitari. Inoltre, i cookie di terze parti precedentemente impostati su google.com e doubleclick.net non verranno utilizzati, tranne che per scopi di protezione da spam e attività fraudolente. I dati inviati a Google includeranno comunque l'URL completo della pagina, incluse eventuali informazioni sui clic sull'annuncio nei parametri URL.

gtag.js

Per oscurare ulteriormente i dati pubblicitari quando ad_storage è denied, imposta ads_data_redaction su true.

gtag('set', 'ads_data_redaction', true);

Quando ads_data_redaction è true e ad_storage è denied, gli identificatori dei clic sugli annunci inviati nelle richieste di rete dai tag Google Ads e Floodlight verranno oscurati. Anche le richieste di rete verranno inviate tramite un dominio senza cookie.

Tag Manager

Se utilizzi un modello per creare il tag, potrebbe includere i controlli per oscurare ulteriormente i dati degli annunci. Se stai creando un tag modello autonomamente, consulta Creare un modello per la modalità di consenso per saperne di più sull'oscuramento dei dati sui annunci.

Problemi comuni

Quando implementi la modalità di consenso avanzata, devi chiamare un comando di aggiornamento nella pagina in cui l'utente concede il consenso.

Quando una pagina viene caricata con il consenso negato e poi ricaricata con il consenso concesso dopo una modifica del consenso, i tag Google potrebbero perdere i punti dati chiave della pagina originale. Eventuali report successivi potrebbero essere incompleti.

Ad esempio, in Google Analytics, a molte sessioni con consenso potrebbe mancare un evento session_start.

Per evitare questo problema, chiama il comando di aggiornamento ogni volta che cambia lo stato del consenso di un utente.

In alcuni casi, quando un tipo di consenso viene aggiornato da negato a concesso, i tag Google possono inviare misurazioni in base a questo aggiornamento. Se il comando di aggiornamento viene chiamato durante lo svuotamento della pagina, il browser potrebbe annullare questo traffico di rete prima del completamento. Eventuali report successivi potrebbero essere incompleti.

Se possibile, assicurati che i comandi di aggiornamento vengano registrati molto prima dello svuotamento della pagina.

Passaggi successivi

Controlli dei tag legacy

Se utilizzi tag precedenti, come ga.js, analytics.js o conversion.js, esegui l'aggiornamento a gtag.js o a Google Tag Manager.

Per scoprire di più sui controlli per la privacy di altri tag precedenti, consulta la seguente documentazione: