先核对一个前提:只有当不同版本确实通过重定向、缓存、地域线路或客户端脚本被分给了不同访客,样本污染才成立。此时最危险的做法是把所有流量合并后直接比较转化率或停留时间,因为两组访客进入的页面内容、加载路径甚至统计脚本都可能不同。正确顺序是:先证明分组存在,再检查统计口径是否一致,最后才做版本间比较。
多个角色对同一事实有不同理解时,分歧通常落在两处:一方看的是服务器日志,另一方看的是站内统计报表;或者一方按会话去重,另一方按页面浏览计数。要区分这两种情况,可以取同一时间窗口、同一批URL,分别导出日志和统计后台的记录,逐条比对字段定义。
这一步的实际动作是:选一个低流量时段,导出两份原始记录,按时间戳和落地页排序,人工核对前50条。若对不上,下一步就不要急于优化页面,而是先固定统计口径。
条件一:版本分配由服务端决定,比如按IP或按AB测试配置返回不同模板。此时日志里会留下明确的版本标识或响应状态,污染主要来自缓存层。可执行的检查是:对同一URL连续请求多次,观察是否返回不同内容;若返回不一致,说明CDN或反向代理缓存了错误版本。动作结果是,如果缓存确实混用,先清缓存并统一Vary头,再重新采集样本,否则后续任何对比都不可信。
条件二:版本分配由客户端脚本或前端路由完成,比如根据语言、屏幕宽度或登录状态渲染不同模块。此时服务器日志看到的可能是同一个URL,但用户实际看到的DOM不同。需要借助前端埋点或浏览器端采集,记录渲染后的版本标识。若无法采集,退而求其次:用同一设备、同一账号、同一网络,手动切换条件访问,记录每次看到的内容。这个动作能确认分组是否存在,但样本量小,只能作为定性证据,不能直接用于计算转化差异。
当团队对“流量到底进了哪个版本”各执一词时,不要继续争论,而是把分歧拆成可核对的项目:
每项都指定一个人、一个数据源、一个核对时间。核对结果只有“一致”“不一致”“无法判定”三种,不允许用“大概”“应该”结案。这样做的结果是把模糊的互相指责变成可复查的记录,下一步才能决定是修分配逻辑还是修统计逻辑。
假设某站点把移动端访客导向精简版,桌面端导向完整版,统计后台按“页面浏览”汇总。若移动端用户因精简版加载更快而浏览更多页面,合并计算时完整版的平均停留时间会被拉低,看起来像完整版效果更差。这里的分组依据是设备类型,污染来源是版本差异与统计口径叠加。验证方法是:分别导出移动端和桌面端的会话数、页面浏览数、停留时间,先确认设备判定是否与版本判定一致,再在各自组内比较。若设备判定本身就有误判,比如平板被同时计入两端,则应先修正设备识别规则,而不是调整页面内容。
并非所有版本差异都需要当作污染处理。如果两个版本面向的是完全不同的人群,且业务上本就分别考核,那么合并比较本身就不成立,此时应分组报告,而不是强行归一。另外,第三方估算流量、搜索引擎报告与站内统计口径不同,三者数值不一致不能单独证明存在样本污染,还需要结合原始日志和版本分配记录。请求量或某项统计归零,也可能由采集脚本故障、过滤规则变更或权限调整引起,不能仅凭一个指标下结论。