Finalmente pure Iubenda si è adeguata alla gestione di categoria dei Cookie come fanno altri servizi come Cookiebot o OneTrust.

Complice il fatto che è uscita una circolare ufficiale dell’European Data Protection Board  che dichiara in modo esplicito e senza alcun dubbio interpretativo che non si è a norma GDPR se il consenso NON è granulare e/o se si usa lo scroll come accettazione.

In altre parole da Maggio 2020 è possibile su Iubenda gestire il consenso di categoria in modo granulare. Evviva!

Certo, evviva… ma questo comporta delle leggerissime configurazioni in GTM.

Quali sono le categorie di Iubenda

Nella sua gestione standard, Iubenda dispone di 5 categorie:

Strettamente necessari (id 1)

Finalità incluse:

  • Salvataggio e gestione di backup
  • Hosting ed infrastruttura backend
  • Gestione di landing page e pagine di invito
  • Servizi di piattaforma e hosting
  • Protezione dallo SPAM
  • Ottimizzazione e distribuzione del traffico
  • Monitoraggio dell’infrastruttura
  • Gestione dei pagamenti

Interazioni e funzionalità semplici (id 2)

Finalità incluse:

  • Contattare l’Utente
  • Interazione con le piattaforme di live chat
  • Gestione di conferenze web e telefonia online
  • Gestione delle richieste di supporto e contatto
  • Interazione con le piattaforme di supporto e di feedback
  • Gestione dei tag
  • Registrazione ed autenticazione

Esperienza migliorata (id 3).

Finalità incluse:

  • Commento dei contenuti
  • Interazione con piattaforme di raccolta dati e altre terze parti
  • Visualizzazione di contenuti da piattaforme esterne
  • Interazione con social network e piattaforme esterne
  • Interazione con le piattaforme per sondaggi online
  • Gestione dei feed RSS
  • Funzionalità sociali

Misurazione (id 4).

Finalità incluse:

  • Statistica
  • Beta testing
  • Test di performance di contenuti e funzionalità (A/B testing)
  • Heat mapping e registrazione sessioni
  • Gestione della raccolta dati e dei sondaggi online

Targeting e pubblicità (id 5).

Finalità incluse:

  • Pubblicità
  • Infrastruttura al servizio pubblicitario
  • Affiliazione commerciale
  • Gestione contatti e invio di messaggi
  • Remarketing e behavioral targeting

Oh, che bravi hanno proprio fatto un elenco chiaro e a prova di male interpretazioni. Quindi nel banner apparirà una cosa simile:

iubenda banner consenso per categoria granulare

 

Ora che ci è tutto più chiaro iniziamo l’installazione con Google Tag Manager

Step 1 – Recupera lo script di Iubenda

Ti basta entrare nel profilo e generare lo script attraverso la voce “Cookie Solution“, fare le impostazioni del banner e scrollare più in basso.

Dovresti trovare una text area dove poter copiare il codice proprio come l’immagine qui sotto:

step 1 recupera lo script di Iubenda

Nel dettaglio il codice sarà una cosa simile a questa

<script type="text/javascript">
var _iub = _iub || [];
_iub.csConfiguration = {
      "consentOnContinuedBrowsing":false,
      "whitelabel":false,
      "lang":"it",
      "siteId":XXXXXXXX,
      "countryDetection":true,
      "perPurposeConsent":true,
      "cookiePolicyId":YYYYYYYYY,
      "cookiePolicyUrl":"demo.tagmanageitalia.it/esempio/", 
      "banner":{ 
             "acceptButtonDisplay":true,
             "customizeButtonDisplay":true,
             "position":"float-top-center",
             "rejectButtonDisplay":true 
             }
      };
</script>
<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

Ovviamente i parametri in rosso sono dinamici e variano a seconda di come hai configurato la cookie solution su Iubenda e il sito di destinazione (nel mio caso demo.tagmanageritalia.it). Nel mio caso il codice di cookiePolicyId è 20508754 (te lo dico perché lo rivedrai dopo) negli screenshot.

Potresti inoltre avere dei parametri in aggiunta o averne meno. Insomma tutto dipende da quello che configuri.

Ecco un altro esempio:

<script type="text/javascript">
var _iub = _iub || [];
_iub.csConfiguration = {
     "lang": "it",
     "siteId": XXXXXX, 
     "cookiePolicyId": YYYYYY,
     "banner": {
               "position": "float-top-center",
               "acceptButtonDisplay": true,
               "customizeButtonDisplay": true
               },
     };
</script>
<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

Come vedi i valori in rosso rimangono 🙂

STEP 2 – Modifica lo script per Google Tag Manager

Ora che hai lo script pronto dovrai aggiungere un pezzetto di codice che permetterà di istruire Google Tag Manager quando l’utente accetta o meno una delle cinque categorie. L’istruzione (guarda caso) avverrà attraverso un push nel dataLayer con un evento personalizzato.

La parte in blu è quella da aggiungere al tuo codice. Ci metto pure uno spazio apposta così da non poter sbagliare 🙂

l codice sarà una cosa simile a questa

