问题描述
我正在使用自定义激活事件通过 Google 优化工具实施 A/B 测试。我根据从 Optimize 收到的 ID 变体呈现同一 React 组件的不同版本。
const getvariant = async () => {
if (window.dataLayer) {
await window.dataLayer.push({ event: 'optimize.activate' });
}
const intervalId = setInterval(() => {
if (window.google_optimize !== undefined) {
const variant = window.google_optimize.get(myExperimentId);
setUseTestvariant(Number(variant));
clearInterval(intervalId);
console.log(variant)
}
},100);
};
到目前为止,这适用于随机生成与我的优化实验中的变体相对应的相同组件的不同版本。但测试的主要目标是通过结帐页面上的购买来跟踪对话率,触发事件的组件不在此位置。所以我的问题是:如果在一个页面上触发自定义激活事件并启动会话,Optimize 是否知道用户何时点击进入结帐页面,或者该页面是否还需要将激活事件推送到数据层?是否只能跟踪触发事件的页面上的交互?
解决方法
优化在浏览器中设置_gaexp cookie,在这个cookie中存储了实验变体。此值作为会话范围存储在谷歌分析中,因此,此会话中的所有自定义事件和事务都将附加此变体。您不需要在另一个页面中激活实验来保存带有变体的交易。
另一方面,我不知道您的实验,但将交易设置为主要目标通常不是一个好主意。一般来说,交易是次要目标。作为主要目标,最好使用您已更改的组件中的点击,例如...添加到购物车,但当然取决于实验