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).
Antes de integrar Privacy Controls and 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>
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 Privacy Controls and 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()
.
_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}
.
Antes de integrar el código de Privacy Controls and Cookie Solution, tienes que definir una función que:
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>
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 Privacy Controls and 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()
.
_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}
.