<script type="text/javascript">
var _iub = _iub || [];
_iub.csConfiguration = {
      "consentOnContinuedBrowsing":false,
      "whitelabel":false,
      "lang":"it",
      "siteId":XXXXXXXX,
      "countryDetection":true,
      "perPurposeConsent":true,
      "cookiePolicyId":YYYYYYYYY,
      "cookiePolicyUrl":"demo.tagmanageitalia.it/esempio/", 
      "banner":{ 
             "acceptButtonDisplay":true,
             "customizeButtonDisplay":true,
             "position":"float-top-center",
             "rejectButtonDisplay":true 
             }
              ,
      callback: {
            onPreferenceExpressedOrNotNeeded: function(preference) {
                dataLayer.push({
                    iubenda_ccpa_opted_out: _iub.cs.api.isCcpaOptedOut()
                });
                if (!preference) {
                    dataLayer.push({
                        event: "iubenda_preference_not_needed"
                    });
                } else {
                    if (preference.consent === true) {
                        dataLayer.push({
                            event: "iubenda_consent_given"
                        });
                    } else if (preference.consent === false) {
                        dataLayer.push({
                            event: "iubenda_consent_rejected"
                        });
                    } else if (preference.purposes) {
                        for (var purposeId in preference.purposes) {
                            if (preference.purposes[purposeId] && ({{cookie iubenda}} === undefined || {{cookie iubenda}}.indexOf('"' + purposeId + '":true') < 0)){
                                dataLayer.push({
                                    event: "iubenda_consent_given_purpose_" + purposeId
                                });
                            }
                        }
                    }
                }
            }
        }
      
      };
</script>
<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

Ora non ci resta che inserirlo dentro un custom HTML 🙂

Step 3 – Crea un Tag HTML Personalizzato

Bene ora on ci resta che crearci il nostro bellissimo tag:

  • Tag > Nuovo > Configurazione tag.
  • Tipo di tag: Tag HTML personalizzato.
  • Incolla lo snippet di Iubenda.
  • Impostazioni avanzate > Priorità di attivazione > 99999
  • Opzione di attivazione >Una volta per pagina
  • Attivazione: All pages (Tutte le pagine)
  • Nome: Iubenda

Dovresti avere una cosa simile:

step 3 - crea custom html per il codice di iubenda per il consenso delle categorie

Step 4 – Creiamo una variabile di tipo Cookie

Per capire se l’utente ha accettato ile varie categorie di profilazione useremo un #barbatrucco ormai noto. Sappiamo che attraverso un cookie Iubenda si salverà i vari consensi e nei prossimi cambi pagina non farà più apparire la barra della gestione dei cookie.

Con Google Tag Manager è possibile andare a leggere questo cookie. Per semplicità ti dico che il cookie di Iubenda è fatto in questo modo:

_iub_cs-XXX

 

Dove XXX è il cookiePolicyId di Iubenda, quello dello snippet per capirci. Nel mio caso sarà sempre: 20508754

Quindi non ti resta che creare la Variabile:

  • Variabili > Nuova > Configurazione variabile.
  • Tipo di variabile: Cookie proprietario.
  • Nome Cookie:  _iub_cs-XXX
  • Flagga la voce Decodifica in formato URI il cookie.
  • Nomina la Variabile: “cookie iubenda”.

Dovresti avere una cosa simile:

iubenda step 2 variabile di tipo cookie

Bene, ora se mettiamo in Anteprima di Debug dovrebbe apparirci la barra dei cookie di iubenda. Nel mio esempio ho anche un tag di Google Analytics ancora da bloccare.

debug script iubenda con Google Tag Manager

Se se accettiamo tutto dovremmo vedere una serie di eventi personalizzati a sinistra e il cookie di iubenda valorizzato,

Nel dettaglio gli eventi si chiamano:

  • iubenda_consent_given_purpose_1
  • iubenda_consent_given_purpose_2
  • iubenda_consent_given_purpose_3
  • iubenda_consent_given_purpose_4
  • iubenda_consent_given_purpose_5

Che originalità 😀

Mentre il cookie avrà un valore del genere:

{"timestamp":"2020-06-11T12:46:23.993Z","version":"1.20.6","purposes":{"1":true,"2":true,"3":true,"4":true,"5":true},"id":20508754}

dunque analizziamo. Per comodità ho già messo in blu le varie tipologie che ci interessano:

  • timestamp = l’ora con cui l’utente ha accettato
  • version = la versione dello script di iubenda
  • purposes = oh ecco la cosa che ci interessa: le categorie accettate (con valore true) e quelle non accettate (con valore false)
  • id = è il solito cookiePolicyId 🙂

Quindi non ci resta che:

  • Creare 5 attivatori per i 5 eventi personalizzati di Iubenda
  • Creare 5 variabili per estrapolare il valore della categoria accettata che ora risiede dentro il Cookie
  • Creare 5 attivatori universali negativi che ci serviranno per essere suuuuuper dinamici nelle configurazioni.

Partiamo con la creazione dei 5 attivatori personalizzati.

Step 5 – Crea i cinque attivatori di tipo evento personalizzato

Sì, lo so… questo è un passaggio semplice ma un po’ monotono (lo dovrai fare 5 volte cambiando il nome).

Il concetto è molto semplice: il numero alla fine identifica la categoria:

  1. Strettamente necessari
  2. Interazioni e funzionalità semplici
  3. Esperienza migliorata
  4. Misurazione
  5. Targeting e pubblicità

Facciamolo per il primo iubenda_consent_given_purpose_1

  • Attivatore > Nuovo > Configurazione attivatore
  • Tipo Attivatore: Evento personalizzato
  • Nome evento: iubenda_consent_given_purpose_1
  • Questo attivatore su: Tutti gli eventi personalizzati
  • Inserisci come nome dell’Attivatore: “Iubenda 1 – Strettamente necessari”

Dovresti quindi avere una cosa simile:

Step 5 - Crea i cinque attivatori di tipo evento personalizzato iubenda_consent_given_purpose_1

Ottimo fai la stessa cosa per:

  • iubenda_consent_given_purpose_2 con nome “Iubenda 2 – Interazioni”
  • iubenda_consent_given_purpose_3 con nome “Iubenda 3 – Esperienza”
  • iubenda_consent_given_purpose_4 con nome “Iubenda 4 – Misurazione”
  • iubenda_consent_given_purpose_5 con nome “Iubenda 5 –  Targeting”

Eccoli tutti assieme

Step 5 - Crea i cinque attivatori personalizzati per iubenda

