Para muchas agencias, profesionales del marketing y desarrolladores web, existe un dolor de cabeza constante a la hora de reportar resultados a sus clientes B2B o que buscan clientes potenciales: la discrepancia entre los leads que marca Google Analytics 4 (GA4) y los correos que realmente llegan a la bandeja de entrada. Si tus informes muestran decenas de conversiones, pero tu cliente afirma no haber recibido esos contactos (o al revés), tu configuración de analítica tiene un problema estructural grave.
- Un enfoque para profesionales
- El error de medir clics en el botón de «Enviar»
- La solución profesional: Escuchar al DOM (Document Object Model)
- Arquitectura de datos segura: Evitando PII y alta cardinalidad
- Implementación técnica paso a paso con GTM y GA4
- Cómo extraer valores específicos del formulario
- Casos particulares y problemas potenciales
- ¿Qué hacer con estos datos en GA4?
- Paso a paso en vídeo
- Bonus track: Cómo crear un embudo de abandono midiendo la interacción por campo
- Estandariza la analítica en tu agencia
En la mayoría de los casos, este desfase se debe a que la medición de formularios se ha implementado utilizando métodos estándar o básicos de Google Tag Manager (GTM) que resultan imprecisos.
A menudo, las configuraciones de analítica intentan adivinar cuándo se ha enviado un formulario simplemente rastreando los clics en el botón de «Enviar», lo que es una práctica totalmente desaconsejada en el seguimiento de formularios. Como regla general en la analítica avanzada, medir el clic es medir la intención del usuario, no la conversión real.
Esta dependencia de activadores inadecuados es la receta perfecta para generar datos poco fiables. Por un lado, sobrecontabilizas envíos (falsos positivos) porque un clic en el botón no asegura que el formulario haya superado las validaciones, ni asegura que el servidor de correo haya respondido correctamente. Por otro lado, puedes llegar a infracontabilizar envíos reales si el usuario decide mandar el formulario pulsando la tecla «Enter» o si este se envía mediante JavaScript, acciones que el activador de clic tradicional es incapaz de detectar.
El hosting para los desarrolladores más exigentes
Hosting con funcionalidades avanzadas para un control y rendimiento total de tus proyectos.
Un enfoque para profesionales
Para elevar el nivel técnico de tu medición y garantizar una precisión absoluta a tus clientes, es imperativo abandonar estas prácticas obsoletas. La solución definitiva pasa por adoptar una arquitectura de datos moderna basada en el Document Object Model (DOM).
En lugar de rastrear interacciones superficiales en la interfaz, implementaremos un auto-event listener (un escuchador automático de eventos) en GTM. Este listener personalizado es la llave maestra que se encarga de escuchar las señales nativas (eventos del DOM) que el propio plugin de formularios despacha hacia el navegador web de forma automática.
Al detectar la señal exacta de éxito (o de fallo), este código empuja información limpia y estructurada directamente a la capa de datos (Data Layer), creando un evento preciso que desbloquea un seguimiento verdaderamente robusto en GTM, sin margen de error.
Para el caso de esta entrada usaremos Contact Form 7 como sistema de formularios. Los que me seguís desde hace tiempo ya sabéis que es uno de mis preferidos por su ligereza, sencillez, posibilidades… ¡Y precio!
El error de medir clics en el botón de «Enviar»
Si alguna vez has buscado tutoriales sobre cómo medir formularios, es muy probable que te hayas topado con guías que sugieren usar el activador de clics (Click Trigger) de Google Tag Manager sobre el botón de envío. Para un profesional de la analítica, esto es un rotundo «NO».
Depender de los clics para medir conversiones es técnicamente una señal deficiente que contamina tus informes con datos poco fiables. Veamos exactamente por qué esta práctica destruye la precisión de tu medición:
- Falsos positivos (sobrecontabilización): Que un usuario haga clic en el botón «Enviar» no asegura en absoluto que el formulario haya superado las validaciones de los campos obligatorios. Tampoco garantiza que el servidor (backend) haya respondido correctamente ni que no se haya producido un error de red. Si configuras tu etiqueta basándote en el clic, GTM enviará una conversión a GA4 cada vez que alguien pulse el botón, incluso si el formulario devolvió un error en rojo pidiendo que se introduzca un email válido.
- Falsos negativos (infracontabilización): Los usuarios no siempre hacen clic con el ratón. Un formulario puede enviarse perfectamente pulsando la tecla «Enter» en el teclado o ejecutándose a través de JavaScript. El activador de clic de GTM es completamente ciego ante estas acciones, lo que significa que perderás conversiones legítimas.
- Problemas con arquitecturas modernas: En sitios web actuales (especialmente en Single Page Applications o SPAs), el comportamiento por defecto del botón puede estar interceptado o cancelado por JavaScript (mediante
preventDefault()). GTM registrará el clic, pero la acción real nunca llegará a procesarse.
El concepto clave que todo analista debe grabar a fuego es este: medir el clic es medir la intención del usuario, no la conversión real. La unidad de medida correcta debe ser siempre la confirmación de éxito del envío.
La solución profesional: Escuchar al DOM (Document Object Model)
Para dejar de adivinar y empezar a medir con precisión quirúrgica, necesitamos comunicarnos directamente con la estructura de la página web, conocida como DOM (Document Object Model).
Cuando un usuario interactúa con Contact Form 7 y el formulario se procesa mediante AJAX (sin recargar la página), el plugin emite una serie de señales nativas llamadas «eventos del DOM». Piensa en estos eventos como si el formulario lanzara una señal para anunciarle al navegador: «¡Oye, acabo de detectar un error de validación!» o «¡El correo se ha enviado con éxito!».
En su documentación oficial, los desarrolladores de CF7 exponen varios de estos eventos. Para construir una analítica robusta, nosotros nos centraremos en tres fundamentales:
- wpcf7mailsent: Se dispara cuando el envío AJAX se completa con éxito y el correo electrónico realmente se ha enviado. Este es nuestro Santo Grial para medir conversiones (leads) reales.
- wpcf7invalid: Se dispara cuando el envío se completa, pero el correo no se envía porque hay campos con información no válida. Ideal para medir fricciones y optimizar la UX del formulario.
- wpcf7mailfailed: Se dispara cuando el envío se completa, pero el sistema falla al intentar enviar el correo (generalmente problemas de configuración del servidor).
Script «Auto-Event Listener»
Sabiendo esto, la magia ocurre al implementar un fragmento de código personalizado (Custom HTML) en GTM que actúe como un Auto-Event Listener. Este código se mantiene a la espera, escuchando silenciosamente la página hasta que detecta que uno de esos eventos exactos (como wpcf7mailsent) ha ocurrido.
En el momento en que detecta la señal de éxito, el listener entra en acción y empuja datos estructurados hacia la Capa de Datos (Data Layer). Este empuje (push) incluye el nombre del evento personalizado (por ejemplo, cf7submission), el ID del formulario (formId) para saber exactamente qué formulario convirtió y un array (la respuesta) con los valores de todos los campos rellenados.
<script>// 1. Evento de éxito (el correo se ha enviado correctamente)document.addEventListener( 'wpcf7mailsent', function( event ) { window.dataLayer.push({ "event" : "cf7submission", "formId" : event.detail.contactFormId, "response" : event.detail.inputs })}); // 2. Evento de validación (campos con información no válida)document.addEventListener( 'wpcf7invalid', function( event ) { window.dataLayer.push({ "event" : "cf7invalid", "formId" : event.detail.contactFormId, "response" : event.detail.inputs })}); // 3. Evento de fallo de envío (error al enviar el correo desde el servidor)document.addEventListener( 'wpcf7mailfailed', function( event ) { window.dataLayer.push({ "event" : "cf7mailfailed", "formId" : event.detail.contactFormId, "response" : event.detail.inputs })}); </script>
Esta técnica desbloquea el seguimiento de formularios cuando los métodos estándar de GTM fallan, permitiéndonos crear disparadores basados en señales de éxito garantizadas en lugar de clics vacíos.
No te asustes por el código si se te hace bola. Enseguida verás que es muy sencillo de implementar gracias a Google Tag Manager.

