每个装了第二套统计工具的团队,第一周都会问同一个问题:访客数为什么不一样?诚实的回答是,「独立访客」不是一个指标,而是一族共用一个名字的指标,每个工具挑了其中不同的一个。这篇文章会走一遍定义出现分歧的六个地方,给你一份可以在一个下午跑完的核对清单,并解释为什么总数对不上的时候,漏斗依然值得信。
读完你会知道
- 让两个都没错的工具在 UV 上产生分歧的五个定义选择
- 一个下午就能跑完的核对清单
- 为什么漏斗各步之间的流失可以比较,而总数不能
访客是一个定义,不是一个事实
浏览量接近事实:一个页面加载了,一次请求到了。访客却是推断出来的。总得有人决定哪些请求属于同一个人、这个「同一个人」维持多久、以及这究竟是不是一个人。每个决定都是一个岔路口,没有两个产品会走完全相同的路。
最常见的岔路口有五个:身份键(Cookie、本地存储,还是每日哈希)、会话规则(30 分钟无操作、跨午夜,还是广告参数变化)、机器人过滤、用来切分「天」的时区,以及单页应用怎样上报路由切换。五个岔路口、各两个选项,同一份流量就已经有 32 种数法。
会话规则先把线挪开
经典规则是 30 分钟无操作就关闭会话。有的工具还会在属性时区的午夜强制切断,或者在访问中途广告参数变化时切断。一个 23:50 在读、00:05 又点了一下的访客,在前一种模型里是一个会话,在后一种里是两个。乘上全球分布的受众,日独立访客数在谁都没做错的情况下就漂了几个百分点。
TapCub 用 30 分钟规则,不在午夜切断。术语表用的措辞和产品里一样,开会时说的定义和图表里用的定义是同一个。
机器人只抬高其中一边
分歧最大的单一来源根本不是定义,而是一边算了、另一边删掉的流量。监控服务、链接预览、搜索爬虫、AI 爬虫都会加载页面。如果工具 A 把它们去掉而工具 B 没有,B 永远更高,而且在爬虫决定重新抓一遍你的网站的那几天,差距会突然拉大。
TapCub 跑五层检查(用户代理、请求头、客户端信号、ASN、请求频率,总共 197 条以上规则),并且把真人和机器人放在不同的报表里,而不是悄悄把机器人行删掉。下面的示例工作区里,真人那条线大约比全部流量低 22%,爬虫来访的那两天差距会更大。
真人访客
48,213
▲ 12.4%
全部流量(含机器人)
61,902
▲ 19.8%
会话
73,480
▲ 10.9%
每日访客 · 最近 14 天
真人全部流量无 Cookie 哈希与「天」的边界
无 Cookie 统计换掉的是身份键。TapCub 不在浏览器里存持久标识,而是用请求属性加上每天轮换的盐算出一个哈希,然后丢掉输入。结果是一个不需要弹窗、在严格隐私设置下也站得住的访客数,但它有一个已知特性:同一个人在两天里就是两个访客。
所以基于 Cookie 的工具在一个月里会报出更少的独立访客和更多的「回访」。两边都没错。要比较的话,比日独立访客,这一层上两种模型对「一个人」的理解是一致的;周、月独立访客则当作两个名字不同的指标来看。无 Cookie 讲解把这笔取舍写得更细,隐私页说明了到底存了什么。
时区与单页应用
还有两个小岔路口。先是时区:一个按 UTC、一个按账号本地时间出报表的工具,会把午夜附近的同一次访问记到不同的日期里,所以就算月度能对上,按天也永远对不齐。比较任何按天的数字之前,先确认两边的属性时区一致。
然后是单页应用。React 或 Vue 里的路由切换不是一次页面加载。一段代码可能在每次路由变化时都发浏览量,另一段只在首次加载时发,第三段只在标题变化时发。受影响最大的是浏览量,但当路由切换是维持会话的唯一动作时,会话数也会变。TapCub 的网页 SDK 默认在 history 变化时发浏览量,数据平台页列出了这个设置。
一份核对清单
一次只比一件事,一个下午就能把两个工具核对完。按下面的清单逐项往下走,每处差异要么修掉、要么记下来,再看下一项。大多数团队会发现机器人过滤和会话规则解释了四分之三的差距,剩下的是时区和单页应用的处理方式。
| 核对项 | 比什么 | 对 UV 的典型影响 |
|---|---|---|
| 机器人过滤 | 是不是有一边去掉了爬虫和监控?先拿「全部流量」对「全部流量」。 | 没过滤的一边高 10–25% |
| 会话超时 | 两边都是 30 分钟?跨午夜切不切? | 日独立访客差 2–5% |
| 身份键 | Cookie 还是每日哈希?比日独立访客,不比月。 | 月度差距大,日度差距小 |
| 时区 | 两个工具的属性时区一致吗? | 午夜附近的访问被记到不同日期 |
| 单页应用路由 | 两段代码都在 history 变化时上报吗? | 主要影响浏览量,部分影响会话 |
| 同意模式 | 是不是有一边丢掉了拒绝 Cookie 的访客? | 严格地区可达 30–40% |
| 代码位置 | 两边都在每个模板的 head 里?有没有页面漏装? | 整块栏目消失 |
区间是我们自己核对时的示例数字,不是行业基准。
为什么漏斗不受这场分歧影响
这才是对决策真正要紧的部分。漏斗不需要 UV 总数和任何东西对上。它比较的是同一份数据里、用同一个定义数出来的各步。2,400 个访客到了定价页,1,248 个开始结账,674 个到了支付,508 个完成,那么结账到支付之间 46% 的流失在任何定义下都是真的,因为每一步都是用同一种方式数的。
所以实际的建议是:别再试图让总数对齐,开始读形状。两套工具并行跑一周,比较趋势线,形状一致了就挑一个,打开它的漏斗报表。行为分析页用同一组示例数字展示了这条漏斗,迁移指南一步步讲了并行运行那一周怎么做。
TapCub Team
设计、开发并支持 TapCub 的这群人。我们写自己网站上量到的东西,也写客户问得最多的问题。