Análisis de abandono del funnel de formularios

El seguimiento de leads te dice quién convirtió. El análisis del funnel de formularios te dice quién empezó, quién abandonó y en qué campo. Beaconry registra tres señales por formulario (form_start, form_abandon, envío de lead), las agrega en una tabla de abandono por formulario y mantiene las señales de comportamiento estrictamente analytics-only, de modo que nunca se filtran a una plataforma publicitaria.

Tiempo de lectura: ~6 minÚltima actualización: 2026-06-08

El problema que resuelve

Una conversión de lead es un único número: alguien envió. No puede decirte que el cuarenta por ciento de las personas que empezaron tu formulario de presupuesto se rindieron en el campo de teléfono, o que tu formulario de solicitud de tres pasos pierde visitantes en el paso dos. Esa información vive en el hueco entre "empezó a escribir" y "envió", y la única forma de verla en GA4 normalmente es instrumentar tú mismo eventos form_start, definir a mano una exploración de funnel, nombrar cada paso y mantener ese funnel sincronizado cada vez que editas el formulario.

El análisis del funnel de formularios hace esa parte por ti. Activas un interruptor y Beaconry mantiene una tabla por formulario con inicios, leads, abandonos, una tasa de conversión y los campos en los que la gente abandona, calculada a partir de datos que ya ve pasar por la pipeline. Sin exploración de GA4 que construir, sin esquema de eventos que diseñar, sin definición de funnel que mantener.

Las tres señales

Cada formulario se resume a partir de tres eventos independientes, todos asociados al mismo formulario para que encajen en una sola fila del funnel.

  • form_start, disparado por el motor del navegador en el primer foco sobre un input del formulario. Un inicio por formulario y por visita, registrado como contador.
  • form_abandon, disparado por el motor del navegador al abandonar la página (pagehide / visibilitychange) cuando un formulario se inició, tiene al menos un campo rellenado y no se envió. Solo lleva el NOMBRE del último campo tocado más los conteos de rellenados y total. Nunca un valor de campo.
  • envío de lead, disparado en el servidor cuando el formulario se envía de verdad, el mismo evento de lead que el resto de Beaconry ya envía. Está asociado a la clave estable del formulario, así que cuenta como la pata "convertida" del mismo funnel.

Inicios, abandonos y envíos se almacenan como buckets por formulario y por día en una única opción no autocargada, podados al escribir con una limpieza diaria por cron a 90 días por detrás. No hay tabla de base de datos adicional ni fila por evento, el store del funnel es un pequeño agregado rodante.

Alinear las tres señales sobre un formulario

Para que el funnel se lea correctamente, las tres señales tienen que coincidir en a qué formulario pertenecen. Beaconry lo hace con una clave de formulario compuesta y estable.

El motor del navegador deriva una clave a partir del formulario en la página y el servidor deriva la misma clave a partir del envío. Para Fluent Forms y Kadence Advanced Form las dos coinciden exactamente (fluent_<id> / kadence_adv_<post_id> en ambos lados), así que esos dos plugins obtienen el cuadro completo: inicios, abandonos y leads colapsan todos en una fila. Para los demás plugins de formularios, el inicio y el abandono del navegador caen bajo el id del DOM del formulario mientras que el envío de lead cae bajo la clave del servidor, así que sigues obteniendo un conteo de leads completo para cada plugin, y el detalle de abandono inicio/abandono es más completo en Fluent y Kadence Advanced, donde las claves se alinean.

Por eso la mitad de detalle de abandono de la función está en su mejor momento en Fluent y Kadence Advanced. Es una consecuencia de que esos plugins exponen un id que el navegador puede leer antes del envío, no una decisión de niveles.

La tabla de abandono por formulario

La pestaña Forms renderiza una tabla construida a partir de una instantánea de 30 días del store. Los formularios sin actividad en la ventana se omiten, y las filas se ordenan por volumen (inicios más envíos) para que tus formularios más activos queden arriba. Cada fila lleva:

ColumnaSignificado
FormularioLa etiqueta legible del formulario (recurre a su clave estable si aún no se conoce ninguna etiqueta).
IniciosCuántos visitantes hicieron foco en el formulario en la ventana.
LeadsCuántos enviaron realmente (los mismos eventos de lead que recibieron tus canales).
AbandonosCuántos empezaron, rellenaron al menos un campo y luego se fueron sin enviar.
Tasa de conversiónLeads dividido entre la base del funnel, como porcentaje entero. La base son los inicios cuando se registraron inicios, en caso contrario leads más abandonos (de modo que un formulario cuya señal de inicio nunca se alineó igual obtiene una tasa con sentido).
Campos top de abandonoLos nombres de campo donde se concentraron los abandonos, el más alto primero, limitado a los tres primeros. Solo nombres, sin valores.

