Etiqueta de UniConsent para Web

Instalacion y configuracion de la etiqueta de UniConsent

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

Agregar enlace de configuracion de consentimiento (opcional):

Puede deshabilitar el 'privacy badge' 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/stub.min.js"></script>

y

<script data-nowprocket data-cfasync="false" async src='https://cmp.uniconsent.com/v2/YOUR_ID/cmp.js'></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/stub.min.js"></script>

y

<script data-nowprocket data-cfasync="false" async src='https://cmp.uniconsent.com/v2/YOUR_ID/cmp.js'></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.

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.

  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.