Consent Mode V2 utilizzando Complianz FREE e Google Tag Manager

Il Consent Mode V2 è una funzione introdotta da Google per aiutare i siti web a gestire il consenso degli utenti in modo conforme alle normative sulla privacy, come il GDPR. Consente ai proprietari dei siti di continuare a raccogliere dati anonimi per analisi e pubblicità anche quando gli utenti non danno il consenso ai cookie.

Questo approccio garantisce che i siti possano monitorare le performance delle loro campagne pubblicitarie e migliorare l’esperienza utente, rispettando al contempo le preferenze di privacy degli utenti. Come abbiamo scritto nell’articolo sulle novità introdotte dal Consent Mode V2, è un aspetto che dovrai affrontare.

Robot umanoide difende privacy
Riuscirà il robot umanoide del GDPR a difendere la privacy degli utenti con successo? Sicuramente ha una bella spada.

I vantaggi dell’utilizzo di Complianz FREE

Esistono diverse suite che permettono di gestire il cookie banner e quindi l’attivazione/disattivazione dei cookie, rispettando le preferenze dell’utente e nel complesso favorendo un web più trasparente (anche se a tratti antipatico e scocciante, diciamocelo).

Fra tutte queste Complianz è un plugin per WordPress particolarmente efficace, soprattutto perché utile nella gestione generativa della cookie policy, dove crea in modo abbastanza preciso e puntuale la lista dei cookie utilizzati, divisi per servizi: questa è una funzionalità molto utile che altri plugin offrono a pagamento, oppure solo manualmente.

Gli svantaggi di utilizzare Complianz FREE

Giunto alla versione 7.x, Complianz non permette ancora di gestire nativamente il Consent Mode V2, né direttamente, né attraverso Google Tag Manager, a meno di non associarlo a qualche altro plugin come GTM4WP o SiteKit.

Delle volte però è sconveniente utilizzare due plugin per fare la stessa cosa, soprattutto se non ci sono particolari esigenze, come per esempio il layer avanzato per i dati delle conversioni e la loro attribuzione, che solitamente è utile in casi molto avanzati, dove si gestiscono siti che raccolgono moltissimi dati, come per esempio e-commerce e lead-pages per successive analisi e valutazioni.

In tutti i casi dove questo non è necessario, possiamo attivare il Consent Mode V2 utilizzando Complianz FREE?

La risposta è si, con un po’ di sbatti ed alcuni caveat, ma si può fare. Vediamo come.

Prerequisiti

Requisiti di sistema

  • WordPress installato e aggiornato.
  • Plugin Complianz FREE installato e attivo
  • Google Tag Manager attivo e funzionante
  • Il container GTM di Complianz 7.0 a portata di mano (trovate il download in fondo alla pagina linkata)

Verifica delle impostazioni iniziali

Prima di iniziare, è importante verificare che il tema e gli altri plugin del tuo sito siano compatibili con Complianz e il Consent Mode V2. Questo garantirà una configurazione senza problemi e una corretta gestione del consenso.

Qua partiremo dall’assunto che hai già configurato Complianz con il tuo ID del contenitore GTM. Per fare questo è sufficiente seguire il Wizard previsto dal plugin.

Il problema principale nell’implementazione corrente di gtag, è che Complianz richiama la funzione gtag(‘config’, {G_code}) troppo presto nel codice javascript caricato sulla pagina, per cui dovremmo infilarci prima che questo venga richiamato e, per correttezza verso i nostri utenti, ritardare al punto giusto il caricamento dei Tag Google (e/o Meta) che ci interessano in Google Tag Manager.

Codice da aggiungere a functions.php

Fortunatamente, come ogni plugin che si rispetti, Complianz mette a disposizione parecchi hook utili per iniettare codice personalizzato dove ci serve.

Fra tutti gli hook, ‘cmplz_before_statistics_script’ viene eseguito prima del template javascript che richiama gtag(‘config’…), perciò è il punto ideale per inserirci.

Incollate perciò il codice che segue nel file functions.php del vostro child theme:

add_action('cmplz_before_statistics_script', 'cmplz_consent_v2');
function cmplz_consent_v2() { ?>
  <script type="text/javascript">
    
    window.dataLayer = window.dataLayer || [];
    
    function gtag(){
      dataLayer.push(arguments);
    }

    gtag('consent', 'default', {
      'security_storage': "granted",
      'functionality_storage': "granted",
      'personalization_storage': "denied",
      'analytics_storage': 'denied',
      'ad_storage': "denied",
      'ad_user_data': 'denied',
      'ad_personalization': 'denied',
    });

    function update_consent(e) {

      var consentedCategories = e.detail.categories;
      let preferences = 'denied';
      let statistics = 'denied';
      let marketing = 'denied';

      if (cmplz_in_array( 'preferences', consentedCategories )) {
        preferences = 'granted';
      }

      if (cmplz_in_array( 'statistics', consentedCategories )) {
        statistics = 'granted';
      }

      if (cmplz_in_array( 'marketing', consentedCategories )) {
        marketing = 'granted';
      }
      gtag('consent', 'update', {
        'security_storage': "granted",
        'functionality_storage': "granted",
        'personalization_storage': preferences,
        'analytics_storage': statistics,
        'ad_storage': marketing,
        'ad_user_data': marketing,
        'ad_personalization': marketing,
      });

    }

    document.addEventListener("cmplz_fire_categories", function (e) {

      update_consent(e)

    });

    document.addEventListener("cmplz_revoke", function (e) {
      gtag('consent', 'update', {
        'security_storage': "granted",
        'functionality_storage': "granted",
        'personalization_storage': "denied",
        'analytics_storage': 'denied',
        'ad_storage': "denied",
        'ad_user_data': 'denied',
        'ad_personalization': 'denied',
      });
    });

  </script>
  <?php
}