La columna "campos top de abandono" es la parte accionable. Si un formulario de presupuesto muestra la mayoría de sus abandonos en phone, ese campo es tu fricción. Hazlo opcional, muévelo más abajo o explica por qué lo necesitas, y luego observa la columna la semana siguiente. La tabla también expone una tasa de abandono (abandonos sobre inicios) y un control "Vaciar lista" para reiniciar el store cuando quieras una base limpia tras un rediseño.

Analytics-only por construcción

Esta es la parte que importa para un reporting publicitario limpio. form_start y form_abandon son señales de comportamiento, no conversiones, y Beaconry garantiza por código que nunca llegan a un proveedor publicitario. Dos puertas independientes lo imponen.

  1. La puerta de opt-in se ejecuta primero, dentro del observador del funnel. Siempre registra el evento en el store interno del plugin, y luego, para form_abandon, cancela el despacho por completo a menos que hayas activado explícitamente el reenvío de abandonos a GA4. Así que, por defecto, un abandono solo toca el propio store de funnel de Beaconry y no va a ninguna parte por el cable.
  2. La puerta central de enrutamiento se ejecuta en el dispatcher, justo después de los filtros previos al despacho. Compara el nombre del evento contra una única lista analytics-only y, ante una coincidencia, enruta el evento solo a GA4 y se detiene en seco antes de cualquier canal de proveedor publicitario. Una comprobación cubre Meta, TikTok, LinkedIn, Google Ads, Microsoft Ads, Pinterest, X Ads, Snapchat y Reddit de una vez, y cualquier canal publicitario que se añada en el futuro hereda la regla automáticamente, sin ninguna excepción por canal que recordar.

El efecto neto, en cualquier combinación de interruptores:

  • Un abandono llega solo a GA4, y solo cuando has activado el reenvío a GA4 para el funnel. En caso contrario se queda enteramente en el store del plugin.
  • Un abandono nunca llega a un canal publicitario.
  • Un form_start llega solo a GA4 (si GA4 está conectado), nunca a un canal publicitario.

Esa segunda puerta es la única fuente de verdad para la separación "señal interna frente a conversión de proveedor publicitario". Existe porque depender solo de listas de exclusión por canal es frágil: añades un canal, olvidas la entrada de exclusión, y un evento de comportamiento empieza en silencio a inflar el conteo de conversiones de ese canal. La puerta central hace imposible esa clase de regresión.

Qué se reenvía a GA4 y qué no

Incluso cuando sí optas por el reenvío a GA4, lo que viaja es deliberadamente delgado. form_abandon lleva el NOMBRE del último campo tocado y los conteos de rellenados y total. No hay valor de campo, ni email, ni teléfono, nada que un visitante haya escrito. Toda la función es segura frente a PII por construcción (solo nombres de campo y conteos), por lo que no necesita ningún tratamiento de RGPD especial, el store del funnel nunca puede contener datos personales porque los eventos que lo alimentan nunca llevan ninguno.

Los checkouts de comercio se excluyen a propósito

Los checkouts de WooCommerce (clásico y de bloques), Easy Digital Downloads y SureCart se mantienen explícitamente fuera del funnel de formularios. No son formularios de lead, y ya tienen su propio funnel de view, begin_checkout, purchase. Peor aún, su envío de pedido es invisible para un funnel de formularios (Store-API o AJAX, sin envío de formulario nativo que el navegador pueda ver), así que una compra completada parecería un abandono y dispararía uno en cada pedido exitoso.

Dos capas los mantienen fuera:

  • Un flag de exclusión agnóstico al render, fijado desde las propias APIs de la plataforma (is_checkout(), is_cart(), edd_is_checkout()). Esto apaga todo el funnel en una página de checkout o carrito de comercio, incluido markup como el propio checkout de bloques de EDD que un selector CSS no podría hacer coincidir de forma fiable.
  • Un respaldo por clase CSS en el motor del navegador que reconoce las clases de los componentes de checkout y carrito de WooCommerce, EDD y SureCart, por si se perdió la señal a nivel de página.