Arquitectura de datos segura: Evitando PII y alta cardinalidad
Antes de enviar los datos capturados a Google Analytics 4 (GA4), es crucial entender qué información debemos enviar y cuál debemos descartar. Aunque nuestro listener es capaz de capturar todos los campos que el usuario rellena, enviarlos a ciegas hacia GA4 es un riesgo legal y técnico.
Los términos de servicio de Google prohíben estrictamente enviar cualquier dato a sus servidores que pueda identificar de forma personal a un individuo, lo que se conoce como Personally Identifiable Information (PII). Esto incluye nombres, correos electrónicos, números de teléfono y direcciones.
El error común de muchas agencias es intentar capturar campos de texto libre, como el Asunto o el Mensaje del formulario. Hacerlo es sumamente arriesgado porque un usuario podría escribir su nombre, DNI o email directamente en esos campos, provocando que tu cliente infrinja las políticas de privacidad de Google, lo que puede resultar en la eliminación de los datos de la cuenta.
Por otra parte, y desde el punto de vista técnico, enviar campos de texto libre genera un problema analítico conocido como alta cardinalidad. La cardinalidad se refiere al número de valores únicos que posee una dimensión.
Un parámetro como el identificador del formulario (form_id) tiene una cardinalidad baja, ya que solo tomará unos pocos valores fijos (por ejemplo, el ID «9», «15» o «27»). Sin embargo, un campo de Asunto tendrá una cardinalidad extremadamente alta porque cada usuario escribirá un texto diferente. Cuando esto ocurre, GA4 agrupa los valores menos comunes en una fila genérica etiquetada como «(other)» u «(otros)», arruinando por completo la utilidad de tus informes.
Así que la mejor práctica posible es limitarte a enviar parámetros seguros y estructurales, como el form_id, o valores predefinidos que el usuario haya seleccionado desde un menú desplegable.
Implementación técnica paso a paso con GTM y GA4
Ahora que entendemos la teoría y tenemos una arquitectura de datos segura, vamos a ejecutar la implementación técnica conectando nuestro listener con Google Analytics 4 a través de Tag Manager.
Paso 1: Inyectar el listener (Custom HTML)
- En GTM, crea una nueva etiqueta de tipo HTML Personalizado.
- Pega el script de JavaScript del Auto-Event Listener que vimos en la sección anterior.
- Asigna como activador All Pages (Todas las páginas). Es vital que el listener se dispare en todas las páginas (o al menos donde haya formularios) antes de que el usuario interactúe. Nunca le asignes un activador condicionado al envío del formulario, porque el listener debe estar escuchando activamente desde que la página carga.

