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:
- acepta una llamada de retorno;
- detecta el consentimiento;
- guarda el consentimiento en una variable global; y
- 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 on
Ready:
<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
ofalse
– Se refiere al consentimiento general - ccpa – obligatorio si está activada la CCPA – acepta
true
ofalse
– 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
ofalse
– esta opción establece el mismo valor para todos los efectos
- todos – acepta
uspr: { all: true // or false }
- [purposeId] – acepta
true
ofalse
– 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á siperPurposeConsent
está habilitado en Cookie Solution- todos – acepta
true
ofalse
– esta opción establece el mismo valor para todos los efectos
- todos – acepta
purposes: { all: true // or false }
- [purposeId] – acepta
true
ofalse
– 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
ofalse
– esta opción establece el mismo valor para todos los fines del TCF
- todos – acepta
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
ofalse
– esta opción establece el mismo valor para todos los proveedores del CAG
- todos – acepta
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