Ответ 1
На самом деле существует несколько способов сделать это, и какой вариант, который вы выберете, будет во многом зависеть от того, что вам будет проще и как вы планируете анализировать данные.
Если вы хотите использовать панель оптимизации Optimisely analytics:
Я бы рекомендовал создать один эксперимент, который активирует кучу других экспериментов в разное время. Эксперимент по активации будет нацелен на всех и сразу же запускается, когда они попадут к вашему волшебнику. Другие эксперименты будут настроены с помощью ручной активации и вызваны этим экспериментом.
Активационный эксперимент имел бы код вроде:
window.optimizely = window.optimizely || [];
function hashChanged() {
if(location.hash === 'publishing-step') {
window.optimizely.push(['activate', 0000000000]);
}
if(location.hash === 'checkout-step') {
window.optimizely.push(['activate', 1111111111]);
}
}
window.addEventListener('hashchange', hashChanged, false);
Или вы могли бы вызвать window.optimizely.push(['activate', xxxxxxxxx]); прямо из кода вашего сайта вместо создания эксперимента по активации и прослушивания hashchange.
Если вы хотите использовать сторонний инструмент аналитики, такой как Google Analytics:
Вы можете сделать все это в одном эксперименте с кодом, аналогичным приведенному выше, но в каждом разделе "если" вместо активации эксперимента вы можете запустить код вариации, который вносит изменения в мастер, и отправляет специальную информацию отслеживания в вашу аналитику сладкий для последующей отчетности. Вы должны будете сделать свой собственный статистический расчет значения для этого метода (поскольку данные Optimizely не будут "чистыми" ), но этот метод фактически лучше работает при правильной настройке.
В качестве альтернативы вы можете использовать описанный выше метод, но по-прежнему пытаетесь использовать панель оптимизации Optimisely analytics, создав пользовательские события в своем эксперименте и отправляя данные на они используют вызовы типа window.optimizely.push(["trackEvent", "eventName"]);