WP WordPress Principiante

DataFirefly Cookie Consent — Guida completa

Installazione, configurazione del banner, Google Consent Mode v2, audit dei tracker e registro CNIL/Garante del plugin WordPress DataFirefly Cookie Consent.

Aggiornato Versione del modulo 1.0.0

Panoramica

DataFirefly Cookie Consent è un plugin WordPress e WooCommerce per la gestione del consenso ai cookie. Combina tre elementi: un banner di consenso conforme GDPR/CNIL/Garante, l’emissione nativa dei segnali Google Consent Mode v2 prima di qualsiasi tag Google, e un audit che rileva i tracker realmente caricati sul tuo sito con un registro di prova esportabile.

Requisiti

  • WordPress 6.2 o superiore
  • PHP 8.0 o superiore
  • WooCommerce 8.0+ (opzionale — il plugin funziona anche su WordPress da solo, compatibilità HPOS dichiarata)
  • GTM o GA4 già installato se vuoi sfruttare il Consent Mode v2 (il plugin non installa i tag Google al posto tuo)

Installazione

  1. Scarica il file df-cookie-consent.zip dal tuo account DataFirefly.
  2. Nell’admin di WordPress, vai su Plugin → Aggiungi nuovo → Carica plugin, seleziona lo ZIP e clicca su Installa ora.
  3. Clicca su Attiva. All’attivazione, il plugin crea la tabella di registro wp_dfcc_consent_log, genera un salt casuale per l’hash degli IP e pianifica due attività cron (purge giornaliera del registro e scansione dei tracker).
  4. Un nuovo menu Cookie Consent appare nella barra laterale dell’admin con quattro pagine: Dashboard, Impostazioni, Audit e Registro.

Il banner viene mostrato immediatamente sul frontend con le impostazioni predefinite (layout a barra in fondo alla pagina, tema chiaro, modalità opt-in, le 4 categorie attivate).

Configurazione del banner

Tutte le impostazioni si trovano in Cookie Consent → Impostazioni.

Comportamento generale

  • Attiva il banner: interruttore globale del plugin.
  • Modalità: opt-in (obbligatoria nell’UE — nessun cookie non essenziale prima del consenso) o opt-out.
  • Pulsante Rifiuta tutto al primo livello: attivato di default, in linea con la raccomandazione CNIL del 17 settembre 2020 e le linee guida del Garante. Non disattivarlo se il tuo pubblico è europeo.
  • Durata del cookie di consenso: 180 giorni di default. La scelta dell’utente viene salvata nel cookie dfcc_consent (codificato, first-party).
  • Versione dell’informativa: incrementa questo numero quando la tua cookie policy cambia in modo sostanziale — il banner verrà automaticamente ripresentato a tutti i visitatori e il registro salverà la nuova versione.

Aspetto

  • Layout: barra a tutta larghezza, scheda d’angolo o finestra modale centrata.
  • Posizione: in alto o in basso nella pagina (per i layout barra e scheda).
  • Tema: chiaro, scuro o auto (segue la preferenza di sistema del visitatore tramite prefers-color-scheme).
  • Colore di accento: personalizza il colore del pulsante principale.

Su mobile (sotto i 640 px), il banner passa automaticamente a schermo intero per restare leggibile. Le animazioni rispettano prefers-reduced-motion.

Quattro categorie sono preconfigurate, ognuna con etichetta e descrizione modificabili:

  • Necessari (necessary) — sempre attivi, non disattivabili dal visitatore: carrello, sessione, sicurezza.
  • Funzionali (functional) — preferenze, lingua, chat.
  • Statistiche (analytics) — Google Analytics, Matomo, ecc.
  • Marketing (marketing) — Google Ads, Meta Pixel, remarketing.

