Cómo configurar GA4 con Google Consent Mode v2
Desde marzo de 2024, Google exige Consent Mode v2 a los anunciantes que atienden a usuarios del EEE y del Reino Unido, y las leyes de privacidad exigen que el seguimiento espere al consentimiento. Hecho bien, la analítica sigue funcionando de forma respetuosa con la privacidad. Hecho mal, o rastreas ilegalmente o pierdes tus datos. Este es el orden correcto de los pasos.
Qué hace Consent Mode v2
Consent Mode informa a las etiquetas de Google sobre lo que el visitante ha aceptado mediante cuatro señales: analytics_storage, ad_storage y las dos añadidas en la v2, ad_user_data y ad_personalization. Mientras una señal esté en denied, las etiquetas no crean cookies para esa finalidad; en el modo avanzado siguen enviando pings sin cookies que Google usa para modelar las conversiones.
Paso 1: define el valor por defecto antes de cualquier etiqueta
El valor por defecto debe ejecutarse antes de que se cargue gtag.js o Google Tag Manager, al principio de <head>:
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'default', {
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
analytics_storage: 'denied',
functionality_storage: 'granted',
security_storage: 'granted',
wait_for_update: 500
});
</script>
Genera este bloque junto con tu etiqueta de GA4, en el orden correcto, con el Generador de fragmentos de Google Tag.
Paso 2: actualiza el consentimiento desde el banner
Cuando el visitante elige, envía una actualización solo con lo que ha aceptado y guarda su elección para su próxima visita:
function onConsent(choice) { // e.g. { analytics: true, marketing: false }
gtag('consent', 'update', {
analytics_storage: choice.analytics ? 'granted' : 'denied',
ad_storage: choice.marketing ? 'granted' : 'denied',
ad_user_data: choice.marketing ? 'granted' : 'denied',
ad_personalization: choice.marketing ? 'granted' : 'denied'
});
localStorage.setItem('consent', JSON.stringify(choice));
}
En las siguientes cargas de página, llama a la misma actualización justo después del valor por defecto, antes de que se disparen las etiquetas. Una plataforma de gestión del consentimiento (Cookiebot, OneTrust, Usercentrics y otras) puede hacerlo por ti; o crea un banner con bloqueo de scripts con el Generador de banner de consentimiento de cookies.
Paso 3: regiones (opcional)
Puedes aplicar valores por defecto más estrictos solo donde la ley lo exija, añadiendo una lista region con, por ejemplo, el EEE, el Reino Unido y Suiza, y un valor por defecto concedido en el resto. Consulta con tu asesor legal qué regiones te afectan.
Paso 4: verifica que funciona
- Abre el sitio en una ventana privada y no hagas clic en el banner. No deberían existir cookies
_ga, y las peticiones a Google deberían llevargcs=G100. - Acepta todo. Las peticiones deberían cambiar a
gcs=G111y la cookie_gadebería aparecer. - Rechaza todo y recarga: no debería volver a guardarse nada.
El Verificador de Consent Mode hace esto automáticamente: carga tu página en un navegador real, lee el estado del consentimiento y enumera cada rastreador que se dispara antes y después del consentimiento. Usa el Verificador de etiquetas de seguimiento para ver qué etiquetas carga una página.
Errores comunes
- Definir el valor por defecto después de la etiqueta de GA4: el primer hit se envía antes de conocer el consentimiento.
- Olvidar
ad_user_datayad_personalization: eso sigue siendo Consent Mode v1. - Incluir píxeles de Meta, TikTok o LinkedIn codificados directamente fuera del flujo de consentimiento: Consent Mode solo controla las etiquetas de Google. Bloquea los demás píxeles hasta que se dé el consentimiento de marketing.
- Enviar eventos personalizados antes del consentimiento. Créalos con el Generador de eventos de GA4 y envíalos mediante gtag para que se aplique el consentimiento.