Paso 2: Capturar el ID del formulario (Data Layer Variable)
Para diferenciar qué formulario específico ha convertido, necesitamos extraer el identificador de la capa de datos.
- Ve a la sección de Variables y crea una nueva del tipo Variable de Capa de Datos (Data Layer Variable).
- En el campo «Nombre de la variable de capa de datos», escribe exactamente formId. Importante: Este valor distingue entre mayúsculas y minúsculas (case-sensitive). Si escribes «formid» o «formID», la variable devolverá un valor indefinido y fallará.
- Guárdala con un nombre descriptivo, como
dlv - formId.

Paso 3: Creación del activador (Custom Event Trigger)
Vamos a decirle a GTM en qué momento exacto debe disparar la conversión a GA4.
- Crea un nuevo «activador» de tipo Evento Personalizado.
- En el nombre del evento, escribe cf7submission (o el nombre exacto que le pusiste en el script al evento de éxito
wpcf7mailsent). - Configúralo para que se dispare en «Todos los eventos personalizados» y guárdalo.

Paso 4: Configurar la etiqueta de GA4 y sus parámetros
- Crea una nueva etiqueta de tipo Google Analytics: Evento de GA4.
- Introduce tu ID de medición de GA4.
- En el nombre del evento, usa la nomenclatura recomendada de Google: generate_lead o
form_submission, si prefieres usar una personalizada, por ejemplo. - Despliega la sección de Parámetros del evento y añade una fila.
- Como Nombre del parámetro escribe form_id y como Valor selecciona la variable que creaste en el Paso 2 (
{{dlv - formId}}). - Asigna a esta etiqueta el activador
cf7submissionque creaste en el paso anterior.

