Menú de documentación
Resolución de problemas
Resolver problemas con CookieHug: el banner no aparece, los scripts no se bloquean, GTM, Debug Mode y señales de consentimiento tardías.
Preguntas frecuentes / resolución de problemas
Los scripts no se bloquean
- Comprueba que
data-cookiehug-blockingmodeestá en"auto"(o no está definido) - Puede que el script esté en la lista blanca (las bibliotecas habituales como jQuery no se bloquean)
- Para un control manual, usa los atributos
data-cookiehug-consent
Google Tag Manager no recibe las señales de consentimiento
- Comprueba que
data-cookiehug-consentmodeno está en"disabled" - Comprueba que
gtagodataLayerestán disponibles en la página - Verifícalo en la consola del navegador:
dataLayerdebería contener eventos de consentimiento
El consentimiento no se conserva entre cargas de página
- Comprueba que localStorage está disponible y no bloqueado
- Comprueba que la configuración del navegador no borra las cookies
- Comprueba que el consentimiento no ha caducado (30 días por defecto)
¿Cómo pruebo el consentimiento sin borrar las cookies cada vez?
Ejecuta CookieHug.withdraw() en la consola del navegador para reiniciar el estado del consentimiento. Borra todos los datos de consentimiento, restablece Google Consent Mode a denied y recarga la página automáticamente para que los scripts permitidos antes vuelvan a bloquearse correctamente.
¿Cómo compruebo el estado del consentimiento en la consola del navegador?
// Estado completo del consentimiento
console.log(window.CookieHug.consent);
// ¿Ha respondido el usuario?
console.log(window.CookieHug.hasResponse);
// ¿Qué normativas se aplican?
console.log(window.CookieHug.regulations);Debug Mode y diagnóstico
CookieHug incluye un Debug Mode integrado que comprueba de forma proactiva si tu comando por defecto de Consent Mode (y cualquier stub de TCF) se cargan antes de que se disparen tus etiquetas de Google. No afecta nunca al banner ni al consentimiento: es un observador que informa de configuraciones incorrectas.
Se activa de tres maneras:
- añade
?cookiehug_debug=1a la URL de la página, - ejecuta
localStorage.cookiehugDebug = '1'en la consola del navegador, - o activa Debug Mode durante 24 h desde el panel de CookieHug (detalle del dominio → diagnóstico).
Una vez activo, aparece abajo a la derecha una insignia CookieHug debug (verde = correcto, ámbar = avisos, rojo = errores). Púlsala para ver el informe completo en la consola. Los informes también llegan al panel y disparan alertas proactivas por correo y un aviso dentro de la aplicación.
Mensajes de depuración
CHUG_ORDER_OK: la configuración es correcta, el comando por defecto se ejecutó antes que tus etiquetas.CHUG_GA_BEFORE_SDK/CHUG_ORDER_LATE: una etiqueta de Google se disparó demasiado pronto. Consulta Qué hacer cuando una etiqueta llega tarde.CHUG_NO_DEFAULT_CONSENT: no se detectó el comando por defecto; puede que las etiquetas se hayan ejecutado sin consentimiento.CHUG_TCF_STUB_PRESENT: se detectó un stub de TCF__tcfapi; asegúrate de que carga antes que tus etiquetas.
Qué hacer cuando una etiqueta llega tarde
El Debug Mode marca una etiqueta como tardía (CHUG_GA_BEFORE_SDK / CHUG_ORDER_LATE) cuando un script de Google (GA4, Google Ads, GTM) se dispara antes de que CookieHug fije el estado de consentimiento por defecto. Como consecuencia, la etiqueta puede ejecutarse sin señal de Consent Mode.
Paso 1: comprueba primero si la etiqueta usa Google Tag Gateway (GTG). Es importante: con GTG la etiqueta de Google se sirve desde tu propio dominio (first-party), así que los tiempos de carga son distintos y la etiqueta puede marcarse como tardía por error.
Cómo comprobar si la etiqueta usa GTG
- Abre DevTools → Network y recarga la página.
- Busca la petición que carga la etiqueta de Google (p. ej.
gtag/js,gtm.js,collect). - Mira el dominio de la petición: si la etiqueta carga desde tu propio dominio (p. ej.
metrics.tudominio.com) en lugar degoogletagmanager.com/google-analytics.com, es probable que use GTG → lee Google Tag Gateway (GTG).
Si la etiqueta NO usa GTG: corrige el orden
Cuando la etiqueta carga directamente desde dominios de Google, «tardía» es un problema real de orden. Coloca el script de CookieHug el primero del <head>, antes de cualquier gtag.js, gtm.js o etiqueta de GA4; después recarga con ?cookiehug_debug=1 y confirma que aparece CHUG_ORDER_OK.
<head>
<!-- 1) CookieHug primero -->
<script src="https://cookiehug.com/api/script/TU-CLAVE-DE-LICENCIA.js"></script>
<!-- 2) después Google -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXX"></script>
</head>Google Tag Gateway (GTG)
Google Tag Gateway (GTG) es una forma de servir las etiquetas de Google (la etiqueta de Google / GA4 / un contenedor entero de GTM) desde tu propio dominio (first-party) en lugar de directamente desde googletagmanager.com. Las peticiones pasan por una pasarela ligera en tu infraestructura (CDN/servidor), lo que mejora la durabilidad de la medición en navegadores que restringen los scripts de terceros.
Impacto en el consentimiento: léelo primero. GTG se activa a menudo mediante una integración de CDN con un clic (por ejemplo, directamente desde Cloudflare). Esa comodidad tiene un precio: el CDN inyecta y ejecuta la etiqueta de Google por ti, así que el cliente suele perder el control sobre el orden de carga de los scripts. La pasarela puede ejecutar la etiqueta de Google *antes* de que se haya ejecutado el comando por defecto de tu CMP, que es justo lo que produce una señal de consentimiento «tardía» en el Debug Mode de CookieHug. GTG cambia *dónde y cuándo* carga la etiqueta, pero la etiqueta sigue leyendo Consent Mode; el reto está en garantizar que el comando por defecto se ejecute primero.
Documentación oficial de Google: Google tag gateway for advertisers · Get started guide · One-click CDN (Cloudflare) setup.
Cómo comprobar si una etiqueta está inscrita en GTG
- Abre DevTools → Network y recarga la página.
- Busca la petición que carga la etiqueta de Google (p. ej.
gtag/js,gtm.js,collect). - Mira el dominio de la petición: si carga desde tu propio dominio o subdominio (p. ej.
metrics.tudominio.com) en lugar degoogletagmanager.com/google-analytics.com, la etiqueta está inscrita en GTG. - Contrástalo en los ajustes de Google Ads / GA4 → Google tag gateway, donde figuran los dominios inscritos.
Por qué GTG puede aparecer como tardío por error
El Debug Mode de CookieHug compara el momento de inicio de las peticiones de Google con la inicialización del SDK. Con GTG la etiqueta carga desde tu propio dominio y a menudo antes o más rápido, así que la heurística puede marcarla como tardía aunque Consent Mode funcione correctamente. Comprueba siempre la inscripción en GTG antes de tratar un aviso como un problema real.
Señal tardía en una etiqueta inscrita en GTG: solución recomendada
Si el Debug Mode informa de una señal tardía (`CHUG_ORDER_LATE`) y has confirmado que la etiqueta está inscrita en GTG, el orden de carga suele controlarlo el CDN, no tú. Elige una de estas opciones, por orden de preferencia:
- Recomendado: adopta U+C (Consent Mode advanced). Para las etiquetas inscritas en GTG, U+C (Consent Mode advanced) es el mecanismo recomendado porque es compatible con el GTG manual: la etiqueta siempre carga y ajusta su propio comportamiento a partir de la señal de consentimiento, así que no depende de ganar una carrera de orden de carga. Después, en tu producto de Google, activa Data Transmission Controls y Global Consent Defaults según tus necesidades para que la redacción y el consentimiento por defecto se apliquen del lado de Google.
- O migra todo a un contenedor de GTM y despliega GTM mediante GTG. Traslada tus etiquetas de Google a un único contenedor de GTM y sírvelo a través de la pasarela. El consentimiento se configura entonces una sola vez dentro de GTM (Consent Settings por etiqueta) y el comando por defecto de CookieHug se respeta antes de que las etiquetas del contenedor se evalúen.
- O configura GTG manualmente (en lugar de la integración de CDN con un clic) para que seas tú quien controle el orden de importación de los scripts: carga el comando por defecto de Consent Mode de CookieHug antes de la etiqueta de la pasarela.
Cómo trabajar con GTG en CookieHug
- Mantén el script de CookieHug el primero en el
<head>: incluso con GTG, el comando por defecto debe enviarse antes de que la etiqueta se inicialice. - Confirma que se respeta el comando por defecto: abre GA4 → Administrar → DebugView y comprueba
analytics_storage/ad_storageen los eventos. - En la consola, revisa
window.CookieHug.consent: debe coincidir con la elección del usuario. - Si se respeta el consentimiento, trata el aviso de retraso de GTG como un falso positivo causado por los tiempos first-party.
- Si no se respeta el consentimiento (la etiqueta recopila datos pese al
denied), aplica la solución anterior.