Iubenda logo
Inizia la generazione

Documentazione

Indice dei contenuti

Come migrare i consensi dal precedente provider a Privacy Controls and Cookie Solution

Se stai passando da un’altra soluzione per la gestione del consenso ai cookie alla nostra, potresti voler migrare i consensi già raccolti, così da non mostrare il cookie banner di iubenda agli utenti che hanno già prestato il consenso tramite la soluzione precedente.

Hai due modi per farlo, a seconda che la “vecchia” piattaforma metta a disposizione un cookie (modalità sincrona) oppure richieda una chiamata alla propria API (modalità asincrona).

Modalità sincrona

Prima di incorporare il codice di Privacy Controls and Cookie Solution dovrai definire una funzione sincrona (come ad esempio isConsentGivenByOtherPlatform) per recuperare il consenso dall’altra piattaforma:

<script type="text/javascript">
    function readLocalCookie(cookieName) {
        var cookies = document.cookie.split(';');
        for (var i = 0; i < cookies.length; i++) { 
            var e=cookies[i].split('=');
            if (e[0] === cookieName) {
                return e[1];
            }
        }
        return null;
    }

    function isConsentGivenByOtherPlatform() {
        var otherPlatformCookieName = 'cookie_from_other_platform'; // indica il cookieName usato dall'altra piattaforma 
        var prevConsent = readLocalCookie(otherPlatformCookieName); 
        if (prevConsent) { 
            return true; 
        } else { 
            return false; 
        } 
    }
</script>
Importante

Non copiare e incollare il codice soprastante, si tratta solo di un esempio dell’approccio che dovrai seguire.

A seguire dovrai aggiungere il codice di integrazione di Privacy Controls and Cookie Solution, prevedendo una callback alla funzione onBeforePreload:

<script type="text/javascript">
    var _iub = _iub || [];
    _iub.csConfiguration = {
        "lang": "it",
        "siteId": XXXXXX, // usa il tuo siteId
        "cookiePolicyId": YYYYYY, // usa il tuo cookiePolicyId
        "banner": {
            "acceptButtonDisplay": true,
            "customizeButtonDisplay": true,
            "position": "float-top-center"
        },
        "callback": {
            onBeforePreload: function() {
                if (typeof window.isConsentGivenByOtherPlatform === 'function' && isConsentGivenByOtherPlatform()) {
                    _iub.cs.api.storeConsent();
                }
            }
        }
    };
</script>
<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

La callback onBeforePreload verifica se il consenso sia già stato prestato su un’altra piattaforma e, in caso affermativo, lo salva chiamando il metodo _iub.cs.api.storeConsent().

Consenso per categoria

_iub.cs.api.storeConsent() supporta anche le categorie e accetta un argomento opzionale che può essere {consent: true}, {consent: false} oppure {purposes: {1: true, 2: false, …}}. Qualora non venga specificato nessun argomento, si comporta come se fosse passato {consent: true}.

Modalità asincrona

Prima di incorporare lo snippet di Privacy Controls and Cookie Solution dovrai definire una funzione che:

  1. accetta una callback;
  2. rileva il consenso;
  3. salva il consenso in una variabile globale; e
  4. a seguire chiama la callback.

Esempio:

<script type="text/javascript">
    // recupera il consenso dalla terza parte
    function getConsentByOtherPlatform(cb) {
        $.getJSON('http://otherplatform.com/api/get-consent', function(result) {
            if (result.given) {
                window.consentByOtherPlatform = true;
            } else {
                window.consentByOtherPlatform = false;
            }
            cb();
        });
    }

    function isConsentGivenByOtherPlatform() {
        return !!window.consentByOtherPlatform;
    }
</script>
Importante

Non copiare e incollare il codice soprastante, è solo un esempio dell’approccio che dovrai seguire.

A seguire dovrai aggiungere il codice di integrazione di Privacy Controls and Cookie Solution, prevedendo una callback alla funzione onBeforePreload:

<script type="text/javascript">
    var _iub = _iub || [];
    _iub.csConfiguration = {
        "lang": "it",
        "siteId": XXXXXX, // usa il tuo siteId
        "cookiePolicyId": YYYYYY, // usa il tuo cookiePolicyId
        "banner": {
            "acceptButtonDisplay": true,
            "customizeButtonDisplay": true,
            "position": "float-top-center"
        },
        "callback": {
            onBeforePreload: function() {
                if (typeof window.isConsentGivenByOtherPlatform === 'function' && isConsentGivenByOtherPlatform()) {
                    _iub.cs.api.storeConsent();
                }
            }
        }
    };
</script>
<script type="text/javascript">
    getConsentByOtherPlatform(function() {
        var s = document.createElement('script');
        s.src = '//cdn.iubenda.com/cs/iubenda_cs.js';
        document.head.appendChild(s);
    });
</script>

La callback onBeforePreload verificherà se il consenso è già stato prestato sull’altra piattaforma e, in caso affermativo, lo memorizzerà chiamando il metodo _iub.cs.api.storeConsent().

Consenso per categoria

_iub.cs.api.storeConsent() supporta anche le categorie e accetta un argomento opzionale che può essere {consent: true}, {consent: false} oppure {purposes: {1: true, 2: false, …}}. Qualora non venga specificato nessun argomento, si comporta come se fosse passato {consent: true}.

Leggi anche