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 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
trueofalse– Se refiere al consentimiento general - ccpa – obligatorio si está activada la CCPA – acepta
trueofalse– 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
trueofalse– esta opción establece el mismo valor para todos los efectos
- todos – acepta
uspr: {
all: true // or false
}
- [purposeId] – acepta
trueofalse– 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
perPurposeConsentestá habilitado – acepta un objeto con las siguientes opciones – se refiere al consentimiento de fines y sólo se aplicará siperPurposeConsentestá habilitado en Cookie Solution- todos – acepta
trueofalse– esta opción establece el mismo valor para todos los efectos
- todos – acepta
purposes: {
all: true // or false
}
- [purposeId] – acepta
trueofalse– 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
trueofalse– 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
trueofalse– 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