Leading Consent Management Platform

Compliant with GDPR, CCPA, COPPA, LGPD, PECR, PDPA, PIPEDA, and more.

Etiqueta de UniConsent para Web

Configuracion rapida con la etiqueta unica de UniConsent (recomendado)

Agregue una sola etiqueta script con su clave de licencia en cada pagina, lo mas arriba posible en el <head>. La etiqueta establece el estado predeterminado de Google Consent Mode, define unicReady y unicUpdate de inmediato y luego carga el CMP completo en segundo plano.

<script src="https://cmp.uniconsent.com/v2/cmp.js" data-license="YOUR_LICENSE"></script>

Puede encontrar su clave de licencia en la seccion Install & Setup.

  • La etiqueta unica reemplaza la etiqueta stub, la etiqueta de estado predeterminado de Consent Mode y el cargador cmp.js que se describen a continuacion. No los agregue de nuevo.
  • Establece un valor predeterminado de Consent Mode con todo el almacenamiento denegado y un wait_for_update de 3 segundos. Si establece sus propios valores predeterminados de Consent Mode, coloquelos despues de la etiqueta o seran sobrescritos.
  • La etiqueta se ignora a si misma si el script del CMP ya esta en la pagina.
  • Use unicReady y unicUpdate para ejecutar su codigo cuando el consentimiento sea definitivo. Consulte la API Consent Ready.

¿Ya instalo UniConsent con la etiqueta clasica de dos partes? Sigue funcionando. Consulte la seccion Configuracion clasica de la etiqueta al final de esta pagina.

Agregar enlace de configuracion de consentimiento (opcional):

Puede desactivar Show Privacy Settings Button y agregar el siguiente enlace en su pagina.

<a href="#" onclick='__unicapi("openunic");return false;'>Consent Settings</a>

Agregar enlace de configuracion de consentimiento con reglas CSS:

Puede apuntar a un DIV en sus paginas web con un selector CSS; UniConsent insertara automaticamente el enlace de configuracion de consentimiento dentro del DIV segun la ubicacion geografica y las funciones habilitadas.

<div id="uniconsent-config"></div>

Insercion automatica del enlace de configuracion de consentimiento:

Puede colocar el siguiente DIV de marcador de posicion en el pie de pagina de sus paginas web; UniConsent insertara automaticamente el enlace de configuracion de consentimiento dentro del marcador de posicion segun la ubicacion geografica y las funciones habilitadas.

<div id="uniconsent-config"></div>

Instalar con el plugin de WordPress y Drupal:

Puede encontrar la clave de licencia en la seccion Install & Setup.

Para usuarios de WordPress WP Rocket

Evitar la carga diferida de las etiquetas CMP:

Debe agregar data-nowprocket a todos los scripts:

<script data-nowprocket data-cfasync="false" src="https://cmp.uniconsent.com/v2/cmp.js" data-license="YOUR_LICENSE"></script>

Tambien debe excluir el JavaScript en linea de la combinacion:

  1. Inicie sesion en su panel de administracion de WordPress > Settings > WP Rocket.
  2. Haga clic en la pestana File Optimization y desplacese hasta la seccion JavaScript Files.
  3. Minify JavaScript files > Exclude JavaScript Files: Ingrese cmp.uniconsent.com.

Si necesita WP Consent API, agregue la siguiente etiqueta en las paginas:

<script data-nowprocket data-cfasync="false" async src="http://cmp.uniconsent.com/v2/wp-consent-api.min.js"></script>

Encuentre mas informacion sobre How to enable WP Consent API.

Para usuarios de Cloudflare Rocket Loader

Debe agregar data-cfasync="false" a los scripts:

<script data-nowprocket data-cfasync="false" src="https://cmp.uniconsent.com/v2/cmp.js" data-license="YOUR_LICENSE"></script>

Instalar mediante Google Tag Manager

Puede encontrar instrucciones sobre como instalar UniConsent mediante Google Tag Manager en https://www.uniconsent.com/docs/tutorials/gtm-integration.

Consejo de rendimiento: preconectar con el dominio del CMP

Agregue las siguientes etiquetas en la parte superior de sus paginas, dentro del <head> y antes de la etiqueta de UniConsent. Permiten que el navegador resuelva el DNS y abra la conexion con cmp.uniconsent.com de forma anticipada, de modo que el script del CMP empieza a descargarse antes y el banner de consentimiento aparece mas rapido.

