【发布时间】:2016-07-01 06:52:04
【问题描述】:
我刚刚尝试过 Optimizely。问题是它会向用户显示不同的变化。有时我们并不期望这种行为。例如,如果我将颜色从蓝色更改为红色,Optimizely 将在同一用户的原始(蓝色)和变体(红色)之间随机选择,这是不一致的。如何使 Optimizely 始终向用户显示相同的变化?
【问题讨论】:
标签: optimizely
我刚刚尝试过 Optimizely。问题是它会向用户显示不同的变化。有时我们并不期望这种行为。例如,如果我将颜色从蓝色更改为红色,Optimizely 将在同一用户的原始(蓝色)和变体(红色)之间随机选择,这是不一致的。如何使 Optimizely 始终向用户显示相同的变化?
【问题讨论】:
标签: optimizely
将以下代码放入您的实验 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
}
【讨论】:
您好,我是 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
【讨论】:
另外请记住,Optimizely 会被广告拦截器拦截,如果用户在进入页面并提供实验查看后打开广告拦截器,就会发生这种情况 - 他们将获得原始版本。
【讨论】: