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, leggi 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 quali valori predefiniti 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 mantenere il tuo banner, l'approccio consigliato è caricarlo tramite il contenitore di Tag Manager. Per farlo, devi creare un modello per la modalità di consenso. In alternativa, puoi utilizzare un modello della modalità di consenso della 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 tuo 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.

Tag Manager

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

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 del passthrough dell'URL in modo appropriato.

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 invia 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 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 per quanto tempo attendere prima dell'invio dei dati.

Ad esempio, per negare ad_storage su una determinata pagina per impostazione predefinita, ma per consentire alla CMP di aggiornare lo stato del consenso, utilizza wait_for_update. Nel codice seguente, ad_storage viene impostato su denied per impostazione predefinita e allo strumento di consenso vengono concessi 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 un modello di modalità di consenso, il consenso dell'utente dovrebbe aggiornarsi automaticamente quando l'utente interagisce con il banner.

Se crei tu stesso 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 del passthrough dell'URL in modo 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. Dopo che un utente ha concesso il consenso, mantieni la sua scelta e chiama il comando di aggiornamento di conseguenza nelle pagine successive.

È tua responsabilità assicurarti che i valori corretti siano impostati per tutti i tipi di consenso. Per informazioni dettagliate sui tipi supportati, consulta il Riferimento API.

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

<!-- Send consent updates when users interact with your consent banner -->
<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()">Accept all</button>
  ...
</body>

Gli utenti possono modificare le proprie preferenze relative al consenso dopo l'interazione iniziale. Ad esempio, un utente che inizialmente ha dato il consenso potrebbe decidere di revocarlo in un secondo momento tramite il pannello delle impostazioni del tuo sito web.

Tag Manager

Se utilizzi un modello di modalità di consenso, il consenso dell'utente dovrebbe aggiornarsi automaticamente quando l'utente interagisce con il banner o il pannello delle impostazioni.

Se crei tu stesso un modello per la modalità di consenso, utilizza l'API updateConsentState per aggiornare lo stato del consenso quando un utente conferma le nuove preferenze.

gtag.js

Per aggiornare lo stato del consenso in qualsiasi momento, utilizza il comando update. Questo comando viene utilizzato per qualsiasi modifica dello stato del consenso, inclusa la modifica da 'granted' a 'denied'.

Esempio: revoca del consenso

Se un utente ha precedentemente concesso il consenso per analytics_storage e ad_storage, ma ora desidera negare il consenso, invia una chiamata update che rifletta la sua nuova scelta:

// User updates their settings to deny consent
gtag('consent', 'update', {
  'analytics_storage': 'denied',
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied'
});

Considerazioni sull'implementazione:

  1. Persistenza: assicurati che le scelte di consenso aggiornate dell'utente vengano mantenute, ad esempio in un cookie proprietario o in un archivio locale, in modo che lo stato corretto venga impostato nei caricamenti di pagina successivi.
  2. Tempistica:chiama il comando di aggiornamento non appena l'utente conferma le nuove preferenze nell'interfaccia delle impostazioni del consenso del tuo sito.

Esempio di implementazione

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

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 tua pagina nel seguente modo. L'ordine del codice è fondamentale. Se il codice per il consenso viene chiamato in un ordine non corretto, gli stati predefiniti 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 -->

<!-- Send consent updates when users interact with your consent banner -->
<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()">Accept all</button>
  ...
</body>

gtag.js

L'ordine del codice qui è fondamentale. Se il codice per il consenso viene chiamato in modo disordinato, gli stati predefiniti del consenso non funzioneranno. A seconda dei requisiti aziendali, i dettagli possono variare, ma in generale il codice deve essere eseguito nel seguente ordine:

  1. Carica il tag Google. Questo è il codice snippet predefinito. Lo snippet predefinito deve essere aggiornato (vedi sotto) 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 Integrazione con piattaforme di gestione del consenso asincrone per scoprire 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="//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>

<!-- Send consent updates when users interact with your consent banner -->
<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()">Accept all</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 su clic sugli annunci, ID cliente e ID sessione negli URL quando gli utenti non hanno concesso il consenso per i cookie.
  • Oscura (rimuovi) completamente le informazioni sugli annunci quando gli utenti negano il consenso ai cookie per la pubblicità.

Comportamento specifico per regione

Per impostare gli stati predefiniti del consenso che si applicano ai visitatori di determinate aree, specifica una regione (in base allo standard ISO 3166-2) nel comando gtag consent default. L'utilizzo dei valori delle regioni ti consente di rispettare le normative regionali.

