Iubenda logo
Genera tus documentos

Documentación

Tabla de contenidos

Cómo migrar los consentimientos de un proveedor anterior a la Cookie Solution

Si estás cambiando de otra solución de gestión de cookies a la nuestra, es posible que quieras migrar los consentimientos ya recopilados. Esto es útil para que no se vuelva a mostrar el banner de cookies y la solicitud de consentimiento a los usuarios que ya han dado su consentimiento bajo la solución anterior.

Hay dos formas de hacer esto, dependiendo de si la plataforma “antigua” proporciona una cookie (método sincrónico) o requiere una llamada a su API (método asincrónico).

Método sincrónico

Antes de integrar la Cookie Solution, tienes que definir una función síncrona (por ejemplo, isConsentGivenByOtherPlatform) para obtener el consentimiento de la otra plataforma:

<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'; // use the actual cookie name saved by the other platform 
        var prevConsent = readLocalCookie(otherPlatformCookieName); 
        if (prevConsent) { 
            return true; 
        } else { 
            return false; 
        } 
    }
</script>
Importante

No copies y pegues el código que se muestra arriba, es solo un código de ejemplo que te proporcionamos para ayudarte a comprender lo que hay que hacer.

A continuación, agrega el código de la Cookie Solution, invocando la callback onBeforePreload:

<script type="text/javascript">
    var _iub = _iub || [];
    _iub.csConfiguration = {
        "lang": "en",
        "siteId": XXXXXX, // use your siteId
        "cookiePolicyId": YYYYYY, // use your 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 comprueba si ya se ha dado el consentimiento en otra plataforma y, de ser así, lo almacena llamando el método _iub.cs.api.storeConsent().

Consentimiento por categoría

_iub.cs.api.storeConsent() también permite establecer finalidades y acepta un argumento opcional que puede ser {consent: true}, {consent: false} o {purposes: {1: true, 2: false, …}}. Si no se especifica ningún argumento, actúa como si hubiera pasado {consent: true}.

Método asincrónico

Antes de integrar el código de la Cookie Solution, tienes que definir una función que:

  1. acepte una callback;
  2. detecte el consentimiento;
  3. guarde el consentimiento en una variable global; e
  4. invoque la callback después.

Aquí tienes un ejemplo:

<script type="text/javascript">
    // fetch consent asynchronously from 3rd party 
    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

No copies y pegues el código que se muestra arriba, es solo un código de ejemplo que te proporcionamos para ayudarte a comprender lo que hay que hacer.

A continuación, agrega el código de la Cookie Solution, invocando la callback onBeforePreload:

<script type="text/javascript">
    var _iub = _iub || [];
    _iub.csConfiguration = {
        "lang": "en",
        "siteId": XXXXXX, // use your siteId
        "cookiePolicyId": YYYYYY, // use your 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">
    // ask for 3rd party consent before including the CS
    getConsentByOtherPlatform(function() {
        var s = document.createElement('script');
        s.src = '//cdn.iubenda.com/cs/iubenda_cs.js';
        document.head.appendChild(s);
    });
</script>

La callback onBeforePreload comprueba si ya se ha dado el consentimiento en otra plataforma y, de ser así, lo almacena llamando al método _iub.cs.api.storeConsent().

Consentimiento por categoría

_iub.cs.api.storeConsent() también permite establecer finalidades y acepta un argumento opcional que puede ser {consent: true}, {consent: false} o {purposes: {1: true, 2: false, …}}. Si no se especifica ningún argumento, actúa como si hubiera pasado {consent: true}.

Más información