先给结论:识别样本污染的关键不是看总流量涨跌,而是把“版本分配”当作一个可验证的中间变量。你需要找到一个能区分版本的字段,按它把访问切分开,再看各版本的核心指标是否同时出现方向一致的偏移。如果只有总量变化、切分后各版本指标却接近,那更像是外部流量波动;如果某个版本的跳出率、停留时长、转化路径同时异常,样本污染的概率就明显上升。
很多团队做了 A/B 版本或灰度发布,却只在服务器或前端脚本里做了分流,百度统计侧没有任何标记。这种情况下,访客被分到哪个版本,在统计报表里是不可见的,你看到的只是混合后的总量。识别污染的第一步,是检查你手上是否有可用的区分字段。
可用的字段通常有三类:自定义维度(在页面加载时写入版本号)、落地页 URL 参数(如版本标识)、事件参数(在关键交互上附带版本)。如果三者都没有,那么当前数据无法直接切分,任何“污染判断”都只能靠推断。此时实际动作是:先在测试环境确认分流逻辑会写入哪一个字段,再决定是否补埋点。这个动作的结果决定了你下一步是能直接切数据,还是只能先做小流量对照。
假设你已经在自定义维度里记录了版本标识,接下来按它拆分。不要只看访问次数,要同时看跳出率、平均停留时长、目标完成次数这三个指标。判断逻辑可以这样用:
这里要注意一个常见遗漏条件:分流比例是按访客还是按会话?如果按会话分流,同一个访客可能在不同时间进入不同版本,样本污染就发生在访客层面而不是会话层面。你需要先确认分流单位,再决定是按访客去重还是按会话统计。这个动作会直接影响你看到的版本指标是否可信。
指标偏移不一定是样本污染。外部投放变化、搜索引擎抓取异常、某个渠道的流量突增,都可能造成类似现象。要排除这些解释,可以按下面的顺序抽一条证据链:
这条链的作用是:每一步都能给出一个可验证的是或否。如果三步都指向版本分配,你才需要去改分流逻辑;如果中途被渠道解释掉,就不必动版本。
假设你的分流逻辑是“首次访问随机分配,后续访问沿用”。但实际实现时,脚本在每次页面加载都重新随机,只是把结果写进自定义维度。此时老访客可能被重新分配到另一个版本,导致两个版本的访客构成都混入了对方的样本。
在这个假设下,你会看到:两个版本的访问次数比例接近,但跳出率和停留时长都出现轻微异常,且异常方向不一致。验证动作是:在自定义维度之外,再记录一个“首次分配版本”的字段,对比两次记录是否一致。如果一致率很低,说明分流没有保持稳定,样本污染已经发生。下一步就是修正分流逻辑,让同一访客在有效期内保持同一版本,然后再重新观察指标是否恢复稳定。
修正分流逻辑后,不要立刻下结论。你需要观察一个完整周期内,各版本的核心指标是否回到可比较的区间。判断依据不是某个指标归零或突然变好,而是:各版本的跳出率、停留时长、转化路径流失率之间的差异,是否缩小到与分流前预期一致的范围。如果差异仍然存在,但方向已经稳定,那可能是版本本身的效果差异,而不是污染。
同时,保留一份修正前后的版本分配日志。当后续再出现指标异常时,你可以用同一套切分方法快速判断是新的污染,还是正常的版本效果波动。这个动作把一次诊断变成了可复用的检查流程,也避免了下一次再从总量开始猜。