Marketing Digital

Consent Mode v2: qué es, cómo funciona y cómo montarlo a mano con Google Tag Manager

Esquema de Consent Mode v2: el banner de cookies envía la decisión del visitante a Tag Manager, que la traduce en siete señales para las etiquetas de Google.

LOS NÚMEROS QUE IMPORTAN

700

clics de anuncio en 7 días, por país y dominio, para que Google Ads empiece a modelar conversiones

1.000

eventos diarios con la analítica denegada, y otros 1.000 usuarios que la aceptan, para que GA4 modele

2–5×

más probabilidades de convertir tiene quien acepta cookies que quien no, según Google

18 %

del tráfico de pago llegaba a Analytics en una tienda con el consentimiento mal montado
Fuentes: ayuda de Google Ads («Acerca del modelado del modo de consentimiento»), ayuda de Analytics («Modelado del comportamiento») y auditoría propia, agosto de 2026.

En agosto revisé la medición de una tienda online de pan sin gluten. Google Ads decía 1.218 clics en el periodo. Analytics, 217 sesiones de tráfico de pago. El banner de cookies funcionaba, los pedidos entraban y el TPV cobraba. Y nadie sabía explicar dónde estaba el 82 % restante.

LOS DATOS DEL CASO

Lo que veía cada herramienta en el mismo periodo

Tienda online de pan sin gluten, agosto de 2026: 1.218 clics en Google Ads frente a 217 sesiones de tráfico de pago en Analytics para las mismas campañas. Llegaba el 18 %.

No era culpa de Google ni de los navegadores. Era el consentimiento. El plugin de cookies solo cargaba Tag Manager cuando el visitante aceptaba la analítica, y el contenedor tenía además su propia etiqueta de consentimiento que, en cada página, volvía a poner todo en «denegado» un instante después de que el banner lo concediera. Dos piezas que, por separado, parecían correctas.

Escribí la primera versión de este artículo en agosto de 2024. Releída hoy, confundía Consent Mode con el marco TCF de IAB y lo presentaba como algo que «elige» el usuario. Desde entonces he montado, auditado o desmontado el modo de consentimiento en una docena de webs: tiendas, fundaciones, un SaaS con cuatro mercados, una clínica online y una productora de teatro con tres contenedores de Tag Manager de tres agencias distintas. Casi todo lo que sé lo aprendí arreglando cosas que parecían funcionar.

Esta es la versión que me habría gustado leer entonces. Qué es de verdad, por qué Google lo exige, cómo decidir entre básico y avanzado, cómo montarlo a mano en Google Tag Manager sin depender de la integración de nadie y cómo comprobar que funciona. Con el código, la ruta de cada menú y los errores que más encuentro.

01 — LA BASE

Consent Mode es un protocolo de comunicación. Ni más ni menos. Tu banner de cookies recoge lo que decide el visitante; Consent Mode traduce esa decisión a un idioma que entienden las etiquetas de Google (Analytics, Ads, Floodlight) para que se comporten en consecuencia: escribir cookies o no, enviar datos completos o recortados, usar la visita para personalizar anuncios o no.

La «v2» no es un banner nuevo ni un producto que se contrata. Es la versión del protocolo que Google publicó en noviembre de 2023, que añade dos señales a las que ya existían. Casi toda la confusión que veo viene de mezclar tres cosas distintas: el banner, el protocolo y la ley.

ASÍ NO SE ENTIENDE

«Consent Mode es el banner de cookies»

«Con Consent Mode ya cumplo el RGPD»

«La v2 es lo mismo que el TCF de IAB»

«Activándolo recupero los datos de quien rechaza»

ASÍ SÍ

El banner (la CMP) pregunta; Consent Mode transmite la respuesta

Cumples si el banner, la política y lo que cargas antes de preguntar son correctos

TCF es el estándar de IAB para editores; Consent Mode, el de Google. Pueden convivir

Recuperas estimaciones modeladas, y solo si llegas a los umbrales

Las siete señales

Consent Mode funciona con siete tipos de consentimiento. Cada uno vale granted (concedido) o denied (denegado). Cuatro los usa Google para medir y anunciar; los otros tres describen almacenamiento que no es publicitario y conviene declararlos para que el estado quede completo.

SeñalQué controlaPor defecto en el EEE
ad_storageCookies e identificadores de publicidad, como _gcl_audenied
ad_user_dataSi se pueden enviar a Google datos del usuario con fines publicitarios: conversiones mejoradas, user_iddenied
ad_personalizationSi la visita puede usarse para personalizar anuncios y para remarketingdenied
analytics_storageCookies de analítica, como _ga y _ga_*denied
functionality_storageAlmacenamiento que hace funcionar la web: idioma, carritogranted si es estrictamente necesario
personalization_storagePersonalización no publicitaria, como recomendacionesdenied
security_storageSeguridad: autenticación, prevención del fraudegranted

Las siete señales de Consent Mode y su valor por defecto razonable para visitantes del Espacio Económico Europeo.

Un detalle que evita sustos: los anuncios personalizados necesitan a la vez ad_user_data y ad_personalization en concedido. Con una sola no basta.

Qué cambió de la v1 a la v2

  • Septiembre de 2020. Google lanza Consent Mode con dos señales: ad_storage y analytics_storage.
  • Noviembre de 2023. Llega la v2 con ad_user_data y ad_personalization.
  • Marzo de 2024. Para quien sigue en la v1, Google copia automáticamente ad_storage en ad_user_data en el EEE. ad_personalization no se copia: sin v2, no hay remarketing ni audiencias para esos usuarios.

Por eso no basta con «tenerlo desde 2021». Una implementación antigua sigue midiendo, pero se queda sin personalización justo donde más visitas tienes.

02 — EL CONTEXTO

Por qué Google lo exige y a quién afecta

