Privacy Controls and Cookie Solution de iubenda te permite gestionar todos los aspectos del cumplimiento de la ley de cookies: mostrar un cookie banner para notificar a tus usuarios, tener una política de cookies activa, tener pruebas de las preferencias de los usuarios y bloquear de forma preventiva los scripts antes de que el usuario otorgue su consentimiento.
¿Sabías que existe una opción más sencilla para el bloqueo previo de cookies y rastreadores? Nuestra función de bloqueo automático automatiza el proceso, lo que te permite ahorrar tiempo y esfuerzo.
Si prefieres etiquetar manualmente tus scripts que instalan o pueden instalar cookies, puedes seguir la guía que aparece a continuación para obtener instrucciones paso a paso y ejemplos prácticos. Sin embargo, te recomendamos encarecidamente que consideres la función de bloqueo automático para optimizar el proceso.
👉 Haz clic aquí para obtener más información sobre el bloqueo automático de cookies y sobre cómo simplificar tu proceso de bloqueo de cookies
Si quieres consultar una guía de instalación, lee nuestra guía dedicada o nuestra introducción a Privacy Controls and Cookie Solution. Para WordPress, consulta nuestro artículo dedicado para WordPress, que te enseñará cómo utilizar el plugin de Privacy Controls and Cookie Solution de iubenda para WordPress para automatizar el bloqueo de scripts.
Depende de la jurisdicción aplicable a tu sitio web. En Europa, estás obligado legalmente a bloquear los scripts de cookies hasta que hayas obtenido el consentimiento del usuario. Sin embargo, pese a que todas las cookies deben estar bloqueadas, existen algunas excepciones: son las llamadas cookies estrictamente necesarias.
En el caso de Italia, estas son las categorías de cookies exentas:
En Italia, la condición para que Google Analytics sea elegible para la opción “no se necesita consentimiento previo” es la anonimización de las direcciones IP. Sin embargo, en Francia, Google Analytics no parece ser elegible pare ninguna excepción al requisito de consentimiento, y si bien se recomienda el uso de Matomo/Piwik, es la anonimización de la dirección IP del usuario lo que permite que el análisis se lleve a cabo de forma desagregada.
Para ayudar a los anunciantes a gestionar las cookies con fines estadísticos y publicitarios, Google ha creado Consent Mode, una función que te permite evitar el bloqueo previo para Google Analytics y Google Ads (incluyendo el Seguimiento de Conversiones y Remarketing de Google Ads).
Consulta cómo implementarlo con Privacy Controls and Cookie Solution.
Es importante destacar que, cuando se aplica el RGPD, el uso previsto influye en si se requiere o no el consentimiento, ya que incluso los datos estadísticos pueden incluirse en actividades de “elaboración de perfiles” o “seguimiento”, según cómo se usen los datos.
Para proceder:
Si otras herramientas de terceros garantizan que no utilizan cookies, quizás al proporcionar opciones de configuración específicas, también pueden considerarse exentas del requisito de bloqueo previo.
Este es el caso de YouTube, que proporciona una función específica para evitar que se rastree al usuario a través de las cookies.
Google Tag Manager es una herramienta gratuita que te ayuda a simplificar la aplicación de las regulaciones de cookies. Es compatible con Privacy Controls and Cookie Solution de iubenda. Puedes consultar nuestra guía de Google Tag Manager aquí.
Google Tag Manager te permite evitar etiquetar los scripts como se describe a continuación, aunque esto se limita a una determinada categoría de scripts: scripts que no son posicionales/no definen una posición. Por lo tanto, no gestiona los scripts de inserción, como los relacionados con banners publicitarios, widgets de vídeo de YouTube, botones “Me gusta” de Facebook, etc. Aunque este método no es infalible, te recomendamos encarecidamente que lo utilices.
Para todos los demás scripts que instalen o que puedan instalar cookies, tienes que continuar añadiendo cambios en el código para implementar la capacidad de bloqueo.
Para activar el bloqueo de los scripts que puedan instalar cookies, tienes que cambiar estos scripts, de forma que Privacy Controls and Cookie Solution de iubenda pueda prevenir que se ejecuten cuando todavía no se haya obtenido el consentimiento.
Para hacerlo, tendrás que aplicar la clase _iub_cs_activate
a las etiquetas SCRIPT
. Finalmente, cambiamos el atributo type de text/javascript
a text/plain
.
<script class="_iub_cs_activate" type="text/plain" src="code-source.js"> …. </script>
El src
puede permanecer inalterado, pero es recomendable reemplazarlo con data-suppressedsrc
(no disponible en el canal current/beta/stable heredado) o con suppressedsrc
. Reemplazar el src
es necesario en algunos casos, ya que el navegador, aunque el script esté bloqueado, puede descargar y/o interpretar el recurso y, en consecuencia, instalar cookies.
// use of data-suppressedsrc <script data-suppressedsrc="LINK-TO-SOURCE.js" class="_iub_cs_activate" type="text/plain"> </script> // OR suppressedsrc <script suppressedsrc="LINK-TO-SOURCE.js" class="_iub_cs_activate" type="text/plain"> </script>
Nota: para la reactivación de scripts, Privacy Controls and Cookie Solution de iubenda gestiona la reactivación del src
controlando los atributos descritos previamente en el siguiente orden: data-suppressedsrc
(no disponible en el canal current/beta/stable heredado), suppressedsrc
y src
(si se mantiene inalterado).
Para activar la etiqueta inline de Javascript, en su lugar debes aplicar la clase_iub_cs_activate-inline
.
<script class="_iub_cs_activate-inline" type="text/plain"> …. </script>
Nota: la clase _iub_cs_activate-inline
tiene que aplicarse a todos los objetos document.write
o document.writeln
.
Gracias a los atributos personalizados suppressedtype
y data-iub-type
, Privacy Controls and Cookie Solution también puede bloquear/activar scripts que no sean text/javascript
(por ejemplo, module
):
<script type="module">
console.log('this is a module, e.g. "this" is undefined:', this);
</script>
Para bloquearlo:
<script suppressedtype="module" type="text/plain" class="_iub_cs_activate">
console.log('this is a module, e.g. "this" is undefined:', this);
</script>
o (alternativa equivalente):
<script data-iub-type="module" type="text/plain" class="_iub_cs_activate">
console.log('this is a module, e.g. "this" is undefined:', this);
</script>
Si has activado la función consentimiento por categoría, tendrás que especificar las categorías de los scripts/iframes con un atributo especial separado por comas, data-iub-purposes
, por ejemplo data-iub-purposes="2"
o data-iub-purposes="2, 3"
(es raro, pero un solo activador puede servir para diferentes finalidades).
Recuerda que las finalidades se agrupan en 5 categorías (Necesarios, Funcionalidad, Experiencia, Medición, Marketing), cada una con un ID (1, 2, 3, 4, 5):
1
). Finalidades incluidas:2
). Finalidades incluidas:
3
). Finalidades incluidas:
4
). Finalidades incluidas:
5
). Finalidades incluidas:
Tomemos el botón de seguimiento de Twitter, por ejemplo:
<a href="https://twitter.com/iubenda" class="twitter-follow-button" data-show-count="false">Follow @iubenda</a>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
Dado que el botón de seguimiento de Twitter es parte de la finalidad “Interacción con redes sociales y plataformas externas” incluida en la categoría “Mejora de la experiencia” (3), el código se convertirá en:
<a href="https://twitter.com/iubenda" class="twitter-follow-button" data-show-count="false">Follow @iubenda</a>
<script async type="text/plain" class="_iub_cs_activate" data-iub-purposes="3" data-suppressedsrc="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
Con la excepción de las cookies estrictamente necesarias (que no necesitan que se obtenga el consentimiento), tienes que añadir el atributo data-iub-purposes
a todos tus scripts si utilizas el consentimiento por categoría para que Privacy Controls and Cookie Solution pueda identificar correctamente los scripts para su publicación. Cuando se activa la función consentimiento por categoría, los scripts/iframes sin el atributo data-iub-purposes
o con al menos una finalidad rechazada permanecerá bloqueada, así que asegúrate de añadirlo en cada caso.
Alternativamente, en el caso de que las cookies se activen mediante partes del código Javascript, es posible proceder a través de una callback a la instancia csConfiguration
.
// onConsentGiven is still active but deprecated: if both are declarated only onConsentRead will be executed. _iub.csConfiguration = { callback: { onConsentRead: function(){ yourFunctionForRegisterCookie() ;} } }
Nota: onConsentGiven
, especificado anteriormente, todavía está disponible por razones de compatibilidad con versiones anteriores; en cualquier caso, onConsentRead
anulará su valor si se utiliza este último.
En algunos casos, para volver a activar correctamente una etiqueta bloqueada, es necesario esperar a que una variable o un objeto javascript esté disponible. Para gestionar adecuadamente las dependencias, encontrarás el atributo data-iub-cs-wait-for
(no disponible en el canal current/beta/stable heredado).
<script suppressedsrc="//download.helloworldvariable.js" class="_iub_cs_activate"> </script> <script data-iub-cs-wait-for="helloWord" class="_iub_cs_activate-inline"> console.log('print hello world' + helloWorld); </script>
Varias etiquetas img
e iframe
también podrían instalar cookies. En estos casos es necesario añadir la clase _iub_cs_activate
(al igual que para las etiquetas script
descritas anteriormente), asignar el valor original de la etiqueta src
a un nuevo atributo llamado data-suppressedsrc
(no disponible en el canal current/beta/stable heredado) o suppressedsrc
y asignar el valor "about:blank"
a src
(consulta el ejemplo a continuación para ver estas reglas).
<iframe id="player" class="_iub_cs_activate" width="640" height="390" frameborder="0" suppressedsrc="https://www.youtube.com/embed/erVv_Gm7CC4" src="about:blank"></iframe>
Nota: el valor data:text/html;base64,PGh0bWw+PGJvZHk+U3VwcHJlc3NlZDwvYm9keT48L2h0bWw+
, previamente indicado en esta guía (es la versión codificada en base64 de: Suppressed
, que posteriormente se mostrará por la mayoría de los navegadores antes del consentimiento en lugar de la salida real del script) no afecta el bloqueo correcto y la activación subsecuente de la etiqueta, pero su uso puede resultar en errores al mostrar algunas vistas web en Android.
En esta dirección encontrarás una herramienta de codificación para generar otra versión en base64 de cualquier otra cadena.
En la actualidad la etiqueta noscript que puede instalar cookies en los casos en los que el usuario haya desactivado JavaScript en su navegador, se encuentra en fase de implementación. Para estar preparado para estos casos, te sugerimos eliminar las etiquetas noscript del documento o utilizar soluciones de backend, que después de descubrir la presencia de la cookie _iub_cs-local
, podrían incluir o excluir selectivamente las etiquetas noscript
de los documentos.
A continuación, puedes encontrar ejemplos de scripts de uso común y orientación sobre cómo modificarlos para cumplir con la ley de cookies.
Después:
1. Define la callBack para onConsentGiven
en la instancia _iub.csConfiguration
onConsentGiven: function () { $('.4wNET.hidden').removeClass('hidden'); }
2. Incluye el script completo que carga el banner en un div con “display:none” – Ejemplo
Botón:
Altervista y sus proveedores publicitarios se unen y apoyan el Marco de Transparencia y Consentimiento. Más información en la Wiki de Altervista.
src
de la etiqueta script
.Nota: los fragmentos de código deben bloquearse en un orden específico si hay más Ads Conversion por página
_iub_cs_activate-inline
_iub_cs_activate
Al hacerlo, el primer fragmento de código de conversión será:
<script class="_iub_cs_activate-inline" type="text/plain"> /* <![CDATA[ */ var google_conversion_id =CONVERSION_ID; var google_conversion_label = "CONVERSION-LABEL"; var google_custom_params = window.google_tag_params; var google_remarketing_only = true; /* ]]> */ </script> <script class="_iub_cs_activate-inline" type="text/plain" src="//www.googleadservices.com/pagead/conversion.js"> </script> <noscript> <div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" class="_iub_cs_activate" src="data:text/html;base64,PGh0bWw+PGJvZHk+U3VwcHJlc3NlZDwvYm9keT48L2h0bWw+" suppressedsrc="//googleads.g.doubleclick.net/pagead/viewthroughconversion/1036022355/?value=0&label=-KpbCO3v1QQQ0-SB7gM&guid=ON&script=0"/> </div> </noscript>
Mientras que los fragmentos de código de conversión posteriores se convertirán en:
<script class="_iub_cs_activate" type="text/plain"> /* <![CDATA[ */ var google_conversion_id =CONVERSION_ID; var google_conversion_label = "CONVERSION-LABEL"; var google_custom_params = window.google_tag_params; var google_remarketing_only = true; /* ]]> */ </script> <script class="_iub_cs_activate" type="text/plain" src="//www.googleadservices.com/pagead/conversion.js"> </script> <noscript> <div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" type="text/plain" class="_iub_cs_activate" src="data:text/html;base64,PGh0bWw+PGJvZHk+U3VwcHJlc3NlZDwvYm9keT48L2h0bWw+" suppressedsrc="//googleads.g.doubleclick.net/pagead/viewthroughconversion/1036022355/?value=0&label=-KpbCO3v1QQQ0-SB7gM&guid=ON&script=0"/> </div> </noscript>
Se pueden bloquear todos los fragmentos de código de la página con la clase _iub_cs_activate
. Ejemplo:
<script class="_iub_cs_activate" type="text/plain"> /* <![CDATA[ */ var google_conversion_id =CONVERSION_ID; var google_conversion_label = "CONVERSION-LABEL"; var google_custom_params = window.google_tag_params; var google_remarketing_only = true; /* ]]> */ </script> <script class="_iub_cs_activate" type="text/plain" src="//www.googleadservices.com/pagead/conversion.js"> </script> <noscript> <div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" type="text/plain" class="_iub_cs_activate" src="data:text/html;base64,PGh0bWw+PGJvZHk+U3VwcHJlc3NlZDwvYm9keT48L2h0bWw+" suppressedsrc="//googleads.g.doubleclick.net/pagead/viewthroughconversion/1036022355/?value=0&label=-KpbCO3v1QQQ0-SB7gM&guid=ON&script=0"/> </div> </noscript>
Lo siguiente solo se implementa cuando se utilizan las funciones de Google Analytics que permiten el seguimiento de un usuario único. En todos los demás casos, es recomendable anonimizar la dirección IP.
Nota: si muestras anuncios personalizados utilizando los servicios de Google, debes asegurarte de obtener el consentimiento explícito para la personalización de anuncios antes de mostrar anuncios personalizados para usuarios finales basados en el EAA. Puedes encontrar más información aquí.
Nota: si hay muchos banners deOpenX en la página, puedes acelerar la activación utilizando la opción inlineDelay
(para obtener más información, consulta la guía de instalación y personalización de iubenda). Te recomendamos evitar valores menores de 200
milisegundos.
Nota: utiliza etiquetas asíncronas (AJAX).
Antes:
<div id="DIV-ID" class="CLASS-DIV"> <ul id="UL-ID" class="CLASS-UL"> <li id="LI-ID" class="CLASS-LI"> <a target="_blank" href="http://www.tripadvisor.co.uk/"><img src="http://www.tripadvisor.co.uk/img/cdsi/partner/tripadvisor_logo_DIMENSIONS.png" alt="TripAdvisor"/></a> </li> </ul> </div> <script src="http://www.jscache.com/wejs?wtype=TYPE&uniq=UNIQ&locationId=LocationId&icon=knifeAndFork&lang=en_UK&display_version=2"></script>
Después:
1. Añade a la configuración básica del script de iubenda el reloadOnConsent
como se muestra a continuación:
<script> _iub.csConfiguration ? _iub.csConfiguration : _iub.csConfiguration = {} _iub.csConfiguration.reloadOnConsent = true; </script> //insert it into <head> tag after iubenda configuration
2. Define isConsentGiven
para controlar las cookies:
<script type='text/javascript'> function isConsentGiven() { if('consentIsGiven' in window && (consentIsGiven === true || consentIsGiven === false)) return consentIsGiven; if(!('_iub' in window && 'csConfiguration' in _iub)) return false; var siteId = _iub.csConfiguration.siteId || ''; var cookiePolicyId = _iub.csConfiguration.cookiePolicyId || ''; var cs = document.cookie.split(';'); var consentIsGiven = false; for (var i = 0; i < cs.length; i++) { while (cs[i].charAt(0) == ' ') cs[i] = cs[i].substring(1); if(cs[i].indexOf('_iub_cs-s'+ siteId) == 0||cs[i].indexOf('_iub_cs-'+ cookiePolicyId) == 0) { consentIsGiven = true; break; } } window.consentIsGiven = consentIsGiven; return consentIsGiven; } </script>
3. Reemplaza el elemento original de TripAdvisor con este recurso:
<script> if(isConsentGiven()){ //per ogni elemento di TripAdvisor document.write('<div id="DIV-ID" class="CLASS-DIV"><ul id="UL-ID" class="CLASS-UL"><li id="LI-ID" class="CLASS-LI"><a target="_blank" href="http://www.tripadvisor.co.uk/"><img src="http://www.tripadvisor.co.uk/img/cdsi/partner/tripadvisor_logo_DIMENSIONS.png" alt="TripAdvisor"\/><\/a><\/li><\/ul><\/div>'); document.write('<script src="http://www.jscache.com/wejs?wtype=TYPE&uniq=UNIQ&locationId=LocationId&icon=knifeAndFork&lang=en_UK&display_version=2"><\/script>'); } </script>
Antes:
<div id="DIV-ID" class="CLASS-DIV"> <ul id="UL-ID" class="CLASS-UL"> <li id="LI-ID" class="CLASS-LI"> <a target="_blank" href="http://www.tripadvisor.co.uk/"><img src="http://www.tripadvisor.co.uk/img/cdsi/partner/tripadvisor_logo_DIMENSIONS.png" alt="TripAdvisor"/></a> </li> </ul> </div> <script src="http://www.jscache.com/wejs?wtype=TYPE&uniq=UNIQ&locationId=LocationId&icon=knifeAndFork&lang=en_UK&display_version=2"></script>
Después:
1. Añade a la configuración básica del script de iubenda el reloadOnConsent
como se muestra a continuación:
<script> _iub.csConfiguration ? _iub.csConfiguration : _iub.csConfiguration = {} _iub.csConfiguration.reloadOnConsent = true; </script> //insert it into <head> tag after iubenda configuration
2. Define isConsentGiven
para controlar las cookies:
<script type='text/javascript'> function isConsentGiven() { if('consentIsGiven' in window && (consentIsGiven === true || consentIsGiven === false)) return consentIsGiven; if(!('_iub' in window && 'csConfiguration' in _iub)) return false; var siteId = _iub.csConfiguration.siteId || ''; var cookiePolicyId = _iub.csConfiguration.cookiePolicyId || ''; var cs = document.cookie.split(';'); var consentIsGiven = false; for (var i = 0; i < cs.length; i++) { while (cs[i].charAt(0) == ' ') cs[i] = cs[i].substring(1); if(cs[i].indexOf('_iub_cs-s'+ siteId) == 0||cs[i].indexOf('_iub_cs-'+ cookiePolicyId) == 0) { consentIsGiven = true; break; } } window.consentIsGiven = consentIsGiven; return consentIsGiven; } </script>
3. Reemplaza el elemento original de TripAdvisor con este recurso:
<script> if(isConsentGiven()){ //per ogni elemento di TripAdvisor document.write('<div id="DIV-ID" class="CLASS-DIV"><ul id="UL-ID" class="CLASS-UL"><li id="LI-ID" class="CLASS-LI"><a target="_blank" href="http://www.tripadvisor.co.uk/"><img src="http://www.tripadvisor.co.uk/img/cdsi/partner/tripadvisor_logo_DIMENSIONS.png" alt="TripAdvisor"\/><\/a><\/li><\/ul><\/div>'); document.write('<script src="http://www.jscache.com/wejs?wtype=TYPE&uniq=UNIQ&locationId=LocationId&icon=knifeAndFork&lang=en_UK&display_version=2"><\/script>'); } </script>
Antes:
<div id="DIV-ID" class="CLASS-DIV"> <ul id="UL-ID" class="CLASS-UL"> <li id="LI-ID" class="CLASS-LI"> <a target="_blank" href="http://www.tripadvisor.co.uk/"><img src="http://www.tripadvisor.co.uk/img/cdsi/partner/tripadvisor_logo_DIMENSIONS.png" alt="TripAdvisor"/></a> </li> </ul> </div> <script src="http://www.jscache.com/wejs?wtype=TYPE&uniq=UNIQ&locationId=LocationId&icon=knifeAndFork&lang=en_UK&display_version=2"></script>
Después:
1. Añade a la configuración básica del script de iubenda el reloadOnConsent
como se muestra a continuación:
<script> _iub.csConfiguration ? _iub.csConfiguration : _iub.csConfiguration = {} _iub.csConfiguration.reloadOnConsent = true; </script> //insert it into <head> tag after iubenda configuration
2. Define isConsentGiven
para controlar las cookies:
<script type='text/javascript'> function isConsentGiven() { if('consentIsGiven' in window && (consentIsGiven === true || consentIsGiven === false)) return consentIsGiven; if(!('_iub' in window && 'csConfiguration' in _iub)) return false; var siteId = _iub.csConfiguration.siteId || ''; var cookiePolicyId = _iub.csConfiguration.cookiePolicyId || ''; var cs = document.cookie.split(';'); var consentIsGiven = false; for (var i = 0; i < cs.length; i++) { while (cs[i].charAt(0) == ' ') cs[i] = cs[i].substring(1); if(cs[i].indexOf('_iub_cs-s'+ siteId) == 0||cs[i].indexOf('_iub_cs-'+ cookiePolicyId) == 0) { consentIsGiven = true; break; } } window.consentIsGiven = consentIsGiven; return consentIsGiven; } </script>
3. Reemplaza el elemento original de TripAdvisor con este recurso:
<script> if(isConsentGiven()){ document.write('<div id="DIV-ID" class="CLASS-DIV"><ul id="UL-ID" class="CLASS-UL"><li id="LI-ID" class="CLASS-LI"><a target="_blank" href="http://www.tripadvisor.co.uk/"><img class="_iub_cs_activate" src="data:text/html;base64,PGh0bWw+PGJvZHk+U3VwcHJlc3NlZDwvYm9keT48L2h0bWw+" suppressedsrc="http://www.tripadvisor.co.uk/img/cdsi/img2/branding/150_logo-11900-2.png" alt="TripAdvisor"\/><\/a><\/li><\/ul><\/div>'); document.write('<script src="http://www.jscache.com/wejs?wtype=cdswritereviewlg&uniq=YOUR-UNIQ&locationId=YOUR-LOCATION&lang=en_UK&border=false&langversion=2"><\/script>'); } </script>
Lo siguiente se aplica solo en los casos en que no utilices la opción que te permite incluir vídeos de YouTube sin instalar cookies a los visitantes del sitio.