2013-06-26 21 views
13

私のウェブサイトで実験を実行すると、現在の訪問者がどのテストとバリエーションを見ているかを知ることができます。私はOptimizely Javascript APIからこれを行う方法を見つけることができません。訪問者のOptimizely A/Bテストとバリエーションを取得する

+1

データオブジェクトを参照しているAPIドキュメントのセクションを確認しましたか?現在cookiedされているバリエーションは、optimizely.variationIdsMapとoptimizely.variationNamesMap – jamis0n

答えて

20

あなたが最初の走行実験(あなたは1を持っていると仮定した場合)のIDを取得することができ、その後、変化指数(例えば、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

で確認できます。**実際の**実験IDを取得する方法はありますか? **実際の**は、アクセスしようとしているコードを含む実験を意味します。 –

5

を展開するにはケビンボーダーズの答え。あるページで複数の実験を行っている可能性があります。以下のコードスニペットを使用して、アクティブなバリエーションIDの配列を返す方法を示します。

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

**実際の**実験IDを取得する方法はありますか? **実際の**は、アクセスしようとしているコードを含む実験を意味します。 –

+0

@ SilverRingvee質問を拡大できますか?おそらく例を提供します。私は助けたいですが、私はあなたが得ようとしていることを正確には分かりません。 –

+0

たとえば、実験用のJavascriptで実験IDにアクセスしようとするとします。したがって、同じ関数は、その関数を含む各実験ごとに異なるIDを返します。バリエーションJSでも同様です。 私は自分自身をより良く説明し、あなたが私を助けてくれることを願っています。 –

関連する問題