in src/apache-unomi-tracker.js [251:300]
registerOptimizationTest: function (optimizationTestNodeId, goalId, containerId, variants, ajax, variantsTraffic) {
// check persona panel forced variant
var selectedVariantId = wem.getUrlParameter('wemSelectedVariantId-' + optimizationTestNodeId);
// check already resolved variant stored in local
if (selectedVariantId === null) {
if (wem.storageAvailable('sessionStorage')) {
selectedVariantId = sessionStorage.getItem(optimizationTestNodeId);
} else {
selectedVariantId = wem.getCookie('selectedVariantId');
if (selectedVariantId != null && selectedVariantId === '') {
selectedVariantId = null;
}
}
}
// select random variant and call unomi
if (!(selectedVariantId && variants[selectedVariantId])) {
var keys = Object.keys(variants);
if (variantsTraffic) {
var rand = 100 * Math.random() << 0;
for (var nodeIdentifier in variantsTraffic) {
if ((rand -= variantsTraffic[nodeIdentifier]) < 0 && selectedVariantId == null) {
selectedVariantId = nodeIdentifier;
}
}
} else {
selectedVariantId = keys[keys.length * Math.random() << 0];
}
if (wem.storageAvailable('sessionStorage')) {
sessionStorage.setItem(optimizationTestNodeId, selectedVariantId);
} else {
wem.setCookie('selectedVariantId', selectedVariantId, 1);
}
// spread event to unomi
wem._registerEvent(wem._completeEvent(variants[selectedVariantId].event));
}
if (selectedVariantId) {
// update persona panel selected variant
if (window.optimizedContentAreas && window.optimizedContentAreas[optimizationTestNodeId]) {
window.optimizedContentAreas[optimizationTestNodeId].selectedVariant = selectedVariantId;
}
// display the good variant
document.getElementById(variants[selectedVariantId].content).style.display = '';
}
},