Categories: Guida Base

Guida Base: Come gestire la Cookie Law con OneTrust

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?

Step 1 – Recupera lo script

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 🙂

  • Clicca su > Production Single Location.
  • Copia lo script

Step 2 – Crea l’HTML Personalizzato

Tieni aperta questa pagina per dopo, adesso da Tag Manager crea il Tag per iniettare lo script.

  • Sezione Tag > Nuovo > HTML Personalizzato
  • Copia lo script all’interno, ma c’è da fare qualche modifica, sarà più o meno così:
<!-- 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 -->
  • In blu c’è la parte diversa; in rosso al posto delle x dovrai mettere l’ID corretto.
  • Apri le impostazioni avanzate, in Priorità di attivazione inserisci un numero alto 999999999999.
  • Opzioni di attivazioneUna volta per pagina“.
  • Attivatore imposta All Pages.
  • Salva come “cHTML – Cookie Banner Script”.

Le categorie di cookie

Fino ad ora era facile, ora inizia il divertimento.

I Cookie sono raggruppati attraverso delle categorie. Ad esempio nel mio caso:

  • Necessari
  • Performance
  • Targeting

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.

Step 3 – Crea la variabile cookie

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.

  • Sezione Variabili > Definite dall’utente > Nuova
  • Tipo Cookie Proprietario
  • Nome cookie: OptanonConsent
  • Attiva il flag: Decodifica in formato URI il cookie
  • Salva: Cookie – OptanonConsent

Struttura del cookie

‘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:

  • [Id Categoria]:0 ► La categoria è disattivata
  • [Id Categoria]:1 ► La categoria è attiva

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:

  • con 2:1 significa che ho acconsentito l’uso di cookie di Performance;
  • con 4:0 invece ho rifiutato l’uso di cookie per il Targeting.

Facile no? Uhh sì, dai che è più facile ora.

Step 4 – Ottimizziamo il cookie

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:

  • Sezione Variabili > Definite dall’utente > Nuova
  • Tipologia: Javascript personalizzato
  • Incolla questa funzione
function() {
  cookie = {{Cookie - OptanonConsent}};
  cookie = cookie.substring(cookie.indexOf('groups=')+7, cookie.length);
  return '|' + cookie.split(',').join('|') + '|';
}
  • Salva come ‘cj – Cookie Categories’

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? 🙂

Step 5 – Crea gli attivatori

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.

  • Sezione Attivatori > Nuovo
  • Tipologia: Evento personalizzato
  • Nome evento: inserisci OneTrustGroupsUpdated
  • Questo attivatore si attiva su: seleziona Alcuni eventi
  • Come condizione: imposta cj – Cookie Categories contiene |2:1|
  • Salva con Activate – Performance Cookies

Crea l’altro attivatore negativo.

  • Sezione Attivatori > Nuovo
  • Tipologia: Evento personalizzato
  • Nome evento: inserisci “.*” e attiva il flag Utilizza la corrispondenza con espressione regolare
  • Questo attivatore si attiva su: seleziona Alcuni eventi
  • Come condizione: imposta cj – Cookie Categories NON contiene |2:1|
  • Salva con Block – Performance Cookies

Se lo ritieni necessario, ripeti il procedimento per le altre categorie. Nel mio esempio potrebbe essere la categoria con id 4 Targeting Cookie.

Step 6 – Aggiorna i tag presenti su Google Tag Manager

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:

  • se la categoria di cookie è stata rifiutata, non bisogna inviare dati ad Analytics;
  • se la categoria è stata accettata, o anche se le preferenze vengono aggiornate con il consenso, possiamo iniziare ad inviare dati ad Analytics.

Insomma, la stessa logica usata per CookieBot e Iubenda 🙂

Modifica il tag, o i tag, nel seguente modo:

Riepilogando:

  • aggiungi l’attivatore Activate – Performance Cookies;
  • aggiungi l’attivatore in eccezione Block – Performance Cookies;
  • valuta se impostare la voce Opzioni di attivazione tag = Una volta per pagina, questo per evitare l’invio doppio di hit.

Step 7 – Verifica e pubblica

Prima di pubblicare fai un controllo completo della configurazione con la modalità di debug e anteprima.

Fai queste serie di controlli.

  • Verifica che venga caricato e visualizzato il banner per il consenso.

  • Accetta l’uso dei cookie e verifica che il tag di Analytics venga eseguito.

  • Fai la verifica contraria, cancella il cookie OptanonConsent dal tuo browser. Questa volta rifiuta il consenso: il tag di Analytics non deve partire.

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 🙂

Matteo Zambon

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 :)

    • 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!

Recent Posts

Caso studio: LUISAVIAROMA ottimizza il tracciamento dei dati Ecommerce e le performance Advertising grazie GA4 e BigQuery

LUISAVIAROMA è uno dei principali fashion e-tailer di lusso al mondo, con oltre 5 milioni…

3 ore ago

Caso studio: Mondo Convenienza realizza +85% di vendite ecommerce e +100% di conversioni aggiuntive per le campagne Meta Ads grazie GA4 e Server-Side Tracking

All’interno del vasto e competitivo mercato della Grande Distribuzione Organizzata (GDO), Mondo Convenienza rappresenta uno…

2 giorni ago

Come creare un report in GA4 per analizzare il funnel di conversione di un sito web o ecommerce

Se ti occupi di marketing o advertising, saprai che i funnel rappresentano il percorso che…

7 giorni ago

Attribuzioni errate in GA4: cause e soluzioni al problema

Negli ultimi mesi hai notato in Google Analytics 4 un calo improvviso e inspiegabile nelle…

4 mesi ago

Come creare una Dashboard Ecommerce per analizzare i dati degli acquisti Nuovi e di Ritorno

Se ti trovi su questa guida è perché hai compreso che solo attraverso la Data…

5 mesi ago