Documentazione

Indice dei contenuti

Come configurare la Cookie Solution (guida avanzata)

Questo articolo si riferisce all’ultima versione della Cookie Solution. Se non l’hai già fatto, ti consigliamo di aggiornare la tua Cookie Solution copiando il nuovo codice che trovi in Dashboard > [Il tuo sito/app] > Cookie Solution > Integra per evitare possibili conflitti CSS e accedere a tutte le funzionalità dell’ultima versione. In alternativa, trovi la guida alla versione legacy qui.

Caratteristiche del cookie banner

  • Si implementa inserendo un semplice codice in tutte le pagine del sito.
  • Mostra un avviso con un testo predefinito e personalizzabile e riporta un link alla cookie policy.
  • È ottimizzato per risoluzioni e device multipli.
  • Si assicura che la consultazione della cookie policy possa avvenire senza che il consenso venga fornito.
  • Si assicura che il blocco dei codici funzioni correttamente – vedi la guida introduttiva alla configurazione del blocco dei codici per ulteriori informazioni al riguardo.
  • Raccoglie la preferenza tramite proseguimento della navigazione, ad esempio lo scroll.
  • Allo scroll o al proseguimento della navigazione, attiva in modo asincrono (ovvero senza ricaricare la pagina) tutti gli script precedentemente bloccati.
  • Se la preferenza è già stata fornita, il cookie banner non compare e gli script vengono eseguiti in modo automatico.

Installazione

Installazione generica

Per abilitare la iubenda Cookie Solution è sufficiente inserire il seguente codice in tutte le pagine del proprio sito, prima della chiusura del tag HEAD.

