
Cómo leer el parámetro gcd de Google Consent Mode v2
Abres las herramientas de desarrollo del navegador, filtras por g/collect y ves
un parámetro largo: gcd=11r1r1r1r5. No se parece al gcs=G111 que ya
conoces. Es el parámetro gcd — la herramienta de diagnóstico más completa
que tiene Consent Mode v2, y la que reemplaza al gcs como referencia principal
desde 2025.
Qué es el parámetro gcd
gcd significa Google Consent Data. A diferencia del gcs (que solo codifica
dos permisos en 4 caracteres), el gcd codifica los cuatro permisos de
Consent Mode v2 junto con cómo se llegó a cada estado: el valor por defecto,
la actualización del usuario, o ambos.
El gcd se envía siempre con cada petición a Google, esté o no activo Consent
Mode. Esto lo convierte en la señal más fiable para saber qué está pasando con el
consentimiento en tu sitio.
Formato del gcd: qué significa cada posición
El valor del gcd es una cadena con un formato fijo:
11{señal1}1{señal2}1{señal3}1{señal4}5
Los números 11 al inicio y 1 entre cada señal son separadores fijos (no
cambian). El 5 al final es un valor de cierre. Lo que importa son las letras
en las 4 posiciones de señales:
| Posición | Señal | Qué controla |
|---|---|---|
| 1 | ad_storage | Cookies de publicidad (conversiones, remarketing) |
| 2 | analytics_storage | Cookies de analítica (GA4) |
| 3 | ad_user_data | Permiso para enviar datos del usuario a Google |
| 4 | ad_personalization | Permiso para personalización y remarketing |
Cada letra codifica la trayectoria completa del consentimiento para esa señal: qué se declaró por defecto y qué decidió el usuario después.
Los 9 códigos de letra: el alfabeto del consentimiento
Las letras no son aleatorias. Siguen un patrón alfabético en dos dimensiones: qué se declaró por defecto (columna) y qué hizo el usuario después (fila).
Grupo 1: l, m, n — Sin default registrado
| Letra | Default | Update | Significado |
|---|---|---|---|
l | (ninguno) | (ninguno) | Consent Mode no declaró default ni hubo update. |
m | (ninguno) | Denied | Sin default, el usuario denegó explícitamente. |
n | (ninguno) | Granted | Sin default, el usuario concedió explícitamente. |
Grupo 2: p, q, r — Default denied (el más común)
| Letra | Default | Update | Significado |
|---|---|---|---|
p | Denied | (ninguno) | Default denied, el usuario no ha decidido aún. |
q | Denied | Denied | Default denied, el usuario confirmó que deniega. |
r | Denied | Granted | Default denied, el usuario concedió después. ✅ |
Grupo 3: t, u, v — Default granted
| Letra | Default | Update | Significado |
|---|---|---|---|
t | Granted | (ninguno) | Default granted, sin update del usuario. |
u | Granted | Denied | Default granted, el usuario denegó después. |
v | Granted | Granted | Default granted, el usuario confirmó que concede. |
Truco para recordar: dentro de cada grupo de 3 letras, la primera es "sin update", la segunda es "update a denied", la tercera es "update a granted".
Ejemplos prácticos: cómo leer un gcd
Antes de que el usuario interactúe (modo avanzado)
gcd=11p1p1p1p5
Las 4 letras son p: default denied, sin update. Esto es correcto en modo
avanzado — los tags se cargan con estado por defecto denied y envían pings
sin cookies hasta que el usuario decida.
El usuario acepta todo
gcd=11r1r1r1r5
Las 4 letras son r: default denied → update granted. Este es el flujo ideal
cuando el usuario acepta todas las categorías. Cada señal pasó de denied a
granted mediante la actualización del banner.
El usuario rechaza todo
gcd=11q1q1q1q5
Las 4 letras son q: default denied → update denied. El usuario rechazó
explícitamente. Los pings sin cookies siguen viajando (modo avanzado), pero sin
cookies.
Selección parcial: analytics sí, publicidad no
gcd=11q1r1q1r5
Posición 1 (ad_storage): q — denied → denied.
Posición 2 (analytics_storage): r — denied → granted.
Posición 3 (ad_user_data): q — denied → denied.
Posición 4 (ad_personalization): r — denied → granted.
Esto significa que el usuario aceptó analítica y datos, pero rechazó publicidad y personalización.
Default granted sin update (configuración incorrecta)
gcd=11t1t1t1t5
Las 4 letras son t: default granted, sin update. Esto indica que el default
se declaró como granted en lugar de denied — un error de implementación. El
modo avanzado requiere que el default sea denied.
gcs vs gcd: por qué el gcd es mejor
| Aspecto | gcs | gcd |
|---|---|---|
| Permisos | 2 (ad_storage, analytics_storage) | 4 (las 4 de Consent Mode v2) |
| Detalle | Solo estado final (granted/denied) | Trayectoria completa (default + update) |
| Envío | Solo con Consent Mode activo | Siempre, con o sin Consent Mode |
| Debugging | Básico | Completo |
| Formato | G1xy (3-4 chars) | 11l1l1l1l5 (9 chars) |
El gcs sigue siendo útil para una lectura rápida (G111 = todo concedido), pero
cuando necesitas depurar por qué algo no funciona, el gcd te dice la historia
completa: qué se declaró, qué decidió el usuario, y en qué orden.
Cómo verificar en Chrome DevTools
- Abre las Herramientas de Desarrollo (F12 o Cmd+Opt+I).
- Ve a la pestaña Network.
- Filtra por
g/collect(las peticiones de GA4) odoubleclick(las de Google Ads). - Haz clic en cualquier petición y busca el parámetro
gcden la query string. - Decodifica las 4 letras usando la tabla anterior.
Qué buscar
| Estado | gcd esperado | Qué verificar |
|---|---|---|
| Página cargada, sin decidir | 11p1p1p1p5 | Defaults correctos (denied) |
| Aceptó todo | 11r1r1r1r5 | Las 4 señales cambiaron a granted |
| Rechazo total | 11q1q1q1q5 | Las 4 señales siguieron denied |
| Solo aceptó analytics | 11q1r1q1r5 | Mezcla de q y r según elección |
Default en granted | 11t1t1t1t5 | ⚠️ Error: default debe ser denied |
Sin separadores 1 | Formato inesperado | ⚠️ Posible implementación incorrecta |
Errores comunes que revela el gcd
Default en granted (t, u, v)
Si ves letras del grupo t/u/v, tu snippet de Consent Mode declara
granted como valor por defecto. Esto viola el modo avanzado: Google espera
que el default sea denied y que el usuario lo cambie a granted mediante el
banner.
Falta ad_user_data o ad_personalization
Si las posiciones 3 y 4 muestran l (sin default registrado) mientras las
posiciones 1 y 2 muestran p o r, tu CMP no está declarando los permisos
obligatorios desde marzo de 2024. Google Ads desactiva la personalización de
anuncios aunque el usuario haya aceptado.
Update no llega (p persiste después del banner)
Si después de que el usuario acepta el banner las letras siguen siendo p
(default denied, sin update), tu CMP no está disparando
gtag('consent', 'update', …). El banner muestra que sí, pero la señal no
llega a Google.
Mezcla inconsistente de letras
Si ves una combinación como r1p1r1p5 (algunas r, otras p), indica que
algunas señales se actualizaron y otras no. Suele pasar cuando el CMP mapea
mal las categorías del banner a los parámetros de Consent Mode.
Por qué es importante
El gcd no es solo un detalle técnico — es la prueba de que tu
implementación funciona:
- Cumplimiento: demuestra que el default es
deniedy que solo se concede después de una elección explícita, como exige el GDPR. - Modelado: Google necesita señales correctas en las 4 posiciones para activar el modelado de conversiones en GA4 y Google Ads.
- Diagnóstico: en lugar de adivinar por qué los datos no cuadran, lees directamente qué está pasando en cada petición.
- Auditoría: un auditor o abogado de privacidad puede verificar el
cumplimiento inspeccionando el
gcden las peticiones de red.
Cómo lo resuelve Conma
Conma declara los 4 permisos como denied por defecto, de forma síncrona,
antes de que cualquier etiqueta de Google se ejecute. Cuando el usuario decide,
actualiza el estado en menos de 500 ms. El resultado en la pestaña Network:
gcd=11r1r1r1r5
Las 4 señales muestran r (denied → granted): el flujo completo, correcto,
listo para auditoría. Si necesitas una implementación que siempre llegue en el
orden correcto, lee nuestra
guía para cumplir Google Consent Mode v2.