Home
Google Tag Manager e GDPR: come configurarlo in modo conforme

Google Tag Manager e GDPR: come configurarlo in modo conforme

18 giorni fa
João Bruno Soares
12 minuti

Google Tag Manager non è conforme o non conforme al GDPR: è un contenitore. Quello che conta è che cosa fanno i tag che ci metti dentro e quando partono. Per usare Google Tag Manager in linea con il GDPR devi fare in modo che nessun tag di statistica o di marketing scatti prima della scelta dell'utente, e che il banner comunichi quella scelta ai tag.

In pratica servono quattro cose: un banner che raccoglie il consenso, stati di consenso impostati su denied all'ingresso, un trigger che li carica prima di tutto il resto e controlli di consenso su ogni tag non tecnico. Più sotto trovi il passo passo, gli errori che vediamo più spesso e come verificare che il setup regga davvero.

Che cosa è (e che cosa non è) Google Tag Manager

Tag Manager è un sistema che ti permette di pubblicare e aggiornare script di misurazione e marketing senza modificare il codice del sito a ogni richiesta. Il container contiene i tag, i trigger che li fanno partire e le variabili che li alimentano. Il container, di per sé, non raccoglie nulla.

La conseguenza è semplice da dire e facile da dimenticare. La responsabilità sul trattamento dei dati non sta nel container ma nei tag: un tag di statistica, un pixel pubblicitario, uno script di terze parti incollato come HTML personalizzato. Se uno di questi parte prima del consenso, il problema è quel tag, anche se è stato pubblicato da Tag Manager.

Perché il consenso preventivo cambia il modo di configurarlo

In Italia l'articolo 122 del Codice privacy e le Linee guida cookie del Garante del 10 giugno 2021 distinguono i cookie tecnici da quelli non tecnici. Per i secondi serve il consenso prima dell'installazione. Per capire dove cade ciascuno dei tuoi tag, cookie tecnici e cookie di profilazione è il punto di partenza.

Dal punto di vista di Tag Manager questo significa che il comportamento predefinito non può essere "tutto parte alla prima pagina". Il predefinito deve essere "niente di non tecnico parte finché l'utente non ha scelto". È un cambio di mentalità prima ancora che di configurazione.

Dove si inserisce il banner

Il banner non sostituisce Tag Manager e Tag Manager non sostituisce il banner. Il primo raccoglie e conserva la scelta, il secondo la usa per decidere cosa far partire. Se non sai bene che cosa deve fare lo strumento che raccoglie il consenso, cos'è una CMP e perché ti serve chiarisce il ruolo in modo completo.

La documentazione di Google indica come approccio consigliato quello di caricare il banner attraverso il container stesso, usando un modello di Consent Mode della Community Template Gallery. Google raccomanda inoltre di affidarsi a una CMP certificata da Google, che si aggiorna da sola alle nuove versioni di Consent Mode.

Se vuoi vedere come si presenta questo raccordo in un progetto reale, AdOpt lavora proprio sul tratto che va dalla scelta dell'utente ai tag.

Gli stati di consenso: che cosa devi dichiarare

Consent Mode usa dei parametri che dicono ai tag di Google che cosa possono fare. Quelli rilevanti per la pubblicità e le statistiche sono quattro:

  • analytics_storage: archiviazione legata alle statistiche, come i cookie dei tag di statistica.
  • ad_storage: archiviazione legata alla pubblicità.
  • ad_user_data: invio a Google di dati dell'utente per finalità pubblicitarie.
  • ad_personalization: pubblicità personalizzata, come il remarketing.

Per ciascuno, come descrive la guida di Google a Consent Mode, devi dichiarare uno stato predefinito prima che parta qualunque misurazione, e aggiornarlo quando l'utente interagisce con il banner. Il dettaglio dei parametri e delle due modalità, base e avanzata, è nella guida a Google Consent Mode v2 per l'Italia: qui ci concentriamo su come si traduce dentro Tag Manager.

Il trigger Consent Initialization

