Iubenda logo
Genera tus documentos

Documentación

Tabla de contenidos

Cómo migrar los consentimientos de un proveedor anterior a la Privacy Controls and 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 que ya has recopilado. Esto es útil para garantizar que a los usuarios que ya han dado su consentimiento con la solución anterior no se les presenta de nuevo el banner de cookies, y la solicitud de consentimiento relacionada.

Hay dos formas de hacerlo, dependiendo de si la plataforma “antigua” proporciona una cookie(método síncrono) o requiere una llamada a su API(método asíncrono).

Método sincrónico

Antes de incrustar el Privacy Controls and Cookie Solution tendrás que definir una función sincrónica (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 sólo un código de muestra que hemos proporcionado para ayudarte a entender el planteamiento.

A continuación, añade el fragmento Privacy Controls and Cookie Solution, invocando la llamada de retorno onReady:

<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": {
            "onReady": function() {
                if (typeof window.isConsentGivenByOtherPlatform === 'function' && isConsentGivenByOtherPlatform()) {
                    _iub.cs.api.setPreferences({
                        consent: true,
                        ccpa: true,
                        uspr: {
                            'all': true,
                            'sd8': true,
                            'sd9': true,
                        },
                        purposes: {
                            '1': true,
                            '2': true,
                            '3': true,
                            '4': true,
                            '5': true,
                        },
                        tcfv2: {
                            'all': true,
                        },
                        gac: {
                            'all': true,
                        },
                    }, true);
                }
            }
        }
    };
</script>
<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

La llamada de retorno a onReady comprueba si ya se ha dado el consentimiento en otra plataforma y, si es así, lo almacena llamando al método _iub.cs.api.setPreferences().

Consentimiento por categoría

_iub.cs.api.storeConsent() permite personalizar los propósitos también en el argumento que puede ser {consent: true}, {consent: false} o {purposes: {1: true, 2: false, …}}.

Método asíncrono

Antes de incrustar el código de Privacy Controls and Cookie Solution tendrás que definir una función que:

  1. acepta una llamada de retorno;
  2. detecta el consentimiento;
  3. guarda el consentimiento en una variable global; y
  4. invoca después la llamada de retorno.

Aquí tienes una muestra:

<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 sólo un código de muestra que hemos proporcionado para ayudarte a entender el planteamiento.

A continuación, añade el fragmento Privacy Controls and Cookie Solution, invocando la llamada de retorno onReady:

<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": {
            "onReady": function() {
                if (typeof window.isConsentGivenByOtherPlatform === 'function' && isConsentGivenByOtherPlatform()) {
                    _iub.cs.api.setPreferences({
                        consent: true,
                        ccpa: true,
                        uspr: {
                            'all': true,
                            'sd8': true,
                            'sd9': true,
                        },
                        purposes: {
                            '1': true,
                            '2': true,
                            '3': true,
                            '4': true,
                            '5': true,
                        },
                        tcfv2: {
                            'all': true,
                        },
                        gac: {
                            'all': true,
                        },
                    }, true);
                }
                }
            }
        }
    };
</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 llamada de retorno a onReady comprobará si ya se ha dado el consentimiento en otra plataforma y, si es así, lo almacena llamando al método _iub.cs.api.setPreferences().

Consentimiento por categoría

_iub.cs.api.storeConsent() permite personalizar los propósitos también en el argumento que puede ser {consent: true}, {consent: false} o {purposes: {1: true, 2: false, …}}.

_iub.cs.api.setPreferences(consentObj, hideBanner)

El método _iub.cs.api.setPreferences, esperaba dos argumentos: consentObj (obligatorio) y hideBanner (opcional)

consentObj

Es un objeto con elementos de preferencias de seguimiento:

  • consentimiento – necesario – acepta true o false – Se refiere al consentimiento general
  • ccpa – obligatorio si está activada la CCPA – acepta true o false – se refiere a la privacidad en EE.UU. y sólo se aplicará si la CCPA está activada en Cookie Solution
  • uspr – requerido si USPR está habilitado – acepta un objeto con las siguientes opciones – se refiere al consentimiento USPR y se aplicará sólo si USPR está habilitado en Cookie Solution
    • todos – acepta true o false – esta opción establece el mismo valor para todos los efectos
uspr: {
   all: true // or false
}
  • [purposeId] – acepta true o false – esta opción establece el valor para fines específicos de ID
uspr: {
   's': true, // or false
   'sh': false, // or true
   'adv': false // or true
}
  • fines – obligatorio si perPurposeConsent está habilitado – acepta un objeto con las siguientes opciones – se refiere al consentimiento de fines y sólo se aplicará si perPurposeConsent está habilitado en Cookie Solution
    • todos – acepta true o false – esta opción establece el mismo valor para todos los efectos
purposes: {
   all: true // or false
}
  • [purposeId] – acepta true o false – esta opción establece el valor para fines específicos de ID
purposes: {
   '1': true, // or false
   '2': false, // or true
   '4': false // or true
}
  • tcfv2 – requerido si TCF está habilitado – acepta un objeto con las siguientes opciones – se refiere al consentimiento TCF y se aplicará sólo si TCF está habilitado en Cookie Solution
    • todos – acepta true o false – esta opción establece el mismo valor para todos los fines del TCF
tcfv2: {
   all: true // or false
}
  • [cadena] – acepta una cadena TCF
tcfv2: 'CP9rVEAP9rVEAB7FGCENAyEgAAAAAAAAAAAAAAAUHgJAA4AM-AjwBKoDfAHbAO5AgoBIgCSgEowJaATHAmSBNICfYFBAKDgAAAAA'
  • gac – necesario si está activado el Consentimiento Adicional de Google – acepta un objeto con las siguientes opciones – se refiere al consentimiento GAC y sólo se aplicará si GAC está activado en Solución de Cookies
    • todos – acepta true o false – esta opción establece el mismo valor para todos los proveedores del CAG
gac: {
   all: true // or false
}
  • [cadena] – acepta una cadena GAC
gac: '1~1584.2292.2392'

hideBanner

Es un booleano para ocultar o no el banner tras el almacenamiento de preferencias, en este caso, siempre debe ser true

_iub.cs.api.setPreferences({ ... }, true); // hide the banner after the preference storage

_iub.cs.api.setPreferences({ ... }, false); // keep the banner after the preference storage

Ver también