Google Optimize服务端实验ID与变体ID设置频次咨询
Google Optimize 服务端A/B实验exp参数设置规则
正确结论
你列出的三种设置方式里,选项2是唯一符合官方规范的正确方案:仅在实验覆盖的页面设置,用户每次打开该页面时都需设置。
核心逻辑说明
你对接用的是适配Universal Analytics(analytics.js)的Optimize服务端实验方案,要先明确一个基础规则:ga('set', 'exp', ...) 设置的实验关联参数,仅在当前页面的analytics.js运行生命周期内生效,页面跳转后新页面加载的ga实例不会保留之前set的参数值,不存在“设置一次永久生效”的逻辑。
另外exp参数的作用是标记当前hit(页面浏览、事件等上报数据)属于哪个实验的哪个分组,只有实际加载了实验变体的页面上报的hit才需要带这个参数,否则会污染实验归因数据。
对应场景的处理方式
- 用户首次打开实验覆盖的首页、被分配至Variant 1:按规范在pageview上报前设置
exp参数即可,操作正确。 - 用户跳转至不属于实验范围的联系我们页面:不需要设置exp参数。该页面没有加载任何实验变体,给这个页面的上报数据带实验参数会把非实验场景的行为错误归到实验数据里,导致统计结果失准。
- 用户后续再次打开实验覆盖的首页:必须重新设置exp参数。页面跳转后之前设置的参数已经失效,只要加载的是实验覆盖的页面,每次都要在发送pageview前,根据服务端持久化存储的用户固定分流结果,设置对应的实验ID+变体ID,保证实验页面的访问数据能正确关联到用户所属的分组。
错误选项说明
- 选项1(仅在首次分流页面设置一次即可)错误:参数不会跨页面持久保留,后续用户再访问实验页面时上报的数据不带实验标记,会被判定为未入组用户,导致实验样本量统计缺失、结果偏差。
- 选项3(实验结束前用户访问的所有页面都要设置)错误:非实验页面不需要上报实验标记,全页面带参会把无关页面的浏览、转化数据错误归因到实验上,直接导致实验效果统计失真。
规范代码示例
所有实验覆盖的页面,都要在上报pageview前执行以下逻辑,变体ID从服务端存储的用户固定分流结果中读取,不要每次访问重新分流:
// 设置当前用户所属的实验ID与变体ID ga('set', 'exp', '$experimentId.$variationId'); // 上报页面浏览数据 ga('send', 'pageview');
内容的提问来源于stack exchange,提问作者Eugene Khyst
相关产品推荐
相关产品推荐

