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

El banner no aparece

  • Comprueba que la clave de licencia en la URL del script sea correcta (o el atributo data-ecid, si usas la forma antigua del cargador)
  • Asegúrate de que la etiqueta de script está en la sección <head>
  • Revisa si hay errores en la consola del navegador
  • Comprueba que el dominio coincide con la configuración de tu licencia

Los scripts no se bloquean

  • Comprueba que data-cookiehug-blockingmode está 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-consentmode no está en "disabled"
  • Comprueba que gtag o dataLayer están disponibles en la página
  • Verifícalo en la consola del navegador: dataLayer deberí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=1 a 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.

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 de googletagmanager.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_storage en 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.