Documentazione

Indice dei contenuti

Come migrare i consensi dal precedente provider alla 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 della 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 della 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().

Modalità asincrona

Prima di incorporare lo snippet della 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 della 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().

Leggi anche