先给有条件的结论:如果分流是按用户标识稳定哈希,且每个版本都有独立的曝光与转化记录,那么可以直接比较两版指标;但如果分流按请求随机、会话中途切换版本,或旧版本仍在被缓存命中,那么比较结果的差异很可能来自样本污染,而不是版本本身。识别污染的关键动作是给每个访客打上版本标记,并在日志中核对同一访客是否只出现一个版本;一旦发现跨版本记录,下一步应停止按版本汇总,改为按访客首次分配版本归因,再重新计算。
样本污染最常见的来源是分流不稳定。稳定哈希把同一访客固定到一个版本,样本边界清晰;按请求随机则同一访客可能同时进入两版,样本自然重叠。判断方法不是看总量,而是看单个访客的版本序列。假设某访客在十分钟内先看到A版再看到B版,如果分流是稳定哈希,这说明分流配置或缓存出了问题;如果分流本来就是按请求随机,这属于预期行为,不能当作污染证据。两种情况下,处理动作完全不同:前者要修分流,后者要改实验设计。
只靠页面路径或参数区分版本并不可靠,因为参数可能被缓存、被重写或被分享链接带偏。更稳妥的做法是在服务端或边缘层给每个响应写入一个版本标识,并与访客标识一起记录。核对时按访客聚合,统计每个访客出现的版本数量。若大量访客出现两个版本,且这些访客的转化行为介于两版之间,就应怀疑样本污染。此时先不要删除数据,而是标记这些访客,观察排除他们后两版指标差异是否缩小;若差异明显缩小,说明原结论主要受污染样本驱动。
旧内容或旧系统退出阶段,缓存层常常还在返回旧版本。一个可操作的动作是:在响应头或日志中同时记录实际返回版本与请求期望版本,然后比较两者不一致的比例。如果不一致比例高,且集中在特定路径或特定地区,那么问题更可能是缓存或CDN配置,而不是分流算法。这时应优先清理缓存规则或缩短缓存时间,再重新采集样本;否则任何版本比较都建立在混合内容上,结论不可用。
如果访客标识本身不稳定,比如未登录用户每次请求都生成新标识,那么即使分流是稳定哈希,也无法把同一访客归到同一版本。此时按访客聚合会得到大量“单次访客”,跨版本检查失效。遇到这种情况,需要先建立更稳定的标识,例如结合设备指纹或登录态,再重新评估。否则你看到的版本差异可能只是不同标识群体的差异,而不是版本效果。
确认存在跨版本后,把每个访客归因到首次分配版本,只统计该访客后续的转化行为。这个动作会改变分母和分子:原本被重复计入的访客只算一次,原本被错误归到后一版的转化回到首次版本。重算后如果两版差异仍然存在,才值得继续做显著性判断;如果差异消失,说明之前的结论应撤回。整个过程不需要额外工具,只需要在现有日志中增加版本与访客的对应字段,并按访客粒度聚合一次。