如何设置不修改页面布局的Google Optimize实验并获取分组信息?
Google Optimize 无视觉修改的A/B实验实现方案
完全可以实现你的需求,以下是具体实操步骤和代码示例:
一、创建无外观变化的变体
- 新建A/B实验后,进入变体编辑器,不要做任何视觉修改(别碰页面元素、CSS编辑器)
- 直接切换到「JavaScript」标签页:
- 给变体A注入代码:
window.experimentGroup = 'groupA'; - 给变体B注入代码:
window.experimentGroup = 'groupB';(如果B是对照组,也可以留空,后续代码判断默认逻辑)
- 给变体A注入代码:
- 保存变体即可,此时两个变体外观完全一致,仅全局变量不同
二、通过JS获取实验及分组信息
Google Optimize提供了google_optimize全局对象来读取实验数据,以下是常用用法:
1. 获取当前分组信息
// 等待Optimize初始化完成,避免报错 document.addEventListener('DOMContentLoaded', function() { if (window.google_optimize) { // 方式一:用你注入的全局变量直接判断 const currentGroup = window.experimentGroup; // 方式二:通过实验ID获取变体ID,再映射分组 const experimentId = '你的实验ID'; // 从Optimize实验详情页URL获取 const variantId = google_optimize.get(experimentId); const currentGroup = variantId === '变体A的ID' ? 'groupA' : 'groupB'; // 后续根据分组调用不同API if (currentGroup === 'groupA') { // 执行groupA对应的API逻辑 } else { // 执行groupB/对照组的API逻辑 } } });
2. 获取实验ID和名称
- 实验ID可以直接从Optimize实验详情页的URL里提取(URL格式类似:
optimize.google.com/optimize/#/experiments/xxxxxx,后面的xxxxxx就是实验ID) - 通过代码批量获取实验信息:
if (window.google_optimize) { google_optimize.getExperiments().forEach(exp => { console.log('实验ID:', exp.id); console.log('实验名称:', exp.name); console.log('当前变体ID:', exp.variantId); }); }
三、设置转化率统计
在实验的「目标」设置里,选择「自定义目标」,将触发条件设为按钮点击事件;如果已经关联了Google Analytics,也可以直接用GA里的现有目标,Optimize会自动统计「着陆人数/点击按钮人数」的转化率
注意事项
- 确保Optimize的代码片段在你的业务JS之前加载,否则会出现
google_optimize未定义的错误 - 变体编辑器里别碰任何视觉修改选项,只保留JS注入逻辑,避免意外修改页面样式
- 测试时用Optimize的预览功能,分别查看两个变体,确认外观一致且变量正确注入
内容的提问来源于stack exchange,提问作者Kristi Jorgji
相关产品推荐
相关产品推荐

