Qué es exactamente el GCLID

GCLID son las siglas de Google Click Identifier. Es una cadena larga que Google añade al final de la URL de tu landing cada vez que alguien pulsa un anuncio de Google Ads. La primera vez que lo ves escama un poco:

https://tu-landing.com/?gclid=Cj0KCQjwwYOwBhDYARIsAJFb8qWzXj...

Ese string lo genera Google en el momento del clic y solo Google sabe qué hay dentro. Es un token cifrado que contiene campaña, grupo de anuncios, keyword, hora, dispositivo, ubicación y más. Tú lo ves como ruido; para Google es la ficha completa del clic.

La utilidad del GCLID en una frase: si tu servidor captura el GCLID y lo guarda junto con el lead, más tarde puedes devolvérselo a Google con la venta cerrada y Google re-atribuye esa venta al clic original. Sin usuarios, sin cookies, sin pixel. Es privacy-safe attribution en una cadena de texto. De ahí que todo lo demás dependa de esto.

Cómo Google lo mete sin que hagas nada

El GCLID aparece automáticamente si tu cuenta tiene auto-tagging activado, que es el default desde hace años. Para confirmarlo: Google Ads → Herramientas → Configuración de la cuenta → Seguimiento → Etiquetado automático = Sí.

Con esto activado, Google añade el parámetro ?gclid=... a cualquier URL de destino de tus anuncios, sin que tú toques las URLs. También deposita una cookie propia llamada _gcl_aw con el mismo identificador. Esa cookie es la que permite a Google hacer attribution dentro del propio Google Ads sin que tú hagas nada. El problema empieza cuando tú quieres usar el GCLID fuera de Google Ads (en tu CRM, en tu reporting, para subir conversiones offline). Ahí es cuando descubres que la cookie no te vale de nada y que el query param es tu única fuente.

Cuidado con las plantillas de seguimiento personalizadas

Si has puesto una URL de seguimiento custom tipo ?utm_source=google en la campaña y no incluyes {gclid} como parte de la plantilla, Google dejará de añadir el GCLID automáticamente. Es un error que vemos en cuentas migradas entre agencias. Revísalo en cualquier cuenta heredada.

Los 3 sitios donde el GCLID se rompe en cuentas reales

En la mayoría de auditorías el GCLID se pierde en uno de estos tres puntos. Casi nunca es un fallo de Google. Casi siempre es un fallo de configuración del lado del anunciante.

1. Antes de llegar a la landing

Si tu anuncio apunta a un URL shortener (bit.ly, un dominio redirector propio, un tracking link de un partner), el shortener tiene que preservar explícitamente el query string al hacer el 301. Muchos no lo hacen por defecto. Resultado: Google añade el ?gclid=..., el shortener redirige a la landing final sin el parámetro, y tu captura llega vacía aunque el auto-tagging está correctamente activado.

Otro caso típico: anuncios que apuntan a secciones de la web que hacen su propio redirect interno (un /es/ que lleva a /spain/). Si el servidor hace 301 sin preservar query, adiós GCLID. En una cuenta de seguros que auditamos el año pasado, el 40 % de los clics estaban llegando sin GCLID por esta causa. Un cambio de configuración en nginx lo arregló en diez minutos, pero llevaban 14 meses perdiendo atribución.

2. En la propia landing

Aquí hay varios sub-escenarios. Los más frecuentes:

  • Safari con ITP. Intelligent Tracking Prevention borra localStorage tras 7 días de inactividad. Si tus ventas tardan más que eso, pierdes el GCLID casi siempre en usuarios iOS.
  • Navegación en incógnito. Persistencia cero. Si el visitante anda en incógnito, tienes una sola sesión para capturar.
  • SPAs que cambian la URL. Single-page apps que hacen history.pushState sin preservar el query string eliminan el GCLID al segundo clic interno del usuario.
  • Iframes cross-origin. Si tu formulario está embebido en un iframe de otro dominio (Bitrix, Calendly, algunos CRMs), el iframe tiene su propio localStorage y no puede leer el del top-level.
  • Cookie banners que bloquean scripts. Si tu banner de cookies bloquea Google Tag Manager hasta aceptar, el GCLID no se captura en usuarios que rechazan o no interactúan con el banner.

3. Después de la landing, cuando viaja al CRM

Aunque la captura esté perfecta, falta un viaje entre la landing y tu CRM donde también se pierden GCLIDs. Formularios de terceros que no propagan hidden fields, APIs del CRM que cortan caracteres porque el campo custom está declarado como VARCHAR(50) (los GCLID suelen ser de 90-120 caracteres), workflows de deduplicación que borran el campo al re-crear un contacto existente. En una de cada tres auditorías, el GCLID llega a la URL correctamente pero no está en la ficha del CRM porque algo lo corta por el camino.

¿Quieres saber cuál de los 3 está rompiendo el tuyo?

