Implementar Google Consent Mode v2 en GTM paso a paso
Implementar Consent Mode v2 en Google Tag Manager tiene una regla de oro: el estado por defecto debe declararse antes de que cualquier etiqueta de Google se ejecute. Si llega tarde, Google ya disparó sus tags sin consentimiento y el daño está hecho. Esta es la secuencia correcta, con los detalles que suelen fallar.
Prerrequisitos
- Un contenedor de GTM instalado en el sitio.
- Una CMP que emita el evento de consentimiento (o un banner que actualice el
dataLayer). - El inventario de cookies clasificado por categoría (cómo auditarlo).
Paso 1: estado por defecto en Consent Initialization
Crea una etiqueta que llame a gtag('consent', 'default', …) con los 7
parámetros en denied, y asígnala al activador Consent Initialization - All
Pages con la máxima prioridad. Es lo primero que se ejecuta en todo el
contenedor, antes que cualquier otra etiqueta.
gtag("consent", "default", {
ad_storage: "denied",
analytics_storage: "denied",
ad_user_data: "denied",
ad_personalization: "denied",
functionality_storage: "denied",
personalization_storage: "denied",
security_storage: "granted",
wait_for_update: 500,
});
Dos detalles clave:
wait_for_update: 500da un margen (en ms) para que llegue la decisión del usuario antes de que las etiquetas decidan cómo comportarse. Si tu banner tarda más en cargar, súbelo.security_storage: 'granted'suele dejarse concedido porque cubre funciones de seguridad (prevención de fraude), no rastreo.
Paso 2: actualizar tras la elección
Cuando el usuario acepta o rechaza en el banner, dispara
gtag('consent', 'update', …) con los permisos concedidos. El patrón habitual: tu
CMP empuja un evento al dataLayer (por ejemplo cmp_consent_update) que activa
una etiqueta de actualización.
gtag("consent", "update", {
ad_storage: "granted",
analytics_storage: "granted",
ad_user_data: "granted",
ad_personalization: "granted",
});
Importante: el update debe reflejar exactamente lo que eligió el usuario por
categoría. Si aceptó analítica pero no marketing, solo analytics_storage pasa a
granted.
Paso 3: condicionar tus etiquetas
Activa las plantillas de consentimiento integradas de GTM: cada etiqueta de Google (GA4, Google Ads) respeta automáticamente el estado. Para etiquetas personalizadas o de terceros, usa las comprobaciones de consentimiento adicionales (additional consent checks) en la configuración de la etiqueta, para que esperen al permiso correspondiente.
Paso 4: validar
No te fíes de que "parece que funciona". Verifica con datos:
| Herramienta | Qué verificar |
|---|---|
| Tag Assistant | Que las etiquetas esperan al consentimiento y no disparan antes |
| Pestaña Network | El parámetro gcs (ej. G100, G111) en las peticiones a Google |
| Consent Mode (GA4) | Que el modelado se active con datos suficientes |
Para interpretar el parámetro gcs, revisa
nuestra guía de códigos GCS: te
dice de un vistazo si las señales llegan en el orden correcto.
Errores comunes (y cómo evitarlos)
- Declarar el estado por defecto después del Consent Initialization. Es el fallo nº 1: las etiquetas se disparan sin consentimiento. Verifica la prioridad y el activador.
- Olvidar
ad_user_datayad_personalization(obligatorios desde marzo 2024). Sin ellos, Google apaga la personalización aunque el usuario acepte. - No propagar el cambio a mitad de sesión cuando el usuario modifica su elección desde el icono de preferencias.
- Confundir básico con avanzado: en básico no se envían pings, así que pierdes todo el modelado de datos.
Una nota sobre el lado servidor
Si usas server-side tagging (un contenedor de GTM en servidor), el consentimiento también debe viajar hasta ahí. El contenedor de servidor recibe los eventos del cliente junto con el estado de consentimiento, y solo debe reenviarlos a Google, Meta o quien corresponda si el permiso está concedido. Es un error frecuente: el banner bloquea bien en el navegador, pero el contenedor de servidor sigue reenviando todo. Trata el servidor como una extensión de tu lógica de consentimiento, no como una vía paralela que se la salta.
Conma genera la plantilla de GTM y el snippet ya configurados con los 7 parámetros y el orden correcto, de modo que te saltas casi toda esta configuración manual y sus errores. Conoce el detalle en nuestra guía de Consent Mode v2.