De momento, no te preocupes por el resto de parámetros de la captura (profile y news). Más adelante veremos su utilidad.
Por si te preguntas si debes usar generate_lead o definir un evento personalizado a la hora de enviar el dato a GA4, estate tranquilo porque ambos caminos son igualmente válidos:
- Usar generate_lead (recomendado por Google): Unifica todos tus formularios bajo un mismo evento estándar. Para saber exactamente cuál se envió, deberás filtrar en tus informes usando el parámetro
form_id. - Usar un evento personalizado (ej. contacto_web): Te permitirá crear un nombre propio para cada formulario. Es ideal si prefieres ver cada formulario por separado a simple vista en tus informes principales, sin necesidad de aplicar filtros adicionales.
Elijas el método que elijas, ambos funcionarán perfectamente y cualquiera de los dos puede marcarse como un «Evento Clave» (Conversión) desde la administración de GA4.
En mi modus operandi habitual, y para casos B2B donde la conversión principal es la captación de leads, siempre uso el generate_lead. Si no, suelo crear un evento custom.
Para el resto de eventos, los de errores, el proceso es prácticamente idéntico. Por ejemplo, invalid_form puede ser una buena forma de hacer un seguimiento de la cantidad de veces que los usuarios se dejan algún campo obligatorio sin completar. Esto puede ser una señal de una experiencia de usuario pobre o de que hay cierta dificultad para que entiendan la naturaleza de un campo del formulario.
El activador será el evento cf7invalid detectado en la capa de datos.

Para ver después en GA4 los resultados de este y otros eventos relacionados, simplemente necesitamos llamarlos desde una Exploración de GA4 (o verlos en los informes predefinidos de Interacciones).

Se busca AGENCIA con visión de futuro
Desbloquea beneficios únicos y haz crecer tu negocio con el mejor respaldo.
Paso 5: Registro de dimensiones personalizadas en GA4
Este es el paso que el 90% de los principiantes olvida. Aunque GTM esté enviando el parámetro form_id, GA4 no lo mostrará en los informes estándar a menos que lo registres.
- Entra en el panel de administración de GA4.
- Ve a la sección Definiciones personalizadas (Custom Definitions).
- Haz clic en crear una nueva dimensión personalizada.
- Ponle un nombre identificativo (ej. «Form ID»), asegúrate de que el alcance (Scope) sea Evento, y en el parámetro del evento escribe exactamente form_id (tal cual lo mandaste desde GTM). Ten en cuenta que esta dimensión tardará entre 24 y 48 horas en empezar a poblar los informes de GA4.

Cómo extraer valores específicos del formulario
El listener que hemos inyectado en la página no solo identifica qué formulario se ha enviado, sino que también empuja al Data Layer un array de datos llamado response, que contiene todos los campos, nombres y valores que el usuario ha rellenado.
En ocasiones estratégicas, te interesará capturar el valor de un campo concreto para enviarlo a GA4 (por ejemplo, saber qué opción eligió el usuario en un menú desplegable de «Presupuesto estimado» o «Servicio de interés»).
Entiende el índice cero de JavaScript
Para extraer datos de un array en el Data Layer, primero debes saber que en JavaScript los índices no empiezan a contar desde el número 1, sino desde el 0. Si tu formulario tiene cuatro campos, el sistema los ordenará del 0 al 3:
- Primer campo = Índice 0
- Segundo campo = Índice 1
- Cuarto campo = Índice 3
Utiliza la notación de puntos en GTM
Para indicarle a Google Tag Manager exactamente en qué objeto estás interesado, debes definir la ruta usando la estructura de padre.índice.clave.
- Dirígete a GTM y crea una nueva variable de capa de datos.
- Si quieres extraer el valor introducido en el primer campo del formulario, escribe exactamente: response.0.value.
- Si necesitaras capturar la información del cuarto campo, el nombre de tu variable sería response.3.value.
NUNCA uses este método para capturar el valor de campos de texto libre (como el nombre, el email o el mensaje del usuario), ya que enviarás información personal identificable (PII) a GA4 e infringirás las políticas de Google, como he comentado más arriba. Utiliza esta técnica exclusivamente para campos cerrados (menús desplegables o botones de radio) de baja cardinalidad.
Si tienes múltiples formularios diferentes en tu web, ten cuidado. La variable response.0.value siempre extraerá el primer campo del formulario que se dispare. Si en tu Formulario A el primer campo es Servicio, pero en el Formulario B el primer campo es Nombre, tu variable empezará a mezclar datos y a recopilar información incorrecta dependiendo de qué formulario envíe el usuario. Asegúrate de usar esta técnica en formularios estandarizados.

