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).
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>
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().
_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, …}}.
Antes de incrustar el código de Privacy Controls and Cookie Solution tendrás que definir una función que:
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>
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().
_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, …}}.
El método _iub.cs.api.setPreferences, esperaba dos argumentos: consentObj (obligatorio) y hideBanner (opcional)
Es un objeto con elementos de preferencias de seguimiento:
true o false – Se refiere al consentimiento generaltrue o false – se refiere a la privacidad en EE.UU. y sólo se aplicará si la CCPA está activada en Cookie Solutiontrue o false – esta opción establece el mismo valor para todos los efectosuspr: {
all: true // or false
}
true o false – esta opción establece el valor para fines específicos de IDuspr: {
's': true, // or false
'sh': false, // or true
'adv': false // or true
}
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
true o false – esta opción establece el mismo valor para todos los efectospurposes: {
all: true // or false
}
true o false – esta opción establece el valor para fines específicos de IDpurposes: {
'1': true, // or false
'2': false, // or true
'4': false // or true
}
true o false – esta opción establece el mismo valor para todos los fines del TCFtcfv2: {
all: true // or false
}
tcfv2: 'CP9rVEAP9rVEAB7FGCENAyEgAAAAAAAAAAAAAAAUHgJAA4AM-AjwBKoDfAHbAO5AgoBIgCSgEowJaATHAmSBNICfYFBAKDgAAAAA'
true o false – esta opción establece el mismo valor para todos los proveedores del CAGgac: {
all: true // or false
}
gac: '1~1584.2292.2392'
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