2013-06-26 2 views
13

Когда я запускаю эксперимент на своем веб-сайте, я хочу узнать, какой тест и вариация видит текущий посетитель. Я не могу найти, как это сделать с Optimizely Javascript API.Получить Оптимизацию A/B посетителя Оптимизация A/B

+1

Вы проверил раздел документации API, где упоминается ссылающейся объект данных? Вы можете видеть изменения, которые вы в настоящее время готовили с помощью optimizely.variationIdsMap и optimizely.variationNamesMap – jamis0n

ответ

20

Вы можете получить идентификатор первого беговой эксперимента (если у вас есть), а затем индекс вариации (например, 0, 1, 2), имя и ID:

var experimentID = window['optimizely'].data.state.activeExperiments[0]; 
var variationIndex = window['optimizely'].data.state.variationMap[experimentID]; 
var variationName = window['optimizely'].data.state.variationNamesMap[experimentID]; 
var variationID = window['optimizely'].data.state.variationIdsMap[experimentID]; 
+0

Есть ли какой-либо возможный способ получить ** фактический ** идентификатор эксперимента? ** Фактический ** означает эксперимент, содержащий код, который пытается получить к нему доступ. –

5

Расширить на ответ Кевина Границы. Возможно, вы используете более одного эксперимента на странице. Я включил фрагмент код ниже, демонстрирующий, как возвращать массив активных идентификаторов вариации:

// Return a list of active Optimizely variation IDs 
function activeVariations(){ 

    // Multiple variations may currently be active 
    var activeVariations = []; 

    // Get state settings from optimizely object 
    var state = window['optimizely'].data.state; 

    // For each of the active experiments: 
    for (var i = state.activeExperiments.length - 1; i >= 0; i--) { 

    // Current experiment ID 
    var experimentID = state.activeExperiments[i]; 

    // Current corresponding variation ID 
    var variationID = state.variationIdsMap[experimentID]; 

    // If we have an active variation, add it to our array 
    if (variationID) { activeVariations.push(variationID[0]); } 
    } 

    // List of active variations 
    return activeVariations; 
} 
+0

Есть ли какой-либо возможный способ получить ** фактический ** идентификатор эксперимента? ** Фактический ** означает эксперимент, содержащий код, который пытается получить к нему доступ. –

+0

@SilverRingvee Вы можете расширить свой вопрос? Возможно, пример. Я хотел бы помочь, но я не совсем уверен, что вы пытаетесь получить? –

+0

Например, если я попытаюсь получить идентификатор эксперимента в эксперименте Javascript. Таким образом, одна и та же функция будет возвращать разные идентификаторы для каждого эксперимента, который содержит эту функцию. То же самое должно работать и в Variation JS. Надеюсь, теперь я объяснил себя лучше, и вы можете мне помочь. –

Смежные вопросы