El origen es la Ley de Mercados Digitales (DMA). Desde el 7 de marzo de 2024, Google, como «guardián de acceso», no puede combinar ni usar con fines publicitarios los datos personales de usuarios europeos sin su consentimiento. Para poder seguir usando los datos que tú le envías, necesita una prueba de que el visitante dijo que sí. Esa prueba es Consent Mode.

Google lo formaliza en su política de consentimiento de usuarios de la UE, que cubre el EEE, Reino Unido y Suiza. Un matiz que casi nadie cuenta: Google dice expresamente que no espera recibir una señal verificada para el tráfico de Reino Unido y Suiza. Donde la exige es en el EEE.

Qué pierdes si no lo tienes

  • Remarketing y audiencias para los usuarios del EEE. Sin señales, las audiencias de GA4 que usas en Google Ads solo incluyen usuarios de fuera del EEE.
  • Medición de conversiones degradada y sin modelado que la compense.
  • Conversiones mejoradas: los datos del usuario solo se envían con ad_user_data concedido.
  • Customer Match: desde marzo de 2024 las listas de usuarios del EEE necesitan los dos campos de consentimiento.
  • Limitación o suspensión de productos, que la política de Google contempla para quien no la cumple. En julio de 2025, según la prensa especializada, Google empezó a desactivar la personalización y el seguimiento de conversiones a anunciantes del EEE sin señales.

Herramienta · Línea temporal

De Consent Mode v1 a 2026

Pulsa cada hito para ver qué cambió y por qué te afecta. Los marcados como «prensa» no tienen anuncio oficial de Google.

Por qué te importa

Lo más importante de 2026 lo anunció Google en abril: desde el 15 de junio, en las propiedades de GA4 vinculadas a Google Ads, el modo de consentimiento pasa a ser el único interruptor que decide si la etiqueta de Analytics recoge cookies e identificadores publicitarios. Google Signals deja de hacer de segundo filtro y queda solo para los informes. Si tu Consent Mode concede de más, ahora se nota más.

03 — EL MECANISMO

Cómo funciona por dentro

Todo se reduce a dos órdenes y a un momento. La primera, default, fija el estado de partida antes de que se mida nada. La segunda, update, lo cambia cuando el visitante decide en el banner. Y el momento es el orden: el estado por defecto tiene que existir antes que cualquier comando que envíe datos.

Google lo escribe sin rodeos en su documentación: si el código de consentimiento se ejecuta fuera de orden, los valores por defecto no funcionan. De los fallos que encuentro en auditorías, la mitad son de orden.

Herramienta · Secuencia de carga

El orden lo es todo