En una auditoría gratuita de 30 minutos te decimos qué porcentaje de tus clics de Google Ads están llegando a tu CRM con GCLID y cuál de los tres puntos lo está rompiendo. Es la base para cualquier mejora posterior en Smart Bidding o conversiones offline.

Diagnosticar mi pipeline → WhatsApp

Capturarlo bien (y todo lo que el snippet no cubre)

Asumiendo que el GCLID llega a tu landing, el siguiente paso es capturarlo y persistirlo para que sobreviva a recargas y navegación interna. El snippet mínimo, pensado para Google Tag Manager como Custom HTML con trigger All Pages y prioridad alta, cabe en 12 líneas:

<script>
(function(){
  try {
    var params = new URLSearchParams(window.location.search);
    var keys = ['gclid', 'fbclid', 'ttclid', 'msclkid',
                'utm_source', 'utm_medium', 'utm_campaign',
                'utm_content', 'utm_term'];
    keys.forEach(function(k){
      var v = params.get(k);
      if (v) localStorage.setItem('wt_' + k, v);
    });
  } catch(e) { /* silent fail */ }
})();
</script>

Esto funciona en el caso feliz. Lo que no cubre es todo lo interesante que ya mencionamos arriba: Safari con ITP, incógnito, SPAs, iframes cross-origin, cookie banners, multi-tab. En producción, el snippet que acabamos usando tiene entre 40 y 80 líneas para manejar esos casos y no romperse cuando aparece el usuario del borde que nadie había previsto.

La diferencia entre "funciona en mi máquina" y "funciona con tráfico real" son esas 60 líneas, más un sistema de logging que avise cuando la tasa de captura cae. Si nunca vuelves a mirar los logs después de la primera semana, no te vas a enterar cuando tres meses después una actualización del navegador Safari rompa algo.

El viaje del GCLID hasta el CRM

Una vez el GCLID está en localStorage, empieza el viaje de verdad. El objetivo es que llegue a la ficha del contacto en tu CRM, vinculado al lead. Los patrones según el tipo de conversión:

Formulario nativo en la propia web

El clásico. Un hidden input en el form, un script que lo rellena desde localStorage antes del submit, y tu backend lo guarda en el campo correspondiente del CRM. Cinco líneas en el frontend, otras cinco en el backend. Funciona el 95 % del tiempo. El 5 % que falla suele ser por timing (el script intenta leer localStorage antes de que esté listo, sobre todo en navegadores lentos) o por validación JS del form que borra el input si no cumple un patrón.

Formulario de terceros (Typeform, Calendly, Bitrix)

Cada plataforma tiene su propio sistema para pasar hidden fields. Typeform permite declararlos en el editor y los recibe vía query string. Calendly acepta ?utm_* pero no es consistente con otros parámetros. Bitrix24 a veces permite campos custom, a veces necesita configuración adicional del formulario. Ninguno es trivial y cada uno tiene sus gotchas propios. Para un cliente que usaba tres tipos de formulario distintos en la misma landing, las tres integraciones nos llevaron una semana de trabajo combinado.

Clic en WhatsApp o en llamada

Ninguno de los dos canales permite llevar el GCLID de forma natural. La llamada llega al call center sin pista del anuncio que la originó. El WhatsApp llega con el texto del mensaje pero sin metadata. La solución pasa por interceptar el clic antes de que el usuario abra el teléfono o el WhatsApp, e inyectar un código de referencia único que podamos cruzar después con el mensaje entrante o la llamada entrante. Es una técnica que da para un post entero, la cubrimos en la página de servicio de Click-to-WhatsApp.

CRMs grandes (HubSpot, Salesforce, Pipedrive)

Los CRMs modernos tienen campos custom pensados para esto. En HubSpot se llama hs_google_click_id (automático si usas su script de tracking); en Salesforce hay que crear un campo custom tipo texto, típicamente GCLID__c; en Pipedrive lo mismo. Configurarlos es simple pero hay que vigilar dos cosas: que la longitud del campo sea suficiente (mínimo 150 caracteres para no truncar GCLIDs largos) y que los workflows de deduplicación no pisen el campo cuando un mismo lead vuelve a dar datos.

Los 5 síntomas de que tu GCLID está roto sin que lo sepas

Sin ver tu cuenta, estos son los indicadores más claros. Si llevas semanas con alguno, probablemente el pipeline de GCLID tiene un agujero:

SíntomaQué suele significar
Muchos leads en CRM con el campo GCLID vacío cuando sí venían de Google Ads Se pierde entre la captura en landing y el guardado en CRM. Típicamente iframe, SPA o form de terceros.
Enhanced Conversions for Leads con match rate bajo (<40 %) El fallback funciona a medias, lo que confirma que la primera línea (GCLID) está rota en muchos casos.
Las campañas Brand tienen CPL parecido al de las genéricas Smart Bidding no distingue calidad de clic porque casi no recibe señal real. Señal de GCLID perdido masivamente.
Smart Bidding "no aprende" aunque haya volumen suficiente Estás subiendo conversiones offline pero con un ratio GCLID/lead bajo. Google tiene señal pero es ruidosa.
El CPA real (al final del embudo) diverge mucho del CPL que ves en Google Ads Las ventas se cierran pero no vuelven atribuidas a campaña. O bien no subes conversiones offline, o bien subes pero perdiste el GCLID en el camino.

