识别样本污染的关键不是看总量涨跌,而是确认同一批访客是否被稳定地分到同一个版本。如果分流规则本身不稳定,或者版本之间共享了缓存、跳转和统计口径,那么你在博客流量报表里看到的差异,很可能来自样本构成变化,而不是内容改动本身的效果。下面用一个明确标注为假设的情境,把判断和处置过程写清楚。
访客被分配到不同版本,通常经过三层:入口层决定谁进入实验,会话层决定这次访问归到哪个版本,统计层决定这次访问被记到哪条数据线。污染可以只发生在其中一层。
先判断污染发生在哪一层,比急着比较两版转化率更重要。层不同,后续要做的动作完全不同。
假设你运营一个博客,准备让一篇旧教程退出主推位,但保留其中仍然有效的部分。你把新版页面放在一部分入口上,旧版继续服务其余入口,想观察博客流量的停留和二次访问变化。实验跑了一周后,新版数据看起来更好。
此时不要直接下结论。先做一件具体动作:按入口来源把访客拆开,看新老版本的访客构成是否接近。如果新版里来自站内推荐的比例明显更高,而旧版里来自外部搜索的比例更高,那么两版面对的本来就是不同人群。这个动作的结果会直接决定下一步:如果构成差异大,你应该先固定入口分配,再重新观察;如果构成接近,才值得继续看行为差异。
判断样本污染,需要把几类证据串起来,而不是只盯一个数字。搜索引擎报告、站内统计和第三方估算的口径本来就不同,任何一项归零或跳变都不能单独证明分流正确。
这四步的顺序有讲究。先查日志能最快排除会话层问题;如果日志正常,再查入口构成和事件上报。反过来先看行为指标,很容易把人群差异误读成版本效果。
两种选择都有成立条件。
可以继续比较的条件:分流日志显示同一访客稳定归入同一版本;两版入口来源分布接近;旧版页面已经停止上报或上报被正确隔离;缓存策略对两版一致。满足这些条件时,博客流量的差异更可能反映版本本身的影响,可以继续观察行为指标。
应当先修分流的条件:同一访客跨版本出现;入口来源分布明显不同;旧版事件仍在混入;缓存或跳转导致版本不稳定。只要其中一条成立,继续比较就是在比较被污染的样本,得出的结论不可靠。
修分流的动作要具体。例如,给每个版本分配独立的统计标识,并在入口层固定来源分配比例。做完之后,先跑一段仅验证分流稳定性的观察期,确认同一访客不再跨版本,再进入效果比较。这个动作的结果是:你牺牲了一部分观察时间,换来的是后续结论可以被归因到版本改动,而不是样本构成变化。
旧内容、旧系统或旧合作关系需要退出时,保留有价值的部分往往意味着新旧并行。并行本身就会带来样本污染风险。一个可操作的做法是:把保留部分单独标记,不与新版共用统计标识,也不共用入口分配规则。
假设你保留旧教程中的一个步骤说明,把它嵌入新版页面。这时要确认该步骤的展示不依赖旧版页面的脚本或缓存。如果依赖,旧版的上报逻辑可能继续影响新版数据。检查方式是:在旧版入口关闭后,观察新版统计中是否仍有旧版标识的事件。如果有,说明保留部分仍在携带旧口径,需要先隔离再继续。
识别样本污染不要求你还原搜索算法,也不要求某一项指标完全干净。它要求你能说清楚:这个访客是谁、从哪来、被分到哪版、被记到哪条数据线。这四点对得上,博客流量的版本比较才有意义;对不上,就先修分流,再谈效果。