Gravity Forms no rastrea parámetros UTM de forma nativa porque es un plugin de formularios, no un sistema de tracking (spoiler: eso genera confusión). Requiere configuración manual de campos ocultos con «población dinámica», complementos especializados como Attributer o UTM Tracker, o integración con Google Tag Manager para capturar y guardar automáticamente datos de atribución. Sin estos pasos, los leads llegan a tu CRM sin saber de qué campaña vinieron, lo que te deja a ciegas para optimizar presupuesto de marketing.
En 30 segundos
- Gravity Forms no captura automáticamente parámetros UTM ni datos de fuente de tráfico desde la URL
- Requiere usar campos ocultos con «Allow field to be populated dynamically» activado en Advanced settings
- Plugins como Attributer, UTM Tracker o AFL UTM Tracker automatizan este proceso con cookies de 90 días
- La integración con Google Tag Manager y Google Analytics 4 es la opción más robusta para tracking confiable
- El bloqueo de cookies del navegador, modo incógnito y configuración incorrecta de field IDs impiden que el seguimiento funcione
Qué es la atribución de conversiones en formularios
Atribución es simplemente: saber de dónde vino el usuario que completó tu formulario. Parámetros UTM (utm_source, utm_medium, utm_campaign, utm_term, utm_content) se agregan a la URL de tu anuncio. Si alguien hace clic en «mi-blog.com/?utm_source=google&utm_medium=ads&utm_campaign=seguridad», ese dato debería guardarse cuando llena el formulario. Sin esto, tu CRM recibe el lead pero no sabe si vino de Google Ads, Reddit, un email segmentado o una publicación orgánica.
Para equipos de marketing, esto es crítico. Necesitás saber qué canal o campaña trae usuarios de mejor calidad, qué presupuesto vale la pena mantener, dónde estás tirando plata sin retorno.
Por qué Gravity Forms no rastrea atribución de forma nativa
Gravity Forms es un constructor de formularios. Punto. No fue diseñado para ser un sistema de tracking. El plugin genera los campos HTML, valida datos, y los envía vía email o a través de webhooks. La URL con parámetros UTM llega al navegador, pero Gravity Forms no lee automáticamente esos parámetros ni los guarda en ningún lado.
Es como si una heladera supiera que pusiste algo adentro pero no anotara qué fue. Funciona, pero no rastrea.
Eso significa que vos tenés que hacer el trabajo: configurar campos Hidden, activar una opción de «población dinámica», o instalar un add-on que lo haga por vos.
Problemas más comunes que impiden el seguimiento
Bloqueo de cookies del navegador
Este es el culpable #1. Los plugins de tracking (Attributer, UTM Tracker) guardan parámetros en cookies. Pero si el usuario está en modo incógnito, tiene bloqueadas las cookies de terceros, o usa un navegador muy restrictivo (Safari por defecto, Firefox Strict), la cookie no se guarda. El formulario recibe «undefined» en el campo que debería tener utm_source. Y vos no podés hacer mucho.
GTM se dispara antes de que jQuery cargue
Google Tag Manager intenta llenar campos de Gravity Forms antes de que jQuery esté disponible. Resultado: errores de JavaScript, variables undefined, scripts que no ejecutan. Necesitás esperar a que el DOM esté listo y jQuery esté disponible antes de que GTM dispare. Eso requiere triggers correctos en GTM.
Field IDs incorrectos
Si configurás un campo Hidden con ID 5 pero en GTM referenciás el ID 7, o si el nombre del parámetro no coincide exactamente (mayúsculas, guiones vs guiones bajos), los datos nunca se guardan. Es un detalle tonto pero pasa constantemente.
«Allow dynamic population» no está activado
En Advanced settings de un campo Hidden, hay una opción que dice «Allow this field to be populated dynamically». Si no la activás, Gravity Forms ignora los parámetros de URL. Sin esa casilla, nada funciona.
Método nativo: campos ocultos con población dinámica
Este es el enfoque que menos cuesta pero requiere trabajo manual. Paso a paso:
1. Abrí el formulario en Gravity Forms → New Field → Hidden. 2. En Advanced, activá «Allow this field to be populated dynamically». 3. En el campo «Parameter Name», escribí exactamente el parámetro UTM que querés capturar: «utm_source», «utm_medium», «utm_campaign», «utm_term», o «utm_content». 4. Repetí esto para cada parámetro que necesites. 5. Publicá el formulario.
Ahora, si alguien llega a «mi-blog.com/contacto/?utm_source=google&utm_campaign=seguridad», esos valores se llenan automáticamente en tus campos Hidden. Cuando envía, el email o webhook tiene esos datos. Esto se conecta con lo que analizamos en automatizar procesos de formularios WordPress.
El problema: solo funciona si Gravity Forms está en la misma página que el formulario. Si el usuario llega a una página, hace clic en «Contacto», y la página destino carga el formulario via AJAX o redirige, los parámetros se pierden.
Plugins especializados para tracking de atribución
Hay tres opciones que valen la pena. Cada una tiene un enfoque diferente.
| Plugin | Cómo funciona | Duración de cookie | Pros | Contras |
|---|---|---|---|---|
| Attributer | Guarda parámetros en cookies. Categoriza automáticamente canales (Direct, Organic, Paid, Social, Referral). | 90 días | Inteligencia extra (categorización automática), integración con HubSpot, precio accesible | Cookie de 90 días puede ser limitado si el ciclo de venta es largo |
| UTM Tracker for Gravity Forms | Plugin de WordPress simple que captura y guarda parámetros en sesión/cookie | 90 días | Dedicado solo a Gravity Forms, configuración mínima | No hace categorización, funcionalidad básica |
| AFL UTM Tracker | Integración automática con Gravity Forms. Captura en URL directamente sin cookies (más robusto) | N/A (usa URL parameters) | No depende de cookies, funciona en modo incógnito, integración automática | Requiere configuración API para algunas funcionalidades |