FUN FACT

il codice qui sopra viene in larga parte dal file gtag-consent-mode.js presente nella versione free del plugin Complianz, ma non viene utilizzato.

Vista la situazione è possibile immaginare che un giorno anche la versione FREE implementi una qualche forma di supporto nativa a Consent Mode V2.

NOTA #1

Trattandosi di codice trovato, abbiamo lasciato le impostazioni di consenso invariate: dovrete personalizzarle perciò secondo le vostre esigenze e credenze.

NOTA #2

Sappiamo che mettere del js dentro php nel 2024 non è bello, sappiamo che possiamo creare un file e metterlo in coda con wp_enqueue_script() e viene più pulito, sappiamo, sappiamo, sappiamo, ma questo è il modo più facile per raccontarlo e condividerlo.

Modifiche al contenitore GTM

Qui diamo per scontato che abbiate già importato il contenitore GTM personalizzato di Complianz (linkato all’inizio di questo articolo). Per favore non fatemi scrivere un tutorial su come fare questa cosa che ce ne sono 1000 ed è troppo lungo e tedioso rankare SEO con una banalità del genere, per cui cercatevi un video su Youtube oppure un bel blog post sull’argomento.

Creiamo due nuovi attivatori in GTM

Tornando a noi, come prima cosa, dobbiamo creare due nuovi attivatori di tipo DOM Ready (aka “Pronto per DOM” in Italiano):

  • Uno per le statistiche con GA4 (anonime e non, in funzione del consenso)
  • Uno per il Marketing cioè Google Ads (così potremmo avere i nostri audience personalizzati nelle nostre campagne).

Dentro Google Tag Manager, in Attivatori, creiamo il primo attivatore come segue:

Creazione attivatore Google Tag Manager - 1
Eccolo qua il nostro attivatore delayed per il marketinguzzo pirata ma che rispetta la privacy

La variabile (Advanced) Cookie – Marketing dovrebbe essere presente nel contenitore importato. Se non c’è avvisatemi perché magari l’hanno cambiato e posso aggiornare questo (fantastico, diciamolo) articolo. Questo attivatore servirà per il Tag di Google Ads.

Il secondo attivatore lo creiamo uguale, ma mantenendo la selezione su Tutti gli eventi pronti per DOM, come segue:

Questo attivatore anche rispetterà la privacy perché con il consent mode V2, GA4 raccoglierà (o non raccoglierà) i dati nella modalità concessa dal consenso

Associamo i Tag ai nuovi attivatori in GTM

Adesso, spostiamoci nel menu Tag in GTM e modifichiamo i due tag Google del modello: GA4 – Consent (Statistics) e GADS – Consent (Marketing). Dovremo rimuovere l’attivatore presente (verosimilmente vi troverete Consent – Statistics e Consent – Marketing impostati) mettendo i nostri, come segue:

Impostazione del tag Google Analytics 4
Clicca sull’immagine per ingrandirla
Impostazione del tag Google Ads
Clicca sull’immagine per ingrandirla

A questo punto, pubblichiamo il nostro contenitore e verifichiamo il funzionamento con Google Tag Assistant!

Certo ste frecce potevamo farle più belle

Dovremmo perciò trovarci con l’evento Consent Default eseguito fra i primi (davanti anche a Consent Initialization e Container Loaded). Seguono tutti gli eventi di Complianz, che aggiornano i cookie di riferimento ma non danno il via ai tag Google, e quindi Consent Update che aggiorna le informazioni di consenso in conseguenza.

Solo con DOM Ready vengono attivati i tag Google, in funzione delle preferenze: per esempio, se non avessimo prestato il consenso, Google Ads non sarebbe stato lanciato. GA4 invece raccoglierà i dati anonimamente o meno, in funzione delle preferenze di consenso impostate.

Se ci muoviamo nel tab Consent di Google tag Assistant possiamo anche verificare gli stati del consenso nel dettaglio:

Google Tag Manager verifica Consent Mode V2 Default
A livello di Container Loaded, i consensi prestati sono quelli base che abbiamo impostato come default (controllateli secondo il vostro caso!)
Google Tag Manager verifica Consent Mode V2 Update
Dopo l’evento Consent Update, i consensi prestati si aggiornano in funzione delle preferenze dell’utente.

Arrivati fin qui, se non abbiamo esigenze particolare, non dobbiamo fare altro.

Se la guida non ti è chiara oppure hai esigenze particolari, dove questa guida non arriva, puoi sempre contattarci per una consulenza, così eviti di perdere tempo in cose che non ti competono, perché non si può essere esperti di tutto 😉

Share this:

Lascia un commento

Utilizziamo i cookie per offrirti la migliore esperienza online. Puoi accettare o personalizzare l'uso dei cookie, in accordo con la nostra cookie e privacy policy!

Close Popup
Privacy Settings saved!
Impostazioni

Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Alcuni cookie possono essere disattivati, altri sono invece vitali per il funzionamento del sito web. Controlla qui le tue impostazioni.

Questi cookie sono necessari per il funzionamento del sito Web e non possono essere disattivati nei nostri sistemi.

Cookie tecnici
Per utilizzare questo sito web usiamo i seguenti cookie tecnici.
  • wordpress_test_cookie
  • wordpress_logged_in_
  • wordpress_sec
  • wp_lang
  • popup_closed

Salva le impostazioni
Accetta tutti i cookie