Reproduce la carga de una página en modo avanzado, con el estado por defecto en Tag Manager, y compara qué pasa cuando el estado por defecto llega a tiempo y cuando llega tarde.

    Capa de datos

    Estado del consentimiento

    Cookies escritas

    Básico y avanzado: la diferencia real

    Google distingue dos formas de implementarlo. Lo que cambia no es el banner, sino qué hacen las etiquetas de Google mientras el visitante no ha aceptado.

    BásicoAvanzado
    Antes de que el visitante decidaLas etiquetas de Google no se carganSe cargan con todo denegado
    Si rechazaNo se envía nada, ni siquiera el estadoSe envían pings sin cookies
    Si aceptaMedición normal, con cookiesMedición normal, con cookies
    Modelado de conversiones en Google AdsModelo generalModelo propio del anunciante, si hay volumen
    Modelado de comportamiento en GA4NoSí, si alcanzas los umbrales
    Riesgo legalBajoEn discusión (capítulo 04)

    Comparativa entre la implementación básica y la avanzada de Consent Mode.

    Qué viaja en un ping sin cookies

    En el modo avanzado, cuando la señal está denegada, Google sigue recibiendo una petición por cada evento, pero recortada. Según su propia documentación incluye:

    • Información funcional: marca de tiempo, agente de usuario y página de referencia.
    • Si la URL actual o una anterior traía un identificador de clic de anuncio (gclid, dclid).
    • El estado del consentimiento y un número aleatorio que se genera en cada carga de página.
    • Información sobre la CMP que gestiona el banner.
    • En el caso de Analytics, también la resolución de pantalla y la dirección IP, que Google dice no almacenar.

    Lo que no lleva es una cookie con un identificador persistente. Sin ella, cada página vista es un desconocido nuevo: Google puede contar la visita, pero no unir dos páginas de la misma persona. Por eso hablamos de modelar y no de recuperar.

    Herramienta · Simulador

    Qué ve Google según lo que decide el visitante

    Elige el modo y lo que marca el visitante en el banner. Verás las señales, los parámetros de cada petición, las cookies que se escriben y qué funciones siguen disponibles.

    Modo
    El visitante
    Categorías

    Las siete señales

    Peticiones

    gcs

    gcd

    Cookies escritas

    Qué puede hacer Google

      Supuestos: Analítica concede analytics_storage; Marketing concede ad_storage, ad_user_data y ad_personalization; Preferencias concede personalization_storage. El dígito final del gcd varía y Google no lo documenta.

      Cómo leer gcs y gcd

      Cada petición de Google lleva dos parámetros que delatan el estado del consentimiento. Google no los documenta de forma oficial; lo que sigue es lo que ha descifrado la comunidad (Simo Ahava, Stape) y lo que yo uso a diario en auditorías. Úsalo como herramienta de diagnóstico, no como contrato: Google puede cambiarlo sin avisar.

      gcsad_storageanalytics_storageCómo leerlo
      G100denegadodenegadoRechazó todo o aún no ha decidido. Solo existe en modo avanzado
      G110concedidodenegadoAceptó publicidad, no analítica
      G101denegadoconcedidoAceptó analítica, no publicidad
      G111concedidoconcedidoAceptó todo

      Valores del parámetro gcs: el primer dígito tras G1 es ad_storage y el segundo analytics_storage.

      El parámetro gcd es más rico porque cuenta la historia de cada señal: cómo empezó y cómo acabó. Tiene esta forma: 11 + ad_storage + 1 + analytics_storage + 1 + ad_user_data + 1 + ad_personalization + un dígito final. Cada señal es una letra:

      LetraSignificado
      lLa señal no se ha fijado con Consent Mode
      pDenegada por defecto, sin actualización
      qDenegada por defecto y denegada al actualizar
      rDenegada por defecto y concedida al actualizar
      tConcedida por defecto, sin actualización
      uConcedida por defecto y denegada al actualizar
      vConcedida por defecto y concedida al actualizar
      mSin valor por defecto, denegada al actualizar
      nSin valor por defecto, concedida al actualizar

      Letras del parámetro gcd según la comunidad (no documentado por Google).

      Herramienta · Decodificador

      Qué dicen tus gcs y gcd

      Pega un valor de gcs, de gcd o la URL completa de una petición de Google que veas en la pestaña Red. Todo se procesa en tu navegador.

      Ejemplos:

      La letra que más miro es la l: significa que una etiqueta midió sin que existiera un estado por defecto. Si aparece en la primera petición de la página, tu default llega tarde.

      04 — EL CRITERIO

      Básico o avanzado: cómo decidir

      Esta es la decisión que más se toma por inercia. El plugin trae una opción marcada, el tutorial dice «avanzado, que recupera datos», y nadie se pregunta si esa web tiene el volumen necesario para que haya algo que recuperar.

      Los umbrales que casi nadie comprueba

      • GA4 solo modela el comportamiento si la propiedad registra al menos 1.000 eventos diarios con analytics_storage denegado durante 7 días, y al menos 1.000 usuarios diarios con la analítica aceptada en 7 de los últimos 28 días. Aun cumpliéndolos, no está garantizado, y los datos modelados no llegan a las audiencias, a las exploraciones de usuario ni a la exportación a BigQuery.
      • Google Ads modela conversiones a partir de 700 clics de anuncio en 7 días, por país y agrupación de dominio.

      La tienda de pan del principio hacía unos 1.000 clics al mes: unos 230 a la semana, ni un tercio del umbral. En mis propias notas llegué a escribir «700 clics al día». Es a la semana. La conclusión no cambiaba, pero el dato importa, y lo dejo aquí porque es exactamente el tipo de error que se copia de documento en documento.

      EL UMBRAL

      Clics por semana frente a lo que Google Ads pide para modelar

      Google Ads necesita 700 clics de anuncio en 7 días, por país y agrupación de dominio. La tienda hacía unos 230.

      El debate legal

      El modo avanzado envía pings sin cookies antes de que el visitante acepte. Google sostiene que no identifican a nadie. Pero las directrices 2/2023 del Comité Europeo de Protección de Datos, actualizadas en octubre de 2024, consideran que hacer que el navegador envíe información de vuelta, como hace un píxel, ya es «acceder» al dispositivo. Eso no significa automáticamente que haga falta consentimiento, pero abre la puerta.

      Hay juristas, como el alemán Thomas Schwenke, que defienden que el modo avanzado también necesita consentimiento. No he encontrado ninguna resolución de la AEPD ni de la CNIL francesa sobre Consent Mode en concreto. Lo que sí dice la AEPD es que las cookies de analítica no están exentas.

      MI CRITERIO

      Cómo lo decido yo

      01

      Si no llegas a los umbrales, básico. El avanzado no te va a modelar nada y te añade una discusión legal que no necesitas.

      02

      Si llegas, el avanzado tiene sentido, pero lo decide quien firme la privacidad, no el técnico.

      03

      En los dos casos, Tag Manager se carga siempre, con el estado por defecto denegado antes que nada. Bloquear el contenedor entero hasta que aceptan no es «básico»: es quedarte ciego.

      Herramienta · Decisión

      ¿Básico o avanzado?

      Cuatro preguntas como máximo. Es una orientación según tu volumen y tu postura legal; no sustituye a tu asesoría.

      05 — EL MANUAL

      Implementación manual con Google Tag Manager, paso a paso

      Si usas una CMP certificada por Google (Cookiebot, CookieYes, Complianz, iubenda, Usercentrics…) y su integración funciona, úsala: se actualiza sola cuando Google cambia algo. Este manual es para los otros casos: cuando tu CMP no tiene integración fiable, cuando la que tiene pisa a otra pieza o cuando quieres entender qué pasa por dentro para poder auditarlo.

      Herramienta · Arquitectura

      Las cinco piezas y su orden

      Cada pieza tiene un sitio y un activador. Pulsa una para ver qué hace, dónde se configura y qué pasa si falta.

      Qué hace

      Dónde va

      Activador

      Si falta o falla

      Paso 1 · Haz inventario y limpia

      Antes de configurar nada, averigua qué carga la web y desde dónde. Lo más habitual es encontrar etiquetas repartidas en cuatro capas: código pegado en el tema, plugins, el propio banner de cookies y uno o varios contenedores de GTM.

      • Tag Manager se inyecta desde un solo sitio. Si el snippet aparece dos veces, cada evento se duplica, y en el informe en tiempo real parece que funciona.
      • Una sola propiedad de GA4 por web y una sola etiqueta por acción de conversión.
      • Nada de scripts pegados en los campos de las categorías del banner: si la categoría está activa en la primera visita, se disparan antes de preguntar.
      • Busca recursos que escriben cookies sin pasar por GTM: mapas de Google incrustados, reCAPTCHA, chats, el banner de HubSpot.

      Paso 2 · Activa la vista general de consentimiento

      En GTM ve a Administrar → Configuración del contenedor y marca «Habilitar vista general de consentimiento» (Enable consent overview). Aparecerá un icono de escudo en la lista de etiquetas. El objetivo de este manual es que, al final, ninguna etiqueta quede en «Consentimiento no configurado». Es exactamente lo primero que mira un auditor.

      Paso 3 · Averigua cómo guarda tu CMP la decisión

      Para montar el consentimiento a mano necesitas leer la decisión del visitante. Todas las CMP la guardan en algún sitio, normalmente una cookie de primera parte, y casi todas avisan con un evento en la capa de datos cuando cambia.

      1. Abre la web en incógnito, con las herramientas de desarrollo abiertas en Application → Cookies.
      2. Acepta solo una categoría del banner y mira qué cookie aparece o cambia.
      3. Activa la Vista previa de GTM, repite la elección y apunta qué evento aparece en la columna de la izquierda.
      4. Escribe dataLayer en la consola y busca si la CMP ya empuja órdenes consent. Si lo hace, desactiva esa función antes de seguir: dos estados por defecto que se contradicen son el error número uno.
      CMPDónde guarda la decisiónValores
      GDPR Cookie Compliance (Moove)Cookie moove_gdpr_popup (JSON)strict, thirdparty (analítica), advanced (marketing), performance, preference: «1» o «0»
      CookieYesCookie cookieyes-consentPares analytics:yes/no, advertisement:yes/no, functional, performance
      ComplianzCookies cmplz_statistics, cmplz_marketing, cmplz_preferences«allow» o «deny»
      CookiebotObjeto Cookiebot.consent y cookie CookieConsentstatistics, marketing, preferences: true o false

      Dónde guardan la decisión algunas CMP habituales. Compruébalo siempre en tu versión.

      Paso 4 · Crea las variables que traducen la decisión

      Una variable lee la cookie de la CMP y devuelve las señales; otras tres, pequeñas, sacan de ella el valor que necesita cada campo. El ejemplo es para Moove, que es el caso que más me encuentro en WordPress; para otra CMP solo cambia la lectura de la cookie y el mapeo.

      En GTM: Variables → Nueva → JavaScript personalizado. Nómbrala cjs - consent · señales:

      cjs - consent · señales

      function() {
        try {
          var m = document.cookie.match(/(?:^|;\s*)moove_gdpr_popup=([^;]*)/);
          if (!m) return null;                 // visitante sin decisión aún
          var c = JSON.parse(decodeURIComponent(m[1]));
          var g = function(v) { return String(v) === '1' ? 'granted' : 'denied'; };
          return {
            analytics_storage:       g(c.thirdparty),
            ad_storage:              g(c.advanced),
            ad_user_data:            g(c.advanced),
            ad_personalization:      g(c.advanced),
            personalization_storage: g(c.preference),
            functionality_storage:   g(c.strict),
            security_storage:        'granted'
          };
        } catch (e) { return null; }
      }

      Y tres variables más, también de JavaScript personalizado, que devuelven «denied» mientras el visitante no haya decidido:

      cjs - consent · analítica / publicidad / preferencias

      // cjs - consent · analítica
      function() {
        var s = {{cjs - consent · señales}};
        return s ? s.analytics_storage : 'denied';
      }
      
      // cjs - consent · publicidad  (para ad_storage, ad_user_data y ad_personalization)
      function() {
        var s = {{cjs - consent · señales}};
        return s ? s.ad_storage : 'denied';
      }
      
      // cjs - consent · preferencias
      function() {
        var s = {{cjs - consent · señales}};
        return s ? s.personalization_storage : 'denied';
      }

      Paso 5 · Importa la plantilla de consentimiento

      Google recomienda que, dentro de Tag Manager, el consentimiento se fije con plantillas que usan sus API (setDefaultConsentState y updateConsentState), no con gtag() en una etiqueta de HTML personalizado. El motivo está en su documentación: las órdenes gtag se encolan detrás de los mensajes pendientes y pueden procesarse después de que empiece el siguiente evento. Es la causa más común del aviso «A tag read consent state before a default was set».

      No hace falta programar la plantilla. En Plantillas, dentro de Plantillas de etiqueta, pulsa «Buscar en la galería» e importa «Consent Mode (Google + Microsoft tags)», de gtm-templates-simo-ahava. Es gratuita, de código abierto y acepta variables en cada señal.

      Paso 6 · La etiqueta del estado por defecto

      CampoValor
      Tipo de etiquetaConsent Mode (Google + Microsoft tags)
      Consent CommandDefault
      Wait for Update500 (súbelo a 2000 si tu banner carga lento)
      Regionsall (o tu lista; ver paso 10)
      ad_storage, ad_user_data, ad_personalization{{cjs - consent · publicidad}}
      analytics_storage{{cjs - consent · analítica}}
      personalization_storage{{cjs - consent · preferencias}}
      functionality_storage, security_storagegranted
      url_passthrough y ads_data_redactionMarcados
      Enable Microsoft Consent ModeMarcado si usas Clarity o Microsoft Ads
      ActivadorConsent Initialization - All Pages

      Configuración de la etiqueta «Consent - Default».

      Fíjate en lo que hace: para un visitante nuevo, las variables devuelven «denied» y todo arranca denegado. Para uno que ya decidió en una visita anterior, el estado por defecto ya refleja su elección desde la primera petición, sin el parpadeo de «denegado y luego concedido» en cada página.

      El activador Consent Initialization - All Pages existe en todos los contenedores web y se dispara antes que cualquier otro, incluidos los de inicialización. Úsalo solo para la CMP y para esta etiqueta. Nada que mida va ahí.

      Paso 7 · La etiqueta de actualización

      Duplica la anterior, nómbrala Consent - Update y cambia dos cosas: Consent Command → Update y el activador. El activador es un Evento personalizado con el nombre exacto del evento que anotaste en el paso 3.

      Paso 8 · Configura las etiquetas de Google

      Las etiquetas de Google (la etiqueta de Google de GA4, los eventos, la conversión de Ads, la vinculación de conversiones) traen comprobaciones de consentimiento integradas: leen las señales solas. Lo que cambia según el modo es la configuración avanzada de cada una.

      EtiquetaModo avanzadoModo básico
      Etiqueta de Google y eventos de GA4No se requiere consentimiento adicionalRequerir consentimiento adicional: analytics_storage
      Conversión de Google Ads y remarketingNo se requiere consentimiento adicionalRequerir consentimiento adicional: ad_storage
      Vinculación de conversionesNo se requiere consentimiento adicionalRequerir consentimiento adicional: ad_storage

      Configuración de consentimiento de las etiquetas de Google según el modo.

      En modo avanzado, no añadas comprobaciones adicionales ni activadores de bloqueo a las etiquetas de Google: Google advierte de que mezclar las dos cosas hace que el modo de consentimiento no funcione bien. En modo básico, esa comprobación adicional es justo lo que impide que se disparen antes de aceptar.

      Paso 9 · Las etiquetas que no son de Google

      Meta, LinkedIn, TikTok o Clarity no entienden Consent Mode por sí solas, o solo en parte. A todas les pones Requerir consentimiento adicional con la señal que corresponde: ad_storage para las publicitarias y analytics_storage para las de analítica. Así no se disparan hasta que hay permiso. En el capítulo 08 tienes la tabla completa y sus API propias.

      Paso 10 · Regiones (opcional)

      Si tu web se dirige solo a España, no te compliques: estado por defecto global denegado. Si vendes fuera de Europa y quieres medir con cookies donde la ley lo permite, crea dos etiquetas de estado por defecto: una con todo denegado para el EEE, Reino Unido y Suiza, y otra sin región con lo que decidas para el resto. Google aplica siempre la región más específica. Si prefieres hacerlo con código en la página, este es el equivalente:

      Estado por defecto con regiones, en el <head> antes de GTM

      <script>
        window.dataLayer = window.dataLayer || [];
        function gtag(){dataLayer.push(arguments);}
      
        // EEE (UE + Islandia, Liechtenstein y Noruega), Reino Unido y Suiza
        gtag('consent', 'default', {
          ad_storage: 'denied', ad_user_data: 'denied',
          ad_personalization: 'denied', analytics_storage: 'denied',
          functionality_storage: 'granted', security_storage: 'granted',
          personalization_storage: 'denied',
          wait_for_update: 500,
          region: ['AT','BE','BG','HR','CY','CZ','DK','EE','FI','FR','DE','GR',
                   'HU','IE','IT','LV','LT','LU','MT','NL','PL','PT','RO','SK',
                   'SI','ES','SE','IS','LI','NO','GB','CH']
        });
      
        // Resto del mundo: decide con tu asesoría
        gtag('consent', 'default', {
          ad_storage: 'granted', ad_user_data: 'granted',
          ad_personalization: 'granted', analytics_storage: 'granted'
        });
      
        gtag('set', 'url_passthrough', true);
        gtag('set', 'ads_data_redaction', true);
      </script>
      <!-- Después, el snippet de Google Tag Manager -->

      Paso 11 · Publica como si fuera a fallar

      Nada sale a producción sin Vista previa y sin las cuatro pruebas del capítulo siguiente. Al publicar, escribe en la descripción de la versión qué has cambiado y por qué. Dentro de seis meses, cuando alguien pregunte por qué bajaron las conversiones, esa descripción vale más que cualquier informe.

      06 — LA COMPROBACIÓN

      Cómo comprobar que funciona

      Un consentimiento bien declarado no es lo mismo que unas etiquetas bien bloqueadas. Lo aprendí en un SaaS cuya capa de datos era impecable: estado por defecto, actualización, todo en orden. Lo que eso no demostraba era que, con el marketing rechazado, la etiqueta de LinkedIn no escribiera su cookie; eso hay que mirarlo aparte. Lo compruebo siempre en cuatro escenarios, en incógnito y como visitante nuevo.

      LA MATRIZ

      Los cuatro escenarios

      01

      Visitante nuevo que no toca el banner. Estado por defecto todo denegado. En básico, ninguna petición a Google. En avanzado, pings con gcs=G100. En los dos, ninguna cookie _ga, _gcl_au ni _fbp.

      02

      Rechaza todo. Lo mismo, y una actualización a denegado: las letras del gcd pasan de p a q.

      03

      Acepta solo analítica. gcs=G101; aparecen _ga y _ga_*, pero no _gcl_au ni _fbp.

      04

      Acepta todo. gcs=G111, todas las cookies y la conversión de Ads enviada con ad_storage concedido.

      En Tag Assistant

      1. Abre la Vista previa de GTM y carga la web sin tocar el banner.
      2. Haz clic en el primer evento de la izquierda y abre la pestaña Consent. En la columna On-page Default tienen que aparecer las señales en denegado. Si la pestaña está vacía, no hay Consent Mode.
      3. Acepta en el banner, haz clic en el último evento y comprueba la columna On-page Update.
      4. Revisa la pestaña Etiquetas: cada una dice si se disparó o si la bloqueó el consentimiento.

      Si ves el aviso «A tag read consent state before a default was set», una etiqueta leyó el consentimiento antes de que existiera el estado por defecto. Casi siempre es la CMP o el estado por defecto fuera de Consent Initialization, o una etiqueta de medición puesta ahí por error.

      En la consola del navegador

      Comprobaciones rápidas en la consola

      // 1. Órdenes de consentimiento en la capa de datos
      (window.dataLayer || []).filter(x => x && x[0] === 'consent')
      // Sin aceptar: [['consent','default',{... 'denied' ...}]]
      // Tras aceptar: aparece también ['consent','update',{... 'granted' ...}]
      
      // 2. El orden: un solo 'default', y antes que cualquier evento que mida
      (window.dataLayer || []).map((x, i) =>
        x && x[0] === 'consent' ? i + ': consent ' + x[1] :
        x && x.event ? i + ': ' + x.event : null
      ).filter(Boolean)
      // Con el default en el código de la página: antes de 'gtm.js'.
      // Con el default en GTM: justo después de 'gtm.js' y antes de purchase, generate_lead…
      
      // 3. Cookies de analítica escritas (solo después de aceptar)
      document.cookie.split(';').map(s => s.trim().split('=')[0]).filter(n => /^_ga/.test(n))
      
      // 4. ¿Ha cargado Tag Manager? (si da undefined, algo lo retrasa)
      window.google_tag_manager

      En la pestaña Red

      Filtra por collect para Analytics y por googleadservices o pagead para Ads. Abre cualquier petición y busca gcs y gcd en los parámetros. Si tras aceptar sigue apareciendo G100, la actualización no existe o no llega.

      En Google Ads y en GA4

      • Google Ads: Objetivos → Conversiones → Resumen → tu acción de conversión → pestaña Diagnóstico. Buscas «Consent mode is implemented». Tarda hasta 48 horas, a veces dos semanas.
      • GA4: Administrar → Recogida y modificación de datos → Configuración del consentimiento (Consent settings). Ahí ves si llegan las señales de medición y de personalización de anuncios. Se actualiza en 48–72 horas.

      La prueba de la semana

      Una semana después de publicar, compara las conversiones de Analytics con los pedidos o leads reales del mismo periodo. No van a cuadrar, y no deben: si un 40 % rechaza, verás alrededor del 60 %, y los bloqueadores restan algo más. Lo que buscas es una diferencia que sepas explicar. Si supera lo esperable y nadie sabe por qué, vuelve a la matriz.

      UN CÁLCULO SIMPLE

      Qué parte de las conversiones llega a Analytics según cuánta gente rechaza

      En horizontal, el porcentaje de visitantes que rechaza las cookies; en vertical, el porcentaje de conversiones que Analytics mide. Sin modelado ni bloqueadores. Con el modo avanzado y volumen suficiente, GA4 puede estimar una parte de lo que falta.

      07 — LOS ERRORES

      Los diez errores que más encuentro en auditorías

      Todos salen de webs reales que he revisado entre 2024 y 2026. Ninguno da un error visible. Todos dejan un panel de Analytics con buena cara.

      01

      Dos estados por defecto que se contradicen

      La CMP emite uno y una etiqueta del contenedor, otro. En la tienda de pan, uno concedía la analítica y el otro la denegaba, y la compra caía en medio: de seis pedidos de prueba, uno se perdió. Dos estados idénticos son ruido; dos contradictorios, un agujero.

      02

      El estado por defecto llega tarde

      Declarado después del snippet de GTM o después de los primeros eventos. Me lo encontré hasta en la web de mi propia agencia. Se detecta con la letra l en el gcd de la primera petición.

      03

      Una actualización que lee variables que no existen

      Copiada de un tutorial pensado para otra CMP. Las variables devuelven undefined, Google lo interpreta como denegado y el consentimiento se revierte en cada página justo después de que el banner lo conceda.

      04

      La CMP concede lo que el visitante rechazó

      Con el marketing rechazado, la actualización del plugin ponía las siete señales en concedido. Corregirlo hace bajar las conversiones visibles en Ads, porque hoy se cuentan algunas que no deberían. Avisa al cliente antes de que lo vea en el informe.

      05

      Tag Manager solo se carga si aceptan

      Es un modo básico accidental y te deja ciego: Analytics veía el 18 % del tráfico de pago en la tienda de pan, y 35 sesiones en 90 días en la web de una firma de inversión.

      06

      Scripts pegados dentro del banner

      El plugin de cookies usado como cajón de scripts, con la categoría activada en la primera visita. Todo se dispara antes de preguntar, y el banner parece estar en orden.

      07

      Varios contenedores, varias manos

      Tres contenedores de GTM, tres propiedades de GA4, tres cuentas de Ads y una conversión que saltaba al cargar la página. Antes de quitar nada, hay que acordar con cada agencia qué cuenta está viva.

      08

      Lo que carga sin pasar por Tag Manager

      Mapas incrustados, reCAPTCHA en todas las páginas, fuentes de Google, chats y banners de otras herramientas que escriben cookies antes del consentimiento. Consent Mode no los ve.

      09

      Un optimizador que retrasa Tag Manager

      La opción de retrasar JavaScript de WP Rocket dejaba 36 de 57 scripts en espera, GTM incluido. Sin interacción, no se medía nada. El síntoma es idéntico al del consentimiento mal montado, y la causa no tiene nada que ver.

      10

      Probar con el consentimiento ya guardado

      Revisar con la sesión de administrador o con la cookie de una visita anterior oculta casi todos los fallos de arriba. Siempre incógnito, siempre visitante nuevo.

      EL ERROR 09, EN NÚMEROS

      Scripts que el optimizador dejaba en espera

      Una web con WP Rocket y la opción de retrasar JavaScript activada: 36 de 57 scripts no se ejecutaban hasta la primera interacción del visitante, Tag Manager entre ellos.

      La pregunta no es «¿tenemos Consent Mode?». Nadie contesta que no. Es: «¿qué señal sale en la primera petición de un visitante nuevo, y qué cambia cuando rechaza?».

      08 — MÁS ALLÁ DE GOOGLE

      Meta, Microsoft, LinkedIn y TikTok

      Consent Mode es de Google, pero tu banner tiene que gobernar todas las etiquetas. Desde 2025, Microsoft también exige señales de consentimiento a los anunciantes que se dirigen a Europa.

      HerramientaQué exigeCómo lo monto en GTM
      Meta PixelSu propia API: fbq('consent','revoke') antes de iniciar el píxel en cada página y fbq('consent','grant') tras aceptarRequerir consentimiento adicional: ad_storage. Si usas coincidencias avanzadas, también ad_user_data
      Microsoft Advertising (UET)Señal de consentimiento obligatoria desde el 5 de mayo de 2025 en el EEE, Reino Unido y Suiza. Se aplica sobre ad_storageMarcar «Enable Microsoft Consent Mode» en la plantilla del paso 5, o uetq.push('consent', …). No mezclar con TCF
      Microsoft ClaritySeñales de consentimiento exigidas desde el 31 de octubre de 2025 en el EEE, Reino Unido y SuizaLee las señales de Consent Mode; la plantilla del paso 5 se las pasa. Su API: clarity('consentv2', …)
      LinkedIn Insight TagNo he encontrado una API de consentimiento oficialRequerir consentimiento adicional: ad_storage. Escribe li_fat_id y otras
      TikTok PixelTiene su propio modo de consentimientoRequerir consentimiento adicional: ad_storage

      Cómo gestionar el consentimiento en etiquetas que no son de Google.

      Las API de consentimiento de Microsoft y Meta

      // Microsoft Advertising (UET): estado por defecto y actualización
      window.uetq = window.uetq || [];
      window.uetq.push('consent', 'default', { ad_storage: 'denied' });
      // … cuando el visitante acepta marketing:
      window.uetq.push('consent', 'update', { ad_storage: 'granted' });
      
      // Microsoft Clarity (API v2)
      window.clarity('consentv2', { ad_Storage: 'denied', analytics_Storage: 'granted' });
      
      // Meta Pixel: revoke en cada página antes de init; grant tras aceptar
      fbq('consent', 'revoke');
      fbq('init', 'TU_PIXEL_ID');
      // … cuando el visitante acepta marketing:
      fbq('consent', 'grant');

      Con servidor de por medio no cambia lo esencial. Si usas Tag Manager del lado del servidor, el consentimiento se configura en el contenedor web y viaja en cada petición. Las etiquetas de Google del servidor lo respetan; las de terceros necesitan su propia lógica, porque no saben leerlo.

      09 — LO LEGAL

      Consent Mode es un requisito de Google, no de la ley. La ley pide otra cosa: que el banner, la política y lo que cargas antes de preguntar sean correctos. La referencia en España es la guía sobre el uso de las cookies de la AEPD, actualizada en julio de 2023 para alinearla con el Comité Europeo de Protección de Datos.

      • Rechazar tiene que estar en la misma capa y al mismo nivel que aceptar. Sin casillas premarcadas ni aceptación por seguir navegando.
      • Las cookies de analítica no están exentas: necesitan consentimiento.
      • Los muros de cookies solo se admiten si hay una alternativa real, que no tiene por qué ser gratuita.
      • Retirar el consentimiento tiene que ser tan fácil como darlo, con un acceso permanente para cambiar la elección.
      • Renovar el consentimiento como máximo cada 24 meses, que la AEPD plantea como buena práctica.
      • Una política de cookies con inventario real: nombre, proveedor, finalidad, duración y tipo.

      Las sanciones por cookies en España suelen ser de miles de euros, no de millones: 3.000 € a Wallapop en 2025, tras las reducciones por reconocer la infracción y pagar voluntariamente, por instalar cookies antes del consentimiento y no hacer efectivo el rechazo; o 90.000 € en una resolución publicada en 2024, en un caso en el que las cookies se mantenían después de «rechazar todas». El coste mayor casi nunca sale en la resolución: campañas sin audiencias y decisiones tomadas con datos falsos.

      Y lo que Consent Mode no resuelve: el diseño del banner, el texto de la política, el registro de consentimientos (eso lo guarda la CMP), las etiquetas que no son de Google y los recursos incrustados que escriben cookies por su cuenta.

      10 — LOS CASOS

      Tres casos reales, con números

      Anonimizados, pero con los datos tal cual los encontré.

      Una tienda online de pan sin gluten (WooCommerce)

      Síntoma. 1.218 clics de Ads frente a 217 sesiones de pago en Analytics, y compras que unas veces llegaban y otras no.

      Causa. Cinco fallos encadenados: dos estados por defecto contradictorios (el del plugin y el de una etiqueta del contenedor), una actualización que leía variables inexistentes y revertía todo a denegado, un plugin que concedía todas las señales aunque el visitante rechazara el marketing, Tag Manager cargado solo tras aceptar la analítica y una conversión de compra enviada antes de que llegara la actualización.

      Arreglo. Pausar las dos etiquetas de consentimiento del contenedor y validar con un pedido de prueba de 0,01 € en Vista previa: compra en GA4 y conversión de Ads completadas, con la analítica concedida en el momento de la compra. Quedó pendiente de decisión legal la arquitectura definitiva: Tag Manager siempre cargado y estado leído de la cookie, como en este manual.

      Lección. Una CMP y un contenedor que emiten consentimiento a la vez se pisan. Y el modo avanzado no tenía sentido: unos 230 clics a la semana, lejos de los 700.

      Una productora de teatro con tres contenedores de Tag Manager

      Síntoma. Tres contenedores de GTM, tres propiedades de GA4, tres cuentas de Ads, dos píxeles de Meta y una Universal Analytics antigua, todo disparándose antes del consentimiento. El banner no permitía rechazar.

      Causa. Etiquetas pegadas en el campo de scripts de una categoría del banner que venía activada de serie, Analytics duplicado (código en el plugin y etiqueta en GTM) y una conversión de Ads de otra agencia que saltaba al cargar una página.

      Arreglo. Inventario completo y reunión con la agencia de medios para acordar qué cuentas seguían vivas. El plan acordado: un único contenedor con Consent Mode v2, configurado por la agencia y rematado en la web por nosotros. La agencia explicó al cliente, con acierto, que las visitas registradas iban a bajar sin que bajara el tráfico real.

      Lección. Antes de quitar etiquetas ajenas, acuerdo por escrito. Se rompen campañas en marcha.

      Una fundación que migra de web

      Síntoma. Antes del lanzamiento: estado por defecto regional para España con todo denegado y un plugin de cookies en cuyo código no había ni una orden de consentimiento. Si nadie montaba la actualización, la analítica se quedaría denegada para siempre.

      Prueba. Aceptar cookies y mirar si el gcs seguía en G100.

      Resultado en producción. Estado por defecto todo denegado con 2.000 ms de espera, cero cookies antes de aceptar, actualización a concedido y tres cookies tras aceptar. Rechazar al mismo nivel que aceptar.

      Lección. En una migración, el contenedor se traslada entero, pero los activadores escritos para la web antigua hay que revisarlos uno por uno.

      11 — PREGUNTAS FRECUENTES

      ¿Es obligatorio Consent Mode v2?

      No lo exige la ley; lo exige Google. Si te anuncias en Google o usas sus audiencias con usuarios del Espacio Económico Europeo, sin Consent Mode v2 pierdes el remarketing, la personalización y parte de la medición de conversiones para esos usuarios.

      ¿Necesito una CMP certificada por Google?

      Si eres anunciante, no es obligatorio, aunque Google lo recomienda. Si eres editor y muestras anuncios con AdSense, Ad Manager o AdMob, sí: desde enero de 2024 necesitas una CMP certificada e integrada con el TCF de IAB para servir anuncios personalizados en el EEE y Reino Unido.

      ¿Me afecta si no hago campañas en Google Ads?

      Afecta a cómo mide GA4, pero la consecuencia grave, perder audiencias y personalización, es publicitaria. Aun así, conviene tenerlo: tu banner tiene que bloquear la analítica hasta que acepten, y Consent Mode es la forma ordenada de hacerlo con las etiquetas de Google.

      ¿Por qué bajan mis datos al activarlo?

      Porque dejas de medir con cookies a quien rechaza. Las visitas registradas bajan aunque el tráfico real sea el mismo. Si antes no bajaban es que se medía a todo el mundo sin permiso, que es justo lo que había que corregir.

      ¿Básico o avanzado para una pyme?

      Si no llegas a 700 clics de anuncio por semana y país, ni a 1.000 eventos diarios denegados en GA4, el avanzado no te va a modelar nada. En ese caso, básico. Si llegas, el avanzado tiene sentido, pero lo decide tu asesoría legal.

      ¿Qué significa gcs=G100?

      Que la petición se envió con publicidad y analítica denegadas. Es normal antes de aceptar en el modo avanzado. Si aparece después de aceptar, la actualización no está llegando.

      ¿Cuánto tarda Google Ads en confirmar que está bien implementado?

      El diagnóstico de la acción de conversión puede tardar hasta 48 horas, y a veces dos semanas, en mostrar «Consent mode is implemented».

      ¿Tengo que implementarlo para Reino Unido y Suiza?

      La política de Google cubre el EEE, Reino Unido y Suiza, pero Google dice que no espera una señal verificada para el tráfico de Reino Unido y Suiza. La ley de protección de datos de esos países sí puede exigirte el consentimiento.

      ¿Los datos modelados aparecen en BigQuery?

      No. Los datos modelados de GA4 tampoco se usan en audiencias, en el explorador de usuarios ni en las exploraciones de cohortes.

      ¿El etiquetado del lado del servidor evita el consentimiento?

      No. El consentimiento se configura en el contenedor web y viaja con cada petición al servidor. Moverlo al servidor cambia por dónde pasan los datos, no si tienes permiso para recogerlos.

      12 — EL RECURSO

      La lista de comprobación completa

      Todo el artículo, en una lista que puedes ir marcando mientras implementas o auditas. Se guarda en tu navegador para que puedas volver a ella.

      Herramienta · Lista de comprobación

      Consent Mode v2, punto por punto

      34 puntos en seis bloques. Lo que marques se guarda solo en este navegador.

      0/34

      RECURSO GRATUITO

      Lista de comprobación de Consent Mode v2

      Los 34 puntos de la implementación y la auditoría en una página: inventario, banner, Tag Manager, etiquetas, pruebas y mantenimiento.
      Sin dejar el correo. Sin registro.
      CONSENT MODE V2 · CHECKLIST34 puntos para implementarlo y auditarlo

      HISTORIAL DE CAMBIOS

      8 octubre 2026
      Reescritura completa: implementación manual en GTM, criterio básico/avanzado, verificación, errores de auditoría, novedades de 2025–2026 y herramientas interactivas.
      16 agosto 2024
      Primera versión.
      ¿Hablemos?

      ¿Tu consentimiento deja medir lo que debe?

      Un diagnóstico gratuito de treinta minutos: te digo si tu Consent Mode está bien montado o si estás perdiendo datos (o recogiéndolos sin permiso).

      NEWSLETTER · UN EMAIL AL MES

      Sistemas que venden solos

      Un caso real de automatización al mes, con números. Sin spam, sin refritos. Date de baja cuando quieras.

      ¡Hola! ¿Te echo una mano?
      BLIK
      Online
      ¡Hola! ¿En qué puedo ayudarte?
      Scroll al inicio
      NEWSLETTER · UN EMAIL AL MES

      Sistemas que venden solos

      Un caso real de automatización al mes, con números. Sin spam, sin refritos. Date de baja cuando quieras.

      Este sitio está protegido por reCAPTCHA y se aplican la Política de Privacidad y los Términos de Servicio de Google.

      Ahora revisa tu correo

      Para completar la suscripción, haz clic en el enlace de confirmación que te acabo de enviar. Si no te llega en 3 minutos, mira en spam o en promociones.

      Resumen de privacidad

      Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.