Saltar al contenido principal

Problemas con Consent Mode

Síntoma A: GA4 sigue activándose antes del consentimiento

Causa: El estado predeterminado de Consent Mode no se estableció antes de cargar GA4.

Solución: Añada el bloque de consentimiento predeterminado antes del script de GA4 y antes de ConsentForge:

<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'default', {
'analytics_storage': 'denied',
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'wait_for_update': 500
});
</script>
<!-- ConsentForge -->
<script src="https://cdn.consentforge.com/consentforge.min.js" data-token="..." defer></script>
<!-- GA4 -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXX"></script>

Síntoma B: gtag('consent', 'update') no se activa

Cómo verificar: DevTools → Consola → window.dataLayer.filter(e => e[0] === 'consent') — debe mostrar predeterminado + actualización después de que el usuario acepte.

Causa: La función gtag no está disponible cuando ConsentForge intenta actualizar Consent Mode.

Solución: Asegúrese de que gtag está definido en window antes de que se cargue ConsentForge (a través del bloque predeterminado anterior).


Causa: Los datos de conversión modelados tardan entre 5 y 7 días en aparecer en Google Ads después de la configuración inicial de Consent Mode.

Solución: Espere 7 días después de la configuración correcta. Verifique en Google Ads → Herramientas → Diagnóstico de Consent Mode.


Síntoma D: La etiqueta de inicialización del consentimiento de GTM no se activa primero

Cómo verificar: Vista previa de GTM → compruebe el orden de activación de las etiquetas. La etiqueta de ConsentForge debe activarse con el activador "Inicialización del consentimiento".

Solución: Cambie el activador de la etiqueta de ConsentForge en GTM a Inicialización del consentimiento - Todas las páginas (no Vista de página).


Verificación

Después de corregir, confirme en la Consola de DevTools:

// Debe mostrar valores 'denied' predeterminados y luego actualización 'granted' tras aceptar
window.dataLayer.filter(e => e[0] === 'consent')