我有一个单页的Web应用程序,该应用程序提供了一个多步骤的照片管理“向导”,通过标签栏将其分为几个离散的步骤(照片上传,样式,注释,发布)。在切换步骤时,我将URL哈希设置为#publishing-step(或激活的任何步骤)。

如何设置Optimizely测试以在向导的各个离散步骤上运行?

浏览器永远不会离开该页面,因此它只会得到一个window.load事件。它的DOM不会被废弃或重新生成,而只是通过display: noneblock随时切换可见的页面元素,所以我要弄清楚的部分实际上主要是关于我以何种方式进行Optimizely测试设置本身-如果一次应用所有修改,那就很好(并且可能是必要的)。

不幸的是,这个东西必须在IE9中工作,所以我不能使用history.pushState为每个步骤获取相当离散的URL。

最佳答案

实际上,您可以采用多种方法来执行此操作,而选择哪种选项将在很大程度上取决于最适合您的方式以及计划如何分析数据。

如果要使用Optimizely的分析仪表板:

我建议创建一个实验,该实验将在不同时间激活许多其他实验。激活实验将针对所有人,并且在他们进入您的向导后立即运行。其他实验将使用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]);直接从您网站的代码开始,而不是创建激活实验并监听hashchange。

如果您想使用第三方分析工具(例如Google Analytics(分析)),请执行以下操作:

您可以使用与上面类似的代码在一个实验中完成所有操作,但是在每个“如果”部分中,而不是激活一个实验,您可以运行变异代码来对向导进行更改,并向您的分析发送特殊的跟踪信息,以供日后使用报告。您必须为此方法做自己的statistical significance calculation(因为Optimizely的数据不会“干净”),但是通常,如果配置正确,此方法通常效果更好。

另外,您可以使用上面概述的方法,但仍然可以通过在实验上创建custom events并使用window.optimizely.push(["trackEvent", "eventName"]);等调用向其发送数据来尝试使用Optimizely分析仪表板

This article may also be helpful to you.

关于ab-testing - 如何为单页应用程序设置Optimizely测试?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11199579/

10-11 08:03