1

我刚刚尝试过优化。问题是它会向用户显示不同的变化。有时我们并不期望这种行为。例如,如果我将颜色从蓝色更改为红色,Optimizely 将在同一用户的原始(蓝色)和变体(红色)之间随机选择,这是不一致的。如何使 Optimizely 始终向用户显示相同的变化?

4

3 回答 3

1

将以下代码放入您的实验 JavaScript:

setCookie = function (c_name,value,exdays) {
  var exdate=new Date();
  exdate.setDate(exdate.getDate() + exdays);
  var expires = exdate.toUTCString();
  var isIE8 = (document.documentMode !== undefined);
  if (exdays == 0) {
      expires = (isIE8 == true) ? "" : "0";
  }
  var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+expires);
  document.cookie=c_name + "=" + c_value;
}

在每个变体(例如蓝色变体、红色变体等)中,调用 setCookie 并检查该特定变体中用户的 cookie 是否存在。如果 cookie 确实存在,则运行您希望该特定变体运行的任何代码。下面是一个设置名为 tester 的 cookie 的示例,该 cookie 将在 30 天后过期。

setCookie('tester',true,30);

if(document.cookie.indexOf('tester')>-1){
  //RUN YOUR CODE HERE IF THIS VISITOR HAS THIS COOKIE
}
于 2016-07-07T13:43:39.240 回答
1

您好,我是 Optimizely 的工程师,

您也可以尝试更面向开发人员的 Fullstack 产品。有了这个,您将获得一个随包一起安装的 SDK,并使用代码实现您的测试逻辑。

例子:

npm install optimizely-client-sdk

const optimizely = require('optimizely-client-sdk');
const optimizelyClient = optimizely.createInstance({
  datafile: {} // this is your experiment config which you get from the Optimizely UI
});

const variation = optimizelyClient.activate('color_experiment', 'user_1');
if (variation === 'blue') {
  // do something for blue
} else if (variation === 'red') {
  // do something for red
} else {
  // default case
}

并且只要您将与user_id第二个参数完全相同的参数传递给activate,就可以保证始终为该用户获得相同的变体。

有关入门的更多信息或详细信息,请查看:https ://developers.optimizely.com/x/solutions/sdks/getting-started/index.html?language=javascript

于 2017-06-17T23:26:16.417 回答
0

另请记住,Optimizely 会被广告拦截器阻止,如果用户在进入页面并提供实验查看后打开他们的广告拦截器,就会发生这种情况 - 他们将获得原始版本。

于 2016-07-09T04:38:50.380 回答