TapCub 正式上线:统计、分析、客服一个平台免费用
数据分析

表单分析:找出表单在哪里流失用户,又不记录他们填了什么

表单分析看的是有多少人看到表单、开始填写、提交并且通过。每一步的指标、怎么在不记录填写内容的前提下跟踪开始填写和校验错误,以及先改什么。

林舟 发布于 2026 年 11 月 3 日 4 分钟阅读 数据分析
示例数字。780 人开始填写后放弃。示例数据

用你自己的数据试一下

这篇文章里出现的报表免费版全都有。一段代码,网站和 App 都能接,最多 10 个站点。

免费开始

表单分析看的是有多少人看到表单、开始填写、提交并且通过。本文给出每一步的指标,说明怎么在不记录填写内容的前提下跟踪开始填写和校验错误,并列出先改什么。

读完你会知道

  • 把表单当漏斗看:看到、开始、提交、通过
  • 记录字段名和报错,从不记录填写内容
  • 把服务器通过的数量作为转化汇报

表单是一个四步漏斗

只数提交次数,能知道收到了多少份表单,却不知道丢了多少。表单分析把每个表单当作一个小漏斗:

  1. 看到:访客看到了表单所在的页面。
  2. 开始:访客点进了某个字段。
  3. 提交:访客按了提交。
  4. 通过:服务器接收了它(有效、不是垃圾信息、不重复)。

每个缺口的原因都不同。开始率低,问题在提供的内容或页面;完成率低,问题在表单本身;提交和通过之间有缺口,问题在校验、报错或垃圾信息。

指标

表里给出每一步的指标定义。最重要的两个是开始率(开始 ÷ 浏览)和完成率(提交 ÷ 开始)。字段级流失(用户在哪个字段离开)需要按字段发事件,只有长表单或高价值表单才值得做。

指标公式指向
表单浏览看到表单页的访客流量和位置
开始率开始 ÷ 浏览提供的内容、文案、位置
完成率提交 ÷ 开始表单长度和清晰度
放弃率1 − 提交 ÷ 开始同上,换个角度
错误率被校验拦下的提交 ÷ 提交尝试字段格式、提示文字
通过率通过 ÷ 提交服务器报错、垃圾信息、重复
完成用时开始到提交(中位数)填写所需的力气

字段级流失需要按字段发事件。

一个示例漏斗

示例里,5,000 位访客看到了申请演示的表单,1,400 人开始填写,开始率 28%。其中 620 人提交,完成率 44%,服务器接收了 560 份:有 60 份没通过校验或是垃圾信息。按人数算,流失集中在开始到提交之间:780 人开始填了又放弃。这指向表单本身:字段太多、某个字段让人困惑,或者报错不明显。

app.tapcub.com/analytics/behavior/funnels

开始率

28%

开始 ÷ 浏览

完成率

44%

提交 ÷ 开始

提交后被拒

60

校验或垃圾信息

申请演示表单 · 30 天

示例
看到表单页5,000
开始填写1,400
提交620
服务器通过560
示例数据
示例数字。780 人开始填写后放弃。

跟踪开始填写和报错

自动表单跟踪通常只记录表单被提交了。开始填写和校验错误需要几行代码。下面的示例在访客首次点进字段时发一个事件,在浏览器拦下提交时发一个列出无效字段名的事件。只发字段名称,从不发访客输入的内容:统计里存填写内容有隐私风险,而且很少用得上。

表单入库时,由服务器用同一个表单 ID 发送「通过」这一步。垃圾信息和重复提交也在那里过滤,所以它才是要作为转化汇报的数字(见线索跟踪)。

form-events.jsJavaScript
const form = document.querySelector('#demo-form');

// 访客首次点进字段时发一个事件
form.addEventListener('focusin', () => {
  if (form.dataset.started) return;
  form.dataset.started = '1';
  tapcub.track('form_start', { form_id: 'demo' });
});

// 浏览器拦下提交时,发送无效字段名(从不发内容)
let bad = [];
form.addEventListener('invalid', (e) => {
  bad.push(e.target.name);
  if (bad.length > 1) return;
  setTimeout(() => {
    tapcub.track('form_error', { form_id: 'demo', fields: bad.join(',') });
    bad = [];
  }, 0);
}, true);

先改什么

  • 开始率低: 看提供的内容、表单周围的文案,或者表单是不是在首屏以下。
  • 完成率低: 删掉选填字段,合并姓名字段,能以后再问的字段先不问。
  • 某个字段校验错误多: 把格式说清楚,或者接受更多格式(电话、日期)。
  • 提交按钮上有狂点: 按钮禁用时看起来仍可点击,或者错误没有显示出来。见怎么看热力图。
  • 提交了却没通过: 先查服务器报错和垃圾信息过滤,再怪访客。

把开始填写和完成当作微转化,用前后两段时间对比来检验改动。

在 TapCub 里做表单分析

表单提交跟踪默认关闭。在脚本上加 data-forms="true" 后,每次提交都会记录表单的 id、name 和 action,但不记录填写内容。开始填写和报错用自定义事件:tapcub.track(name, props) 最多保留 20 个属性,同一访客在同一路径上一秒内名称和属性都相同的重复事件会被丢弃,所以每次报错只发一个事件是正确的做法(见文档自定义事件)。

由表单浏览、form_start、提交和服务器的通过事件组成的漏斗,能显示每一步的转化率和完成用时(见文档漏斗)。热力图(Pro 及以上套餐,需开启自动采集)显示表单上的点击和狂点,狂点指 300 毫秒、50 像素内的第三次点击。更多见转化率和埋点方案。

常见问题

什么是表单分析?

衡量访客怎么和表单互动:多少人看到、开始填写、提交并通过,以及在哪里放弃。

怎么跟踪表单提交?

用统计工具自带的表单跟踪,或在提交时发一个事件,并由服务器确认通过的提交。

怎么衡量表单放弃率?

除了提交,也要跟踪开始填写。放弃率 = 1 − 提交 ÷ 开始。

记录用户在表单里填了什么安全吗?

很少需要,还会带来隐私风险。记录字段名和报错,不记录填写内容。

表单完成率多少算好?

取决于表单长度和用途。和自己表单的历史比,并试着删掉字段看看效果。

这篇文章对你有帮助吗?

我们会根据反馈修改和补充这篇内容。

林舟

产品体验专员

关注产品体验、功能使用与增长实践,喜欢把复杂流程拆成清晰步骤,让分析结果更容易用到日常决策中。

看表单在哪里流失用户

按需开启、不存填写内容的表单跟踪,自定义开始和报错事件,漏斗,以及表单上的狂点。

看清数据,找到增长。

每一次点击,都有数据依据。装好一行代码,1 分钟看到第一批数据。

无需信用卡 · 统计与客服都有免费版 · 统计无 Cookie