Ogni container web include per impostazione predefinita un trigger chiamato Consent Initialization - All Pages. Secondo la documentazione di Google sulle API di consenso e quella sulla panoramica del consenso scatta prima persino dei trigger di Initialization, ed è quello indicato per impostare gli stati predefiniti non appena il container parte.

Il modello del banner (o il tag di Consent Mode) va quindi associato a quel trigger, non a "All Pages". La differenza sembra minuscola, ma decide se lo stato denied arriva prima dei tag di misurazione oppure troppo tardi per servire a qualcosa.

Il parametro wait_for_update

Molti banner caricano la scelta salvata in modo asincrono: l'utente è già tornato sul sito, ma la CMP impiega qualche istante a leggere la sua decisione. Per questo il comando di default accetta wait_for_update, un valore in millisecondi che dice ai tag quanto aspettare prima di inviare dati.

Google indica di usare almeno 500 millisecondi per dare tempo alla CMP di rispondere. Il valore giusto dipende da come si carica il tuo banner: non esiste un numero universale, e va verificato con una prova reale.

Per un sito che parla a un pubblico italiano, la scelta prudente è tenere denied come stato predefinito per tutti e quattro i parametri. Lo stato cambia in granted solo dopo che l'utente ha scelto nel banner, e solo per le categorie che ha accettato.

Il passaggio da denied a granted deve coincidere con ciò che l'utente ha visto e deciso. Se il banner offre scelte separate per statistiche e marketing, anche gli aggiornamenti devono essere separati.

Come configurare Tag Manager passo dopo passo

Questa è la sequenza che consigliamo di seguire in un container nuovo e che puoi usare come lista di controllo in uno esistente.

  1. Installa nel container un modello di Consent Mode compatibile con il tuo banner, oppure usa una CMP certificata da Google che lo fornisce già pronto.
  2. Associa il modello al trigger Consent Initialization - All Pages.
  3. Imposta lo stato predefinito su denied per analytics_storage, ad_storage, ad_user_data e ad_personalization, con un wait_for_update adeguato al tuo banner.
  4. Verifica che, quando l'utente sceglie, il banner aggiorni gli stati attraverso le API di aggiornamento previste dal modello.
  5. In Impostazioni container attiva "Enable consent overview" e controlla quali tag non hanno ancora impostazioni di consenso.
  6. Per ogni tag non tecnico, configura le impostazioni di consenso (vedi sotto) e rimuovi i trigger troppo larghi.
  7. Prova tutto in modalità Anteprima prima di pubblicare e ripeti la prova dopo ogni modifica del container.

Se in azienda usate AdOpt o un'altra CMP insieme a Tag Manager e lavorate in più persone sullo stesso container, scrivi accanto a ogni tag quale categoria del banner lo governa. È la cosa che ti salva quando, tra sei mesi, qualcuno deve capire perché un tag è stato bloccato.

Impostazioni di consenso per ogni tag

Aprendo un tag, in Impostazioni avanzate trovi le Impostazioni di consenso. Qui entrano in gioco due concetti diversi. I controlli integrati (built-in) sono logica già presente nel tag: la documentazione di Google dice che i tag Google di pubblicità, di statistica e Floodlight li includono e modificano il comportamento in base allo stato di consenso.

I controlli aggiuntivi servono quando vuoi imporre un requisito in più. Hanno tre opzioni: "Not set" (predefinita), "No additional consent required" e "Require additional consent for tag to fire", dove indichi i tipi di consenso richiesti. È il meccanismo da usare per tag che non hanno controlli integrati, come molti script di terze parti.

Se vuoi un confronto tecnico sul tuo container, puoi parlare con il team di AdOpt.

La vista Consent Overview

Attivando la funzione dalle impostazioni del container, Tag Manager ti mostra due gruppi: i tag senza consenso configurato e quelli con controlli aggiuntivi impostati. È la vista più utile per un controllo rapido, perché mette in fila i tag che nessuno ha ancora classificato.

Il suo valore è soprattutto organizzativo. Un container che dopo due anni di lavoro ha venti tag "Not set" non è per forza non conforme, ma è un container di cui nessuno sa dire con certezza cosa fa. Questa vista ti dà un elenco di cose da decidere, una alla volta.

Gli errori che vediamo più spesso