¿Alguno de estos te suena a tu cuenta?

Si llevas meses con la sensación de que Smart Bidding no termina de converger o que el ROI real no cuadra con lo que Google reporta, probablemente tu GCLID se está perdiendo en algún eslabón. Lo diagnosticamos en 30 minutos y te decimos el porcentaje de captura real de tu cuenta.

Quiero la auditoría →

El mapa de troubleshooting

Cuando un cliente nos dice "creo que el GCLID se está perdiendo", el orden en el que miramos las cosas es siempre el mismo. No garantiza que encontremos el problema pero sí que lo encontramos en la primera mitad de los casos sin tener que pelearnos con toda la stack:

  1. Confirmar auto-tagging. Google Ads → Configuración → Seguimiento → Etiquetado automático. Si está apagado, ahí está buena parte del problema y es un switch.
  2. Hacer un clic real en un anuncio desde incógnito, copiar la URL de destino tras el redirect, verificar que contiene ?gclid=.... Si no lo contiene, el problema está antes de la landing.
  3. Mirar la consola del navegador en la landing. localStorage.getItem('wt_gclid') debería devolverlo. Si está null, es el script de captura o un bloqueador del lado del browser.
  4. Rellenar un formulario de prueba y comprobar en el CRM si el campo GCLID está relleno. Si falla aquí, es la propagación.
  5. Revisar la longitud del campo GCLID en el CRM. Si está truncado a 50 caracteres, ahí está el bug. Los GCLIDs reales pasan de 90.

Cada uno de esos pasos tiene variantes según el stack del cliente (qué CMS, qué CRM, qué tipo de formulario, si hay iframe, si hay cookie banner, qué versión de GTM). En las cuentas complejas puede hacer falta un rato de trabajo extra; en las sencillas lo resolvemos en la primera sesión.

Preguntas frecuentes

¿Qué es el GCLID en Google Ads?

Es el identificador único del clic que Google añade automáticamente a la URL de tu landing cuando alguien pulsa un anuncio. Cadena tipo Cj0KCQjw... que solo Google puede descifrar, pero que permite re-atribuir ventas offline al clic original si tú lo conservas y lo devuelves a Google con la venta.

¿Caducan los GCLID?

Sí. Tienen una ventana de atribución de 90 días desde el clic. Si intentas subir una venta con un GCLID más antiguo, Google rechaza la conversión con CLICK_TOO_OLD. Para ciclos largos conviene subir estados intermedios dentro de la ventana.

¿Son únicos los GCLID o se repiten?

Son únicos por clic. Un mismo usuario que hace dos clics genera dos GCLIDs. Si tu CRM sobrescribe el GCLID cada vez que el mismo usuario vuelve, pierdes atribución. Guarda histórico, no un único campo.

¿Puedo recuperar GCLIDs perdidos?

No directamente. Pero Enhanced Conversions for Leads cubre un 10-30 % de las ventas cuyo GCLID se perdió, subiendo email o teléfono hasheado y dejando que Google haga el match. No sustituye al GCLID, lo complementa.

¿Qué diferencia hay entre GCLID y GBRAID/WBRAID?

GCLID es el identificador estándar. GBRAID y WBRAID son sus equivalentes para iOS sin consentimiento ATT y para web con restricciones de cookies. En la práctica, capturar GCLID cubre el 90 % de los casos y es la primera prioridad. GBRAID/WBRAID son para afinar en cuentas con peso iOS alto.

¿Necesito GCLID si ya tengo el píxel de Google activo?

Sí, son cosas distintas. El píxel mide conversiones que ocurren en la web (un submit de formulario, un thank you page). El GCLID es lo que te permite medir conversiones que ocurren fuera de la web (una venta por teléfono, una firma semanas después). Sin GCLID, todo lo que pase fuera de la web es invisible para Google Ads.

Auditoría gratuita de tu pipeline de GCLID

Medimos la tasa de captura real de tu cuenta (qué porcentaje de tus clics llega a tu CRM con GCLID), identificamos en cuál de los tres puntos se está rompiendo, y te damos un plan concreto de arreglo. 30 minutos, sin compromiso, con datos específicos de tu cuenta.

Agendar auditoría → WhatsApp →
David Pérez, Founder de VIDIKA MarTech Agency

David Pérez

Founder & CEO · VIDIKA MarTech Agency

Construyo pipelines de atribución end-to-end desde 2015. Fundador de WinTracker, plataforma de atribución y subida de conversiones offline que hoy procesa más de 100.000 leads al mes para operadores ISP en España, Perú y Ecuador.

Sigue leyendo