Puoi impostare valori predefiniti per regioni specifiche e poi impostare un valore predefinito diverso per tutte le altre regioni. Un comando gtag consent default senza un parametro region imposta lo stato predefinito del consenso per tutti i visitatori non coperti da un altro comando specifico per la regione.

Tag Manager

Se utilizzi un modello per creare il tag, questo potrebbe avere i controlli per impostare il comportamento specifico per regione. Se stai creando un tag modello in autonomia, consulta Crea un modello per la modalità di consenso per saperne di più sull'impostazione del comportamento specifico per regione.

gtag.js

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

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

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

Il parametro più specifico ha la precedenza

Se nella stessa pagina vengono eseguiti due comandi di consenso predefiniti con valori per una regione e una sottoregione, verrà applicato quello con una regione più specifica. Ad esempio, se ad_storage è impostato su granted per la regione US e ad_storage è impostato su denied per la regione US-CA, per un visitatore della California verrà applicata l'impostazione US-CA più specifica. Per questo esempio, ciò significherebbe che un visitatore di US-CA avrebbe ad_storage impostato su denied.

Regione ad_storage Comportamento
US 'granted' Si applica agli utenti negli Stati Uniti che non si trovano 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 US-CA

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

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

Tuttavia, se ad_storage è impostato su denied, queste informazioni non verranno archiviate localmente. Per migliorare la qualità della misurazione dei clic sugli annunci quando ad_storage è denied, puoi scegliere facoltativamente di trasferire informazioni sui clic sugli annunci tramite 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 trasferimento dell'URL, devono essere soddisfatte le seguenti condizioni:

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

Tag Manager

Se utilizzi un modello per creare il tag, questo potrebbe avere i controlli per impostare il passthrough dell'URL. Se stai creando un tag modello autonomamente, consulta Creare un modello di modalità di consenso per saperne di più sull'impostazione del passthrough dell'URL utilizzando l'API modello personalizzato gtagSet.

In alternativa, puoi utilizzare le seguenti opzioni per impostarlo nei tag di destinazione, nel tag Google o nel tag Linker conversioni.

Per i tag di destinazione e il tag Google:

  1. Nell'area di lavoro, apri il menu Tag.
  2. Modifica un tag Google o un tag di destinazione esistente oppure creane uno nuovo.
  3. Nelle impostazioni di Configurazione, aggiungi un nuovo parametro:
    • Nome: url_passthrough
    • Valore: true
  4. Salva il tag e pubblica il contenitore.

Per i tag Google Ads e Floodlight collegati tramite un tag Google:

Per attivare questa funzionalità, crea (o utilizza un) tag Linker conversioni esistente e assicurati che la casella 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.

In alternativa, puoi impostare il parametro url_passthrough su true in 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);

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

Quando si utilizza il passthrough URL, alcuni parametri di ricerca potrebbero essere aggiunti ai link man mano che 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 superano tutti i parametri di query precedenti.
  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 vengono impostati nuovi cookie per scopi pubblicitari. Inoltre, i cookie di terze parti precedentemente impostati su google.com e doubleclick.net non verranno utilizzati, se non per scopi di spam e attività fraudolente. I dati inviati a Google includeranno comunque l'URL completo della pagina, incluse le informazioni sui clic sugli annunci nei parametri URL.

Tag Manager

Se utilizzi un modello per creare il tag, questo potrebbe avere i controlli per oscurare ulteriormente i dati pubblicitari. Se stai creando un tag modello autonomamente, consulta Crea un modello per la modalità di consenso per saperne di più sulla modifica dei dati degli annunci.

gtag.js

Per oscurare ulteriormente i dati degli annunci 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. Le richieste di rete verranno inviate anche tramite un dominio senza cookie di terze parti, ad esempio pagead2.googlesyndication.com.

Problemi comuni

Esamina i seguenti problemi comuni riscontrati durante l'implementazione.

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 punti dati chiave della pagina originale. I 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 lo stato del consenso di un utente cambia.

In alcuni casi, quando un tipo di consenso viene aggiornato da negato a concesso, i tag Google possono inviare misurazioni basate su questo aggiornamento. Se il comando di aggiornamento viene chiamato durante il caricamento della pagina, il browser potrebbe annullare questo traffico di rete prima che venga completato. I report successivi potrebbero essere incompleti.

Se possibile, assicurati che i comandi di aggiornamento vengano registrati molto prima che la pagina venga scaricata.

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 Google Tag Manager.

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