2013-06-26 10 views
13

Po uruchomieniu eksperymentu na mojej stronie chcę dowiedzieć się, który test i wariacja widzi aktualny użytkownik. Nie mogę znaleźć, jak to zrobić z Optimizely Javascript API.Uzyskaj test Optymalizatora A/B odwiedzającego i odmianę

+1

Czy sprawdziłeś sekcję dokumentacji API, która wymienia odniesienia do obiektu danych? Możesz zobaczyć warianty, do których jesteś obecnie przygotowywany za pomocą optimiz.variationIdsMap i optimiz.variationNamesMap – jamis0n

Odpowiedz

20

można uzyskać identyfikator eksperymentu pierwszym biegu (zakładając, że masz jeden), a następnie indeks zmienności (np, 0, 1, 2), nazwa i 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

Czy istnieje jakiś sposób na uzyskanie ** rzeczywistego ** identyfikatora eksperymentu? ** Rzeczywisty ** oznacza eksperyment zawierający kod, który próbuje uzyskać do niego dostęp. –

5

Aby rozwinąć w odpowiedzi Kevina Borders'a. Możliwe, że używasz więcej niż jednego eksperymentu na stronie. Poniżej zamieściłem poniższy fragment kodu, demonstrujący sposób zwracania tablicy aktywnych identyfikatorów odmian:

// 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

Czy jest jakiś sposób na uzyskanie ** rzeczywistego ** identyfikatora eksperymentu? ** Rzeczywisty ** oznacza eksperyment zawierający kod, który próbuje uzyskać do niego dostęp. –

+0

@SilverRingvee Czy możesz rozwinąć swoje pytanie? Być może daj przykład. Chciałbym pomóc, ale nie jestem do końca pewien, co próbujesz zdobyć? –

+0

Na przykład, jeśli próbuję uzyskać dostęp do identyfikatora eksperymentu w eksperymencie JavaScript. Tak więc ta sama funkcja zwróci inny identyfikator dla każdego eksperymentu, który zawiera tę funkcję. To samo powinno działać w wariancie JS .. Mam nadzieję, że teraz wyjaśniłem się lepiej i możesz mi pomóc. –

Powiązane problemy