Saltar al contenido

Consent Mode v2 con GTM del lado del servidor

Consent Mode indica a las etiquetas de Google qué ha aceptado el visitante, para que ajusten lo que guardan y envían. Con GTM del lado del servidor, el estado del consentimiento viaja con cada hit hasta tu contenedor de servidor. Las etiquetas de Google que hay allí lo respetan por sí solas, pero otras etiquetas de servidor, como la Meta Conversions API, no. Esta lección cubre las dos mitades.

Avanzado 11 min de lectura

Lo que aprenderás

  • Explicar las cuatro señales de Consent Mode v2 y la diferencia entre el modo básico y el avanzado.
  • Establecer un estado de consentimiento por defecto antes de que cargue GTM y actualizarlo cuando el visitante acepte.
  • Entender cómo llega el estado del consentimiento a tu contenedor de servidor con cada hit.
  • Impedir que las etiquetas de servidor que no son de Google se activen cuando se ha denegado el consentimiento.
  • Verificar el estado del consentimiento con Tag Assistant.

Antes de empezar

  • GA4 funcionando a través de tu contenedor de servidor (lección 4).
  • Un banner de consentimiento (CMP) o la intención de añadir uno.

01 Las cuatro señales de Consent Mode v2

Consent Mode v2 usa cuatro señales. Cada una vale granted o denied.

  • ad_storage: cookies y almacenamiento para publicidad.
  • analytics_storage: cookies y almacenamiento para analítica, como el client ID de GA4.
  • ad_user_data: si se pueden enviar datos de usuario a Google con fines publicitarios.
  • ad_personalization: si los datos se pueden usar para publicidad personalizada, como el remarketing.

Las dos últimas llegaron con la v2. Google las exige para las funciones publicitarias con visitantes del Espacio Económico Europeo (EEE).

Hay dos formas de usar Consent Mode:

  • Básico: las etiquetas de Google no se cargan hasta que el visitante decide. No se envía nada antes del consentimiento.
  • Avanzado: las etiquetas de Google se cargan enseguida con el valor por defecto (normalmente denegado). Mientras el consentimiento está denegado envían pings sin cookies ni identificadores, que Google usa para modelar. Tras el consentimiento funcionan con normalidad.

02 Establece el valor por defecto y actualízalo

El estado por defecto debe establecerse antes de que se ejecute cualquier etiqueta. Si lo haces en el código, colócalo encima del snippet de GTM.

js
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',
  wait_for_update: 500
});

wait_for_update da al banner ese número de milisegundos para comunicar una decisión guardada antes de que se activen las etiquetas. Cuando el visitante acepta, el banner envía una actualización:

js
gtag('consent', 'update', {
  ad_storage: 'granted',
  ad_user_data: 'granted',
  ad_personalization: 'granted',
  analytics_storage: 'granted'
});

En la práctica rara vez escribes este código tú. La mayoría de las plataformas de consentimiento (CMP) tienen una plantilla en la Community Template Gallery que establece el valor por defecto y la actualización por ti.

  1. 1 En el contenedor web ve a Tags, haz clic en New y elige Tag Configuration. Haz clic en Discover more tag types in the Community Template Gallery y busca tu CMP.
  2. 2 Configura el estado por defecto en la plantilla, normalmente denied para las cuatro señales.
  3. 3 Elige el activador Consent Initialization - All Pages, para que se ejecute antes que cualquier otra etiqueta.
  4. 4 Publica y prueba el banner en Preview.

03 Cómo llega el consentimiento al contenedor de servidor

Las etiquetas de Google del contenedor web añaden el estado del consentimiento a cada hit que envían. El parámetro gcs lleva ad_storage y analytics_storage, y gcd lleva las cuatro señales, incluido cómo se establecieron. Como el hit va a sgtm.example.com, el estado llega con él a tu contenedor de servidor.

El cliente GA4 lee esos parámetros y los pasa en los datos del evento. Las etiquetas de Google del contenedor de servidor (la etiqueta GA4, el seguimiento de conversiones de Google Ads) los respetan automáticamente: cuando el consentimiento está denegado en modo avanzado, reenvían un ping sin cookies y no crean ni leen identificadores.

04 Protege las etiquetas de servidor que no son de Google

Las etiquetas de otros proveedores en el contenedor de servidor, como la Meta Conversions API, TikTok o LinkedIn, no leen los parámetros de consentimiento de Google. Se activan siempre que coincide su activador, aunque el visitante haya dicho que no. Tienes que añadir tú la comprobación del consentimiento al activador.

  1. 1 En el contenedor de servidor ve a Variables y crea una nueva variable Event Data con la ruta de clave x-ga-gcs. Contiene el valor de gcs, por ejemplo G111.
  2. 2 Léelo así: G1, luego un dígito para ad_storage y otro para analytics_storage, donde 1 es concedido y 0 denegado. G111 significa ambos concedidos; G100, ambos denegados.
  3. 3 Abre el activador de la etiqueta del proveedor y añade una condición, por ejemplo que la variable matches RegEx ^G11 para las etiquetas que necesitan ad_storage.
  4. 4 Prueba una vez con el consentimiento denegado y otra con el consentimiento concedido. La etiqueta solo debe activarse en el segundo caso.

Si necesitas ad_user_data o ad_personalization, lo más sencillo es enviar tú mismo el estado del consentimiento: añade un parámetro de evento como marketing_consent con el valor granted o denied a la etiqueta de evento de GA4 del contenedor web, léelo con una variable Event Data en el contenedor de servidor y úsalo en el activador.

05 Verifica el estado del consentimiento

  1. 1 Abre el contenedor web en Preview en una ventana privada nueva, para que no haya ninguna decisión anterior guardada.
  2. 2 En Tag Assistant selecciona el primer evento Consent del resumen (Summary) y abre la pestaña Consent. On-page Default debería mostrar denied para las cuatro señales (o tus valores por defecto regionales).
  3. 3 Acepta el banner, selecciona el evento Consent más reciente y comprueba que On-page Update muestra granted.
  4. 4 En el Preview del servidor, abre una solicitud anterior y otra posterior al consentimiento y compara x-ga-gcs en Event Data.
  • El valor por defecto se establece antes de que se active cualquier etiqueta.
  • Las cuatro señales de la v2 están en el valor por defecto y en la actualización.
  • El contenedor de servidor recibe el nuevo estado del consentimiento cuando el visitante acepta.
  • Las etiquetas de servidor que no son de Google solo se activan con consentimiento.

Preguntas frecuentes

¿Debo usar Consent Mode básico o avanzado?

El modo avanzado permite a Google modelar las conversiones de los visitantes que rechazaron, así que normalmente ves cifras más completas. El modo básico no envía nada antes del consentimiento. Cuál puedes usar depende de tu análisis legal, no del contenedor de servidor.

¿GTM del lado del servidor me permite prescindir del banner de consentimiento?

No. Llevar las etiquetas a un servidor cambia dónde se procesan los datos, no si necesitas consentimiento para recogerlos. Se aplican las mismas normas de consentimiento.

¿Por qué el contenedor de servidor sigue recibiendo hits cuando el consentimiento está denegado?

En modo avanzado las etiquetas de Google siguen enviando pings sin cookies mientras el consentimiento está denegado. El contenedor de servidor los recibe con el estado denegado y las etiquetas de Google que hay en él los reenvían sin identificadores.

¿Listo para ponerlo en práctica?

Despliega un contenedor GTM de servidor en tu propio dominio en pocos minutos. El plan Gratis no pide tarjeta.

Crear una cuenta gratuita