En la captura que puedes ver aquí encima, yo uso el primer campo del formulario (un botón de radio donde el usuario se identifica como vendedor, comprador o anunciante) para alimentar una variable profile que me permite segmentar mis formularios.

Este mismo método te puede servir para hacer un seguimiento de los usuarios que han marcado una casilla de verificación para recibir envíos comerciales, por ejemplo.
Casos particulares y problemas potenciales
Incluso con una arquitectura de datos bien diseñada, en el día a día de una agencia web te encontrarás con configuraciones de clientes que presentan particularidades. Aquí tienes los errores más comunes y los casos límite técnicos para que sepas cómo depurarlos rápidamente:
El requisito del AJAX
El principal requisito para que este listener funcione es que el formulario de CF7 esté basado en la tecnología AJAX. Esto significa que, al enviar el formulario, el mensaje de éxito debe aparecer en la misma pantalla sin que la página se recargue. Si el formulario provoca una recarga completa de la página (page reload), la ejecución del script se interrumpirá y el evento nunca llegará a la capa de datos. Si detectas esto, deberás pedir a tu equipo de desarrollo que habilite el funcionamiento por defecto de AJAX en CF7.
Formularios multipaso y redirecciones
Si un formulario se divide en varias pantallas, ten en cuenta que el plugin de CF7 puede disparar eventos de envío exitoso tras completar cada uno de los pasos. Para evitar contabilizar un lead a la mitad del proceso, deberás inspeccionar cuál es el identificador del último paso y ajustar el activador en GTM para que solo salte cuando la variable coincida exactamente con ese form_id final.
Si el formulario está forzado mediante un script adicional a redirigir al usuario a una página de agradecimiento tras el envío (la clásica thank you page), el método del listener no funcionará de forma fiable. Para estos casos específicos, la solución técnica adecuada y más estable es volver al seguimiento clásico: crear un activador de Vista de Página (Pageview) que se dispare únicamente cuando el usuario aterrice en la URL única de esa página de gracias.
Falsas alarmas y errores en la depuración
Cuando uses el modo de Vista Previa (Preview) de GTM para validar la implementación, presta atención a estos fallos de novato:
- El evento cf7submission no aparece: Si envías el formulario y no ves este evento en el panel lateral de GTM, comprueba dos cosas. Primero, asegúrate de que el formulario es realmente de Contact Form 7 (puedes hacer clic derecho en el formulario, seleccionar «Inspeccionar» y buscar clases CSS que contengan
wpcf7). Segundo, verifica que tu etiqueta HTML del listener realmente se haya disparado en el evento de carga de página (Container Loaded). - El error del activador recursivo: Un fallo de implementación gravísimo es asignar el activador de «evento personalizado» a la propia etiqueta HTML que contiene el código del listener. La etiqueta HTML del listener necesita estar activa en la página antes de que el usuario envíe el formulario, por lo que su activador debe ser estrictamente «All Pages» (Todas las páginas). La etiqueta de GA4 será la única que utilice el activador del evento personalizado.

