Skip to content

Instantly share code, notes, and snippets.

@gthayer
Created February 7, 2018 16:42
Show Gist options
  • Save gthayer/08802c53f3a2ef757eb5ee06ac1a7157 to your computer and use it in GitHub Desktop.
Save gthayer/08802c53f3a2ef757eb5ee06ac1a7157 to your computer and use it in GitHub Desktop.
A/B Test Helper Functions
// Get URL Parameter
function getQueryVariable(variable) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
// Set random number
function setABVar( variation_count ) {
var varID = Math.floor( Math.random() * variation_count );
return varID;
}
function chooseVariation( experimentID, variations, param ) {
if ( typeof cxApi === 'undefined' ) {
return 0;
}
var chosenVariation = cxApi.getChosenVariation( experimentID );
if ( chosenVariation < 0 ) {
cxApi.setChosenVariation( setABVar( variations ) , experimentID );
chosenVariation = cxApi.getChosenVariation( experimentID );
}
if ( getQueryVariable( param ).length > 0 ) {
chosenVariation = parseInt( getQueryVariable( param ) );
}
return chosenVariation;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment