10

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

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

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

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

4

2 回答 2

3

实际上有几种方法可以做到这一点,您选择哪个选项在很大程度上取决于对您来说最简单的方法以及您计划如何分析数据。

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

我建议创建一个实验,该实验将在不同时间激活一堆其他实验。激活实验将针对每个人,并在他们到达您的向导时立即运行。其他实验将设置手动激活并由该实验触发。

激活实验的代码如下:

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 等第三方分析工具:

您可以使用与上述类似的代码在一个实验中完成所有这些操作,但在每个“if”部分而不是激活实验,您可以运行变体代码,对向导进行更改并将特殊跟踪信息发送到您的分析,以便以后使用报告。您必须为此方法进行自己的统计显着性计算(因为 Optimizely 的数据不会“干净”),但如果配置正确,这种方法通常效果更好。

或者,您可以使用上面概述的方法,但仍然尝试通过在实验上创建自定义事件并使用以下调用向他们发送数据来使用 Optimizely 分析仪表板window.optimizely.push(["trackEvent", "eventName"]);

这篇文章也可能对您有所帮助。

于 2016-01-18T22:36:26.797 回答
1

您可能需要自己执行此操作,使用 Optimizely 的 JS API 来触发他们的操作并告诉它您的用户做了什么:https ://www.optimizely.com/docs/api

于 2013-08-01T21:41:39.743 回答