Consent Mode v2: Template GTM Personalizzato
2 min lettura

Consent Mode v2: Template GTM Personalizzato


Con l’entrata in vigore del Digital Markets Act (DMA), la “Consent Mode v2” non è più opzionale per chi fa advertising in Europa. Il problema? I tag “pre-cotti” di Cookiebot o OneTrust sono spesso scatole nere che non permettono la granularità necessaria. Nel 2025 abbiamo visto troppi siti perdere il 40% delle conversioni per configurazioni errate (Race Conditions).

La soluzione professionale è costruire un Custom Template in Google Tag Manager (GTM) che gestisca lo stato del consenso con logica chirurgica.

Differenze Chiave: v1 vs v2

La v1 gestiva solo ad_storage e analytics_storage. La v2 introduce due nuovi parametri critici per il remarketing:

  1. ad_user_data: L’utente acconsente all’invio di dati (es. email hashata) a Google?
  2. ad_personalization: L’utente acconsente al remarketing personalizzato?

Se questi sono “Denied”, le tue audience su Google Ads si svuoteranno.

Costruire il Template (Sandboxed JS)

Non usare i tag HTML personalizzati per inizializzare il consenso: non garantiscono l’ordine di esecuzione. Usa i Template.

1. Definizione Campi e Permessi

Nel Template Editor, vai su “Permissions” e abilita Access Consent State e Write Consent State. Definisci campi di input per permettere al marketing di scegliere il comportamento di default (es. “Denied” in EU, “Granted” in US).

2. Il Codice di Inizializzazione

const setDefaultConsentState = require('setDefaultConsentState');
const updateConsentState = require('updateConsentState');
const queryPermission = require('queryPermission');

// Mappatura dei nuovi segnali v2
const consentDefaults = {
  'ad_storage': 'denied',
  'analytics_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'wait_for_update': 500 // Tempo vitale per permettere al CMP di caricarsi
};

// Imposta il default (deve avvenire all'inizializzazione del container)
setDefaultConsentState(consentDefaults);

// Funzione per l'aggiornamento dinamico
const onConsentUpdate = (event) => {
  const updatedConsent = {
    'ad_storage': event.ad_storage,
    'analytics_storage': event.analytics_storage,
    'ad_user_data': event.ad_user_data,
    'ad_personalization': event.ad_personalization
  };
  updateConsentState(updatedConsent);
};

Advanced Implementation: Cookieless Pings

Un template ben fatto deve gestire i “Cookieless Pings”. Se l’utente rifiuta i cookie (ad_storage='denied'), Google Ads può comunque ricevere dei ping anonimi che permettono al sitema di modellare le conversioni perse (Conversion Modeling). Il tuo template deve assicurarsi che ads_data_redaction sia impostato a true quando il consenso è negato, per evitare che GTM provi a leggere cookie che non esistono, generando errori in console.

Implementare un template custom richiede tempo, ma è l’unico modo per avere il controllo totale sulla Data Governance e dormire sonni tranquilli con il DPO.

Potrebbe interessarti anche