Quasi tutti i problemi con Tag Manager e consenso ricadono in cinque situazioni. Sono facili da evitare, ma altrettanto facili da non notare, perché il sito funziona e i report arrivano.

Tag su All Pages che parte prima del consenso

L'errore più comune è un tag di statistica o di pubblicità legato al trigger All Pages, senza alcuna impostazione di consenso. Il tag parte al primo caricamento, con o senza banner, e il consenso arriva dopo che il danno è fatto.

La correzione è guardare, tag per tag, quali non hanno impostazioni di consenso e decidere se sono tecnici oppure no. Per distinguere, cookie di terze parti: cosa sono aiuta a riconoscere quali script portano con sé identificatori di soggetti esterni.

HTML personalizzato senza controlli

I tag di tipo HTML personalizzato sono i più rischiosi perché possono contenere qualunque cosa: un pixel, un widget, un frammento incollato dal fornitore. Non hanno controlli integrati, quindi senza una regola esplicita partono sempre.

Applica a ogni HTML personalizzato non tecnico l'opzione "Require additional consent for tag to fire" con i tipi di consenso coerenti con la finalità. Se non sai quale finalità abbia, è un buon motivo per non lasciarlo nel container.

Ordine di caricamento sbagliato

Se il tag di Consent Mode parte dopo i tag di misurazione, gli stati predefiniti arrivano in ritardo e i primi eventi viaggiano con comportamenti non previsti. Succede quando il modello del banner è associato a All Pages invece che al trigger Consent Initialization.

La prova più rapida è l'Anteprima: guarda l'ordine in cui compaiono gli eventi nel pannello di debug e controlla che l'inizializzazione del consenso sia davvero la prima.

Se uno di questi errori ti suona familiare, AdOpt può aiutarti a ricostruire la catena tra banner e tag, partendo dal tuo container attuale.

Stato aggiornato con il metodo sbagliato

La documentazione di Google per Tag Manager è esplicita: per aggiornare il consenso in un container non si usa gtag('consent', 'update', ...), ma le API del modello (setDefaultConsentState e updateConsentState), per evitare ritardi dovuti alla coda. Se il tuo banner è scritto a mano, è un punto da far controllare a chi lo ha sviluppato.

Categorie del banner non collegate ai tag

L'ultimo errore è il più strutturale: il banner mostra categorie (statistiche, marketing) ma nessuno ha scritto quali tag dipendono da quali. Quando l'utente rifiuta il marketing, il tag di remarketing continua a funzionare perché non è mai stato collegato a quella scelta.

Una buona abitudine è tenere una tabella con tre colonne: tag, finalità, stato di consenso richiesto. Deve coincidere con quanto scrivi nell'informativa e con quello che mostra il banner cookie a norma del Garante.

Come verificare che funzioni

Pubblicare il container senza provarlo equivale a non averlo configurato. Le verifiche richiedono quindici o venti minuti e vanno ripetute dopo ogni modifica importante, perché un tag nuovo può rompere un setup che prima funzionava.

  1. Apri il sito in una finestra privata, senza aver mai accettato nulla, e avvia l'Anteprima di Tag Manager.
  2. Controlla che, prima della scelta, i tag non tecnici non risultino scattati o risultino con consenso negato.
  3. Guarda negli strumenti per sviluppatori del browser, nella scheda Applicazione, quali cookie sono presenti prima di qualunque interazione.
  4. Rifiuta nel banner e ripeti il controllo: i cookie non tecnici non devono comparire.
  5. Accetta, ricarica la pagina e verifica che i tag partano e che i cookie corrispondano alle categorie scelte.

La documentazione generale di Tag Manager dice che l'Anteprima permette di controllare se un tag è scattato e da quale trigger. Come la pagina mostri nel dettaglio gli stati di consenso può cambiare con gli aggiornamenti dell'interfaccia: verifica sul tuo account, senza fidarti di screenshot vecchi.

Controllare anche dopo la pubblicazione

Un container che funziona oggi può smettere di farlo quando qualcuno aggiunge un tag. Fissa un controllo periodico, per esempio a ogni modifica del container, e tieni la cronologia delle versioni leggibile, con una descrizione che spieghi che cosa è cambiato e perché.