El abandono por paso de checkout sigue siendo medible, simplemente es trabajo del funnel de comercio: un begin_checkout sin un purchase que case. Consulta Seguimiento del lado del servidor para el funnel de comercio.

Cómo activarlo

wp-admin, Beaconry, pestaña Forms, tarjeta Form-Funnel. Dos interruptores:

  1. Activar análisis del funnel de formularios enciende el registro de inicios y abandonos en el motor del navegador y empieza a rellenar la tabla por formulario. Esto es todo lo que necesitas para la tabla de abandono. Las señales se quedan en el store del plugin. Por defecto está apagado.
  2. Reenviar abandonos a GA4 deja además pasar form_abandon hacia GA4 (y solo GA4, ver arriba) para que puedas construir tus propias exploraciones de GA4 encima. Déjalo apagado y los abandonos nunca salen del plugin. Por defecto está apagado.

La pestaña Forms solo aparece en el menú de Beaconry cuando hay al menos un plugin de formularios compatible activo, y la tarjeta del funnel vive ahí junto al mapeo de campos por formulario que se cubre en Configuración de formularios. Activar la función no requiere nada en el propio markup del formulario.

Frente a un funnel de GA4 hecho a mano

Puedes construir un funnel comparable directamente en GA4, y si ya tienes una exploración de funnel de GA4 que te gusta, consérvala. La diferencia está en el coste operativo y en las garantías.

Funnel de GA4 hecho a manoFunnel de formularios de Beaconry
ConfiguraciónInstrumenta form_start tú mismo, define una exploración de funnel, nombra y ordena cada paso.Un interruptor. La tabla se construye sola a partir de datos que ya están en la pipeline.
Campo de abandonoNo disponible salvo que envíes además un evento personalizado por campo y lo grafiques.Incluido: los nombres de los campos top de abandono por formulario, sin eventos adicionales.
MantenimientoVuelve a revisar la definición del funnel cada vez que editas el formulario.La clave del formulario sigue al formulario, así que la fila lo acompaña a través de las ediciones.
Dónde viveEn GA4, tras la latencia de reporting habitual.En wp-admin, en la pestaña Forms, junto a los ajustes del formulario.
Seguridad frente a canales publicitariosTu responsabilidad mantener los eventos de comportamiento fuera de las importaciones de conversiones.Garantizada por la puerta central: los inicios y los abandonos nunca llegan a un canal publicitario.

No son mutuamente excluyentes. El interruptor "Reenviar abandonos a GA4" existe precisamente para que puedas tener ambos: la tabla integrada rápida para el día a día y el flujo crudo de form_abandon en GA4 para una exploración personalizada, con los canales publicitarios igualmente protegidos del ruido de comportamiento en cualquier caso.

Resolución de problemas

  • "Un formulario muestra leads pero cero inicios o abandonos": el plugin de ese formulario no expone un id que el navegador pueda leer antes del envío, así que su inicio y abandono caen bajo una clave distinta a la de su lead del lado del servidor. Los conteos de leads siguen siendo exactos. El detalle completo de inicio a abandono es más completo en Fluent Forms y Kadence Advanced Form, donde las claves del navegador y del servidor coinciden.
  • "Los abandonos no llegan a GA4": activar el funnel por sí solo mantiene los abandonos en el store del plugin. También necesitas el segundo interruptor, "Reenviar abandonos a GA4". Esto es a propósito, la tabla funciona sin enviar nada a GA4.
  • "Veo un form_abandon en GA4 pero no en Meta ni en Google Ads": eso es correcto y no es un bug. Las señales de comportamiento son analytics-only y se detienen en seco antes de cada canal publicitario. No hay ningún ajuste que las reenvíe a un proveedor publicitario.
  • "Un checkout completado parecía un abandono": no debería, las páginas de checkout y carrito de comercio se excluyen del funnel tanto a nivel de API de página como a nivel de clase CSS. Si renombraste páginas o usas un checkout no estándar, confirma que la página se resuelve a través de la API de la plataforma (is_checkout() y compañía), que es como se detecta la exclusión, nunca por slug de URL.
  • "La tabla está vacía justo después de activar": se rellena a medida que los visitantes interactúan. Los inicios y abandonos necesitan que ocurra un foco real en el formulario y un abandono de página, y los administradores se excluyen del seguimiento de front-end por defecto, así que prueba como visitante sin sesión iniciada.