When I run an experiment on my website, I want to be able to find out which test and variation the current visitor sees. I can\'t find how to do this from the Optimizely Javascr
You can get the ID of the first running experiment (assuming you have one), and then the variation index (e.g., 0, 1, 2), name, and 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];
To expand on Kevin Borders' answer. It's possible that you are running more than one experiment on a page. I've included a code snippet below, demonstrating how to return an array of active variation IDs:
// 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;
}