Ottimo, ora creiamo le 5 variabili che ci permetteranno di capire dal Cookie se l’utente ha accettato o no quella specifica categoria. Ci servirà per creare poi gli attivatori negativi universali 🙂

Step 6 – Crea le cinque variabili dei consensi per categoria

Visto che abbiamo una variabile contenente il Cookie delle preferenze possiamo creare cinque variabili per gestire tutte le categorie di consenso valori. Per farlo useremo un po’ di astuzia e di espressioni regolari 😉

  • Variabili > Variabili definite dall’utente > Nuova.
  • Tipo di Variabile: Tabella delle espressioni regolari
  • Valore input: {{cookie iubenda}}
  • Pattern: "1":true ► Output: true
  • Pattern: "1":false ► Output: false
  • Advanced Settings: Flaggare solo ignora maiuscole e minuscole
  • Nome Variabile:  cookie.purpose 1 – Strettamente necessari
  • Salva

Ecco come dovrebbe essere:

Step 6 - Crea le cinque variabili dei consensi per categoria

Fai la stessa cosa per gli altri quattro variando il valore dentro il pattern con il numero adatto e ovviamente il nome:

  • Pattern: "2":true ► Output: true
  • Pattern: "2":false ► Output: false
  • Nome Variabile:  cookie.purpose 2 – Interazioni

Per il tre

  • Pattern: "3":true ► Output: true
  • Pattern: "3":false ► Output: false
  • Nome Variabile:  cookie.purpose 3 – Esperienza

Per il quattro

  • Pattern: "4":true ► Output: true
  • Pattern: "4":false ► Output: false
  • Nome Variabile:  cookie.purpose 4 – Misurazione

Per il quinto

  • Pattern: "5":true ► Output: true
  • Pattern: "5":false ► Output: false
  • Nome Variabile:  cookie.purpose 5 – Targeting

Ecco il risultato finale

Step 6 - le cinque variabili dei consensi per categoria di iubenda con Google Tag Manager

MA A CHE SERVONO ‘STE VARIABILI?

Uhhh… aspetta, ora te lo dico.

Avremo il valore della preferenza dell’utente ben prima del DOM Ready. In altre parole non ci saranno più problemi nella gestione degli eventi predefiniti di Google Tag Manager (come ad esempio il Page View che dal 10 Giugno 2020 si chiama Container Loaded)

Yuppieeeeeeee!

Step 6 - debug delle cinque variabili dei consensi per categoria di iubenda con Google Tag Manager

Ci siamo quasi, ora manca solo la creazione degli attivatori negativi universali e poi la configurazione nei vari tag 🙂

STEP 7 – Crea degli attivatori negativi universali

Questo tipo di attivatore ha la particolarità di adattarsi a qualsiasi tipo di evento. Quindi non importa se il tag di Google Analytics o Facebook si dovrà attivare al click, allo scroll e così via. Anche qui ne dovrai creare 5, uno per ogni categoria. La logica dell’attivatore negativo universale è quella di impedire l’accensione grazie agli attivatori in eccezione che è possibile configurare su qualsiasi Tag.

Quindi faremo un attivatore con la logica: se l’utente non ha accettato questa categoria di iubenda.

Difficile? No, ora te lo spiego 🙂

  • Attivatori > Nuovo.
  • Tipo di Attivatore: Evento personalizzato
  • Nome evento: .*
  • Flag Utilizza la corrispondenza con espressione regolare: true
  • Questo attivatore si attiva su: cookie.purpose 1 – Strettamente necessari non è uguale a true
  • Salva con il nome: “cookie.purpose 1 – Strettamente necessari – Non Accettato”

step 7 - Crea degli attivatori negativi universali

Ottimo ora facciamolo per i restanti 4. Ecco cosa dovresti cambiare

Il secondo:

  • Questo attivatore si attiva su: cookie.purpose 2 – Interazioni non è uguale a true
  • Salva con il nome: “cookie.purpose 2 – Interazioni – Non Accettato”

Il terzo

  • Questo attivatore si attiva su: cookie.purpose 3 – Esperienza non è uguale a true
  • Salva con il nome: “cookie.purpose 3 – Esperienza – Non Accettato”

Il quarto

  • Questo attivatore si attiva su: cookie.purpose 4 – Misurazione non è uguale a true
  • Salva con il nome: “cookie.purpose 4 – Misurazione- Non Accettato”

Il quinto

  • Questo attivatore si attiva su: cookie.purpose 5 – Targeting non è uguale a true
  • Salva con il nome: “cookie.purpose 5 – Targeting – Non Accettato”

STEP 7 - elenco degli attivatori negativi universali per iubenda con google tag manager

Yeah! ce l’abbiamo fatta, ora non ci resta che configurare tutti i tag in base alla categoria

STEP 8 – AGGIORNA I TUOI ATTIVATORI E TAG

Grazie alla combinazione di Attivatori di tipo evento personalizzato e Attivatori negativi universali possiamo gestire tranquillamente qualsiasi tipo di Tag. Ad esempio il classico pageview di Google Analytics potremmo categorizzarlo come Misurazione

Per essere in regola con la GDPR ti basterà semplicemente aggiungere due attivatori:

  • Iubenda 4 – Misurazione come attivatore
  • cookie.purpose 4 – Misurazione- Non Accettato (come attivatore di tipo eccezione)

Step 8 – Aaggiorna i tuoi attivatori e tag - google analytics e iubenda

Ora avvia il debug (ricordati di aggiornare) e BOOM verifica che tutto sia pronto.

debug google analytics con iubenda e consensi di categoria con google tag maanger

Ecco la prova del nove: l’attivatore negativo universale blocca tutto 🙂

debug verifica google analytics con iubenda e consensi di categoria con google tag manager

Ora, grazie a Google Tag Manager, hai tutte le armi per gestire correttamente il consenso delle categoria con Iubenda nel metodo più ottimizzato possibile 🙂

