Compliant with GDPR, CCPA, COPPA, LGPD, PECR, PDPA, PIPEDA, and more.
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.
cmp.js que se describen a continuacion. No los agregue de nuevo.wait_for_update de 3 segundos. Si establece sus propios valores predeterminados de Consent Mode, coloquelos despues de la etiqueta o seran sobrescritos.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.
Puede desactivar Show Privacy Settings Button y agregar el siguiente enlace en su pagina.
<a href="#" onclick='__unicapi("openunic");return false;'>Consent Settings</a>
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>
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>
Puede encontrar la clave de licencia en la seccion Install & Setup.
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:
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.
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>
Puede encontrar instrucciones sobre como instalar UniConsent mediante Google Tag Manager en https://www.uniconsent.com/docs/tutorials/gtm-integration.
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.
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.
Puede agregar async a la etiqueta. Tenga en cuenta lo siguiente:
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.unicReady.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.<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.
Si desea integrar sus etiquetas JavaScript de terceros, vaya a la seccion Thrid party Javascript Tags Integration.
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.
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.
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
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>
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.
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.
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.
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.
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.
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.