Il titolo del banner, il testo introduttivo e le etichette dei quattro pulsanti (Accetta tutto, Rifiuta tutto, Personalizza, Salva le mie scelte) sono modificabili nelle impostazioni. Inserisci anche gli URL della tua privacy policy e della tua cookie policy — vengono mostrati come link discreti sotto i pulsanti. Tutti i testi passano attraverso le funzioni di traduzione di WordPress: il plugin viene fornito con 5 cataloghi (FR, EN, ES, DE, IT) e resta personalizzabile tramite Loco Translate.

È il cuore tecnico del plugin. Da marzo 2024, Google richiede che i siti europei emettano i 7 segnali Consent Mode v2 per continuare a misurare le conversioni Google Ads e costruire i pubblici GA4.

Come funziona

Il plugin stampa un blocco gtag('consent', 'default', ...) nell’head HTML con la priorità 1 di wp_head — cioè prima di qualsiasi container GTM o tag GA4 caricato in modo standard. I 7 segnali emessi:

  • ad_storage, ad_user_data, ad_personalization — controllati dalla categoria Marketing
  • analytics_storage — controllato dalla categoria Statistiche
  • functionality_storage, personalization_storage — controllati dalla categoria Funzionali
  • security_storage — sempre granted (raccomandazione Google)

La mappatura categorie → segnali è automatica: nessuna configurazione manuale necessaria. Quando il visitatore fa la sua scelta, viene emesso immediatamente un gtag('consent', 'update', ...) e la scelta viene riapplicata come stato predefinito in ogni pagina successiva.

  • Regione EEA: di default, il deny rigoroso si applica solo ai 31 paesi del SEE (più Regno Unito e Svizzera) tramite il parametro region di gtag — il resto del mondo resta su granted. Rilevamento nativo di Cloudflare tramite l’header CF-IPCountry.
  • url_passthrough: attivato di default. Conserva gli identificatori di clic gclid e dclid negli URL anche in caso di rifiuto, permettendo la misurazione delle conversioni senza cookie.
  • ads_data_redaction: attivato di default. Oscura i dati utente inviati a Google quando ad_storage è su denied.
  • wait_for_update: 500 ms di default. Attesa concessa ai tag Google per l’aggiornamento del consenso.

Verificare che tutto funzioni

  1. Apri il tuo sito in navigazione privata, apri la console del browser e digita dataLayer: devi vedere la voce consent default prima della voce gtm.js.
  2. In Google Tag Assistant o nella modalità Preview di GTM, la scheda Consent deve mostrare i 7 segnali con il loro stato.
  3. Accetta il banner e digita di nuovo dataLayer: deve apparire una voce consent update con i nuovi stati.

Audit di conformità

La pagina Cookie Consent → Audit avvia una scansione che recupera la tua homepage e analizza l’HTML realmente servito.

Cosa rileva la scansione

  • 23 tracker noti: Google Analytics 4, GTM, Meta Pixel, TikTok, LinkedIn, Pinterest, Snapchat, Twitter/X, Bing UET, Matomo, Microsoft Clarity, Hotjar, Mixpanel, Plausible, HubSpot, Intercom, Crisp, Tawk, YouTube, Vimeo, Stripe e altri — ognuno classificato nella sua categoria di consenso attesa.
  • 11 plugin WordPress a rischio: MonsterInsights, Site Kit, PixelYourSite, Facebook/Pinterest/TikTok for WooCommerce, HubSpot, MC4WP e altri plugin che iniettano tracker per conto proprio.
  • Cookie lato server: snapshot con identificazione automatica del vendor (_ga, _fbp, _gcl, ecc.).

Punteggio e raccomandazioni

La scansione produce un punteggio di conformità da 0 a 100 basato sulla differenza tra le categorie dichiarate e i tracker realmente rilevati. I problemi sono classificati in tre livelli — critical, warning, info — ognuno con una raccomandazione attuabile (per esempio: un tracker di marketing rilevato mentre la categoria è disattivata nel banner). Una scansione automatica gira anche in background tramite il cron dfcc_cron_scan_trackers.