<script type="text/javascript">
    var _iub = _iub || [];
    _iub.csConfiguration = {
        "lang": "it",
        "siteId": XXXXXX, //usa il tuo siteId
        "cookiePolicyId": YYYYYY, //usa il tuo cookiePolicyId
        "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>
Importante

Il codice riportato in alto è a titolo esemplificativo. Per generare il proprio codice, basta cliccare su Attiva/Modifica Cookie Solution che si trova all’interno della pagina di modifica di ciascun website presente all’interno della propria dashboard iubenda.

Installazione su WordPress

Se usi WordPress, la iubenda Cookie Solution può essere configurata ad esempio aprendo il file header.php del tema in uso ed inserendo il codice di base – come quello dell’esempio in alto – prima della chiusura del tag HEAD.

In alternativa, per WordPress abbiamo anche pubblicato un plugin dedicato. Per maggiori informazioni, consulta la guida completa al plugin WordPress di iubenda per automatizzare il blocco codici.

Installazione su Joomla!

Per configurare la iubenda Cookie Solution su Joomla! è possibile ad esempio installare un modulo come il Custom HTML advanced module. Qui c’è un articolo che spiega come utilizzare questo modulo per installare sul sito la privacy policy generata con iubenda. Anche se l’esempio specifico non riguarda la iubenda Cookie Solution, il processo è identico. Ti ricordiamo che come sempre il codice della iubenda Cookie Solution va inserito prima della chiusura del tag HEAD.

In alternativa, anche per Joomla! è disponibile un plugin dedicato. Per maggiori informazioni, consulta la guida completa al plugin Joomla! di iubenda per automatizzare il blocco codici.

Attenzione

La iubenda Cookie Solution richiede attualmente una versione di jQuery almeno pari alla 1.4.4. Se il sito ha una versione più vecchia, bisogna effettuare un aggiornamento. Se invece jQuery non è presente, se ne occupa iubenda.

Configurazione

Parametri disponibili _iub.csConfiguration {}:

Parametri obbligatori

siteId: – Il codice identificativo (ID) del tuo sito. Nota: questo ID viene utilizzato per condividere la preferenza fra più cookie policy in lingue diverse che siano però riconducibili allo stesso sito/app.

cookiePolicyId: – Il codice identificativo (ID) della tua cookie policy.

lang: – Questo parametro definisce la lingua in cui mostrare il contenuto presente all’interno del cookie banner (ad esempio, “it” per l’italiano, “en” per l’inglese, “es” per lo spagnolo ecc.). Sono disponibili per il contenuto del cookie banner le localizzazioni linguistiche relative a tutte le lingue in cui è possibile generare privacy/cookie policy con iubenda.


IAB Transparency and Consent Framework

Per poter mostrare annunci personalizzati ai propri visitatori, gli editori che si appoggiano ai maggiori network pubblicitari devono prima raccogliere il consenso alla personalizzazione degli annunci. In questa guida scoprirai come soddisfare questo requisito con il Framework di IAB e la nostra Cookie Solution.

enableCMP (boolean, default false) – Quando questa opzione è impostata su true apparirà il collegamento “Personalizza tracciamento pubblicità” nella parte inferiore della finestra modale della Cookie Policy. Quando cliccato, apparirà una finestra che consente agli utenti di gestire le proprie preferenze di tracciamento pubblicitario sulla base dello IAB Transparency and Consent Framework.

googleAdsPreferenceManagement (boolean, default false) – Se true, gli utenti del tuo sito avranno la possibilità di scegliere tra annunci Google personalizzati o meno, come richiesto dalle nuove norme relative al consenso degli utenti dell’UE introdotte da Google. Assicurati che enableCMP sia impostato a true, o non funzionerà.

askConsentIfCMPNotFound (boolean, default true) – Se l’opzione enableCMP è impostata su true e la preferenza del Framework IAB non viene trovata, gli utenti saranno invitati a fornire nuovamente il consenso anche se quest’ultimo è stato dato prima dell’attivazione del Framework. Se invece l’opzione è impostata su false, il comportamento descritto verrà impedito.

isTCFConsentGlobal (boolean, default true) – Se true la preferenza del Framework IAB verrà salvata sia su consensu.org che in locale. Se false verrà salvata solo in locale (in questo modo non condividerai il cookie di preferenza del TCF con gli altri editori). isTCFConsentGlobal funge da intermediario per il parametro hasGlobalScope delle API JS dello IAB.

newConsentAtVendorListUpdate (number, default undefined) – Giorni da attendere prima di chiedere nuovamente il consenso in seguito all’aggiornamento di vendorlist.json. Se undefined, gli utenti che hanno già prestato il consenso non vedranno nuovamente il cookie banner (nelle preferenze pubblicitarie i “nuovi” vendor avranno il consenso settato su off). Se impostato a 0 gli utenti dovranno prestare nuovamente il consenso non appena la lista dei vendor viene aggiornata.

Classi disponibili

  • iubenda-advertising-preferences-link – Aggiungendo questa classe ad un elemento qualsiasi della pagina, il click sull’elemento aprirà la modale con le impostazioni di tracciamento della pubblicità salvate in precedenza (permettendo agli utenti di aggiornare le proprie preferenze pubblicitarie anche dopo aver chiuso il cookie banner).


Parametri facoltativi

consentOnScroll: (boolean, default true) – È possibile settare questo parametro su false per evitare la registrazione del consenso dell’utente allo scrolling della pagina.

consentOnLinkAndButton: (boolean, default true) – Il consenso dell’utente viene registrato di norma anche in presenza di un click su un pulsante (button) presente sulla pagina, oltre che sui link (a). Settato su false, il parametro consentOnLinkAndButton (in precedenza consentOnButton) modifica il comportamento standard facendo in modo che in questi casi il consenso non risulti prestato.

consentOnElement: (string|DOMElement, default null) – Il consenso dell’utente viene registrato in presenza di un click su uno degli elementi html elencati nel parametro (inclusi selettori CSS quali classi e id). Diversamente da consentOnLinkAndButton (vedi sopra), l’opzione non gestisce i tag a e button. Importante: qualora vengano aggiunti dei nuovi elementi html ma si vuole che gli elementi di default siano ancora attivi, bisogna dichiararli nuovamente.

consentOnDocument: (boolean, default false) – Se impostato su true, il consenso dell’utente viene registrato in presenza di un click su un punto qualsiasi della pagina (esclusa l’area del banner).

consentOnContinuedBrowsing:(boolean, default true) – Se settato su false, consentOnScroll, consentOnDocument e consentOnLinkAndButton vengono settati su false, e consentOnElementviene impostato su nessun elemento. In questo modo si accetta solo il consenso esplicito, escludendo il consenso allo scroll e all’interazione con la pagina.

consentOnScrollHorizontal: (boolean, default false) – Settando questo parametro su true, si fa in modo che il consenso venga dato anche in caso di scrolling orizzontale.

consentOnScrollOnElement: (string|DOMElement, default null) – L’evento di scrolling viene osservato sull’elemento passato come parametro (sono accettati anche selettori CSS come classi e id). L’elemento DOM potrebbe essere non ancora disponibile al momento dell’inizializzazione della Cookie Solution. In tal caso è possibile utilizzare il metodo API setConsentOnScrollOnElement.

localConsentDomain: (string, default null) – Il domino sul quale si vuole che venga salvato il consenso fornito dall’utente. Se questo parametro non viene settato, il consenso viene salvato di default in un cookie nel dominio di secondo livello della pagina corrente (ad esempio, visitando www.example.com, il consenso viene salvato in un cookie nel dominio example.com). Nel caso in cui il comportamento di default non sia adeguato, ad esempio se il sito è www.paesaggiurbani.italia.it e il consenso deve essere fornito per paesaggiurbani.italia.it (e non per italia.it), occorre settare il localConsentDomain col valore paesaggiurbani.italia.it

Nota: qualora in uno scenario analogo a quello descritto con l’esempio www.paesaggiurbani.italia.it il parametro localConsentDomain non dovesse essere fornito, il banner potrebbe continuare a comparire al medesimo utente ad ogni successiva visita/visualizzazione di pagina.

localConsentPath: (string, default ‘/’) – Il path nel quale si vuole che venga salvato, nel dominio locale, il consenso fornito dall’utente. Di default, il consenso fornito dall’utente viene salvato nel dominio locale in un cookie nel path ‘/’. In questo modo il cookie è disponibile qualunque sia la pagina del dominio cui si accede. Se invece si vuole, ad esempio, che il cookie di preferenza settato per www.example.com/percorso1 non sia accessibile navigando su www.example.com/percorso2, e viceversa, occorrerà fornire a questo parametro il valore /percorso1 nel primo caso ed il valore /percorso2 nel secondo caso.

skipSaveConsent: (boolean, default false) – Settando questo parametro su true, si fa in modo che il consenso non venga salvato nel cookie di preferenza.

perPurposeConsent: (boolean, default false) – Impostando questo parametro a true fornirai agli utenti opzioni granulari rispetto alle categorie di cookie a cui prestare il consenso. Le categorie da mostrare nella modale vengono rilevate automaticamente dalla cookie policy di iubenda, ma possono essere personalizzate con il parametro purposes (vedi sotto).

Tieni presente che al momento questa funzione non supporta l’auto-assegnazione delle categorie quando si bloccano gli script, non essendo ancora compatibile con i nostri plugin o il modulo web server. Questo significa che per ora (quando si utilizza questa funzione) è necessario taggare gli script manualmente o utilizzare uno strumento come Google Tag Manager. In entrambi i casi dovrai assicurarti di includere i parametri delle categorie corrispondenti.

Esempi:

Nota: questa funzionalità non è ancora disponibile sul canale Stable.

purposes: (string, default null) – Le finalità sono raggruppate in 5 categorie (strettamente necessari, interazioni e funzionalità semplici, esperienza migliorata, statistica, targeting e pubblicità), ciascuna identificata da un id (1, 2, 3, 4, 5). Per impostazione predefinita, le categorie da mostrare vengono rilevate automaticamente dalla cookie policy di iubenda, ma puoi personalizzarle con il parametro purposes (ad esempio se usi la tua cookie policy anziché quella generata da iubenda).

A seguire le finalità per ogni categoria:

  1. 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
  2. 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
  3. 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
  4. Statistica (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
  5. Targeting e pubblicità (id 5). Finalità incluse:
    • Pubblicità
    • Infrastruttura al servizio pubblicitario
    • Affiliazione commerciale
    • Gestione contatti e invio di messaggi
    • Remarketing e behavioral targeting

Quindi, se per esempio devi mostrare tutte e 5 le categorie dovrai indicare "purposes": "1, 2, 3, 4, 5", ma se non devi mostrare Statistica (id 4) indicherai "purposes": "1, 2, 3, 5" e così via. Come perPurposeConsent, questa funzionalità non è ancora disponibile sul canale Stable.

Note: affinché purposes possa funzionare correttamente, il parametro perPurposeConsent deve essere impostato a true (vedi sopra per maggiori dettagli).

Impostazioni di raccolta del consenso

reloadOnConsent: (boolean, default false) – È possibile settare questo parametro su true se si vuole che la pagina venga ricaricata dopo aver raccolto il consenso dell’utente.

enableRemoteConsent: (boolean, default false) – È possibile settare questo parametro su true per abilitare la registrazione del consenso cross-site (utile ad esempio quando lo script viene implementato su più siti del medesimo network). In particolare, con questo parametro settato su true la nostra soluzione crea un cookie (tecnico) sul dominio iubenda.com che viene letto quando il cookie sul dominio locale non viene trovato.

priorConsent: (boolean, default true) – abilita il blocco degli script e la loro riattivazione solo dopo aver raccolto il consenso. Se false, gli script sottoposti a blocco vengono sempre attivati indipendentemente dal fatto che il consenso sia o meno stato fornito (utile per fare dei test, o se stai lavorando allo sviluppo del tuo sito/app in locale e non vuoi che le visualizzazioni di pagina vengano conteggiate).

Ti sconsigliamo fortemente di impostare "priorConsent":false se vuoi essere a norma con la Direttiva ePrivacy (o Cookie Law) e con la normativa italiana. Nota: se hai disabilitato il consenso preventivo lato server (tramite la checkbox che trovi sopra il codice di integrazione), questo parametro sarà inefficace.

countryDetection: (boolean, default false) – Imposta questo parametro a true se gdprAppliesGlobally è settato su false e vuoi rilevare automaticamente il paese degli utenti. Se disabiliti questa opzione, ricordati di impostare gdprApplies:false su tutte le pagine in cui il consenso non è richiesto.

Inoltre, puoi sovrascrivere il paese rilevato passando la variabile _iub.cc nell’onload di iubenda_cs.js. Al momento i valori accettati per _iub.cc sono _iub.cc = 'EU'; (per l’Unione Europea) e delete _iub.cc; (per tutte le altre aree). Ad esempio, per forzare l’Unione Europea dovrai scrivere:

<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" onload="_iub.cc = 'EU';" async></script>

Puoi testare questa funzionalità (non ancora disponibile sul canale Stable) su CodePen.

gdprAppliesGlobally: (boolean, default true) – Se true, applicherai il GDPR a tutti i tuoi utenti. Imposta questo parametro su false e countryDetection:true per chiedere il consenso solo agli utenti UE. Ricorda che se hai sede nell’UE, devi applicare il GDPR anche agli utenti residenti al di fuori dell’UE.

gdprApplies: (boolean, default true) – Se false, non applicherai il GDPR all’utente corrente e non gli verrà mostrato il cookie banner. Se hai impostato countryDetection:false, dovresti settare gdprApplies:false su tutte le pagine in cui il consenso non è richiesto.

Altri parametri facoltativi

Seguono ulteriori parametri facoltativi che richiedono la definizione di uno o più oggetti:

footer {} (object)

  • message (string) – Si tratta del messaggio di testo visualizzato in basso nella finestra in cui viene mostrata l’informativa estesa (cookie policy) quando si clicca sul link cookie policy all’interno del banner (ad esempio in italiano il valore di default è “Proseguendo la navigazione o chiudendo la finestra presti il tuo consenso all’installazione dei cookie”).

  • btnCaption (string) – È il messaggio di testo visualizzato nel pulsante (che si trova in basso nella finestra in cui viene mostrata l’informativa estesa quando si clicca sul link cookie policy all’interno del banner) per confermare il consenso all’installazione dei cookie policy; ad esempio in italiano il valore di default è “Prosegui la navigazione”.

Visualizza una configurazione di esempio ↓

callback {} (object) – È il parametro attraverso cui è possibile definire le callback che la iubenda Cookie Solution può eseguire al verificarsi di un evento, e vale a dire:

  • onReady (function) – Se il consenso dell’utente non è stato ancora raccolto (ad esempio perché è alla sua prima visita), la callback onReady viene invocata non appena il cookie banner viene visualizzato; se invece l’utente ha già prestato il proprio consenso all’installazione dei cookie, questa callback viene invocata non appena la iubenda Cookie Solution è inizializzata. Il consenso prestato o meno viene passato come argomento, true o false.

  • onBannerShown (function) – Attraverso questa funzione è possibile eseguire uno script nel momento in cui il banner viene mostrato.

  • onCookiePolicyShown (function) – Invocata quando la cookie policy viene mostrata (sia nella modale che in una pagina separata).

  • onConsentGiven (function) – Questa callback viene invocata se l’utente ha prestato il proprio consenso all’installazione dei cookie, sia quando acconsente per la prima volta che in tutte le successive visite.

  • onConsentFirstGiven (function) – Invocata la prima volta che l’utente presta consenso. Una delle seguenti stringhe viene passata come argomento: documentScroll, documentMoved, bannerXClose, documentClicked o cookiePolicyClosed.

  • onConsentRejected (function) – Questa callback viene invocata se l’utente ha negato il proprio consenso all’installazione dei cookie.

  • onPreferenceExpressed (function) – Invocata qualunque sia la preferenza espressa dall’utente in merito all’installazione dei cookie.

  • onPreferenceExpressedOrNotNeeded (function) – Invocata quando la preferenza è stata espressa o non è necessaria, ad esempio se:

    • gdprApplies:true e l’utente ha espresso la propria preferenza, oppure
    • gdprApplies:false, oppure
    • gdprAppliesGlobally:false, countryDetection:true e l’utente ha sede fuori dall’UE

    Nota: questa callback è al momento disponibile solo sui canali Beta e Current. Segui le istruzioni contenute in questa guida per cambiare canale di rilascio.

  • onPreferenceNotNeeded (function) – Invocata quando la preferenza non è necessaria, ad esempio se:

    • gdprApplies:false, oppure
    • gdprAppliesGlobally:false, countryDetection:true e l’utente ha sede fuori dall’UE

    Nota: questa callback è al momento disponibile solo sui canali Beta e Current. Segui le istruzioni contenute in questa guida per cambiare canale di rilascio.

  • onConsentRead (function) – Invocata la prima volta che l’utente presta consenso e ad ogni caricamento successivo quando il consenso viene rilevato. La callback onConsentGiven diviene un alias di onConsentRead e non viene invocata se quest’ultima è definita.

  • onStartupFailed (function) – Invocata nel caso in cui la iubenda Cookie Solution fallisce la fase di startup. Un messaggio di errore viene passato come argomento.

  • onError (function) – Invocata nel caso in cui la iubenda Cookie Solution riscontri un errore. Un messaggio di errore viene passato come argomento.

  • onFatalError (function) – Invocata nel caso in cui la iubenda Cookie Solution riscontri un errore che non le consente di proseguire. Un messaggio di errore viene passato come argomento.

  • onActivationDone (function) – Invocata quando l’attivazione degli snippet è completata.

  • onBeforePreload (function) – Invocata al precaricamento della Cookie Solution (prima cioè che vengano caricati i cookie).

Visualizza una configurazione di esempio ↓

preferenceCookie {} (object) – È il parametro attraverso cui personalizzare la durata del cookie di preferenza installato da iubenda sul browser dell’utente nel momento in cui ne viene registrato il consenso. In particolare, l’oggetto da definire è:

  • expireAfter (number, default 365) – Rappresenta il numero di giorni di validità del consenso prestato dall’utente su un dato sito web. Questo valore si aggiorna ad ogni successiva visita dell’utente

Visualizza una configurazione di esempio ↓

Ulteriori parametri per sviluppatori

cookiePolicyUrl (string) – Si tratta dell’URL della cookie policy linkata all’interno del banner. È disponibile nella pagina di editing della tua privacy policy, in particolare nella tab “Integrazione > Cookie Policy”. Se non definisci questo parametro, di default il banner rimanda alla cookie policy generata tramite iubenda ed ospitata sui nostri spazi. Puoi scegliere in alternativa di ospitare la cookie policy su una pagina del tuo sito, specificandone il relativo URL attraverso il parametro cookiePolicyUrl. Ricorda che se decidi di ospitare la cookie policy su una tua pagina, questa non deve fare uso di cookie, al di là dei cookie tecnici.

Nota: il parametro cookiePolicyUrl è inefficace se stai utilizzando HTML custom per il banner (vedi la configurazione banner.html qui di seguito).

cookiePolicyInOtherWindow (boolean, default false) – È possibile settare questo parametro su true se si vuole che la cookie policy venga aperta in un’altra finestra invece che nella lightbox/modale di iubenda.

rebuildIframe (boolean, default false) – Di default la Cookie Solution, una volta registrato il consenso dell’utente, ripristina gli iframe precedentemente modificati in modo tale da farli diventare nuovamente funzionanti. Settando questo parametro su true, invece, dopo il consenso gli iframe precedentemente bloccati vengono completamente rigenerati (ossia reinseriti).

preserveOriginalClasses (boolean, default false) – Di default le classi originali degli snippet vengono cancellate a seguito della loro riattivazione. Settando invece questo parametro su true, si fa in modo che le classi originali rimangano inalterate anche dopo l’attivazione.

preserveIubClasses (boolean, default false) – Di default la classe _iub_cs_activate viene cancellata a seguito della riattivazione dello snippet. Settando invece questo parametro su true, si fa in modo che tale classe resti definita sullo snippet anche dopo l’attivazione. Nota bene: per essere efficace, questo parametro richiede che anche preserveOriginalClasses sia settato su true (vedi sopra per ulteriori dettagli). Inoltre, questo parametro non ha nessun effetto sugli snippet taggati con classe _iub_cs_activate-inline.

inlineDelay (integer, milliseconds, default 500) – Il tempo massimo che intercorre tra le attivazioni dagli snippet taggati con la classe _iub_cs_activate-inline (gli snippet taggati in questo modo vengono infatti attivati in sequenza). Diminuendo questo valore si abbrevia il tempo totale di attivazione. ATTENZIONE: Il suo valore di default è stabilito in modo che tutti gli snippet censiti si attivino correttamente; ridurlo potrebbe impedire la corretta attivazione di alcuni snippet. Si consiglia altamente di verificare l’attivazione degli snippet presenti nella propria pagina se questa impostazione viene modificata.

startOnDomReady (boolean, default true) – se true il rendering del banner e/o l’attivazione degli snippet bloccati verranno eseguiti non appena lo stato del documento risulta essere ‘caricato’ (ovvero quando il DOM raggiunge lo stato loaded). Se invece l’opzione è impostata su false, allora la Cookie Solution partirà quando la pagina è stata interamente caricata (ovvero quando lo stato del DOM risulta essere completed e tutte le risorse incluse in pagina sono state caricate).

timeoutLoadConfiguration (integer, milliseconds, default 2000) – Il tempo massimo che la configurazione in remoto attende prima di dichiarare che si è verificato un timeout. In caso di rete lenta, incrementando questo valore (ad esempio impostandolo a 30000), ti assicurerai che la Cookie Solution riceva in tempo le risorse necessarie al suo funzionamento.

logLevel (string) – Definisce la verbosità del logger (valori disponibili: debug, info, warn, error, fatal; il valore di default è noLog).

logViaAlert (boolean, default false) – Settando questo parametro su true, il logging viene mostrato via alert.

Classi disponibili

  • iubenda-cs-close-btn – Aggiungendo questa classe ad un elemento qualsiasi della pagina, il click sull’elemento chiude il banner e assume consenso fornito (in maniera equivalente al click sul pulsante X di default del banner).
  • iubenda-cs-cookie-policy-lnk – Aggiungendo questa classe ad un elemento qualsiasi della pagina, il click sull’elemento permette la visualizzazione della Cookie Policy (in maniera equivalente al click sul link alla Cookie Policy presente nel banner). Nota: per garantire la corretta visualizzazione della Cookie Policy, la classe iubenda-cs-cookie-policy-lnk (assegnata al link della Cookie Policy nel banner) non deve essere utilizzata altrove nella pagina.

Esempi

Ecco un esempio di configurazione della iubenda Cookie Solution con parametri facoltativi:

<script type="text/javascript">
    var _iub = _iub || [];
    _iub.csConfiguration = {
        "lang": "en",
        "siteId": 896537, //usa il tuo siteId
        "cookiePolicyId": 8207462, //usa il tuo cookiePolicyId
        "enableRemoteConsent": "false",
        "consentOnScroll": "false",
        "banner": {
            "position": "top",
            "slideDown": "false",
            "content": "This website or its third-party tools use cookies. Please refer to the %{cookie_policy_link} if you want to learn more or withdraw your consent.",
            "cookiePolicyLinkCaption": "cookie policy",
            "backgroundColor": "#CCC",
            "textColor": "#000",
            "fontSize": "14px",
            "innerHtmlCloseBtn": "OK"
        },
        "footer": {
            "message": "By closing this window, you accept the use of cookies.",
            "btnCaption": "Close this window"
        },
        "preferenceCookie": {
            "expireAfter": 180
        }
    };
</script>
<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

Altri esempi di possibili configurazioni:


Attivatore inline

È possibile includere direttamente in pagina (inline) la parte di codice che si occupa dell’attivazione degli script; definiamo questo codice attivatore inline. Tramite l’attivatore inline gli script potranno essere attivati anche nel caso in cui la risorsa principale iubenda_cs.js risulti essere non disponibile o in errore.

L’attivatore inline garantisce unicamente l’attivazione degli script, potendo anche assumere il consenso fornito (si veda l’opzione seguente forceSafeActivation). Non è in grado di mostrare il banner, la cookie policy e gestire la raccolta del consenso fornito.

Va dunque inteso unicamente come ulteriore misura precauzionale nel caso di errori, e non sostituisce in nessun modo il codice principale della iubenda Cookie Solution.

Da notare che l’attivatore inline è in grado di invocare la sola callback onActivationDone, le altre callback saranno invece ignorate.

Sono disponibili due ulteriori opzioni di configurazione specifiche per l’attivatore inline:

  • safeTimeout: (millisecondi, default 0) – Il tempo che l’attivatore inline attende prima di entrare in azione (ed eventualmente prima di attivare gli script; si veda anche l’opzione seguente).
  • forceSafeActivation: (boolean, default false) – Se true gli script vengono attivati indipendentemente dal consenso fornito. Se false l’attivatore inline attiva gli script solo se il consenso è stato fornito (e memorizzato nel cookie di preferenza nel dominio della pagina ospite).

L’attivatore inline è disponibile ai seguenti indirizzi:

IAB Transparency and Consent Framework

Se hai abilitato il supporto allo IAB Transparency and Consent Framework per la gestione delle preferenze pubblicitarie, puoi sfruttare l’attivatore inline sia per safe.js che per safe-tcf.js. Quest’ultimo è disponibile a questi indirizzi:

Esempi

Ricorda: il contenuto di safe.js (e, eventualmente, di safe-tcf.js) va incluso in pagina dopo le configurazioni iniziali e prima del codice che carica la risorsa iubenda_cs.js.

Canale Current

<script type="text/javascript">
    var _iub = _iub || [];
    _iub.csConfiguration = {
        "lang": "it",
        "siteId": XXXXXX, //usa il tuo siteId
        "cookiePolicyId": YYYYYY, //usa il tuo cookiePolicyId
        "banner": {
            "position": "float-top-center",
            "acceptButtonDisplay": true,
            "customizeButtonDisplay": true
        }
    };
    _iub.csConfiguration.safeTimeout = 500; //valore personalizzato
    _iub.csConfiguration.forceSafeActivation = false; //valore personalizzato
</script>

<script type="text/javascript">
    //<![CDATA[
    //copia il contenuto di cdn.iubenda.com/cs/safe.js e incollalo qui
    //]]>
</script>

<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

Esempio di configurazione con il supporto al framework di IAB:

<script type="text/javascript">
    var _iub = _iub || [];
    _iub.csConfiguration = {
        "lang": "it",
        "enableCMP": true,
        "googleAdsPreferenceManagement": true,
        "siteId": XXXXXX, //usa il tuo siteId
        "cookiePolicyId": YYYYYY, //usa il tuo cookiePolicyId
        "banner": {
            "position": "float-top-center",
            "acceptButtonDisplay": true,
            "customizeButtonDisplay": true
        }
    };
</script>

<script type="text/javascript" src="//cdn.iubenda.com/cs/tcf/stub.js"></script>

<!-- attivatore inline - safe.js (canale current) -->
<script type="text/javascript">
    //<![CDATA[
    //copia il contenuto di cdn.iubenda.com/cs/safe.js e incollalo qui
    //]]>
</script>

<!-- attivatore inline - safe-tcf.js (canale current) -->
<script type="text/javascript">
    //<![CDATA[
    //copia il contenuto di cdn.iubenda.com/cs/tcf/safe-tcf.js e incollalo qui
    //]]>
</script>

<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

Canale Beta

<script type="text/javascript">
    var _iub = _iub || [];
    _iub.csConfiguration = {
        "lang": "it",
        "siteId": XXXXXX, //usa il tuo siteId
        "cookiePolicyId": YYYYYY, //usa il tuo cookiePolicyId
        "banner": {
            "position": "float-top-center",
            "acceptButtonDisplay": true,
            "customizeButtonDisplay": true
        }
    };
    _iub.csConfiguration.safeTimeout = 500; //valore personalizzato
    _iub.csConfiguration.forceSafeActivation = false; //valore personalizzato
</script>

<script type="text/javascript">
    //<![CDATA[
    //copia il contenuto di cdn.iubenda.com/cs/beta/safe.js e incollalo qui
    //]]>
</script>

<script type="text/javascript" src="//cdn.iubenda.com/cs/beta/iubenda_cs.js" charset="UTF-8" async></script>

Esempio di configurazione con il supporto al framework di IAB:

<script type="text/javascript">
    var _iub = _iub || [];
    _iub.csConfiguration = {
        "lang": "it",
        "enableCMP": true,
        "googleAdsPreferenceManagement": true,
        "siteId": XXXXXX, //usa il tuo siteId
        "cookiePolicyId": YYYYYY, //usa il tuo cookiePolicyId
        "banner": {
            "position": "float-top-center",
            "acceptButtonDisplay": true,
            "customizeButtonDisplay": true
        }
    };
</script>

<script type="text/javascript" src="//cdn.iubenda.com/cs/tcf/beta/stub.js"></script>

<!-- attivatore inline - safe.js (canale beta) -->
<script type="text/javascript">
    //<![CDATA[
    //copia il contenuto di cdn.iubenda.com/cs/beta/safe.js e incollalo qui
    //]]>
</script>

<!-- attivatore inline - safe-tcf.js (canale beta) -->
<script type="text/javascript">
    //<![CDATA[
    //copia il contenuto di cdn.iubenda.com/cs/tcf/beta/safe-tcf.js e incollalo qui
    //]]>
</script>

<script type="text/javascript" src="//cdn.iubenda.com/cs/beta/iubenda_cs.js" charset="UTF-8" async></script>

Canale Stable

<script type="text/javascript">
    var _iub = _iub || [];
    _iub.csConfiguration = {
        "lang": "it",
        "siteId": XXXXXX, //usa il tuo siteId
        "cookiePolicyId": YYYYYY, //usa il tuo cookiePolicyId
        "banner": {
            "position": "float-top-center",
            "acceptButtonDisplay": true,
            "customizeButtonDisplay": true
        }
    };
    _iub.csConfiguration.safeTimeout = 500; //valore personalizzato
    _iub.csConfiguration.forceSafeActivation = false; //valore personalizzato
</script>

<script type="text/javascript">
    //<![CDATA[
    //copia il contenuto di cdn.iubenda.com/cs/safe.js e incollalo qui
    //]]>
</script>

<script type="text/javascript" src="//cdn.iubenda.com/cs/stable/iubenda_cs.js" charset="UTF-8" async></script>

Esempio di configurazione con il supporto al framework di IAB:

<script type="text/javascript">
    var _iub = _iub || [];
    _iub.csConfiguration = {
        "lang": "it",
        "enableCMP": true,
        "googleAdsPreferenceManagement": true,
        "siteId": XXXXXX, //usa il tuo siteId
        "cookiePolicyId": YYYYYY, //usa il tuo cookiePolicyId
        "banner": {
            "position": "float-top-center",
            "acceptButtonDisplay": true,
            "customizeButtonDisplay": true
        }
    };
</script>

<script type="text/javascript" src="//cdn.iubenda.com/cs/tcf/stable/stub.js"></script>

<!-- attivatore inline - safe.js (canale stable) -->
<script type="text/javascript">
    //<![CDATA[
    //copia il contenuto di cdn.iubenda.com/cs/stable/safe.js e incollalo qui
    //]]>
</script>

<!-- attivatore inline - safe-tcf.js (canale stable) -->
<script type="text/javascript">
    //<![CDATA[
    //copia il contenuto di cdn.iubenda.com/cs/tcf/stable/safe-tcf.js e incollalo qui
    //]]>
</script>

<script type="text/javascript" src="//cdn.iubenda.com/cs/stable/iubenda_cs.js" charset="UTF-8" async></script>

Il codice dell’attivatore è parte integrate della iubenda Cookie Solution e come tale può essere modificato al fine di introdurre nuove feature, miglioramenti e bugfix.

I rilasci di nuove versioni della iubenda Cookie Solution che comportano anche la modifica dell’attivatore inline sono contrassegnati nel changelog con il tag [safe.js updated].

Al fine di facilitare il controllo della versione dell’attivatore integrato nella propria pagina, è disponibile la variabile _iub.csSafeActivatorVersion che riporta la versione di iubenda_cs.js dalla quale l’attivatore è stato estratto.


API

Grazie alle API JS puoi interagire con alcune delle funzioni principali della Cookie Solution di iubenda.

Sintassi: _iub.cs.api.NOME_METODO

I metodi disponibili sono:

  • printErrors(): stampa gli eventuali errori della iubenda Cookie Solution sulla console del browser

  • showCP(): mostra la Cookie Policy (in modo simile a quando si clicca sul link alla Cookie Policy nel banner o su un altro link con la classe iubenda-cs-cookie-policy-lnk, come descritto qui)

  • consentGiven(): fornisce il consenso. Il metodo accetta come parametri facoltativi:

    • eventName: (stringa), uno tra i seguenti: documentClicked (default), documentScrolled, documentMoved, bannerXclose, cookiePolicyClosed; indica il tipo di azione attraverso la quale il consenso viene fornito.
    • force: (boolean), true | false (default): se false, iubenda CS si assicura che il banner sia mostrato prima di recepire effettivamente il consenso; invece, fornendo questa opzione a true, il consenso viene recepito in ogni caso.

      Nota: la chiamata a questo metodo assume il consenso fornito in maniera del tutto equivalente a quando lo si fornisce via UI, ad es. con lo scrolling della pagina. Pertanto tutte le azioni a valle del consenso fornito sono eseguite, tra cui l’aggiornamento del cookie di preferenza, l’attivazione degli snippet bloccati preventivamente e l’invocazione delle callback onConsentFirstGiven e onConsentRead.

      Per la sola attivazione delle snippet è a disposizione il metodo activateSnippets().

  • activateSnippets(): attiva gli snippet bloccati preventivamente.

    Nota: questo metodo può essere richiamato ripetutamente: gli snippet già attivati non verranno presi in considerazione. È utile ad esempio quando, a consenso raccolto, si aggiungono dinamicamente alla pagina (via lazy loading o infinite scrolling) contenuti bloccati da attivare.

    Se l’opzione runOnActivationDoneCallback (boolean, default false), è true eseguirà la callback onActivationDone al completamento dell’attivazione degli snippet (rif. onActivationDone callback).

  • isConsentGiven() (DOMElement, default window.document): restituisce true se il consenso è stato dato, altrimenti false.

  • setConsentOnScrollOnElement() (boolean): la chiamata a questo metodo definisce l’elemento sul quale verrà osservato lo scroll ai fini del consenso.

    Nota: questo metodo è utile quando si vuole usufruire dell’opzione consentOnScrollOnElement ma il DOMelement non è ancora disponibile quando la Cookie Solution viene inizializzata. A tal proposito è possible utilizzare la callback onBannerShow (esempio) che avviene ad inizializzazione della CS completata.

  • storeConsent(): salva il consenso nei cookie. Se ad esempio vuoi migrare i consensi dal precedente provider, potresti voler chiamare questo metodo nella callback onBeforePreload se il consenso risulta essere già stato prestato sull’altra piattaforma.


Lettura del cookie di preferenza

Il consenso fornito dall’utente viene salvato in alcuni cookie nel dominio della pagina ospite. Verificando la presenza o meno di questi cookie è possibile determinare se l’utente ha prestato il suo consenso.

In particolare il consenso si intende prestato se è presente il cookie _iub_cs-s[siteId] oppure il cookie _iub_cs-[cookiePolicyId], dove siteId e cookiePolicyId sono i parametri forniti nel codice di embedding (nel caso del codice di embedding illustrato in precedenza, i due cookie da cercare saranno _iub_cs-s234578 e _iub_cs-340542). Di seguito riportiamo un esempio di codice JavaScript per la lettura del consenso client-side:

function isConsentGiven (siteId,cookiePolicyId){
        var cs = document.cookie.split(';');
  for (var i = 0; i < cs.length; i++) {
    while (cs[i].charAt(0) == ' ') cs[i] = cs[i].substring(1);
    if(cs[i].indexOf('_iub_cs-s'+ siteId) == 0||cs[i].indexOf('_iub_cs-'+ cookiePolicyId) == 0) return true;}
  return false;
}

Posizionando questo codice quanto più in alto possibile all’interno della pagina si riesce a leggere il consenso fornito ed a trasmettere questa informazione a tutti gli altri JavaScript che seguono.