Consent Mode v2: cos'è davvero e come si configura su PrestaShop
Il banner cookie e il Consent Mode v2 non sono la stessa cosa
Un banner cookie chiede il permesso a un visitatore. Il Consent Mode v2 è il modo in cui quel permesso viene comunicato a Google, prima ancora che un tag come Google Analytics o Google Ads riceva un solo dato. Sono due livelli diversi: si può avere un banner perfettamente conforme al GDPR e un Consent Mode configurato male, perché il banner è un'interfaccia per l'utente mentre il Consent Mode è un protocollo tra il sito e i tag di Google, fatto di segnali con un nome preciso e un ordine preciso in cui vanno impostati.
Dalla versione 2 (obbligatoria per chi in Europa usa tag Google con pubblico soggetto a GDPR) i segnali non sono più due ma sei: ad_storage e analytics_storage esistevano già nella versione 1, si sono aggiunti ad_user_data (il permesso a mandare dati personali a Google per la pubblicità) e ad_personalization (il permesso a usarli per personalizzare gli annunci), e nella pratica quasi tutte le implementazioni gestiscono anche functionality_storage e personalization_storage per le preferenze del sito stesso. Un settimo segnale, security_storage, resta sempre concesso perché riguarda cookie di sicurezza tecnica, non tracciamento.
L'ordine conta più del contenuto: il default deve arrivare prima del tag
L'errore più comune non è nei valori scelti ma nella sequenza. Un tag Google (GTM, gtag.js) che si carica prima che il sito abbia dichiarato un default di consenso lavora come se il consenso non esistesse, cioè nel modo più permissivo per lui. Il Consent Mode v2 fatto bene segue sempre lo stesso schema, riga per riga:
- Appena il documento inizia a caricarsi, prima di qualunque script di terze parti, viene dichiarato un default negato su tutti i segnali di tracciamento (
deniedsu marketing e statistiche,grantedsolo susecurity_storage), con un piccolo margine di attesa (nella nostra implementazione 500 millisecondi) che dà tempo a un'eventuale scelta già salvata di essere riletta prima che un tag parta con i valori sbagliati. - Se il visitatore ha già scelto in una visita precedente, quella scelta viene riletta dal cookie di consenso e rimandata subito a Google con un comando di aggiornamento (
consent update), sempre prima che GTM o gtag.js vengano effettivamente richiesti al server di Google. - Solo a questo punto, con il contesto di consenso già dichiarato, vengono caricati GTM, il tag diretto di Google Analytics 4 (se lo si usa senza passare da GTM) e un eventuale pixel di terze parti come quello di Meta, che a sua volta va inizializzato con un proprio comando di consenso separato, non un semplice "se il cookie dice sì carico lo script".
Impostare il default nel punto giusto del codice è un lavoro di tre righe di JavaScript. Farlo nel punto sbagliato, magari dentro lo stesso blocco che carica GTM invece che prima, vanifica l'intero meccanismo: Google vede comunque il tag arrivare prima del segnale.
Il banner da solo non blocca niente: serve un blocco generico
Un problema pratico che il Consent Mode v2 non risolve da solo è che riguarda i tag di Google, non gli altri script di terze parti che un tema o un altro modulo possono aver piazzato in pagina (una mappa incorporata, un widget di recensioni, un video). Un'implementazione seria aggiunge un livello indipendente che osserva il DOM mentre la pagina si costruisce, riconosce lo script o l'iframe da un elenco di pattern per dominio (per esempio google-analytics.com, facebook.net, doubleclick.net, o il dominio di un servizio video), e se la categoria a cui appartiene non è ancora stata accettata lo sostituisce con un segnaposto inerte prima che riesca a fare anche una sola richiesta di rete. Solo quando il visitatore accetta quella categoria lo script viene rimesso al suo posto. Senza questo livello, il default "negato" copre solo i tag che il sito stesso ha scritto per rispettarlo, non quelli che arrivano da moduli terzi che ignorano il tuo Consent Mode e partono comunque.
Un caso reale: un default tecnicamente corretto, un banner che nessuno capiva
Nel nostro modulo di consenso abbiamo trovato un difetto istruttivo, il 14 settembre 2026: il meccanismo di Consent Mode era corretto, il default negato partiva nel punto giusto, eppure il testo del banner (titolo, corpo, i tre pulsanti, i nomi delle categorie) usciva in inglese per chi visitava un negozio in francese, spagnolo o tedesco, mentre italiano e inglese erano a posto. La causa non era una traduzione mancante nel catalogo delle stringhe di PrestaShop: i testi del banner erano scritti direttamente nel codice del modulo, in un array con solo due lingue previste, e per qualunque lingua diversa il codice ripiegava sull'inglese senza avvisare nessuno. Abbiamo corretto aggiungendo i tre blocchi di lingua mancanti (francese, spagnolo, tedesco, 17 stringhe ciascuno, con gli accenti veri e non gli apostrofi al loro posto) e pubblicato la versione 1.0.9 del modulo.
Il punto non è solo estetico. Un consenso raccolto mostrando un testo che il visitatore non capisce è un consenso debole: la richiesta stessa del GDPR è che l'informativa sia comprensibile a chi la legge, non solo tecnicamente presente sulla pagina. Un Consent Mode impostato in modo impeccabile a livello di codice non serve a molto se la persona davanti al banner sta leggendo una lingua che non parla.
Una checklist pratica per verificare la propria configurazione
- Aprite il codice sorgente della homepage (non gli strumenti sviluppatore, proprio "visualizza sorgente") e controllate che il comando
gtag("consent","default",...)compaia prima di qualunque tag di Google Tag Manager o gtag.js nel documento, non dopo. - Verificate che tutti e sei i segnali siano presenti nel default, non solo
ad_storageeanalytics_storageereditati dal Consent Mode v1: mancaread_user_dataoad_personalizationè l'errore più comune in chi ha "aggiornato" un'implementazione vecchia solo di nome. - Controllate, con gli strumenti di rete del browser, che uno script come Google Analytics non parta davvero prima che il consenso sia stato dato: il default negato deve tradursi in nessuna richiesta di rete verso quel dominio, non solo in un segnale dichiarato e ignorato.
- Cambiate la lingua del sito e riguardate il banner: un testo tradotto solo a metà è un difetto comune quanto invisibile a chi lo pubblica, perché lo si controlla quasi sempre nella lingua in cui si lavora.
In sintesi
Il Consent Mode v2 non è una casella da spuntare nel pannello di un modulo cookie: è una sequenza precisa di segnali, con un ordine che conta quanto il loro contenuto, e un livello di blocco che deve coprire anche gli script che il sito non ha scritto lui stesso. Un'implementazione tecnicamente corretta può comunque fallire il suo scopo se il testo che accompagna la richiesta di consenso non arriva davvero a chi lo deve leggere, nella sua lingua. Su PrestaShop esistono moduli dedicati, incluso uno gratuito nel nostro catalogo (cll_consent), ma la sequenza descritta sopra resta la stessa indipendentemente da quale modulo la implementa.
Guida all'installazione e configurazione del modulo
Banner Cookie e Google Consent Mode v2Modulo gratuito: scaricalo e installalo subito. Banner cookie GDPR con categorie granulari, Google Consent…Vedi il prodotto