[AGGIORNATO 22 NOVEMBRE 2019]
Se sei qui significa che hai già sentito parlare del servizio di CookieBot per gestire la GDPR sul tuo sito e lo vorresti installare con Google Tag Manager.
Devo darti due notizie, una buona (evviva!) e una cattiva (doh!).
La buona notizia è che esiste anche una guida ufficiale di CookieBot su come installarlo con Google Tag Manager (trovi il link in fondo a questa guida). Questa è un’ottima cosa perché i proprietari del servizio hanno capito che Google Tag Manager è ormai indispensabile per gestire i tracciamenti nei siti.
Però ahimè c’è la cattiva notizia. La cattiva notizia è che la guida da loro indicata non è esattamente performante al 100%, perché non tiene conto di alcuni dettagli del funzionamento tecnico di Google Tag Manager, facendone perdere uno dei benefici principali.
In altre parole la guida ufficiale va a creare dei malfunzionamenti che andrebbero a influenzare anche gli altri Tag del tuo contenitore.
Quale dettaglio? Te lo dico fra un po’ 😉
In poche parole ho provato la guida, ci ho pensato e ripensato. Non mi piaceva. E ho deciso di metterci mano io per risolvere questo problemino (beh, problemone in realtà).
Grazie ai miei #barbatrucchi (e una notte insonne) sono riuscito a renderla più performante senza perdere le potenzialità di Google Tag Manager.
Ora ti elenco cosa dice la guida ufficiale e poi cosa io ho cambiato e come l’ho ottimizzata 😉
La prima cosa che la guida dice di fare è installare lo script JavaScript per far funzionare CookieBot. Attenzione dovrai cambiare il codice Id con quello che hai all’interno del pannello CookieBot nella tab “I tuoi script”:
Ora che hai trovato il codice del tuo CookieBot dovrai inserirlo in uno script dentro a un Tag di tipo HTML personalizzato.
Lo script è il seguente:
<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js?cbid=00000000-0000-0000-0000-000000000000" type="text/javascript"></script>
<script>
function CookiebotCallback_OnAccept() {
if (Cookiebot.consent.preferences)
dataLayer.push({'event':'cookieconsent_preferences'});
if (Cookiebot.consent.statistics)
dataLayer.push({'event':'cookieconsent_statistics'});
if (Cookiebot.consent.marketing)
dataLayer.push({'event':'cookieconsent_marketing'});
}
</script>
Cosa fa questo script? Semplice 🙂
Crea tre eventi personalizzati a seconda della scelta dell’utente sui cookie di:
Probabilmente hai già intuito il prossimo step, vero?
Ora che lo script genera questi tre eventi personalizzati li dobbiamo catturare con altrettanti Attivatori di tipo Evento Personalizzato.
Faremo la stessa cosa per gli altri due eventi: cookieconsent_statistics e cookieconsent_marketing
Ora che abbiamo creato i 3 eventi, non ci resta che eliminare gli attivatori di tipo “Visualizzazione di pagina” (ovvero Finestra Caricata, Pronto per il DOM e Visualizzazione di Pagina) precedentemente presenti nei Tag, e sostituirli con i 3 eventi che abbiamo creato.
Ad esempio puoi collegarli a questi Tag:
Qui sotto riporto l’esempio del PageView di Google Analytics.
Ma come facciamo a gestire tutti gli altri attivatori come ad esempio un Attivatore sulla pagina della privacy (nella loro guida fanno questo esempio, ma per farti capire potrebbe essere un Attivatore per la thank you page)?
La guida ufficiale ci dice di aggiungere l’evento come parametro di filtro dell’attivatore:
Ma se devo gestire altri attivatori, ad esempio click o un link, come diavolo faccio?
La guida ci suggerisce di creare delle variabili di tipo JavaScript personalizzato che andranno a rilevare le scelte degli utenti sulle tipologie di cookie che vogliono ricevere.
function() { return Cookiebot.consent.marketing.toString(); }
La stessa cosa va replicata per preferenze e statistiche con Cookiebot.consent.preferences.toString() e Cookiebot.consent.statistics.toString().
La funzione restituirà true o false.
Il problema di questa versione è che il JavaScript riceverà il valore solo dopo l’evento Window Loaded (finestra caricata) e quindi tutti i Tag dovranno essere gestiti DOPO l’evento Window Loaded.
Come vedi in Page View e DOM Ready è ancora undefined.
Quindi in pratica perdiamo tutti gli eventi nativi di Google Tag Manager (Page View e DOM Ready) perché dovremo accendere i Tag solo DOPO AVER VERIFICATO la variabile di tipo JavaScript.
Trovo assurdo dover rinunciare a Page View e DOM Ready, andando a incasinare gli eventi personalizzati a loro collegati.
In altre parole, la guida proposta da Cookiebot non è performante. Non mi piace assolutamente.
Se posso descriverla con una parola: bleah.
Mi sono detto, col cavolo che rinuncio agli eventi nativi di Google Tag Manager per gestire la GDPR.
Dopo un bel po’ di sbattimento (e ripeto una notte insonne) sono riuscito ad ottimizzare questa guida con pochissime righe di codice in più e gestendo le tre variabili diverse.
Sei pronto?
Prima di tutto crea una variabile che contenga il codice del tuo CookieBot Id che abbiamo prelevato con il precedente STEP 1.
Questa costante ci servirà dopo 🙂
Ora ci serviranno altre quattro variabili personalizzate:
Il buon CookieBot ha un cookie contenente i valori delle scelte dell’utente. Il cookie si chiama CookieConsent:
A questo punti non ci resta che prendere quel cookie con Google Tag Manager attraverso una variabile. Farlo è abbastanza semplice 🙂
Ora che abbiamo una variabile contenente il Cookie delle preferenze possiamo creare tre variabili per gestire i valori. Per farlo useremo un po’ di astuzia e di espressioni regolari 😉
Ripeteremo la stessa procedura per le altre due variabili CookieConsent.statistics e CookieConsent.preferences, stando attento a cambiare anche i valori nel campo “Pattern”.
Uhhh… aspetta, ora te lo dico.
Avremo il valore della preferenza dell’utente ben prima del Window Loaded. In altre parole non ci saranno più problemi nella gestione degli eventi predefiniti di Google Tag Manager.
Yuppieeeeeeee!
La procedura è simile allo step 1 errato ma con qualche accorgimento 🙂
[Aggiornamento di Cookiebot da novembre 2019]
Cookiebot ha creato un proprio modello, ovvero un Tag creato da loro, che esegue un push (probabilmente vedendo la mia guida) tre eventi:
Di fatto però questi tre eventi risultano ancora non assolutamente performanti. Quindi il mio suggerimento è lasciarli stare (far finta che non esistano) e continuare ad usare questa mia guida. La differenza tra i miei e i suoi è un carattere underscore “_” che ho segnato in rosso.
Lo script da installare è semplicemente seguente:
<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js?cbid={{CookieBotId}}" type="text/javascript"></script> <script> function CookiebotCallback_OnAccept() { if ((Cookiebot.consent.preferences) && ({{CookieConsent.preferences}} != "true")) dataLayer.push({'event':'cookieconsent_preferences'}); if ((Cookiebot.consent.statistics) && {{CookieConsent.statistics}} != "true") dataLayer.push({'event':'cookieconsent_statistics'}); if ((Cookiebot.consent.marketing) && {{CookieConsent.marketing}} != "true") dataLayer.push({'event':'cookieconsent_marketing'}); } </script>
Per prima cosa ho impostato che questo Tag si attivi solo una volta per pagina (così evitiamo che venga caricato due volte).
Passiamo alla seconda modifica. Se hai notato ho inserito un’altra condizione prima di ogni push nel dataLayer. In questo modo adesso ci sono due condizioni:
In altre parole l’evento personalizzato sarà pushato solo se l’utente possiede già il CookieConsent (e quindi ha già espresso la sua preferenza su quali tipi di cookie accettare) e se quel tipo di cookie (preferenze, statistiche o marketing) NON è stato accettato.
Perché questo? Te lo spiego nei prossimi step.
Questo era l’unico step veramente utile nella guida precedente.
Ora che lo script genera questi tre eventi personalizzati li dobbiamo catturare con altrettanti Attivatori di tipo Evento Personalizzato.
Faremo la stessa cosa per gli altri due eventi: cookieconsent_statistics e cookieconsent_marketing
Oltre agli Attivatori dello STEP 5, dovremmo creare degli attivatori con logica contraria.
Io di solito li chiamo attivatori negativi. Ci serviranno per metterli come attivatori di tipo eccezione nei Tag più comuni.
Lo stesso faremo per statistics e preferences.
L’esempio appena visto vale solo per la visualizzazione di pagina. Ma se avessi dei tag che si attivano su click o qualsiasi altro tipo di attivatore come facciamo?
Ora te lo spiego 🙂
Il mio consiglio è di creare questi tre attivatori negativi universali e di metterli sempre in eccezione ai vari tag 🙂
Grazie alla combinazione di Attivatori di tipo evento personalizzato e Attivatori negativi possiamo gestire tranquillamente qualsiasi tipo di Tag, considerandoli divisi in due categorie:
Vediamo come gestire il classico pageview di Google Analytics.
Per essere in regola con la GDPR ti basterà semplicemente aggiungere due attivatori:
“Tutto qui?!”
Yep. Tutto qui. Il Tag ora si attiverà nel Pageview, nel caso in cui c’è il consenso esplicito dell’utente (in questo caso solo quando l’utente accetta i cookie statistici).
Ma è una figata! E per eventi che non sono di tipo pagina come faccio? Per esempio in un click?
Qui, ragazzo mio, dovrai tirarti su le maniche e inserire sempre la condizione all’interno dell’attivatore. Ad esempio su questo attivatore che monitora il click sui link di tipo mailto ed collegato ad un tag di Google Analytics di tipo evento dovremmo aggiungere la condizione che l’utente abbia già accettato la condizione dei cookie statistici.
Ricordati di cliccare sempre sul pulsante blu “Invia” per pubblicare le tue modifiche.
Grazie a CookieBot riusciamo a gestire in modo davvero semplice la GDPR a livello tecnico.
Fortunatamente è possibile gestire tutto alla grande con Google Tag Manager (e alla mia guida ottimizzata).
Se hai necessità di una consulenza posso fornirtela solo nel caso in cui tu sia iscritto a CookieBot attraverso questo link: CookieBot Tag Manager Italia.
Inoltre i membri del Club Tag Manager Italia (oltre ad avere delle priorità di risposta) avranno video tutorial e i template di Google Tag Manager pronti da importare. Se anche tu vuoi farne parte lasciami un commento 😉
Negli ultimi mesi hai notato in Google Analytics 4 un calo improvviso e inspiegabile nelle…
Se ti trovi su questa guida è perché hai compreso che solo attraverso la Data…
Greenpeace è un'associazione globale che con azioni dirette e concrete denuncia i problemi ambientali e…
Da quando hai configurato la Consent Mode v2 (CM v2) hai notato cali improvvisi o…
Premesso che non è possibile conoscere l'esatto funzionamento né di Chrome, né degli algoritmi di…
Da quale canale di marketing arriva il maggior numero di conversioni? Quale campagna di marketing…
View Comments
Ciao Matteo,
abbiamo implementato per un cliente questo tipo di configurazione con Cookiebot e funziona alla grande perché permette l'attivazione dei giusti tag solo in presenza dei permessi specifici.
Ci chiedevamo però se in questo modo GA4 riesca a elaborare la stima del traffico e delle conversioni degli utenti che rifiutano i cookie tramite il Conversion Modeling:
https://ken-williams.com/guide/overview/how-conversions-are-modeled-in-google-analytics-4/
Che ne pensi? Hai avuto modo di testarlo?
Grazie mille,
Ciao Sergio :)
Mi fa piacere che la mia guida ti sia stata utile.
Per quanto riguarda il Conversion Modeling, come cita la guida ufficiale (https://support.google.com/analytics/answer/11161109), le condizioni per poterla utilizzare sono:
Se la tua proprietà risulta quindi idonea all’utilizzo del conversion modeling e tu scegli di abilitarlo, in ogni report alla destra del nome ti verrà indicato se il report comprenderà dei dati modellati o meno.
Per un approfondimento su Consent Mode e tutto il mondo che gli gira attorno ti consiglio di valutare di acquistare il nostro corso Clear Consent dove approfondisco molto nel dettaglio questo tema.
A presto e... Buon Tag!
A presto e buon Tag!
CIao Matteo,
mi sono da poco iscritto al club, notevoli i tuoi contenuti!
Sto implementando sul mio sito GTM per rendermi autonomo nella gestione e inserimento di tag rispetto ai tecnici
che gestiscono il sito che è su un server non mio.
Sul sito erano presenti ( li ho fatti rimuovere ) i tag di GA Universal, ADS Remarketing e il Pixel di Facebook.
Ho delle campagne che funzionano da anni per le quali rilevo dati sia da ADS che da GA, su ques'ultimo ci sono impostate buona parte degli obiettivi di conversione.
Ho impostato il tag di GTM e ho fatto i primi test con GA.
Non ho inserito al momento il codice preliminare per i consensi e neanche quello dei datalayer.
Era mia intenzione verificare il funzionamento "base" .
Ebbene, se effettuo una visualizzazione da uno qualsiasi dei miei computer ( anche quelli remoti) visualizzo la presenza attraverso la home ( tempo reale ) di GA, la preview di GTA mi conferma che è tutto fired. Ma non ricevo più , se non pochissima roba, da parte di utenti provenienti dalle campagne. Vedo, difatti, da ADS che le campagne performano, ma non ritrovo risultati in Analytics e in ADS le colonne derivanti da GA ( rimbalzi, conversioni, tempi di permanzenza, etc) non vengono popolate.
Ha a che fare con la gestione dei consensi, che però è la stessa anche prima dell'installazione di GTM, o devo ricercare da qualche altra parte questo malfunzionamento?
Ciao Franco! Puoi usare il gruppo privato dedicato ai membri del Club Tag Manager Italia per un'assistenza più rapida ;)
In ogni caso a naso sembra che tu abbia un problema relativo al Consent Mode (puoi trovare informazioni nel corso Clear Consent che trovi nella sezione GDPR).
Fammi sapere :)
Ciao MAtteo,
fantastica guida come sempre.
Che come sempre ho seguito pedissequamente.
Ho solo un problema.
Se in Cookiebot deseleziono "Statistiche", Tag Manager continua a tracciarmi Analytics, cosa che non è compliant.
Secondo te in quale errore incappo?
Grazie
Ciao Fausto, c'è da capire se intendi GA3 o GA4. In entrambi i casi li puoi configurare per renderli "compliant" (solo per il garante italiano).
Nel caso non volessi comunque far attivare il servizio di Google Analytics, ti basterà mettere l'attivatore negativo relativo ai cookie statistici in eccezione al Tag.
Fammi sapere!
Ciao Matteo!
Ottima guida, complimenti!
Non so se era un refuso nella guida, ma dove hai scritto nome evento è uguale a "cookieconsent_statistics" non mi faceva partire l'evento. Andando poi a fare debug, come nome evento mi dava "cookie_consent_statistics", sono quindi andata a cambiarlo anche nel nome dell'evento personalizzato e tutto è andato liscio. Non so poi se è uguale anche con preferences. era un refuso?
Grazie mille!
Ciao Chiara, dipende come hai implementato Cookiebot :) Lui usa degli eventi con due underscore "_" mentre il Tag custom HTML che trovi nella guida invia con un solo underscore. Ci sono più modi per gestire Cookiebot (nel Club e nel corso Clear Consent è presente anche l'implementazione con la Consent Mode).
L'importante è che tu abbia raggiunto il risultato :)
A presto!
Ciao Matteo,
ho seguito le istruzioni riportate in questa guida per completare l'implementazione dei Tag di configurazione e di eventi di GA4 su un sito appena pubblicato e dove è stato installato Cookiebot, usando quindi gli attivatori dei cookie in eccezione (in questo caso statistici) come avrei fatto se su questo sito fosse in uso Universal Analytics.
È un approccio corretto o per Analytics 4 sono necessarie ulteriore implementazioni o configurazioni diverse lato Cookiebot?
Grazie per l'aiuto e per le tue preziose guide!
Chiara
Ciao Chiara, no è il medesimo. Tieni presente che GA4 ha l'anonymize attivo di default e per il garante italiano risulta un cookie tecnico ;)
PS: Ti consiglio di guardarti questa MasterClass gratuita di 3 ore su GA4: https://club.tagmanageritalia.it/masterclass-gratuita-addio-google-analytics-benvenuto-google-analytics-4/
Buon Tag!
Ciao Matteo,
Come al solito grande guida. La guida proposta da Cookiebot non mi faceva registrare le conversione su GA Universal mentre sul GA4 tutto regolare. Con la tua invece nessun problema a parte il Bounce Rate che quando attivo il tag Cookiebot mi sballa il dato. Hai qualche consiglio in merito?
Grazie.
Ciao Riccardo,
Riusciresti a postare la tua domanda sul gruppo Facebook di Tag Manager Italia https://www.facebook.com/groups/TagManagerItalia?
Aggiungi pure qualche screen in cui mostri nel dettaglio il problema del Bounce Rate.
Grazie!
Ciao Matteo, complimenti per la guida.
Ho seguito i passi, uno per uno, e configurato il GTM. Oggi, a distanza di circa 3 giorni, mi trovo con le conversioni sballate... 370 acquisti contro i 30 effettivi. Secondo te a cosa è dovuto?
Grazie!
Ciao Giorgia, stai attenta a non aver messo l'attivatore di marketing al tag di conversione.
Fammi sapere!
Ciao Matteo, cosa ne pensi del modello Cookiebot CMP presente in GTM? Questa procedura che spieghi sopra è sempre attuale e preferibile agli automatismi di Cookiebot? Grazie mille!
Penso che sia non del tutto completo :) Infatti attualmente lo forzo. Rimane comunque valida questa alternativa :)
Scusa Matteo, ho visto che in realtà la guida è aggiornata con questa info ;-)
Top! Grazie grazie
Uh bene :D
Perché complicarsi la vita?
L'installazione ufficiale viene con una variabile che contiene i valori scelti dall'utente con questo formato "|preferences|statistics|marketing|" utilizzabile per l'attivazione contestuale dei trigger.
Saluti
A.
Ciao Andrea, non ho capito al posto di cosa andrebbe questo attivatore. Se fai così significa che se l'utente clicca una sola delle spunte attiva comunque tutto.
Fammi sapere perché come lo hai esposto non mi è chiaro.
A presto!
Ciao Matteo, scusa la domanda ovvia: per Tag come Facebook che sono segnati come "Marketing" dovrò mettere solo l'eccezione "CookieConsent.marketing NON accettato" o anche "preferences" e "statistics"?
Magari non è il luogo per chiederti questa cosa, ma ci provo lo stesso = per GDPR un cookie non può aver più di un anno di vita e alcuni mi vengono segnalati con una vita di 1000+ giorni. Come posso modificarlo?
Grazie per le tue sempre utilissime guide!
Ciao Gianluca, solo marketing :)
Per modificare i cookie li devi fare lato programmazione (anche con Javascript) o attraverso la configurazione dei singoli servizi.
A presto e buon Tag!