先给有条件的结论:如果同一访客在同一时间段被分配到不同页面版本,而你的检测样本按“访问”而不是按“访客”统计,那么样本污染几乎必然存在。识别它的关键不是看总量,而是把每个访客的版本归属和后续行为串成一条可核对的链路。若访客身份本身不稳定,例如未登录、跨设备或清除了标识,这条链路就会断裂,结论也随之失效。
样本污染的前提是分流单元和统计单元不一致。分流发生在访客维度,统计却落在访问维度,两者一旦错位,同一人多次进入不同版本就会被重复计入。此时你会看到每个版本都有数据,但无法判断差异来自版本本身还是来自人群重叠。
可核对的证据链包括:分流标识是否写入持久存储、该标识是否随请求带回服务端、统计口径是否按标识去重。三个环节任意一个缺失,样本污染就无法排除。需要说明的是,第三方估算流量、搜索引擎报告与站内统计口径不同,它们各自反映的侧面不一样,不能单靠某一个指标反推分流是否正确。
发现版本数据交叉后,不要急于归因于分流程序出错。更常见的解释有三类,区分方法如下:
假设一个场景:某访客首次被分到 A 版,标识写入本地存储;第二次访问时标识丢失,被重新分到 B 版。如果报表按访问统计,A 和 B 各得一次;如果按访客统计,这个人的归属就取决于你以哪一次为准。这个例子只说明比较方法,不代表真实项目数据。
当多个角色对“到底有没有污染”各执一词时,争论通常停留在总量层面。更有效的做法是约定一个最小核对单元:一个访客标识、一段时间窗、一组版本归属记录。三方各自拿同一批标识去比对,分歧会迅速收敛到具体环节,而不是停留在印象判断。
实际动作可以这样安排:先导出访客级明细,按标识分组,检查是否存在一个标识对应多个版本;再与分流日志逐条对齐,看首次分配是否被覆盖;最后回到统计口径,确认去重键是什么。这个动作的结果会直接决定下一步——如果访客级明细干净而汇总层交叉,问题在报表;如果访客级明细本身就交叉,问题在分流或标识存储。
上述判断成立的前提是访客标识稳定且可关联。反例是:访客主动清除标识、使用隐私模式,或跨设备访问同一服务。此时“同一访客”在数据里本来就不存在,你看到的版本交叉是身份断裂造成的,而不是分流污染。在这种情况下,继续按访客级去重会低估真实覆盖,按访问级统计又无法还原个体路径,两种口径都不能单独支撑结论。
因此,识别样本污染的第一步不是选统计口径,而是确认身份链路是否连续。链路连续时,访客级比对是可靠起点;链路断裂时,应先记录断裂比例和可能的断裂原因,再决定是否值得继续做版本对比。请求量或某项统计归零,也不能单独证明处理正确,它同样可能来自标识丢失、采集中断或过滤规则变化。
下一步动作建议固定为:先小范围抽样核对访客级版本归属,确认链路是否连续;连续则按访客去重重算版本差异,不连续则先补齐身份记录再谈对比。这样每一步的产出都能被下一个环节直接验证,而不是靠总量数字互相说服。