我有一个单页的网络应用程序,它提供了一个多步骤照片管理“向导”,通过一个标签条分成几个不同的步骤(照片上传,样式,注释,发布)。在切换步骤中,我将URL哈希设置为#publishing-step
(或者激活了哪个步骤)。
如何设置Optimizely测试以在向导的各个不连续步骤上运行?
浏览器永远不会离开页面,因此它只会获得一个window.load
个事件。它的DOM不会被废弃或重新生成,只是通过display: none
或block
来切换任何时候可见的页面元素,所以我想要弄清楚的部分主要是关于什么方式我将进行Optimizely测试设置本身 - 如果所有编辑都立即应用,那就很好(并且可能是必要的)。
遗憾的是,这件事必须在IE9中运行,因此我无法使用history.pushState
为每一步获取相当独立的网址。
答案 0 :(得分:3)
实际上有几种方法可以实现这一目标,您选择的选项在很大程度上取决于您最简单的方式以及您计划如何分析数据。
我建议创建一个实验,在不同时间激活一堆其他实验。激活实验将针对每个人,并在他们到达您的向导时立即运行。其他实验将与manual activation一起设置并由此实验触发。
激活实验的代码如下:
window.optimizely = window.optimizely || [];
function hashChanged() {
if(location.hash === 'publishing-step') {
window.optimizely.push(['activate', 0000000000]);
}
if(location.hash === 'checkout-step') {
window.optimizely.push(['activate', 1111111111]);
}
}
window.addEventListener('hashchange', hashChanged, false);
或者你可以调用window.optimizely.push([' activate',xxxxxxxxx]);直接来自您网站的代码,而不是创建激活实验并监听散列更改。
你可以在一个实验中使用类似于上面的代码完成所有操作,但是在每个实验中,如果"您可以运行变体代码而不是激活实验来更改向导,并将特殊跟踪信息发送到您的分析中,以便以后进行报告。您必须为此方法执行自己的statistical significance calculation(因为Optimizely的数据不会"干净"),但这种方法实际上通常效果更好如果配置得当。
或者,您可以使用上述方法,但仍尝试使用Optimizely分析信息中心,在实验中创建custom events并使用window.optimizely.push(["trackEvent", "eventName"]);
等调用向他们发送数据
答案 1 :(得分:1)
你可能需要自己动手,使用Optimizely的JS API来触发他们的行动并告诉他们你的用户做了什么:https://www.optimizely.com/docs/api