Attributer es probablemente la opción más popular porque categoriza canales automáticamente. Si tu campaña es «Gooogle Ads» con typo, Attributer igualmente la clasifica como «Paid». AFL UTM Tracker es más robusto si tus usuarios usan incógnito o bloqueadores de cookies agresivos.
Integración con Google Analytics 4 y Google Tag Manager
Esta es la opción «correcta» si querés tracking serio. Subís, lo probás en local, funciona bárbaro, lo mandás a producción y la mitad de los eventos no llegan a GA4 porque jQuery no cargó, las variables son undefined, o GTM se dispara antes de tiempo. Dicho esto, es posible.
Configuración básica: 1. En Google Tag Manager, creá un trigger que se dispare cuando el formulario se completa. Hay que estar atentos: «Form Submit» debe esperar a que jQuery y Gravity Forms estén listos. 2. Creá una variable que lea los campos Hidden del formulario (Custom JavaScript). 3. Dispará un evento «form_submission» a Google Analytics 4 con los parámetros capturados (utm_source, utm_medium, utm_campaign, etc.). 4. En GA4, ese evento pasa como evento de conversión con los datos de atribución adjuntos.
Gravity Forms tiene un add-on oficial para Google Analytics. Integrá el tracking_id y listo. Pero ese add-on básicamente hace lo de arriba, pero lo hace Gravity Forms en lugar de vos en GTM.
La ventaja de GA4: tenés un dashboard de conversión por fuente. Conversión_value es un campo que Gravity Forms puede setear (precio, valor estimado). Así ves no solo cuántos leads vinieron de cada canal, sino el valor estimado de esos leads.
Debugging y solución de problemas de tracking fallido
¿Formulario completo pero los parámetros no se guardaron? Acá está cómo investigar:
Paso 1: Verificá cookies. Abrí Chrome DevTools → Application → Cookies. Buscá las cookies que el tracking plugin debería haber creado (Attributer usa «attributer_data», UTM Tracker usa variantes). Si no están ahí, las cookies están bloqueadas o el plugin no se cargó.
Paso 2: Inspecciona Network. Recargá la página, abrí Network tab, filtrá por XHR. Cuando llenes el formulario, buscá llamadas a Google Analytics o el servidor de Attributer. ¿Falta la llamada? GTM no se disparó. ¿Está pero sin parámetros? Las variables no se leyeron correctamente.
Paso 3: Verificá jQuery. En Console, escribí `jQuery.fn.jquery`. Si dice «undefined», jQuery no cargó cuando GTM intentó ejecutar. Necesitás retrasar el trigger de GTM o forzar jQuery antes.
Paso 4: Limpiar caché. A veces el navegador cacheó una versión vieja de Gravity Forms sin el campo Hidden actualizado. Ctrl+Shift+Delete, limpiá cache y cookies, y probá de nuevo.
Mejores prácticas para garantizar atribución confiable
Si querés que funcione, acordate de esto:
HTTPS + SameSite cookies. Las cookies necesitan SameSite=Lax o Strict. Si estás en HTTP (no recomendado), muchos navegadores no guardan cookies cross-domain. Forzá HTTPS. Sobre eso hablamos en características esenciales de plugins WordPress.
No dependas solo de cookies. Algunos usuarios (8-15% según estudios) navegan en modo incógnito. Las cookies no persisten. Si es crítico, usá URL parameters como alternativa (AFL UTM Tracker hace esto).
Documentá field IDs. En una hoja, anotá exactamente qué field ID corresponde a qué parámetro. Cuando el formulario cambié, actualizá esa hoja.
Usá un plugin reconocido. Attributer y AFL UTM Tracker tienen soporte activo y updates. Un plugin abandonado de hace 5 años puede no ser compatible con la versión actual de Gravity Forms.
Testea antes de publicar. En staging o local, recorre el funnel completo: clickeá un anuncio ficticio (o manualmente agregá ?utm_source=test a la URL), completá el formulario, verificá en logs que el tracking llegó.
Monitoreá «undefined». Si ves valores «undefined» en tu CRM o Google Forms (en lugar del parámetro real), hay un problema: cookie bloqueada, field ID incorrecto, o la página no tiene los parámetros originales. Investigá inmediatamente.
Errores comunes
Confundir «población dinámica» con «población predefinida»
Hay dos opciones en campos Hidden: «Populate dynamically» (desde URL) y «Populate automatically» (desde WordPress). Mucha gente confunde estas. Necesitás «dynamically». Sin esa opción, nada funciona.
Asumir que si el parámetro viene en la URL, el formulario lo captura
Falso. El parámetro tiene que estar en la URL de la página DONDE ESTÁ el formulario. Si el usuario llega a /contacto?utm_source=google, pero luego hace clic en un link interno que no preserva los parámetros, se pierden. O si el formulario se carga vía modal sin mantener la URL original, adiós parámetros.
Testear sin vaciador de caché
Si instalás Attributer, actualizás la configuración, pero no limpias el caché del navegador, seguirás viendo la versión vieja. Siempre: Ctrl+Shift+Delete después de cambios.
Qué está confirmado / Qué sigue en investigación
Confirmado
Gravity Forms permite campos Hidden con población dinámica. Esto es función nativa desde hace años. Attributer y AFL UTM Tracker tienen integraciones activas con Gravity Forms (2025-2026). Google Analytics 4 sigue siendo el estándar de facto para atribución en web.
Pendiente
Los tiempos de persistencia de cookies exactos según navegador y versión pueden variar. Algunos fabricantes cambian políticas SameSite cada trimestre. Los add-ons de Gravity Forms para GA4 se actualizan constantemente; lo que funciona hoy en una versión puede no funcionar en la próxima sin configuración adicional. La mejor práctica es testear en tu sitio específico, no asumir que «si funciona en el tutorial, funciona en el mío».
Preguntas Frecuentes
¿Por qué Gravity Forms no rastrea la atribución de mis leads?
Porque Gravity Forms es un constructor de formularios, no un sistema de tracking. No lee parámetros UTM de forma automática. Necesitás configurar campos Hidden con «Allow dynamic population», instalar un plugin especializado (Attributer, UTM Tracker), o integrar Google Tag Manager. Sin uno de estos, los parámetros llegan al navegador del usuario pero Gravity Forms no los captura.
¿Cómo capturar parámetros UTM en un formulario Gravity Forms?
Método 1 (nativo): Crear un campo Hidden, activar «Allow field to be populated dynamically», y escribir el nombre exacto del parámetro («utm_source», «utm_medium», etc.) en «Parameter Name». Método 2 (automático): Instalar Attributer o AFL UTM Tracker y dejar que el plugin lo haga automáticamente con cookies. Método 3 (robusto): Integrar Google Tag Manager para capturar parámetros y enviar a Google Analytics 4.
¿Qué plugin usar para tracking de atribución con Gravity Forms?
Attributer es la opción más popular porque categoriza canales automáticamente y tiene integración con HubSpot. AFL UTM Tracker es más robusto para usuarios con cookies bloqueadas. UTM Tracker for Gravity Forms es la opción más simple si solo necesitás capturar parámetros sin funcionalidad extra.
¿Cómo enviar datos de Gravity Forms a Google Analytics automáticamente?
Usa el add-on oficial de Gravity Forms para Google Analytics. Configurá tu Google Analytics 4 Property ID y tracking ID. O usa Google Tag Manager: crea un trigger para «Form Submit», una variable que lea los campos del formulario, y dispara un evento a GA4 con los parámetros de atribución (utm_source, utm_medium, etc.) adjuntos.
¿Por qué fallan los cookies en Gravity Forms cuando activo tracking?
Porque los navegadores modernos bloquean cookies de terceros por defecto (Chrome, Safari, Firefox Strict). Los usuarios en modo incógnito no permiten cookies persistentes. Si tu sitio no usa HTTPS, las cookies pueden no guardarse. Y si configurás SameSite incorrectamente, las cookies no persisten entre páginas. Verificá en DevTools → Application → Cookies que las cookies se crean y persisten después de completar el formulario.
Conclusión
Gravity Forms no rastrea atribución de forma nativa. Es un constructor de formularios, no un tracker. Pero hay tres formas claras de arreglarlo: configurar campos Hidden manualmente (lo más barato, lo más frágil), usar un plugin especializado como Attributer o AFL UTM Tracker (lo más práctico), o integrar Google Tag Manager y Google Analytics 4 (lo más confiable). Elige según tu caso de uso, testea en staging, y monitoreá que los datos lleguen a tu CRM o GA4. Si ves «undefined» en los parámetros, investigá cookies bloqueadas, field IDs incorrectos o parámetros perdidos en redirects. No dejes que tu presupuesto de marketing se pierda porque no sabés de dónde vinieron tus leads.
Fuentes
- Gravity Forms – Track UTM Parameters in Gravity Forms
- Attributer – Capture UTM Parameters in Gravity Forms
- AFL UTM Tracker – Setup Conversion Attribution for Gravity Forms
- LeoMeasure – Gravity Form Tracking with Google Tag Manager
- Pilot Digital – How to Track Source Campaign and Other Data in Hidden Fields