Cosa ne pensi? Ti è stato utile? Scrivimelo nei commenti!

Buon Tag 😉

Link utili:

Condividi anche tu Google Tag Manager!
  • Reply

    Ssss

    08 09 2022

    Ciao, con l’aggiornamento alla versione 1.41.0 mi dà diversi problemi. Non pusha più i dataLayer e i tag con consenso aggiuntivo sembrano scattare da debug ma non creano cookie / beacon / ecc.
    Da cosa può essere dovuto?

    • Matteo Zambon

      19 09 2022

      Ciao, dovresti chiedere all’assistenza di Iubenda e verificare che non ci siano conflitti JavaScript con il sito dove è installato Iubenda.

      Fammi sapere

  • Reply

    Marco

    12 08 2022

    Ciao Matteo, grazie mille per la guida, ma sto riscontrando un piccolo problemino. Voglio inserire un plugin di live chat solo in due pagine (al checkout) e cosi ho messo che il tag si attiva quando Page URL contiene checkout e poi ho messo l’attivatore e l’eccezione come da guida. Con debug funziona tutto correttamente, il problema sorge quando accedo al sito per la prima volta, appare il banner iubenda e clicco su “accetta tutto”. Ho notato che il tag viene attivato e la live chat parte, anche se non sono nella pagina checkout. Poi, se ricarico la pagina, il banner non appare e la live chat scompare e appare effettivamente solo sulla pagina di checkout, come dovrebbe essere. Lo stesso succede con tutte le pagine del sito, come se il click sul pulsante “accetta tutto” faccia partire quel tag.
    Grazie!

    • Matteo Zambon

      19 09 2022

      Ciao Marco, ciao verifica il trigger della chat dal debug perché se si attiva il tag significa che il trigger collegato ha tutte le condizioni corrette per essere attivato.

      Fammi sapere

  • Reply

    Marco

    03 08 2022

    Ciao Matteo, ho seguito la guida ma mi sono accorto che in debug la variabile “cookie iubenda” allo step 4 la valorizza sempre come “ubndefined”. Come mai? Ti allego un paio di screenshot

    il cookie iubenda: https://postimg.cc/PC543Nfz
    la debug mode: https://postimg.cc/jCkPxvRN

    Grazie mille sempre per le tue guide e il supporto!

    • Matteo Zambon

      05 08 2022

      Ciao Marco, verifica se effettivamente il cookie di iubenda ha quel codice, lo puoi verificare dal developer tools del browser.
      Inoltre finché il cookie non è creato la variabile sarà ovviamente undefined 🙂

  • Reply

    Davide

    01 08 2022

    Ciao Matteo ho seguito la tua guida ma i tag mi si attivano 2 volte al containet loaded e all’evento iubenda associato. Non mi sembra di aver saltato passaggi

    • Davide

      01 08 2022

      Ciò si verifica quando effettuo una sessione in debug avendo già accettato i cookie. Se invece o cancello i cookie o la effettuo da incognito lì si che mi parte solo 1 volta correttamente

    • Matteo Zambon

      11 08 2022

      Come già detto è Iubenda che gestisce il nuovo hit 🙁

    • Matteo Zambon

      11 08 2022

      Ciao è Iubenda che purtroppo lo fa, non è GTM 🙁

  • Reply

    Sara

    29 07 2022

    Ciao! Ma per la gestione multilingua di iubenda è disponibile un’aggiornamento di questa guida? In particolare per gestire la variabile relativa al cookie proprietario “_iub_cs-XXX” che cambia per ogni lingua (perchè l’id della cookie policy è diverso per ogni lingua). Quindi, per sparare a GA4 gli eventi, mi trovo in difficoltà nel verificare che la variabile contenga “”4″:true”, dal momento che le variabili sono più di una. Come suggerisci di fare?
    Grazie.

    • Matteo Zambon

      01 08 2022

      Ciao Sara, puoi gestire l’id con una variabile di tipo Lookup table, così da cambiarla a seconda della lingua del sito 🙂

    • Sara

      03 08 2022

      Grazie Matteo, sono riuscita, ho usato la variabile Lookup table come hai suggerito 🙂

    • Matteo Zambon

      05 08 2022

      Grande 🙂

  • Reply

    Massimo

    10 07 2022

    Ciao Matteo,
    purtroppo sono nella condizione di poter integrare solo Iubenda per decisioni interne, ma grazie alla tua guida tutto funziona regolarmente lato consensi. 🙂

    Facendo un test con Google Consent Mode + Iubenda (al fine di poter gestire il tag di configurazione GA4 con le built-in native), non riesco più a visualizzare nel dL il push relativo allo script da inserire manualmente prima di GTM.
    Ovviamente in debug non ho più gli eventi di consenso che tornano visibili solo se implemento tutti gli attivatori, il cookie iubenda di prima parte e il cookie banner con tutte le chiamate callback.

    In sostanza, è normale questa non perfetta integrazione della consent mode + Iubenda? Nell’impossibilità di gestione ibrida con consent mode, ma optando per una gestione classica con gli attivatori negativi, il tag di configurazione GA4 va inserito sotto il consenso “Misurazione”?

    Grazie

  • Reply

    Martino

    03 07 2022

    Ciao Matteo,
    ho impostato tutto come da istruzioni, ma credo ci sia un conflitto ad avere sia l’attivatore per tutte le pagine che quello per l’evento di Iubenda,

    Iubenda usa solo il loro evento e non quello con tutte le pagine https://www.iubenda.com/it/help/629-google-tag-manager-blocco-cookie.

    Usandoli entrambi, al primo accesso tutto a posto dato che ad es. Analytics è spento (cookie = false) e solo all’approvazione triggera.
    Facendo un refresh di pagina o accedendo a un’altra pagina ho il caricamento di Analytics subito nel “container loaded” (essendo all pages e consenso = true) e poi Iubenda sembra sempre mandare eventi per le precedenti approvazioni e questo comporta di fatto un nuovo trigger di Analytics.
    In GA4 ho infatti 2 pageview.

    Va quindi di fatto spenta l’attivazione su tutte le pagine perchè Iubenda manda sempre eventi? E’ cambiato qualche cosa da quanto hai scritto la guida? Posso aver impostato qualche cosa in modo errato?

    • Martino

      03 07 2022

      Perdonami ma mi devo rispondere da solo con una bacchettata sulle mani eheh. Ho mischiato i due codici e ho notato solo dopo la modifica nel tuo rispetto all’originale dove si va a verificare l’esistenza del cookie prima di pushare eventi Iubenda.

      Modificata quella riga di Js funziona tutto alla perfezione.

      Quindi rimane solo da dire un grazie per la guida 🙂

    • Matteo Zambon

      01 08 2022

      😀 Grazie del feedback Martino 😉

  • Reply

    leila

    21 06 2022

    Ciao Matteo,
    ma con questo metodo, posso individuare e bloccare anche cookie che vengono installati direttamente da plugin di WordPress?

    • Matteo Zambon

      11 08 2022

      Ciao Leila, nope. Puoi gestire tutto quello che è implementato da GTM (cosa che consiglio).

      Fammi sapere

  • Reply

    Andres

    28 02 2022

    Ciao Matteo! Come va? Spero bene. Ho seguito la tua guida e a naso, sembra che sia andato tutto bene (almeno dai primi test, sembra che cookies s’attivino in modo granulare e in base alle scelte degli utenti). L’unica cosa è che non sono riuscito ad inserire la parte di codice in blu ovvero questa:
    callback: {
    onPreferenceExpressedOrNotNeeded: function(preference) {
    dataLayer.push({
    iubenda_ccpa_opted_out: _iub.cs.api.isCcpaOptedOut()
    });
    if (!preference) {
    dataLayer.push({
    event: “iubenda_preference_not_needed”
    });
    } else {
    if (preference.consent === true) {
    dataLayer.push({
    event: “iubenda_consent_given”
    });
    } else if (preference.consent === false) {
    dataLayer.push({
    event: “iubenda_consent_rejected”
    });
    } else if (preference.purposes) {
    for (var purposeId in preference.purposes) {
    if (preference.purposes[purposeId] && ({{cookie iubenda}} === undefined || {{cookie iubenda}}.indexOf(‘”‘ + purposeId + ‘”:true’) < 0)){
    dataLayer.push({
    event: "iubenda_consent_given_purpose_" + purposeId
    });
    }
    }
    }
    }
    }
    }

    Google Tag Manager segnalava degli errori, in particolare in questa riga: onPreferenceExpressedOrNotNeeded: function(preference) {

    Come non sono un programmatore, ho fatto a meno di questa cosa e dal momento che ho visto che i cookie scattavano correttamente, ho pensato che forse potevo farne a meno. Secondo, è grave se quelle strisce di codice non ci sono?

    Grazie e un saluto!

    • Matteo Zambon

      11 04 2022

      Ciao Andres,
      Lo script aggiuntivo serve a non perdere la prima hit dell’utente quando accetta i cookie che in caso contrario i tag partirebbero solamente al ricaricamento della pagina.
      Nello script che hai inserito tu il problema dovrebbero essere le virgolette che sono presenti nello script, assicurati di copiare il codice così com’è e inserirlo nel Tag di GTM e vedrai che funzionerà 🙂
      Fammi sapere!

  • Reply

    Chiara

    09 02 2022

    Ciao Matteo,
    ho implementato Iubenda come hai descritto, ma ho un dubbio, al passaggio 8, devo aggiungere gli eventi “accettato” e “non accettato” a tutti i tag o solo a quello di analytics page view come nel tuo esempio?

    Grazie
    Chiara

    • Matteo Zambon

      11 04 2022

      Ciao Chiara, al momento per il garante italiano i tag di GA se hanno anonymize possono essere gestiti come cookie tecnici. In caso contrario (cioè se ti riferisci alla GDPR europea) dovrai gestirli con il blocco con l’attivatore negativo universale non accettato analytics 🙂

      PS: ti suggerisco di valutare l’acquisto di questo corso: https://club.tagmanageritalia.it/corso-clear-consent/

      buon Tag!

  • Reply

    Alberto

    17 01 2022

    Ciao Matteo, complimenti per la guida.
    Seguendo tutto pari pari non mi funziona per il seguente motivo: la variabile “cookie iubenda” rimane indefinita, nonostante se vado a vedere i cookie presenti nella dev console ci sia presente, con lo stesso nome impostato nella variabile su tag.
    Questo ovviamente porta ad essere undefined tutti i vari cookie.purpose edi conseguenza non funziona.

    Hai idea di quale potrebbe essere il problema?

    • Matteo Zambon

      15 02 2022

      Ciao Alberto,
      Controllo di aver inserito correttamente il Cookie Policy ID di Iubenda e di aver flaggato l’opzione “URI-decode cookie” all’interno della variabile Cookie.
      Fammi sapere!

    • Lorenzo

      16 02 2022

      Anche io ho lo stesso problema, seguendo tutti i passaggi come risposta lato Tag Assistant ho: undefined sia nel return type che nel value, ho controllato quello che hai consigliato ad Alberto e io ho tutto impostato correttamente, l’unica cosa a livello di cookie _iub_cs-XXX dato che il cookie ha otto numeri, ho provato a mettere otto X ma niente è cambiato. Non riesco a capire dove sto sbagliando…

      Un’altra cosa che non capisco è se questa guida, in qualche modo sorpassa il classico consenso accettato o non accettato della tua guida precedente e quind i due attivatori (iubenda accettato / no accettato cookie law) o se questi ultimi si utilizzano per semplicemente tracciare la preferenza (non granulare) dei due bottoni “acccetto” e “rifiuto del banner”. Grazie in anticipo per le risposte

    • Matteo Zambon

      11 04 2022

      Ciao Lorenzo,
      Riusciresti a postare il tuo problema sul nostro gruppo Facebook “Fatti di Tag Manager” in modo da poterti assistere in modo più approfondito:
      https://www.facebook.com/groups/TagManagerItalia

      Aggiungi qualche screen della configurazione del cookie e della variabile.
      Grazie 🙂

  • Reply

    Emanuele

    12 01 2022

    Ciao Matteo,
    ho effettuato la configurazione sul mio sito, grazie mille!
    Ho solo un dubbio sullo “STEP 8 – AGGIORNA I TUOI ATTIVATORI E TAG”, nel caso di tag che si attivano a seguito di un’azione dell’utente, ad esempio un acquisto.
    Il dubbio è sull’inserimento dell’attivatore positivo in OR “Iubenda 5 – Targeting”.

    Infatti quando un utente accetta tutti i cookie la prima volta (si spera lo faccia… ;-)) o quando modifica le preferenze ed esempio accetta la 5, nel datalayer viene generato l’evento “iubenda_consent_given_purpose_5”, ed il tag dell’acquisto scatta nonostante non si sia realizzato un acquisto….

    La mia proposta in questi casi è utilizzare, oltre agli attivatori normali, solo l’attivatore negativo in eccezione….
    Sembra che il problema così venga risolto…. In questo caso il tag scatta solo se il consenso viene dato, ma solo se l’evento accade.

    Cosa ne pensi?
    Grazie!

    • Matteo Zambon

      15 02 2022

      Ciao Emanuele,
      L’attivatore in “OR” devi inserirlo solamente per i Tag che hanno All Pages come attivazione.
      Serve a far accendere i Tag al primo consenso dell’utente, che altrimenti perderesti perché il consenso viene dato dopo il Container Loaded a livello temporale.
      Per tutti gli altri Tag basta aggiungere l’Attivatore negativo.
      Fammi sapere se hai capito.

  • Reply

    Luciano

    07 01 2022

    Buongiorno Matteo,
    Come sempre le tue guide sono semplici ed esaustive.
    Ho seguito passo passo la guida ma ho due dubbi.
    Uno è se l’opzione in GTM “Attiva panoramica del consenso (BETA)” deve essere attiva o disattivata?
    Il secondo è se, nel caso di utilizzo di enhanced ecommerce, occorre impostare ad ogni tag (add to cart, product impression, checkout, purchase, …) gli stessi attivatori qui suggeriti per il pageview.
    Grazie tante.

    • Matteo Zambon

      11 04 2022

      Ciao Luciano e grazie del feedback 🙂

      Se la attivi hai semplicemente la possibilità di fare delle azioni built-in direttamente dalla griglia dei tag invece di entrare singolarmente 🙂
      Per i Tag di GA non serve impostare nulla, perché sono già preconfigurati da Google stesso 🙂 (infatti trovi le diciture in grigio chiaro).

      Buon Tag!

  • Reply

    Giuseppe

    04 01 2022

    Ciao Matteo avrei una domanda (forse stupida):
    su tutti gli eventi GA (vedi scroll page, click su elementi) è necessario impostare l’attivatore Iubenda 4 misurazione (con relativa eccezione)?
    Su quali tag bisogna considerare esempio gli attivatori 2 di interazione?

    Grazie

    • Matteo Zambon

      11 04 2022

      Ciao, dovresti gestire qualsiasi hit di GA, indipendentemente dalla sua tipologia 🙂
      Tieni presente che per il garante italiano siamo ancora in una fase che con l’anonimizzazione possiamo renderli cookie tecnici.

      Buon Tag!

  • Reply

    Carlo

    29 12 2021

    Ciao Matteo, scusa la domanda. Se voglio ad esempio “attivare” anche il “cookie di 3 -Esperienza” devo creare un nuovo tag con attivatore:
    – All Pages,
    – Iubenda 3 – Esperienza come attivatore
    – cookie.purpose 3 – Esperienza- Non Accettato (come attivatore di tipo eccezione)

    e così via per ogni cookies?
    Grazie

    • Matteo Zambon

      15 02 2022

      Ciao Carlo,
      Sì 🙂
      Uno per ogni categoria che vuoi usare.

      Buon Tag!

  • Reply

    Mirko Cianca

    29 11 2021

    Ciao Matteo,
    quindi implementando tutto, se ho capito bene, può in un certo senso sostituire il ‘registro cookie’ che Iubenda ‘offre’ a 13€/mese, se conoscessi anche l’ID dell’utente associato?

    • Matteo Zambon

      13 12 2021

      Ciao Mirko,
      No, non può sostituire il registro cookie perché non stai salvando questi dati da nessuna parte, li stai solo utilizzando per gestire l’attivazione dei Tag.
      Il Log contiene anche l’IP dell’utente, data e ora del consenso e altre informazioni necessarie per essere in regola con la GDPR.
      Fammi sapere se hai capito 🙂

  • Reply

    Michele

    20 10 2021

    Ciao Matteo,
    Grazie per questo tutorial validissimo! Sto effettuando l’implementazione sul mio sito. Se eseguo dei test, accettando e rifiutando, non sembra funzionare ogni volta, Vedo il tag che viene sparato, ma non il trigger Iubenda 4 – Misurazione e nemmeno cookie.purpose 4 – Misurazione- Non Accettato (lo vedo in modalità di test, alla voce Container loaded).
    Per la cronaca, ho implementato il tag GA4.

    Mi verrebbe da pensare che il sistema non accetti modifiche così frequenti e che magari ci metta un attimo ad aggiornarsi. Che ne pensi?

    Grazie!

    • Matteo Zambon

      21 10 2021

      Ciao Michele,
      Riusciresti a postare il tuo problema sul gruppo Facebook “Fatti di Tag Manager” a questo link: https://www.facebook.com/groups/TagManagerItalia aggiungendo qualche screen dell’implementazione e del debug?
      Grazie.

    • Michele

      05 11 2021

      Ciao Matteo,
      Mi rifaccio vivo. Ho capito in parte il problema: in iubenda, non utilizzo il loro servizio di privacy policy integrato (ho una pagina web). Pertanto, di default il banner NON mostrava la categoria 4. Dalle impostazioni, sono riuscito a mostrarla.

      A questo punto, testando l’implementazione, il tag non viene sparato. Se l’utente accetta, il tag viene sparato. E qui il dilemma: se vado sotto Container Loaded, click sul mio GA4, vedo ” Firing Status: Succeeded”. Il trigger “Iubenda 4 – Misurazione” rimane con la x rossa, così come ” cookie.purpose 4 – Misurazione – Non Accettato”. È il comportamento corretto?

      A intuito, mi sarei aspettato che “Iubenda 4 – Misurazione” si sarebbe attivato…

      Grazie mille!! 🙂

    • Matteo Zambon

      11 11 2021

      Ciao Michele,
      Il comportamento corretto è che il Tag si accenda se l’utente ha dato il consenso e non si accenda in caso contrario.
      Il fatto che vedi che il Trigger “Iubenda 4 – Misurazione” rimane con la x rossa è dovuto al fatto l’evento che fa scattere questo Trigger viene eseguito solamente la prima volta che effettui i consensi e non ad ogni caricamento di pagina.
      Mentre per ”cookie.purpose 4 – Misurazione – Non Accettato” rimane inattivo perchè il Cookie di Iubenda che viene letto ha il valore a true per il consenso.
      Ti consiglio di valutare il corso Clear Consent che trovi nello shop: https://club.tagmanageritalia.it/shop/ troverai dei template (configurazioni da scaricare) pronti all’uso sia per Iubenda, sia per Cookiebot.

      Fammi sapere se hai capito.

      Buon Tag!

  • Reply

    Luca

    21 09 2021

    Ciao Matteo, mi hai detto di scriverti qua nel webinar di oggi
    (sono interessato a comprare il corso del consent mode)

    Domanda:
    mentre parlavi nel webinar ho capito bene?? ..con IUBENDA (con consenso granulare), il consent mode (di cui per il momento ho solo capito cos’è) è già attivo e sta funzionando male?

    • Matteo Zambon

      25 09 2021

      Ciao Luca, Iubenda al momento (a differenza di Cookiebot) se non viene inserito il gtag default, allora la consent mode non sarà gestita.

      In poche parole, se non la configuri non è attiva. Se la configuri si attiva. Cookiebot invece è sempre attiva.

      A presto!

    • Michele

      21 10 2021

      Ciao Matteo, grazie per la tua risposta. Provvederò a postare sul gruppo. 🙂

    • Matteo Zambon

      21 10 2021

      Perfetto 🙂

  • Reply

    Michele

    16 09 2021

    Le tue guide sono molto utili e anche difficili a volte :)…Volevo chiederti, ho seguito la tua guida per inserire analytics anonimizzato e non far partire il pixel di facebook, hotjar ecc fino a quando non si accetta il banner iubenda, ora con questo nuovo consenso granulare, devo eliminare “iubenda accettato” e “iubenda non accettato” e inserire solo “cookie.purpose 4 – Misurazione” e “cookie.purpose 4 – Misurazione non accettato” ?

    I vari pixel fb, WhatsApp, hotjar… li discrimino con altri attivatori? Esempio Hotjar dove lo allocheresti? Se premo sul banner accetta in teoria dovrebbe partire tutto giusto?

    • Matteo Zambon

      17 09 2021

      Ciao Michele e grazie del feedback. Capisco la complessità dell’argomento e il mio obiettivo e cercare di farle più comprensibili possibili 🙂

      Sì, con il consenso granulare hai la possibilità di gestire in maniera granulare (per l’appunto) ogni singolo servizio.
      Hotjar per me è analitico e non di marketing (non lo usi per fare pubblicità).
      Se accetti tutto (con il pulsante a destra), di default tutto viene accettato 🙂

      Ti consiglio di valutare anche l’argomento del Consent Mode:
      Qui trovi una guida https://www.tagmanageritalia.it/come-configurare-la-consent-mode-per-google-ads-gestendo-le-conversioni-con-google-tag-manager/

      Ho anche un corso ad hoc, ovviamente se hai piacere di valutare l’acquisto. Lo trovi qui: https://club.tagmanageritalia.it/corso-clear-consent/

      Buon Tag 😉

    • Luca

      29 09 2021

      Ciao Matteo,
      in chrome sotto i cookie vedo

      Name: tagtag_aid
      Value: il valore
      Domain: http://www.iubenda.com

      Vuol dire che questo gtag default è attivato? (perché se fosse cosi non so come ho fatto 🙂 )

    • Matteo Zambon

      11 10 2021

      Sinceramente non so cosa sia quel cookie 🙂 non l’ho mai visto. Iubenda usa il cookie _iub_cs-XXX

      A presto!

  • Reply

    Edoardo

    27 08 2021

    Ciao matteo scusami la domanda magari stupida, ma gli altri tag tipo quello del page view poi avranno solo come attivatore il consent o anche all page view?

    • Matteo Zambon

      14 09 2021

      Ciao Edoardo,

      per i Pageview dovrai impostare come attivatori sia All Pages che il Consent con i relativi consensi accettati.

      Utilizzando poi l’attivatore negativo con il consenso negato il Tag non scatterà se l’utente non ha dato il consenso.

      Fammi sapere se hai capito.

      A presto 🙂

  • Reply

    Andrea

    01 08 2021

    Ciao,
    complimenti per l’articolo, l’ho trovato molto utile.

    Provo a farti una domanda: per contenuti “Embeddati” (iframe youtube/vimeo ecc.) come possiamo bloccare i cookie?
    Ad esempio sito WordPress con video youtube inserito nel contenuto.

    Grazie

  • Reply

    Andrea

    23 07 2021

    Ciao Matteo,
    sempre di Iubenda hai già avuto modo di integrare anche la Consent Solution da GTM?
    Ci sono problemi?
    Grazie!

  • Reply

    Giovanni Strongone

    18 07 2021

    Ciao Matteo, sto seguendo il tuo blog con molto interesse, complimenti!

    Ho un dubbio sui cookies strettamente necessari, che dovrebbero corrispondere ai cookies tecnici, a quelli cioè che possono essere installati senza alcun consenso. Penso che l’attivatore negativo universale “cookie.purpose 1 – Strettamente necessari – Non Accettato” andrebbe impostato in modo diverso dagli altri, tipo “uguale a false” in modo che non blocchi questi cookies preventivamente. Al primo caricamento infatti la variabile su cui fa il controllo (“cookie.purpose 1 – Strettamente necessari”) ha valore “undefined” quindi vengono bloccati preventivamente anche i cookies tecnici.

    che ne pensi?

    • Matteo Zambon

      21 07 2021

      Ciao Giovanni, ti basta impostare come valore di default alla variabile “cookie.purpose 1 – Strettamente necessari” il valore true e il gioco è fatto 😉

      A presto!

  • Reply

    Raffaele

    10 06 2021

    Matteo attendiamo con ansia il tuo aggiornamento della guida per la gestione multilingua. 😀

    • Matteo Zambon

      16 06 2021

      Ok, la metto in lista (nel Club c’è già) 😀

  • Reply

    acara

    18 01 2021

    Mi accodo alla richiesta di aggiornamento con la lingua 🙂

    • Matteo Zambon

      21 01 2021

      Ok, mi segno di aggiornarla 😀

  • Reply

    Lorenzo Pellegrini

    06 10 2020

    Ciao Matteo,
    Ottimo lavoro come sempre, una guida perfetta e chiara.
    Ho qualche domanda!
    Oltre al mio sito utilizzo clickfunnels e anche li implementerò lo script di iubenda per gestire i consensi delle varie categorie e fino a qui tutto ok.
    Invece riguardo ai form di opt-in che inserirò nelle landing pages come devo comportarmi? cioè inserisco la checkbox per l’approvazione con esposta la privacy policy e ok, ma dopo il consenso come faccio a salvare e custodire i dettagli del consenso (ora, giorno, utente, ecc) ? La stessa domanda vale anche per il banner con le categorie in realtà, i consensi dove vengono salvati e gestiti? ci pensa direttamente iubenda?

    • Matteo Zambon

      07 10 2020

      Ciao Lorenzo, sì dovrebbe essere iubenda che dispone di queste informazioni. Ti consiglio di contattare il loro supporto 🙂

      A presto!

  • Reply

    Luca

    26 09 2020

    salve Matteo,
    una domanda, questi valori, riportati nella guida

    timestamp = l’ora con cui l’utente ha accettato
    version = la versione dello script di iubenda
    purposes = oh ecco la cosa che ci interessa: le categorie accettate (con valore true) e quelle non accettate (con valore false)
    id = è il solito cookiePolicyId

    dove e come li vedo?

    • Matteo Zambon

      02 10 2020

      Ciao Luca,
      sono i valori presenti nel cookie generato da Iubenda.

      Se usi Chrome ad esempio puoi aprire Ispeziona elemento > Application > Cookies e filtrare per _iub_cs
      Avrai esettamente il valore del cookie, anche se è abbastanza illeggibile :/

      Oppure puoi usare GTM con una variabile di tipo Cookie.

      Fammi sapere 🙂

  • Reply

    Ronny

    16 07 2020

    Ciao Matteo,

    grazie mille per il super articolo!
    Anche io mi trovo a gestire Iubenda in due lingue, in più cookiePolicyId differente tra IT ed EN.
    Come posso gestire il i due cookiePolicyId?

    Duplico i passaggi per gestire l’IT per l’EN?

    Grazie mille,
    Ronny

    • Matteo Zambon

      19 07 2020

      Ciao Ronny, la soluzione è gestire con una variabile il parametro “lang:” che trovi nello script di Iubenda passando appunto il codice ISO a 2 cifre della lingua che ti interessa. Un bellissimo #barbatrucco è prenderselo dall’URL (nel caso in cui tu abbia un path che contenga la lingua /it/ e /en/ ad esempio).

      A breve farò un aggiornamento della guida aggiungendo questo step (visto che in tanti me lo state chiedendo 😀 ).

      A presto!

    • Carlo

      30 12 2021

      Ciao Matteo, ho notato però che oltre al parametro lang varia anche quello della cookiePolicyId. Sbaglio?

    • Matteo Zambon

      15 02 2022

      Ciao Carlo, dipende se cambi la policy anche a seconda della lingua. Se sì, ti basta gestirlo con un’altra variabile lookup table 🙂

      Buon Tag!

  • Reply

    Alice

    02 07 2020

    Ciao Matteo,
    complimenti e grazie per i tuoi preziosi consigli.
    Ho seguito la tua guida e configurato il tutto correttamente, il mio sito è però multilingua.
    Come bisogna comportarsi per fare uscire il banner nella lingua corretta?

    grazie mille

    • Matteo Zambon

      09 07 2020

      Ciao Alice, ti basta gestire il parametro che vedi nello script “lang”:”it” con l’ISO a 2 cifre delle altre lingue.

      Fammi sapere

Hai ancora qualche dubbio?
Chiedi pure qui sotto, sarò pronto a risponderti!

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.