<link rel='dns-prefetch' href='//cmp.uniconsent.com' />
<link rel="preconnect" href="https://cmp.uniconsent.com" crossorigin>

Si sirve el CMP desde un dominio CMP de primera parte, use su dominio personalizado en lugar de cmp.uniconsent.com.

Por que la etiqueta es sincrona de forma predeterminada

La etiqueta unica se carga sin async a proposito. Se ejecuta antes que cualquier otra cosa en la pagina, de modo que el estado predeterminado de Google Consent Mode, los stubs de IAB TCF, USP y GPP, y las funciones unicReady y unicUpdate estan listos antes de que se ejecuten sus etiquetas de Google, sus etiquetas publicitarias o su propio codigo. La etiqueta en si es pequena y se almacena en cache, y el CMP completo se carga en segundo plano, por lo que el impacto en la carga de la pagina es minimo. Junto con las etiquetas de preconexion anteriores, esto ofrece la visualizacion mas rapida del banner sin riesgo de que las etiquetas se disparen antes de que se establezcan los valores predeterminados de consentimiento.

Si prefiere cargar la etiqueta con async

Puede agregar async a la etiqueta. Tenga en cuenta lo siguiente:

  • Su codigo en linea puede ejecutarse antes de que la etiqueta se haya ejecutado, por lo que unicReady y unicUpdate podrian no existir todavia. Agregue la proteccion de cola de dos lineas que se muestra a continuacion para que las llamadas anticipadas se repitan una vez cargada la etiqueta.
  • El estado predeterminado de Consent Mode puede establecerse despues de que se hayan cargado sus etiquetas de Google. Establezca usted mismo el estado predeterminado de Consent Mode antes de sus etiquetas de Google, o cargue sus etiquetas de Google desde un callback de unicReady.
  • Lo mismo aplica al stub de IAB TCF. Con async, __tcfapi puede no existir todavia cuando sus etiquetas publicitarias o Prebid lo invocan. Agregue la etiqueta stub antes de sus etiquetas publicitarias, o carguelas desde un callback de unicReady.

Integracion con la API al cargar con async

<script async src="https://cmp.uniconsent.com/v2/cmp.js" data-license="YOUR_LICENSE"></script>
<script>
  window.unicReady  = window.unicReady  || function (cb) { (window.unicReady.q  = window.unicReady.q  || []).push(cb); };
  window.unicUpdate = window.unicUpdate || function (cb) { (window.unicUpdate.q = window.unicUpdate.q || []).push(cb); };

  unicReady(function (status) {
    // el consentimiento es definitivo: cargue sus etiquetas aqui
  });

  unicUpdate(function (status) {
    // cada cambio de consentimiento
  });
</script>

Tambien puede escuchar los eventos DOM unic:ready y unic:update en window, registrados antes de la etiqueta. Consulte la API Consent Ready para ver el objeto de estado y todos los detalles.

Siguiente

Si desea integrar sus etiquetas JavaScript de terceros, vaya a la seccion Thrid party Javascript Tags Integration.

Verificar la configuracion

Puede monitorear la consola del desarrollador en busca de mensajes de advertencia o usar el UniConsent Consent Validator para asegurarse de que Consent Mode, IAB TCF e IAB GPP esten disponibles y se transmitan correctamente en sus paginas web.

Revise regularmente el estado de la auditoria de implementacion en su panel.

Configuracion clasica de la etiqueta (instalaciones existentes)

Esta seccion aplica a los sitios web que instalaron UniConsent antes de que la etiqueta unica estuviera disponible. La etiqueta clasica de dos partes sigue funcionando y no es necesario migrar. Para cambiar, elimine todas las etiquetas siguientes y agregue la etiqueta unica que aparece al inicio de esta pagina.

Cada uno de sus sitios web tiene una etiqueta JavaScript unica que debe instalarse en cada pagina.

Puede encontrar la etiqueta de UniConsent en la seccion Install & Setup.

La etiqueta consta de dos partes. La primera parte es un stub que debe integrarse en la parte superior de su pagina. La segunda parte puede cargarse con async. El impacto en el rendimiento de su sitio es minimo.

Codigos stub

Tambien puede optar por cargar el codigo stub con la siguiente etiqueta JavaScript:

<script src="https://cmp.uniconsent.com/v2/stub.min.js"></script>

Tambien puede reemplazar el siguiente codigo con la etiqueta stub anterior para mejorar la velocidad de la pagina:

