Consent Mode v2: qué es realmente y cómo configurarlo

por Luca Cavallini Guías técnicas
Consent Mode v2: qué es realmente y cómo configurarlo

Un banner de cookies y Consent Mode v2 no son lo mismo

Un banner de cookies pide permiso al visitante. Consent Mode v2 es la forma en que ese permiso se transmite a Google, antes de que una etiqueta como Google Analytics o Google Ads reciba el más mínimo dato. Están en niveles distintos: puedes tener un banner perfectamente conforme con el RGPD y una configuración de Consent Mode que sigue siendo incorrecta, porque el banner es una interfaz de usuario, mientras que Consent Mode es un protocolo entre tu sitio y las etiquetas de Google, hecho de señales con un nombre preciso y un orden preciso en el que deben definirse.

Desde la versión 2, obligatoria para quien use en Europa etiquetas de Google ante un público sujeto al RGPD, las señales ya no son dos sino seis: ad_storage y analytics_storage ya existían en la v1, se añadieron ad_user_data (permiso para enviar datos personales a Google con fines publicitarios) y ad_personalization (permiso para usarlos para personalizar los anuncios), y en la práctica casi todas las implementaciones reales gestionan además functionality_storage y personalization_storage para las preferencias propias del sitio. Una séptima señal, security_storage, se concede siempre, porque cubre las cookies técnicas de seguridad, no el seguimiento.

El orden importa más que el contenido: el valor por defecto debe llegar antes que la etiqueta

El error más frecuente no está en los valores elegidos sino en la secuencia. Una etiqueta de Google (GTM, gtag.js) que se carga antes de que el sitio haya declarado un valor de consentimiento por defecto se comporta como si no existiera ningún sistema de consentimiento, que para ella es el estado más permisivo. Una configuración de Consent Mode v2 bien construida sigue siempre el mismo esquema, en este orden:

  • En cuanto el documento empieza a cargarse, antes de cualquier script de terceros, se declara un valor por defecto denegado para cada señal de seguimiento (denied para marketing y estadísticas, granted solo para security_storage), con un breve margen de espera (500 milisegundos en nuestra propia implementación) que da tiempo a volver a leer una elección guardada antes de que una etiqueta pueda salir con los valores equivocados.
  • Si el visitante ya hizo una elección en una visita anterior, esa elección se vuelve a leer de la cookie de consentimiento y se envía de inmediato a Google como comando de actualización del consentimiento, siempre antes de que GTM o gtag.js se soliciten realmente a los servidores de Google.
  • Solo entonces, con el contexto de consentimiento ya declarado, se cargan GTM, una etiqueta directa de Google Analytics 4 (si no pasas por GTM) y cualquier píxel de terceros, como el de Meta. Además, el propio píxel necesita todavía su propia llamada de consentimiento, no basta con un simple «si la cookie dice que sí, cargar el script».

Colocar el valor por defecto en el lugar correcto del código son tres líneas. Colocarlo en el lugar equivocado, por ejemplo en el mismo bloque que carga GTM en lugar de antes de él, anula todo el mecanismo: Google sigue viendo llegar la etiqueta antes que la señal.

El banner por sí solo no bloquea nada: hace falta también un bloqueo genérico

Una laguna práctica que Consent Mode v2 no cubre por sí solo es que abarca únicamente las etiquetas de Google, no los demás scripts de terceros que un tema u otro módulo haya podido colocar en la página (un mapa incrustado, un widget de opiniones, un vídeo). Una implementación seria añade una capa independiente que vigila el DOM mientras se construye la página, reconoce un script o un iframe gracias a una lista de patrones de dominios (por ejemplo google-analytics.com, facebook.net, doubleclick.net o el dominio de un servicio de vídeo) y, si la categoría a la que pertenece aún no ha sido aceptada, lo sustituye por un elemento inerte antes de que pueda hacer la menor petición de red. Solo cuando el visitante acepta esa categoría se coloca de nuevo el script real. Sin esta capa, un valor por defecto denegado cubre únicamente las etiquetas que el propio sitio escribió para respetarlo, no las integradas en módulos de terceros que ignoran tu Consent Mode y salen igualmente.

Un caso real: un valor por defecto técnicamente correcto y un banner que nadie podía leer

En nuestro propio módulo de consentimiento encontramos el 14 de septiembre de 2026 un defecto instructivo: el mecanismo de Consent Mode en sí era correcto, el valor por defecto denegado salía en el momento justo, y sin embargo el texto del banner (título, cuerpo, los tres botones, los nombres de las categorías) aparecía en inglés para cualquiera que navegara por una tienda en francés, español o alemán, mientras que el italiano y el inglés eran correctos. La causa no era una traducción que faltara en el catálogo de cadenas de PrestaShop: el texto del banner estaba escrito directamente en el código del módulo, en un array que solo cubría dos idiomas, y para cualquier otro idioma el código recurría en silencio al inglés. Lo corregimos añadiendo los tres bloques de idioma que faltaban (francés, español y alemán, 17 cadenas cada uno, con caracteres acentuados reales en lugar de simples apóstrofos) y publicamos la versión 1.0.9.

No es solo una cuestión cosmética. Un consentimiento recabado mostrando un texto que el visitante no puede leer es un consentimiento frágil: el RGPD exige que la información sea comprensible para la persona que la lee, no solo que esté técnicamente presente en la página. Una configuración de Consent Mode irreprochable a nivel de código vale poco si la persona que tiene delante el banner lee un idioma que no habla.

Una lista de comprobación práctica para verificar tu propia configuración

  • Abre el código fuente de la página de inicio, el auténtico «ver código fuente» y no las herramientas de desarrollo, y comprueba que gtag("consent","default",...) aparece en el documento antes de cualquier etiqueta de Google Tag Manager o de gtag.js, no después.
  • Comprueba que las seis señales están presentes en el valor por defecto, no solo ad_storage y analytics_storage, heredadas de Consent Mode v1: la ausencia de ad_user_data o de ad_personalization es el error más frecuente en las configuraciones «actualizadas» solo de nombre.
  • Comprueba con las herramientas de red del navegador que un script como Google Analytics no sale realmente antes de que se dé el consentimiento: un valor por defecto denegado debe traducirse en cero peticiones de red a ese dominio, no solo en una señal declarada y luego ignorada.
  • Cambia el idioma de la tienda y vuelve a mirar el banner: un texto traducido a medias es un defecto tan frecuente como invisible para quien lo ha publicado, porque casi siempre se comprueba en el idioma de trabajo del equipo.

En resumen

Consent Mode v2 no es una casilla en el panel de ajustes de un módulo de cookies: es una secuencia precisa de señales, en la que el orden cuenta tanto como el contenido, más una capa de bloqueo que debe cubrir scripts que el sitio nunca escribió. Una implementación técnicamente correcta aún puede fallar en su objetivo si el texto que acompaña la petición de consentimiento nunca llega de verdad, en su idioma, a la persona que debe leerlo. Existen módulos específicos para PrestaShop, entre ellos uno gratuito en nuestro propio catálogo (cll_consent), pero la secuencia descrita arriba sigue siendo válida sea cual sea el módulo que la implemente.

Banner de Cookies y Google Consent Mode v2Módulo gratuito: descárgalo e instálalo ahora mismo. Banner de cookies RGPD con categorías granulares, Google…Ver producto

Deja un comentario

Los comentarios se moderan antes de su publicación.

← Blog

Cargando...
Volver arriba