Оптимизируем липкий сеанс

Я только что попробовал Optimizely. Проблема в том, что он покажет пользователю различные варианты. Иногда мы не ожидаем такого поведения. Например, если я изменю цвет на красный с синего, Optimizely будет случайным образом выбирать между оригинальным (синим) и вариацией (красным) для того же пользователя, который не согласуется. Как я могу сделать Optimizely, чтобы всегда показывать один и тот же вариант пользователю?

3 ответа

Поместите следующий код в свой экспериментальный 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 существует, запустите любой код, который вы хотите, чтобы этот конкретный вариант выполнялся. Ниже приведен пример установки файла cookie с именем tester, срок действия которого истекает через 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 блокируется рекламными блокировщиками, это может произойти, если пользователь включит свой рекламный блокировщик после того, как они попадут на страницу, и проведет эксперимент, чтобы увидеть - они получат оригинальную версию.

Другие вопросы по тегам