In questa guida ti mostrerò come gestire la Cookie Law e il GDPR attraverso lo strumento di OneTrust con Google Tag Manager in maniera corretta e ottimizzata.
Vedremo assieme step by step come implementare gli script, gli attivatori direttamente su GTM. Sei pronto?
La prima cosa che devi fare è ovviamente recuperare lo script di OneTrust. Per farlo basterà collegarti con il tuo account su https://app-eu.onetrust.com.
Una volta che hai fatto l’accesso, per trovare lo script clicca sul modulo Cookie Consent.
Successivamente, dal menù clicca Script Integration. Ecco che per magia escono un po’ di parametri 🙂
Tieni aperta questa pagina per dopo, adesso da Tag Manager crea il Tag per iniettare lo script.
<!-- OneTrust Cookies Consent Notice (my-domain.com) start --> <script src="https://optanon.blob.core.windows.net/consent/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.js" type="text/javascript" charset="UTF-8"></script> <script type="text/javascript"> function OptanonWrapper() { window.dataLayer = window.dataLayer || []; window.dataLayer.push({event: 'OneTrustGroupsUpdated'}); } </script> <!-- OneTrust Cookies Consent Notice (my-domain.com) end -->
Fino ad ora era facile, ora inizia il divertimento.
I Cookie sono raggruppati attraverso delle categorie. Ad esempio nel mio caso:
La bellezza di OneTrust rispetto a CookieBot o Iubenda è che puoi completamente personalizzare le categorie e le sottocategorie direttamente dall’interfaccia di OneTrust per suddividere ulteriormente i cookie in piccole parti. Ad esempio, potremmo creare una nuova categoria Video Cookies dove includere tutti i cookie provenienti da sorgenti video.
Figo no? 🙂
Lo scopo di questa categorizzazione è informare l’utente attraverso il banner per il consenso dei cookie e di fargli vedere che tipo di cookie ci sono nel sito, decidendo quindi se bloccare o accettare una determinata categoria.
Viva la granularità!
Le preferenze dell’utente sono rese permanenti grazie ad un cookie che viene installato nel browser (un po’ come fanno tutti gli altri. Attenzione però al Cookiegeddon!) su questo cookie “speciale” si baseranno gli Attivatori che creerai con Tag Manager per gestire la Cookie Law.
Torniamo su Google Tag Manager. Andiamo a creare una variabile di tipo cookie con lo scopo di ciucciare le preferenze che l’utente andrà a dichiarare.
Psssss… ti anticipo già che si chiama OptanonConsent.
‘Spetta… questo non è un vero e proprio step. Diciamo che è una specie di bonus che ci servirà per comprendere meglio come diavolo funzionano i valori del Cookie OptanonConsent.
Facciamo un po’ di teoria.
Il cookie contiene una serie di informazioni simile a questo:
....version=4.6.0&EU=true&groups=1:1,2:1,4:0,0_83143:0,0_83144:0,0_83145:0
Nella parte segnata in grassetto e in rosso sono presenti le preferenze specifiche per ogni categoria divise tra di loro (te le ricordi? Proprio quelle che hai creato prima!), che sono formattate secondo due semplici regole:
Ok, ma cos’è questo Id Categoria?
Uhhh, ora te lo spiego 🙂
Riprendiamo OneTrust nella sezione di prima e presta attenzione agli ID nella prima colonna. La magia sta tutta in quel numeretto. Attraverso questo numeretto, infatti, sarà possibile risalire alla categoria.
Figo, no?
Facciamo un altro esempio. Il cookie di OptanonConsent generato al momento del consenso dà queste informazioni:
Facile no? Uhh sì, dai che è più facile ora.
Se mi conosci, sai che sono un perfezionista e non mi piace come questo cookie salva le informazioni.
Attraverso un #barbatrucco ho deciso di pulirlo 🙂
Prima di continuare, useremo un po’ di JavaScript per cambiare la struttura dei valori.
Andiamo su:
function() { cookie = {{Cookie - OptanonConsent}}; cookie = cookie.substring(cookie.indexOf('groups=')+7, cookie.length); return '|' + cookie.split(',').join('|') + '|'; }
Il contenuto di questa variabile sarà più o meno così, è scritto in modo diverso da prima ma ci aiuterà per la creazione degli attivatori.
|1:1|2:0|4:0|0_83143:0|0_83144:0|0_83145:0|
Non ti sembra più pulito? 🙂
A questo punto dovrai creare un doppio attivatore per ogni categoria.
Beh, non proprio tutte. Magari solo quelle principali.
Prendendo esempio dalla categoria dei cookie di Performance, identificabile dall’id 2, crea due attivatori: uno nel caso di accettazione e l’altro per gestire il rifiuto.
[Nota]: Fai attenzione agli ID, devi usare gli stessi che trovi nel pannello di controllo del tuo account OneTrust perché potrebbero essere diversi.
Crea l’altro attivatore negativo.
Se lo ritieni necessario, ripeti il procedimento per le altre categorie. Nel mio esempio potrebbe essere la categoria con id 4 Targeting Cookie.
Bene, ora hai tutto l’occorrente per gestire al meglio la Cookie Law con OneTrust. Non ti resta che applicare gli Attivatori in modo corretto nei tag del tuo contenitore di Google Tag Manager.
Facciamo l’esempio con Google Analytics. Nel tag relativo al Pageview (è solo un esempio). La regola di base da seguire è questa:
Insomma, la stessa logica usata per CookieBot e Iubenda 🙂
Modifica il tag, o i tag, nel seguente modo:
Riepilogando:
Prima di pubblicare fai un controllo completo della configurazione con la modalità di debug e anteprima.
Fai queste serie di controlli.
Perfetto, quando hai verificato tutto puoi pubblicare con il tasto blu “Invia“.
Yeah, ce l’hai fatta!
Fammi sapere se ti è tutto chiaro nei commenti 🙂
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
Buongiorno Matteo.
Io utilizzo ONE TRUST sul mio dominio.
A differenza di quanto indicato, io ho creato 3 attivatori per ogni tipologia di cookie:
ecco l'esempio per i Functional cookie
1- First Party Cookie - Active Functional - OT: evento personalizzato, SI attiva su "OptanonConsent" se contiene C0003:1
2- Functional Exception Trigger: Si attiva su "OnetrustActiveGroups" se non corrisponde a ,C0003,
3 - Functional Firing Trigger: si attiva su "OnetrustActiveGroups" se corrisponde a ,C0003,
poi ho altri riferimenti ma il succo è che ho 3 tipi di attivatori per ogni categoria di COOKIE: è corretto?
Ciao Cristina, se è sempre su C0003 significa che è quella la categoria quindi faranno a capo dello stesso trigger :D
Fammi sapere!
Ciao Matteo, grazie mille per la guida. Avrei però alcune cose da chiederti. La funzione javascript personalizzata non funziona più non so se per gli aggiornamenti che hanno apportato. Ho quindi deciso di procedere in modo differente ho notato che quando viene dato il consenso in corrispondenza dell'evento OneTrustGroupsUpdated il datalayer diventa il seguente:
event: "OneTrustGroupsUpdated",
gtm: {
uniqueEventId: 19,
start: 1646231618732,
element: "HTMLButtonElement: html.js.flexbox.flexboxlegacy.canvas" +
".canvastext.webgl.no-touch.geolocation.postmessage.webs" +
"qldatabase.indexeddb.hashchange.history.draganddrop.web" +
"sockets.rgba.hsla.multiplebgs.backgroundsize.borderimag" +
"e.borderradius.boxshadow.textshadow.opacity.cssanimatio" +
"ns.csscolumns.cssgradients.cssreflections.csstransforms" +
".csstransforms3d.csstransitions.fontface.generatedconte" +
"nt.video.audio.localstorage.sessionstorage.webworkers.n" +
"o-applicationcache.svg.inlinesvg.smil.svgclippaths > bo" +
"dy > div#onetrust-consent-sdk > div.otFlat.bottom.ot-wo" +
"-title.ot-buttons-fw#onetrust-banner-sdk > div > div.ot" +
"-sdk-container > div.ot-sdk-row > div.ot-sdk-three.ot-s" +
"dk-columns.has-reject-all-button#onetrust-button-group-" +
"parent > div#onetrust-button-group > button#onetrust-ac" +
"cept-btn-handler",
elementClasses: "",
elementId: "onetrust-accept-btn-handler",
elementTarget: "",
elementUrl: ""
},
OnetrustActiveGroups: ",C0001,C0002,C0003,C0004,",
OptanonActiveGroups: ",C0001,C0002,C0003,C0004,",
event_category: "Web Vitals",
event_action: "LCP",
event_value: 1767,
event_label: "v1-1646231621039-1490802101173",
optanonCategory: "OneTrust Cookie Consent",
optanonAction: "Banner Accept Cookies",
optanonLabel: undefined,
optanonValue: undefined,
developer_id: {dYWJhMj: true}
Sono quindi andato a creare una variabile datalayer OnetrustActiveGroups che riporta i valori dei diversi consensi. Come attivatore al tag di analytics ho messo quindi l'evento personalizzato più questa variabile che contiene ,C0001,C0002,C0003, è corretto? (non ho inserito il c0004 in quanto sono quelli pubblicitati). Come attivatore in seguito all'aggiornamento della cookie policy di gennaio ho quindi messo non più in or anche il page view ma solo questo, di modo che il tag si attivi solo in seguito ad accetazione cookie. Per quelli invece di google ads pensavo di mettere come attivatore solo la variabile c0004 come condizione.
Dici che può funzionare così?
Ciao Davide, come già detto (a breve aggiorneremo la guida) sono cambiati i nomi delle categorie mettendo un C000 davanti al valore precedente.
Ti basterà cambiare l'attivatore mettendo cj - Cookie Categories contains |C0004:1 come valore (ad esempio di targeting cookie)
Inoltre nel Tag HTML custom di onetust ti basterà togliere tutto quello dentro alla funzione.
DA COSI
function OptanonWrapper() {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({event: 'OneTrustGroupsUpdated'});
}
A COSI
function OptanonWrapper() { }
perché ora oneTrust fa da solo il push :)
fammi sapere!
Ciao Matteo, da quando ho installato OneTrust il bounce rate è completamente crollato, mentre prima indicava dati corretti.
Credo che quando l'utente accetti il consenso venga registrato come hit da interazione...
Come si può risolvere?
Grazie per il tuo lavoro!
Ciao Gianmarco,
Per caso stai monitorando tramite evento di Analytics l'accettazione del consenso da parte dell'utente?
In caso fosse così, ti basta utilizzare l'opzione "Not Interaction Hit" presente nel Tag evento e impostare su true.
Fammi sapere :)
La stringa del cookie mi sa che è cambiata, è così: |C0004:0|C0001:1|C0002:1|"
Sì, è cambiata :) Ma il meccanismo rimane lo stesso ;)
Grazie della segnalazione Cris
Ciao Matteo, grazie per l'ottima guida. Ho una domanda: i due attivatori andrebbero inseriti su ogni tag di tipo Analytics? (es. tracciamento di eventi come clic sul carrello, step del funnel, pagamenti, ecc.). Floodlight inclusi?
Grazie ancora
Ciao Fabio, li devi inserire nei tag che vuoi gestire. Nel dettaglio della tua domanda ti direi di sì su entrambi :)
Fammi sapere, a presto!