Compliant with GDPR, CCPA, COPPA, LGPD, PECR, PDPA, PIPEDA, and more.
Puede gestionar elementos en la pagina usando UnicScript para cargar etiquetas basadas en el consentimiento del usuario para IDs de proposito especificos o IDs de proveedor personalizados, segun lo definido por los propositos de IAB TCF, los propositos de Consent Categories o los tipos de Google Consent Mode.
UniConsent usa dos tipos de consentimiento, según el tipo de banner y la región del visitante:
unic-purpose-id con los ID de finalidad IAB TCF (1 a 11).unic-e-purpose-id con los ID de categoría (1 a 4).Qué atributo usar:
| Atributo | Dónde se carga |
|---|---|
unic-e-purpose-id, unic-e-purpose-ids | En todas partes. Donde se aplica IAB TCF, las categorías siguen sus finalidades, y tras una exclusión en EE. UU. la categoría 4 queda desactivada. |
unic-gcm-id, unic-gcm-ids | En todas partes, según las señales de Google Consent Mode. |
unic-cp-id, unic-cp-ids | En todas partes, según sus finalidades personalizadas. |
unic-purpose-id, unic-purpose-ids | Donde se aplica IAB TCF, con los banners de EE. UU. y donde no se aplica ningún banner. Nunca donde se aplica un banner Consent Categories, ni siquiera tras aceptar. |
unic-vendor-id | Con IAB TCF, cuando el visitante permite el proveedor personalizado. Con Consent Categories, sigue la categoría 4. Requiere Enable Custom Vendors. |
Consejo: para un script que deba funcionar en todas las regiones y con todos los tipos de banner, use
unic-e-purpose-idounic-gcm-id. Los atributos en plural (unic-e-purpose-ids="2,4") solo cargan cuando todos los ID indicados están permitidos.
| ID de proposito | Descripcion |
|---|---|
| 1 | Estrictamente necesario — Cookies esenciales para la funcionalidad basica del sitio (siempre permitidas) |
| 2 | Rendimiento / Analisis — Cookies de analisis y medicion |
| 3 | Funcionalidad — Cookies para funciones mejoradas y personalizacion |
| 4 | Segmentacion / Publicidad — Cookies para publicidad y seguimiento |
Ejemplo 1: Cargar script para consentimiento de analisis (Consent Categories)
<script type="text/unicscript" unic-e-purpose-id="2">
console.log('Analytics consent granted');
</script>
Ejemplo 2: Cargar script externo para analisis (Consent Categories)
<script type="text/unicscript" unic-e-purpose-id="2" src="https://example.com/analytics.js"></script>
Ejemplo 3: Cargar Google Analytics (gtag.js) con Consent Categories
<script type="text/unicscript" unic-e-purpose-id="2" async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX"></script>
<script type="text/unicscript" unic-e-purpose-id="2">
window.dataLayer = window.dataLayer || [];
function gtag(){ dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-XXXXXXX');
</script>
Ejemplo 4: Cargar script para consentimiento de publicidad (Consent Categories)
<script type="text/unicscript" unic-e-purpose-id="4" src="https://example.com/ads.js"></script>
<iframe
data-unicscript
unic-e-purpose-id="2"
width="560"
height="315"
data-src="https://example.com/analytics-widget"
frameborder="0"
></iframe>
| ID de proposito | Descripcion |
|---|---|
| 1 | Almacenar y/o acceder a informacion en un dispositivo |
| 2 | Usar datos limitados para seleccionar publicidad |
| 3 | Crear perfiles para publicidad personalizada |
| 4 | Usar perfiles para seleccionar publicidad personalizada |
| 5 | Crear perfiles para personalizar contenido |
| 6 | Usar perfiles para seleccionar contenido personalizado |
| 7 | Medir el rendimiento de la publicidad |
| 8 | Medir el rendimiento del contenido |
| 9 | Comprender audiencias a traves de estadisticas o combinaciones de datos de diversas fuentes |
| 10 | Desarrollar y mejorar servicios |
| 11 | Usar datos limitados para seleccionar contenido |
Puede cargar JavaScript en linea de forma dinamica basandose en el consentimiento para IDs de proposito especificos.
Ejemplo 1: Cargar script para un solo ID de proposito
<script type="text/unicscript" unic-purpose-id="1">
console.log('Consent granted for purpose 1');
</script>
Ejemplo 2: Cargar script externo con un ID de proposito
<script type="text/unicscript" unic-purpose-id="1" src="path-to-external-script.js"></script>
Ejemplo: Cargar script para multiples IDs de proposito
<script type="text/unicscript" unic-purpose-ids="1,2,3">
console.log('Consent granted for purposes 1, 2, and 3');
</script>
Ejemplo:
<script type="text/unicscript" unic-vendor-id="1">
console.log('hello vendor 1');
</script>
Ejemplo 2:
<script type="text/unicscript" unic-vendor-id="1" src="xxxxx"></script>
Puede cargar iframes de forma dinamica basandose en el consentimiento para un ID de proposito especifico.
Ejemplo: Cargar iframe para un solo ID de proposito
<iframe
data-unicscript
unic-purpose-id="1"
width="560"
height="315"
data-src="https://www.youtube.com/embed/XXXX"
frameborder="0"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
></iframe>
Ejemplo: Cargar iframe para multiples IDs de proposito
<iframe
data-unicscript
unic-purpose-ids="1,2,3"
width="560"
height="315"
data-src="https://www.youtube.com/embed/XXXX"
frameborder="0"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
></iframe>
Ejemplo: Cargar iframe para un solo ID de proveedor
<iframe
unic-vendor-id="1"
width="560"
height="315"
data-src="https://www.youtube.com/embed/XXXX"
frameborder="0"
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
></iframe>
Puede cargar scripts e iframes basandose en el consentimiento para Custom Purposes usando los atributos unic-cp-id y unic-cp-ids.
Ejemplo 1: Cargar script para un solo ID de proposito personalizado
<script type="text/unicscript" unic-cp-id="custom_analytics">
console.log('Custom analytics consent granted');
</script>
Ejemplo 2: Cargar script externo para un ID de proposito personalizado
<script type="text/unicscript" unic-cp-id="custom_analytics" src="https://example.com/analytics.js"></script>
Ejemplo 3: Cargar script para multiples IDs de proposito personalizados (todos deben tener consentimiento)
<script type="text/unicscript" unic-cp-ids="custom_analytics,ab_testing">
console.log('Both custom purposes consented');
</script>
Ejemplo 4: Cargar iframe para un ID de proposito personalizado
<iframe
data-unicscript
unic-cp-id="custom_analytics"
width="560"
height="315"
data-src="https://example.com/widget"
frameborder="0"
></iframe>
Esta seccion describe como cargar JavaScript en linea basandose en los tipos de consentimiento de Google Consent Mode, combinados con los tipos de consentimiento de Consent Categories de UniConsent.
La siguiente tabla muestra como los distintos tipos de consentimiento de Google Consent Mode se corresponden con los tipos de consentimiento de Consent Categories de UniConsent y sus respectivos propositos:
| Tipo de consentimiento de Google | Tipo de Consent Categories de UniConsent | Proposito |
|---|---|---|
ad_storage | Targeting and Advertising | Habilita cookies de publicidad. |
analytics_storage | Performance | Habilita cookies de analisis. |
functionality_storage | Functionality | Habilita cookies funcionales para la funcionalidad y configuracion del sitio web. |
personalization_storage | Functionality | Habilita cookies funcionales para la personalizacion del usuario. |
security_storage | Strictly Necessary | Habilita cookies necesarias para la seguridad, proteccion y preferencias de interfaz del sitio web. Estas cookies no requieren consentimiento. |
ad_user_data | Targeting and Advertising | Habilita cookies de publicidad y establece el consentimiento para el envio de datos personales a los servicios principales de Google. |
ad_personalization | Targeting and Advertising | Habilita cookies de publicidad para el uso de datos en la personalizacion de anuncios, como el remarketing. |
Utilice el siguiente formato para cargar JavaScript en linea basandose en el consentimiento del usuario:
<script type="text/unicscript" unic-gcm-id="functionality_storage">
console.log('Consent for functionality storage is granted, script is executed.');
</script>
Puede especificar multiples tipos de consentimiento usando el atributo unic-gcm-ids, como se muestra a continuacion:
<script type="text/unicscript" unic-gcm-ids="analytics_storage,ad_user_data">
console.log('Consent for analytics storage and ad user data is granted, script is executed.');
</script>
Tambien puede aplicar la configuracion de consentimiento a iframes. Aqui tiene un ejemplo:
<iframe data-unicscript unic-gcm-ids="functionality_storage,ad_personalization"
width="560" height="315"
data-src="https://www.youtube.com/embed/XXXXXXX"
frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen>
</iframe>
Este ejemplo asegura que el contenido del iframe solo se cargue si se proporciona consentimiento para las categorias especificadas (functionality_storage y ad_personalization).
AdSense lee por sí mismo la elección de IAB TCF del visitante y sirve anuncios no personalizados o limitados cuando no se permiten los anuncios personalizados. En la mayoría de los casos, deje las etiquetas de AdSense como están: bloquearlas también detiene esos anuncios.
Para mostrar AdSense solo a los visitantes que permiten perfiles publicitarios (finalidad 3 de IAB TCF), cambie:
<script
async
src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"
type="text/javascript"
></script>
por:
<script
async
src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"
unic-purpose-id="3"
type="text/unicscript"
></script>
Después cambie la etiqueta del bloque de anuncios de la página:
<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-XXXXXX" data-ad-slot="XXXXXXX" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script type="text/javascript">
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
por:
<ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-XXXXXX" data-ad-slot="XXXXXXX" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script type="text/unicscript" unic-purpose-id="3" >
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
Muestre un marcador de posicion en linea con un mensaje personalizado cuando el contenido esta bloqueado por falta de consentimiento. Una vez otorgado el consentimiento, el marcador de posicion desaparece y se revela el contenido original.
Esto es util para contenido incrustado como videos de YouTube, publicaciones de redes sociales, widgets de analisis o scripts de terceros donde desea mostrar a los usuarios por que el contenido esta bloqueado y darles una forma de otorgar consentimiento directamente.
Envuelva su contenido en un <div> con data-unicscript y el atributo de proposito apropiado:
<div data-unicscript
style="display:none"
unic-e-purpose-id="2"
unic-consent-message="Necesitamos su consentimiento para mostrar este contenido."
unic-consent-button="Permitir">
<iframe data-src="https://www.youtube.com/embed/XXXX"
width="560" height="315" allowfullscreen></iframe>
</div>
Importante: Siempre agregue
style="display:none"para evitar que el contenido parpadee antes de que se cargue el CMP.
| Atributo | Requerido | Descripcion |
|---|---|---|
data-unicscript | Si | Marca el div para control de consentimiento |
style="display:none" | Si | Evita el parpadeo de contenido antes de que se cargue el CMP |
unic-purpose-id | * | ID de proposito IAB TCF individual (ej. "1") |
unic-purpose-ids | * | Multiples IDs de proposito IAB TCF, separados por comas (ej. "1,3,4" — todos deben ser otorgados) |
unic-cp-id | * | ID de proposito personalizado |
unic-e-purpose-id | * | ID de proposito Easy |
unic-gcm-id | * | Senal de Google Consent Mode (ej. "analytics_storage") |
unic-vendor-id | * | ID de proveedor personalizado |
unic-consent-message | No | Mensaje personalizado (por defecto: "This content requires your consent to be displayed.") |
unic-consent-button | No | Texto del boton (por defecto: "Accept") |
unic-consent-action | No | "grant" = otorgar consentimiento silenciosamente via API, "open" u omitido = abrir dialogo CMP |
* Se requiere un atributo de proposito.
Iframes — use data-src en lugar de src para evitar la carga antes del consentimiento:
<iframe data-src="https://www.youtube.com/embed/XXXX" width="560" height="315"></iframe>
Scripts — use type="text/plain" para evitar la ejecucion antes del consentimiento:
<script type="text/plain" src="https://example.com/analytics.js"></script>
<script type="text/plain">
console.log('Esto se ejecuta solo despues de otorgar el consentimiento');
</script>
Cuando se otorga el consentimiento, data-src se copia a src y los scripts con type="text/plain" se activan automaticamente.
Video de YouTube:
<div data-unicscript
style="display:none"
unic-e-purpose-id="4"
unic-consent-message="Por favor acepte las cookies de publicidad para ver este video."
unic-consent-button="Aceptar y reproducir"
unic-consent-action="grant">
<iframe data-src="https://www.youtube.com/embed/XXXX"
width="560" height="315" allowfullscreen></iframe>
</div>
Publicacion de X (Twitter):
<div data-unicscript
style="display:none"
unic-e-purpose-id="4"
unic-consent-message="Por favor acepte las cookies para ver esta publicacion de X."
unic-consent-button="Mostrar publicacion"
unic-consent-action="grant">
<blockquote class="twitter-tweet">
<a href="https://twitter.com/user/status/XXXX"></a>
</blockquote>
<script type="text/plain" src="https://platform.twitter.com/widgets.js"></script>
</div>
Publicacion de Instagram:
<div data-unicscript
style="display:none"
unic-e-purpose-id="4"
unic-consent-message="Por favor acepte las cookies para ver esta publicacion de Instagram."
unic-consent-button="Mostrar publicacion"
unic-consent-action="grant">
<blockquote class="instagram-media" data-instgrm-permalink="https://www.instagram.com/p/XXXX/">
</blockquote>
<script type="text/plain" src="https://www.instagram.com/embed.js"></script>
</div>
Publicacion de Facebook:
<div data-unicscript
style="display:none"
unic-e-purpose-id="4"
unic-consent-message="Por favor acepte las cookies para ver esta publicacion de Facebook."
unic-consent-button="Mostrar publicacion"
unic-consent-action="grant">
<div class="fb-post" data-href="https://www.facebook.com/user/posts/XXXX"></div>
<script type="text/plain" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v18.0"></script>
</div>
Video de TikTok:
<div data-unicscript
style="display:none"
unic-e-purpose-id="4"
unic-consent-message="Por favor acepte las cookies para ver este video de TikTok."
unic-consent-button="Mostrar video"
unic-consent-action="grant">
<blockquote class="tiktok-embed" cite="https://www.tiktok.com/@user/video/XXXX">
</blockquote>
<script type="text/plain" src="https://www.tiktok.com/embed.js"></script>
</div>
Google Maps:
<div data-unicscript
style="display:none"
unic-e-purpose-id="3"
unic-consent-message="Por favor acepte las cookies para ver el mapa."
unic-consent-button="Mostrar mapa"
unic-consent-action="grant">
<iframe data-src="https://www.google.com/maps/embed?pb=XXXX"
width="600" height="450" style="border:0;" allowfullscreen loading="lazy"></iframe>
</div>
Comentarios de Disqus:
<div data-unicscript
style="display:none"
unic-e-purpose-id="3"
unic-consent-message="Necesitamos su consentimiento para mostrar los comentarios."
unic-consent-button="Mostrar comentarios"
unic-consent-action="grant">
<div id="disqus_thread"></div>
<script type="text/plain">
var disqus_config = function () { this.page.url = PAGE_URL; this.page.identifier = PAGE_IDENTIFIER; };
(function() { var d = document, s = d.createElement('script');
s.src = 'https://EXAMPLE.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s); })();
</script>
</div>
Nota: Los ejemplos anteriores usan
unic-e-purpose-id(Consent Categories). Si su sitio usa el modo IAB TCF, reemplace con elunic-purpose-idapropiado (ej.unic-purpose-id="1"para almacenamiento en dispositivo,unic-purpose-id="4"para publicidad personalizada).
Contactenos: support@uniconsent.com
Leyes de privacidad, consentimiento y cumplimiento, unos pocos correos al mes.