先别急着否定试验假设。网站uv没动,最常见的两种解释是:试验压根没生效,或者试验生效了但被其他变化抵消。区分这两者不靠感觉,靠一条能独立验证“实施动作确实发生过”的证据链。
很多分歧来自口径。运营说“uv没涨”,数据同事说“涨了”,往往因为一个人看的是全站uv,另一个人看的是试验命中的那部分uv。第三方估算、搜索引擎后台和站内统计对“访问”的定义本来就不同,前者是推算,后两者是各自口径下的计数,三者对不上不等于谁错了。
所以第一步不是查试验,而是把分歧写成一个可核对的问题:我们比较的是哪个时间窗、哪部分流量、哪个uv定义。这三项对齐之前,任何“没变化”的结论都不成立。
这种情形下,你通常能查到这些痕迹:分流代码没被请求、命中试验的uv占比接近零、变体组的页面版本和对照组完全一致。注意,请求量或命中量归零不能单独证明实施正确或错误,它也可能来自缓存命中、爬虫被过滤、或统计脚本在部分浏览器下没执行。归零只是一个起点,需要顺着它找到上游原因。
这种情形下,你能看到变体确实被下发、命中uv占比符合预期,但两组的uv差异落在正常波动范围内。此时问题不在实施,而在设计:改动影响的只是页面内某一段,而uv主要由入口流量决定,页面内改动本来就很难撬动uv。
下面这组检查按顺序做,每一步的结果都会决定下一步查哪里:
前三步能定位“实施是否发生”,第四步用来解释“实施了为什么看不出来”。
假设某次试验预期让uv提升,实际两组几乎持平。检查发现:变体组命中uv占比正常,页面版本也确实是新版,但被改动的模块位于页面底部,而绝大多数uv来自首屏入口,用户很少滚到那里。这个证据链指向的是“试验实施了,但改动位置与uv来源不匹配”,而不是“试验失败”。下一步动作应该是把改动移到首屏入口,再重新观察中间指标,而不是直接放弃假设。
反过来,如果检查发现变体组页面返回的仍是旧版本,那结论就完全不同:此时该修的是下发链路,在链路修好之前,任何效果数据都没有参考价值。
多个角色对同一事实理解不同时,别在结论上争论,把争论拆成三张可以各自核对的清单:口径清单(时间窗、流量范围、uv定义)、实施清单(命中占比、页面版本、下发时间)、干扰清单(同期其他改动、外部流量变化)。每张清单只回答“是或否、有或没有”,不回答“好不好”。
当三张清单都填完,分歧通常会收敛到一个具体环节。这时再决定是修实施、改设计,还是承认这次试验的观察窗口不够,比反复讨论“uv到底涨没涨”要有效得多。