Managing a variation's allocation according to specific criteria
Kameleoon randomly allocates a variation to a visitor by default. The assignment algorithm logic is explained in our statistical paper in the "Kameleoon's assignation algorithm" section. Here is the function used by Kameleoon:
function (experiment)
{
var registeredVariationId;
var deviationRandom = experiment.obtainVariationAssignmentRandomNumber();
var total = 0.0;
for (var i = 0, l = experiment.variations.length; i < l; ++i)
{
total += experiment.variations[i].deviation;
if (deviationRandom <= total)
{
registeredVariationId = experiment.variations[i].id;
break;
}
}
return registeredVariationId ? registeredVariationId : "none";
}
However, this function can be overloaded to change how the variation is selected and displayed to a visitor. For instance, choosing a variation according to a JavaScript variable can be beneficial. Here is an example:
function(experiment)
{
if(experiment.id == "ID TEST"){ //code for the experiment you would like a specific behavior. It has to be adapted to your use case
if(typeof versionTest != "undefined") { //versionTest variable has to be available before loading Kameleoon. Otherwise it will not work.
if(versionTest == 1)
return 81103; //ID of the variant 1
else if(versionTest == 2)
return 81104; //ID of the variant 2
else if(versionTest == 3)
return 81105; //ID of the variant 3
else if(versionTest == 4) //ID of the variant 4
return 81106;
}
}
else{ //default behavior is applied for all other experiments
var registeredVariationId;
var deviationRandom = experiment.obtainVariationAssignmentRandomNumber();
var total = 0.0;
for (var i = 0, l = experiment.variations.length; i < l; ++i)
{
total += experiment.variations[i].deviation;
if (deviationRandom <= total)
{
registeredVariationId = experiment.variations[i].id;
break;
}
}
return registeredVariationId ? registeredVariationId : "none";
}
}
You must place this code in your account. To apply the code:
-
Use the left menu to go to Admin > Projects.
-
Click Configuration on your website's card.
)
- Click Experiment.
- Add the script in the Variation selection script field.