<script type="text/javascript">
!function(){var e,t,a;e="__tcfapiLocator",t=[],(a=window.frames[e])||(function t(){var n=window.document,i=!!a;if(!i)if(n.body){var o=n.createElement("iframe");o.style.cssText="display:none",o.name=e,n.body.appendChild(o)}else setTimeout(t,50);return!i}(),window.__tcfapi=function(){for(var e,a=[],n=0;n<arguments.length;n++)a[n]=arguments[n];if(!a.length)return t;if("setGdprApplies"===a[0])a.length>3&&2===parseInt(a[1],10)&&"boolean"==typeof a[3]&&(e=a[3],"function"==typeof a[2]&&a[2]("set",!0));else if("ping"===a[0]){var i={gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"};"function"==typeof a[2]&&a[2](i,!0)}else t.push(a)},window.addEventListener("message",(function(e){var t="string"==typeof e.data,a={};try{a=t?JSON.parse(e.data):e.data}catch(e){}var n=a.__tcfapiCall;if(n)try{window.__tcfapi(n.command,n.version,(function(a,i){var o={__tcfapiReturn:{returnValue:a,success:i,callId:n.callId}};t&&(o=JSON.stringify(o)),e.source&&"function"==typeof e.source.postMessage&&e.source.postMessage(o,"*")}),n.parameter)}catch(e){}}),!1))}();
!function(){var e,a,t;e="__uspapiLocator",a=[],(t=window.frames[e])||(function a(){var n=window.document,s=!!t;if(!t)if(n.body){var i=n.createElement("iframe");i.style.cssText="display:none",i.name=e,n.body.appendChild(i)}else setTimeout(a,50);return!s}(),window.__uspapi=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if(!e.length)return a;"ping"===e[0]?"function"==typeof e[2]&&e[2]({cmpLoaded:!1,cmpStatus:"stub"},!0):a.push(e)},window.addEventListener("message",(function(e){var a="string"==typeof e.data,t={};try{t=a?JSON.parse(e.data):e.data}catch(e){}var n=t&&t.__uspapiCall;if(n)try{window.__uspapi(n.command,n.version,(function(t,s){var i={__uspapiReturn:{returnValue:t,success:s,callId:n.callId}};a&&(i=JSON.stringify(i)),e.source&&"function"==typeof e.source.postMessage&&e.source.postMessage(i,"*")}),n.parameter)}catch(e){}}),!1))}();
window.__gpp_addFrame=function(e){if(!window.frames[e])if(document.body){var t=document.createElement("iframe");t.style.cssText="display:none",t.name=e,document.body.appendChild(t)}else window.setTimeout(window.__gpp_addFrame,50,e)},window.__gpp_stub=function(){var e=arguments;if(__gpp.queue=__gpp.queue||[],__gpp.events=__gpp.events||[],!e.length||1==e.length&&"queue"==e[0])return __gpp.queue;if(1==e.length&&"events"==e[0])return __gpp.events;var t=e[0],p=e.length>1?e[1]:null,s=e.length>2?e[2]:null;if("ping"===t)p&&p({gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnatv1","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[-1],gppString:"",parsedSections:{}},!0);else if("addEventListener"===t){"lastId"in __gpp||(__gpp.lastId=0),__gpp.lastId++;var n=__gpp.lastId;__gpp.events.push({id:n,callback:p,parameter:s}),p({eventName:"listenerRegistered",listenerId:n,data:!0,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnatv1","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[-1],gppString:"",parsedSections:{}}},!0)}else if("removeEventListener"===t){for(var a=!1,i=0;i<__gpp.events.length;i++)if(__gpp.events[i].id==s){__gpp.events.splice(i,1),a=!0;break}p({eventName:"listenerRemoved",listenerId:s,data:a,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnatv1","8:uscav1","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[-1],gppString:"",parsedSections:{}}},!0)}else"hasSection"===t?p(!1,!0):"getSection"===t||"getField"===t?p(null,!0):__gpp.queue.push([].slice.apply(e))},window.__gpp_msghandler=function(e){var t="string"==typeof e.data;try{var p=t?JSON.parse(e.data):e.data}catch(e){p=null}if("object"==typeof p&&null!==p&&"__gppCall"in p){var s=p.__gppCall;try{window.__gpp(s.command,(function(p,n){var a={__gppReturn:{returnValue:p,success:n,callId:s.callId}};e.source&&"function"==typeof e.source.postMessage&&e.source.postMessage(t?JSON.stringify(a):a,"*")}),"parameter"in s?s.parameter:null,"version"in s?s.version:"1.1")}catch(e){}}},"__gpp"in window&&"function"==typeof window.__gpp||(window.__gpp=window.__gpp_stub,window.addEventListener("message",window.__gpp_msghandler,!1),window.__gpp_addFrame("__gppLocator"));
</script>

El codigo stub o la etiqueta anterior son compatibles con las siguientes API: IAB TCF API, IAB GPP API, IAB USP API.

Puede agregar esto en la parte superior de sus paginas si no esta utilizando Google Tag Manager pero desea habilitar Consent Mode V2:

<script src="https://cmp.uniconsent.com/v2/stubgcm.min.js"></script>

o agregar el siguiente codigo en la parte superior de sus paginas:

<script>
window.gtag||(window.dataLayer=window.dataLayer||[],window.gtag=function(){window.dataLayer.push(arguments)}),window.gtag("set","developer_id.dZTcxZD",!0),window.gtag("consent","default",{ad_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",analytics_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",security_storage:"granted",wait_for_update:3e3}),window.gtag("set","ads_data_redaction",!0),window.gtag("set","url_passthrough",!1);
</script>

Encuentre mas informacion sobre la configuracion de Google Consent Mode en https://www.uniconsent.com/docs/tutorials/google-consent-mode

Usuarios de WP Rocket y Cloudflare Rocket Loader con la etiqueta clasica

Agregue data-nowprocket y data-cfasync="false" a ambos scripts. Tambien aplican los ajustes de exclusion de WP Rocket descritos arriba.

<script data-nowprocket data-cfasync="false" src="https://cmp.uniconsent.com/v2/stub.min.js"></script>
<script data-nowprocket data-cfasync="false" async src='https://cmp.uniconsent.com/v2/YOUR_ID/cmp.js'></script>
  1. Google Consent Mode habilitado, pero falta el codigo stub de estado predeterminado

    Problema: Puede encontrar un mensaje de error en el Validator o la consola del desarrollador:

    Error: Consent Mode Default Status is not added.

    Solucion: Agregue el codigo stub de estado predeterminado en la parte superior de sus paginas para resolver este problema. Puede seguir las instrucciones aqui: Consent Mode Default Status Tag Installation.

  2. Google Consent Mode habilitado, pero el codigo stub de estado predeterminado se agrego despues de las etiquetas de Google

    Problema: Si el codigo stub de estado predeterminado se agrega despues de sus etiquetas de Google, puede ver el siguiente mensaje de error en el Validator o la consola del desarrollador:

    Error: Your Google tags are loaded before Consent Mode Default Status and CMP.

    Solucion: Asegurese de que el codigo stub de estado predeterminado se agregue en la parte superior de sus paginas, antes de cualquier etiqueta de Google. Siga la guia aqui: Consent Mode Default Status Tag Installation.

  3. Google Consent Mode habilitado mediante Google Tag Manager, pero no todas las etiquetas de Google se gestionan en Google Tag Manager

    Problema: Cuando algunas etiquetas de Google no se gestionan en Google Tag Manager, puede ver errores similares a los descritos anteriormente.

    Solucion: Agregue el codigo stub de estado predeterminado en la parte superior de sus paginas o asegurese de que todas sus etiquetas de Google se gestionen dentro de Google Tag Manager. Consulte la guia: Consent Mode Default Status Tag Installation.

  4. Falta el codigo stub de IAB TCF

    Problema: El codigo stub de IAB TCF no esta incluido, lo que puede causar errores.

    Solucion: Agregue el codigo stub de IAB TCF en la parte superior de sus paginas. Siga las instrucciones aqui: Stub Codes Installation.

  5. Falta el codigo stub de IAB GPP

    Problema: El codigo stub de IAB GPP no esta presente en su implementacion.

    Solucion: Incluya el codigo stub de IAB GPP en la parte superior de sus paginas. Puede encontrar la guia correspondiente aqui: Stub Codes Installation.

  6. Falta el codigo stub de USP API

    Problema: El codigo stub de IAB USP no esta presente.

    Solucion: Para resolver esto, agregue el codigo stub de IAB USP en la parte superior de sus paginas. Las instrucciones detalladas estan disponibles aqui: Stub Codes Installation.