¿Qué hacer con estos datos en GA4?
Una vez que has configurado tu listener en GTM, has enviado el evento limpio y has registrado el parámetro form_id como dimensión personalizada, tu arquitectura de datos está lista. Pero ten paciencia: debes esperar entre 24 y 48 horas para que Google Analytics 4 empiece a mostrar esa dimensión personalizada en tus informes.
Pasado ese tiempo, todo este esfuerzo técnico se traduce en un inmenso poder analítico para ti o tu cliente. Hay, al menos, cuatro acciones clave que debes implementar en GA4 para exprimir estos datos:
Configurar los «Eventos clave» (antes conocido como «Conversiones»)
El paso más inmediato es decirle a GA4 que este formulario es crucial para tu negocio.
- Ve a Administrar > Eventos Clave (Key Events) en GA4.
- Haz clic en «Nuevo evento clave» y escribe exactamente el nombre del evento que enviaste desde GTM (por ejemplo,
generate_leado tu evento personalizado). - A partir de ese momento, GA4 marcará estas interacciones con un icono verde y las tratará como conversiones oficiales, permitiéndote incluso importarlas a plataformas publicitarias como Google Ads para optimizar tus campañas.
Descubrir el rendimiento por formulario (Exploraciones)
Si tienes un formulario en la página de contacto, otro en la home y un tercero en el footer, necesitas saber cuál trae más clientes. Para ello, crearemos un informe a medida:
- Ve a la sección Explorar en GA4 y crea una exploración en blanco.
- Importa dos Dimensiones: Nombre del evento y el Form ID que registraste.
- Importa dos Métricas: Número de eventos (Event count) y Total de usuarios.
- Haz doble clic para añadirlos al lienzo y aplica un filtro para que el «Nombre del evento» coincida exactamente con tu evento de envío (ej.
generate_lead). - El resultado: Una tabla limpia y perfecta que te dirá exactamente cuántas veces se envió cada formulario (según su ID) y cuántos usuarios únicos lo hicieron.
Análisis de atribución: ¿De dónde vienen tus leads?
Uno de los grandes objetivos de los profesionales del marketing es saber qué canales son rentables. Ahora que tu medición es exacta (sin falsos positivos por clics erróneos), puedes cruzar tu evento de éxito con las dimensiones de adquisición.
Podrás ver en tus informes estándar si ese generate_lead provino de tráfico orgánico (SEO), de una campaña de CPC (Google Ads) o de redes sociales, permitiéndote justificar el ROI de tus estrategias frente a tu cliente.

Análisis de embudos
Utilizando la sección «Explorar», puedes elegir el formato de exploración de embudo de conversión (Funnel reports). Con él podrás estimar cuántos usuarios siguen la ruta de conversión que has planificado para ellos y en qué puntos sufres más pérdidas. Si no te apañas bien con los funnels, te dejo esta otra entrada donde le dimos un buen repaso a la creación de embudos de conversión en GA4.