Che cosa il container non può garantirti

Tag Manager non prova da solo che l'utente abbia davvero scelto, né conserva la prova della scelta. Se un'autorità o un utente chiede di dimostrarla, serve un registro tenuto dallo strumento che raccoglie il consenso, come la CMP di AdOpt o un'altra soluzione equivalente. È uno dei motivi per cui il banner e il container vanno pensati insieme, e non uno dopo l'altro.

Se vuoi capire come tenere allineati banner, registro e container, AdOpt è pensata per tenere integro il consenso fino ai tag di Google e agli altri strumenti di marketing.

Dopo il container: gli strumenti collegati

Una volta messo in ordine il container, restano due ambiti che meritano un approfondimento a parte, perché hanno regole e storie diverse. Il primo è la misurazione: per i tag di analytics pesa anche l'orientamento del Garante, un tema che trattiamo in analytics e consenso secondo il Garante.

Il secondo è la pubblicità sui social. Il pixel di Meta si governa con impostazioni proprie, anche se lo carichi da Tag Manager: lo vediamo in pixel Meta e GDPR. In entrambi i casi il principio è lo stesso di questo articolo: il tag parte solo dopo la scelta.

Questa guida non è consulenza legale. Per valutare un caso concreto, in particolare l'invio di segnali prima della scelta, coinvolgi il tuo consulente o il DPO.

Domande frequenti

Google Tag Manager è conforme al GDPR?

Tag Manager è un contenitore e non raccoglie dati da solo. La conformità dipende dai tag che contiene, da quando partono e dal consenso raccolto. Un container con tag non tecnici attivi prima della scelta dell'utente non è in regola, mentre uno con stati di consenso e controlli per ogni tag può esserlo. Va valutato caso per caso.

Devo bloccare i tag di statistica fino al consenso?

Dipende da come lo hai configurato e da come lo qualifichi. Per i cookie non tecnici serve il consenso prima dell'installazione. Con Consent Mode, i tag di Google con controlli integrati modificano il proprio comportamento in base allo stato di consenso, come indica la documentazione di Google. Cosa cambia tra modalità base e avanzata è spiegato nella nostra guida a Consent Mode v2.

Che cosa è il trigger Consent Initialization?

È un trigger presente per impostazione predefinita in ogni container web, chiamato Consent Initialization - All Pages. Scatta prima degli altri, comprese le inizializzazioni, e serve a impostare gli stati di consenso predefiniti prima che parta qualunque tag di misurazione o di marketing.

Come faccio a bloccare un tag HTML personalizzato senza consenso?

Apri il tag, vai in Impostazioni avanzate e poi in Impostazioni di consenso. Scegli "Require additional consent for tag to fire" e indica i tipi di consenso necessari, coerenti con la finalità dello script. Se il banner usa categorie diverse, mappale prima ai tipi di consenso che il tuo modello supporta.

Basta usare un banner per essere a posto?

No. Il banner raccoglie la scelta, ma sono i tag a doverla rispettare. Se il container li fa partire senza guardare lo stato di consenso, il banner resta decorativo. Servono entrambe le parti, verificate con una prova reale.

Continua a scoprire il tema

Per mettere in ordine l'intero percorso del consenso, dal banner agli strumenti di marketing, puoi proseguire con la gestione del consenso cookie con una CMP e con la guida a Google Consent Mode v2 per l'Italia.

Se vuoi un parere sul tuo container, scopri AdOpt e parla con un esperto, senza impegno.

Tags

AdOpt logoAdOpt logo

Indirizzo: 7345 W Sand Lake Road, Ste 210 Office 5898 Orlando, FL 32819

15 Rue du Général Campredon, 34000 Montpellier, Francia

207 Rue de Bercy, 75012 Paris, Francia

EIN: 86-3965064

Telefono: +1 (407) 768-3792

AdOpt

Risorse

Prodotto

Certificazioni

Google CMP PartnerIAB Europe TCF Registered Vendor

© GO ADOPT, LLC dal 2020 - Realizzato da persone che amano🍪