Implementation
(Demo-ish Time)
Adaption
- Whatever tracker you use, easily to adapt
tracking_adapter: {
experiment_start: (experimentName, variant) => {
jwTrackingManager.eventTrack(variant, {
category: `EXP_${experimentName}`,
label: '__ACTIVATED__',
nonInteraction: true
});
},
goal_complete: (experimentName, variant, eventName) => {
jwTrackingManager.eventTrack(variant, {
category: `EXP_${experimentName}`,
label: `GOAL_${eventName}`,
nonInteraction: true
});
}
}
Goals
.run(($state, $rootScope, experimentRepository) => {
const goalName = 'CLICKOUT';
const goal = new window.AlephBet.Goal(goalName);
$rootScope.$on('clickout.clicked', () => goal.complete());
// experimentRepository = wrapper around AlephBet
experimentRepository.addGoal(goal);
});
Experiments
.run((experimentRepository, urlDataRepository, $timeout) => {
const experimentName = 'BUYBOX_ABOVE_SEASONS';
const goals = ['NOT_BOUNCED', 'PAGEVIEWS', 'CLICKOUT'];
$timeout(() => {
urlDataRepository.getActiveUrlPromise()
.then(urlData => {
const experimentData = {
name: experimentName,
variants: ['control', 'above_seasons'],
trigger: () => experimentRepository.isSeoTraffic() &&
urlData.object_type === 'show'
};
experimentRepository.addExperiment(experimentData, goals);
});
});
});
Our Experiment Config
{
"TRAILER_ZAPPER": {
"sample": 1.0,
"platforms": ["ios", "android"]
},
"ABOVE_SEASONS": {
"sample": 0.1,
"platforms": ["web"]
}
}
Raw Numbers
- Right out of Google Analytics
Result
- Retrieve Data
- A: Control Group
- B: Above Seasons