Tu agencia merece más
Más ingresos, más clientes, más oportunidades. Accede a beneficios exclusivos y haz despegar tu negocio con Automattic.
Paso a paso en vídeo
En los webinars de Academia WordPress publicamos un taller práctico donde vimos toda esta implementación paso a paso. Si la depuración de activadores de Google Tag Manager no es tu fuerte, estoy seguro de que te será muy útil para entender cómo funcionan para este caso.
Bonus track: Cómo crear un embudo de abandono midiendo la interacción por campo
Ya hemos resuelto la medición de conversiones reales (con wpcf7mailsent) y de errores de validación. Pero, ¿qué ocurre con los usuarios que empiezan a rellenar el formulario y lo abandonan a la mitad? Para optimizar la tasa de conversión (CRO), es vital entender en qué campo exacto perdemos al usuario.
Aunque anteriormente hemos dejado claro que nunca se debe usar un activador de clic para medir el envío final de un formulario porque es una señal engañosa que no garantiza la conversión, sí que podemos usar los clics de forma estratégica para medir la fricción (microinteracciones) dentro del propio formulario.
Para hacer un seguimiento de los campos donde el usuario hace clic o interactúa, podemos utilizar un script que alimente una variable capaz de recoger el nombre estructural del campo.
Script para capturar la interacción del campo
Para lograr esto, debes crear una variable de JavaScript personalizada en GTM e introducir el siguiente código:
function() { // Elemento clicado capturado por GTM var el = {{Click Element}}; // Guard: si GTM no captura el elemento, salimos if (!el) return undefined; // Busca data-name en el elemento o sus ancestros (closest incluye el propio elemento) var target = el.closest('[data-name]'); // Si no existe data-name en ningún nivel, devuelve undefined return target ? target.getAttribute('data-name') : undefined;}

¿Cómo integrar esto en tu medición?
- La lógica de la variable: Este script evalúa exactamente en qué elemento acaba de hacer clic el usuario (
{{Click Element}}). A continuación, busca el atributo HTML personalizadodata-name(que contiene el identificador del campo, como «nombre», «email» o «empresa») en ese mismo elemento o en su contenedor padre más cercano. - Seguridad ante datos PII: Es importante destacar que esta técnica es 100% segura y cumple con las políticas de Google. Al extraer el atributo HTML (
data-name) en lugar del texto escrito por el usuario (value), evitamos por completo el riesgo de enviar Información de Identificación Personal (PII) a los servidores de GA4. - Activador (Trigger): Para que esto funcione sin ensuciar tus datos, debes crear un activador de tipo «Clic – Todos los elementos», pero fuertemente condicionado. Asegúrate de que solo se dispare cuando el clic ocurra dentro del formulario (por ejemplo, configurando la regla: Click Classes contiene wpcf7).
- Etiqueta GA4: Finalmente, crea una etiqueta de evento en GA4 (puedes llamarla algo como
form_field_interaction) y añádele un parámetro de evento llamadofield_namecuyo valor sea la variable JavaScript que acabas de crear.
Visualizándolo en GA4
El verdadero poder de esta técnica se despliega en la sección «Explorar» de GA4. Al recopilar qué campos reciben clics, puedes construir un informe de Exploración de embudo de conversión personalizado.
Podrás mapear el viaje exacto del usuario configurando cada campo como un paso del embudo:
- Paso 1: Interacción con el campo «Nombre» (
field_name= nombre). - Paso 2: Interacción con el campo «Email».
- Paso 3: Interacción con el campo «Presupuesto».
- Paso 4: Interacción con el campo «Teléfono».
- Paso 5: El envío exitoso (usando nuestro evento estrella
generate_leadactivado por el DOM).
Con este nivel de profundidad analítica, dejas de adivinar. Si el embudo te muestra que el 65% de los usuarios abandona el formulario justo después de hacer clic en el campo «Teléfono», tendrás el dato irrefutable que necesitas para recomendar a tu cliente o equipo de diseño web que eliminen ese campo o lo marquen como opcional para disparar la captación de leads.
Estandariza la analítica en tu agencia
La medición de formularios es el corazón de la analítica para la mayoría de modelos de negocio B2B y de captación de leads. Como profesionales del marketing y el desarrollo, medir clics en botones para evaluar conversiones es una mala práctica que ya no tiene cabida. El clic no garantiza validaciones, no captura envíos ejecutados desde el teclado o JavaScript, y genera una base de datos contaminada de falsos positivos.
Al adoptar una arquitectura basada en eventos del DOM y la Capa de Datos (Data Layer), pasamos de rastrear «intenciones» a registrar conversiones reales y verificadas. Además, al aislar parámetros de baja cardinalidad como el form_id y descartar los campos de texto libre, protegemos las cuentas de GA4 de nuestros clientes frente a infracciones de las políticas de Google por el envío accidental de información personal identificable (PII).
Como ejercicio de práctica te propongo esta tarea: Audita cómo están configuradas actualmente las conversiones de tus clientes. Elimina los disparadores basados en clics, implementa este listener estandarizado en sus contenedores de Tag Manager y asegúrate de registrar las dimensiones personalizadas en GA4.
Tu equipo tendrá menos dolores de cabeza al cruzar datos y tus clientes por fin confiarán ciegamente en los informes de retorno de inversión que les presentas.
Si aún no tienes un sitio donde aplicar esta guía, puedes montar tu web con WordPress.com e instalar Contact Form 7 en minutos. Espero que te sea útil esta receta. Te leo en los comentarios.