优化粘性会话

时间:2016-07-01 06:52:05

标签: optimizely

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

3 个答案:

答案 0 :(得分: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;
}

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

setCookie('tester',true,30);

if(document.cookie.indexOf('tester')>-1){
  //RUN YOUR CODE HERE IF THIS VISITOR HAS THIS COOKIE
}

答案 1 :(得分: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

答案 2 :(得分:0)

另请注意,优化广告会受到广告拦截器的阻止,如果用户在他们访问网页后打开广告拦截器并提供实验可以看到 - 他们会获得原始版本,就会发生这种情况。