Question

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 Javascript API.

Was it helpful?

Solution

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];

OTHER TIPS

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;
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top