Registro dei consensi

La pagina Cookie Consent → Registro elenca ogni evento di consenso salvato nella tabella dedicata wp_dfcc_consent_log.

Dati registrati

  • Timestamp UTC, UID anonimo persistente (tracciabilità multi-evento dello stesso visitatore)
  • Tipo di evento: accept_all, reject_all, custom, withdraw
  • Stato completo per categoria, versione dell’informativa e del banner
  • IP doppiamente protetto: hash SHA-256 con il salt casuale generato all’attivazione (irreversibile), più IP troncato a /24 (IPv4) o /64 (IPv6) per analisi anonima
  • User agent, URL della pagina, referer, regione, lingua, user_id di WordPress se connesso

Filtri ed esportazione

Filtra per periodo, tipo di evento o UID, quindi esporta in CSV (BOM UTF-8, separatore punto e virgola — si apre direttamente in Excel francese) o in JSON pretty. Queste esportazioni costituiscono la tua prova del consenso in caso di ispezione della CNIL o del Garante per la protezione dei dati personali.

Conservazione

Di default, il registro viene conservato 1825 giorni (5 anni, durata raccomandata dalla CNIL). La purge automatica gira ogni notte tramite il cron dfcc_cron_purge_logs. La conservazione è regolabile nelle impostazioni. Da notare: la disattivazione del plugin conserva i log (prova del consenso); solo la disinstallazione completa tramite Plugin → Elimina rimuove la tabella, le opzioni e i cron.

La normativa richiede che il visitatore possa modificare la sua scelta in qualsiasi momento. Due opzioni:

  • Shortcode: inserisci Gestisci i miei cookie in un widget o menu del footer — genera un link che riapre la modale di personalizzazione.
  • API JavaScript: chiama window.dfcc.open() da qualsiasi elemento del tuo tema.

API per sviluppatori

API JavaScript

L’oggetto globale window.dfcc espone:

  • dfcc.open() — apre la modale di personalizzazione
  • dfcc.accept() — accetta tutte le categorie
  • dfcc.reject() — rifiuta tutte le categorie opzionali
  • dfcc.withdraw() — revoca il consenso (viene registrato un evento withdraw)
  • dfcc.getConsent() — restituisce lo stato completo del consenso
  • dfcc.hasConsent('analytics') — verifica una categoria specifica (utile per condizionare i tuoi script)

Endpoint REST

Un endpoint POST è disponibile su wp-json/dfcc/v1/consent per registrare un evento di consenso dal tuo codice (protetto da nonce).

Hook WordPress

  • dfcc_before_banner_render — action attivata prima del rendering del banner (per nasconderlo su certe pagine per esempio)
  • dfcc_after_consent_logged — action attivata dopo ogni scrittura nel registro (per sincronizzare un CRM per esempio)
  • dfcc_consent_mode_defaults — filtro sugli stati predefiniti dei 7 segnali Consent Mode
  • dfcc_scan_trackers_patterns — filtro per aggiungere i tuoi pattern di rilevamento allo scanner

Risoluzione dei problemi

  • I segnali Consent Mode non appaiono prima di GTM: verifica che nessun plugin di performance sposti o differisca gli script dell’head. Il blocco dfcc-consent-mode-default deve restare inline e non differito.
  • Il banner riappare a ogni visita: verifica che un sistema di cache non stia servendo una pagina congelata con un vecchio cookie, e che la durata del cookie non sia a 0.
  • La scansione di audit fallisce: il server deve poter fare una richiesta HTTP alla propria homepage. Su alcuni hosting con loopback bloccato, autorizza le richieste locali o verifica il firewall.
  • Gli IP registrati sono quelli di Cloudflare: il plugin legge CF-Connecting-IP in via prioritaria — se il problema persiste, verifica che la tua configurazione server trasmetta gli header di Cloudflare.
Questa pagina ti è stata utile?

Ancora bloccato? Contatta l'assistenza