A/B 测试跑了一周,后台显示两组曝光都是 B 版,A 版一次没出现,数据完全没法用。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,分组用每次请求生成的随机数决定,同一个人刷新就换组。页面缓存也没按分组区分,谁先访问就缓存谁。

碰到「广告 AB 测试」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。报错里带路径的,先去看那个路径在不在、权限对不对。

document.cookie = 'ab_group=' + g + '; max-age=2592000; path=/';
# 缓存键追加 ab_group

同一份配置存在多处的,先确认改的是被加载的那一份。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。

备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。

具体做法是,分组写进 cookie,首次访问定下来就不再变;缓存键带上分组标识;曝光和点击都带上分组参数上报;开两个无痕窗口分别看落到的版本。

最后用这个标准收尾,同一浏览器稳定命中同一版本,两组曝光量接近各半。

作者 9823189