先看一个可执行的判断:如果分流记录、曝光日志和最终转化表三者的用户集合对不上,那么“版本差异”很可能混入了样本污染,而不是版本本身的效果。识别方法不是盯着总转化率,而是把每个访客的分配、实际看到的内容、后续行为串成一条可核对的链路,再找断点。
样本污染通常不是单一原因。它可能发生在分配层、渲染层或数据回传层。分配层指访客被分到A版或B版,但前端因缓存、重定向或脚本加载失败展示了另一版;渲染层指页面确实展示了指定版本,但部分模块没有加载,导致行为路径不完整;回传层指行为事件带错了版本标识,或同一用户被重复写入两组。
要区分这三层,先取一份最小对照样本:同一时间窗口内,分流系统记录的分配表、页面实际渲染的版本标记、以及分析工具收到的事件表。三张表都应有可关联的匿名用户标识。假设某访客在分配表中属于B版,但渲染标记是A版,且事件表只记录了一次曝光,那么污染更可能发生在渲染层,而不是回传层。
总转化率差异不能单独证明版本效果,因为分子和分母可能来自不同人群。更可靠的做法是逐用户核对以下顺序:
如果第2步出现不一致,先不要继续比较转化率。此时应回查前端缓存策略、重定向规则和实验脚本的加载顺序。一个实际动作是:在测试环境用固定匿名标识重复访问,记录每次请求返回的版本标记。如果同一标识在短时间内拿到两个版本,说明分流或缓存层存在串扰,下一步应优先修复该层,再重新收集数据。
有些“污染”并非真的跨版本,而是同一用户被拆成多个身份。例如访客先以未登录状态进入A版,登录后系统按账号重新分配,又被写入B版。此时分析表里会出现两个用户,各自只看到一半行为。判断依据是:同一设备或同一登录账号在短时间内关联到两个版本标识,且行为时间线可以拼接成连续路径。
处理这类情况,需要先确定分析口径:以匿名设备为主,还是以登录账号为主。若以账号为主,应在登录后回写首次分配版本,并避免二次随机。若以设备为主,则登录不应触发重新分配。选择哪一种取决于业务能否稳定识别同一人;如果登录率低,强行按账号归并反而会丢掉大量未登录行为。
假设某页面同时测试了按钮颜色和文案,分流工具按用户分配版本,但前端缓存把部分旧版本页面返回给了已分配新版本的用户。此时有两种处理选择:
两种选择没有绝对优劣。关键是先确认污染是否影响结论方向,再决定是修复后重跑,还是缩小样本继续观察。
为了下次更快发现样本污染,可以在实验上线前固定三个检查点:分配与曝光是否使用同一匿名标识;版本标记是否在服务端和前端都写入;关键行为事件是否携带版本字段。上线后先看小流量样本的一致性,而不是直接看转化率。若一致性低于预期,先暂停扩大流量,回查断点。这样做的结果是把“版本效果”和“样本污染”分开,避免用错误分母得出错误结论。
最后要记住:请求量、曝光量或转化量突然归零,并不自动证明分流正确或错误。它也可能是埋点故障、页面加载失败或过滤规则误伤。只有把分配、曝光和行为三条记录对齐,才能判断样本是否真的被污染,以及下一步该修哪一层。