Программируемый тест с равномерным распределением¶
Принцип работы¶
В отличие от обычного программируемого теста, в тесте с равномерным распределением варианты выдаются не случайно, а с учетом рекламного источника и устройства, с которого посетитель зашел на сайт.
Например, если пришло 10 посетителей из кампании Яндекс.Директ и 50 посетителей из кампании ВКонтакте, при равномерном распределении оба варианта теста получат по 5 посетителей из Яндекс.Директ и по 25 из ВКонтакте. Равномерное распределение позволяет сделать выборку посетителей однородной для всех вариантов и уменьшить влияние внешних факторов на результаты теста.
Настройка¶
Перед настройкой теста установите на вашем сайте счетчик Roistat.
-
В разделе A/B-тестирование выберите опцию Создать программируемый тест с равномерным распределением:
-
Укажите название теста. Затем введите названия вариантов теста латиницей через запятую. Названия вариантов нужно будет использовать в коде сайта, чтобы сайт изменялся в зависимости от выпавшего варианта.
Обратите внимание:
После создания теста вы не сможете изменить количество вариантов и их названия.
-
Нажмите Создать. Вы увидите шаблон кода для теста. Скопируйте его, нажав Скопировать в буфер:
-
В скопированный код добавьте действия, которые должны происходить при срабатывании каждого из вариантов.
-
Вставьте получившийся код на ваш сайт выше кода счетчика Roistat.
-
В списке тестов нажмите Запустить тест:
Пример настройки теста¶
Разработчик создал два альтернативных варианта верстки страницы https://site.com и разместил их по адресам https://site1.com и https://site2.com. Пользователя, который заходит на страницу https://site.com, необходимо оставить на этой странице или перенаправить на одну из тестовых страниц (в зависимости от выданного варианта).
Можно создать тест с вариантами base, first и second:
Скопированный код нужно отредактировать следующим образом:
-
Вариант base – это базовый вариант (страница https://site.com без изменений). Оставьте код этого варианта пустым:
<!-- BEGIN ROISTAT A/B TEST --> <script> window.onRoistatModuleLoaded = function () { window.roistat.registerAbTestCallback(1, function (variant) { switch (variant) { case "base": // Оставляем код базового варианта пустым, чтобы показывалась та страница, на которую пользователь изначально заходил break; case "first": // Напишите здесь действия, которые должны происходить при выпадении варианта теста "first" // Например, чтобы переадресовать пользователя на другую страницу, раскомментируйте строку ниже и укажите там адрес страницы: // window.location.href = "https://newsitevariant.com"; break; case "second": // Напишите здесь действия, которые должны происходить при выпадении варианта теста "second" // Если не нужно ничего делать, и нужно просто показать текущую страницу без изменений, то ничего добавлять сюда не нужно break; } }); }; </script> <!-- END ROISTAT A/B TEST -->
-
Вариант first – это вариант страницы, который должен открываться по адресу https://site1.com. Добавьте код, который осуществляет редирект на страницу https://site1.com при выпадении варианта first:
<!-- BEGIN ROISTAT A/B TEST --> <script> window.onRoistatModuleLoaded = function () { window.roistat.registerAbTestCallback(1, function (variant) { switch (variant) { case "base": // Оставляем код базового варианта пустым, чтобы показывалась та страница, на которую пользователь изначально заходил break; case "first": // Пользователя, которому выпал вариант “first”, переадресовываем на страницу site1.com: window.location.href = "https://site1.com"; break; case "second": // Напишите здесь действия, которые должны происходить при выпадении варианта теста "second" // Если не нужно ничего делать, и нужно просто показать текущую страницу без изменений, то ничего добавлять сюда не нужно break; } }); }; </script> <!-- END ROISTAT A/B TEST -->
-
Вариант second – это вариант страницы, который должен открываться по адресу https://site2.com. Добавьте код, который осуществляет редирект на страницу https://site2.com при выпадении варианта second:
<!-- BEGIN ROISTAT A/B TEST --> <script> window.onRoistatModuleLoaded = function () { window.roistat.registerAbTestCallback(1, function (variant) { switch (variant) { case "base": // Оставляем код базового варианта пустым, чтобы показывалась та страница, на которую пользователь изначально заходил break; case "first": // Пользователя, которому выпал вариант “first”, переадресовываем на страницу site1.com: window.location.href = "https://site1.com"; break; case "second": // Пользователя, которому выпал вариант “second”, переадресовываем на страницу site2.com: window.location.href = "https://site2.com"; break; } }); }; </script> <!-- END ROISTAT A/B TEST -->
Вставьте полученный код выше кода счетчика и запустите тест.
Как избавиться от «моргания» страницы
Иногда страница, на которую зашел пользователь, загружается до того, как пользователю выдается вариант теста. Из-за этого при получении одного из тестовых вариантов (в примере выше – first или second) и редиректе на другую страницу произойдет «моргание» (на мгновение пользователь увидит изначальную страницу).
Чтобы избежать «моргания» страницы, скройте содержимое страницы до выдачи варианта теста:
<script>
// перед тем, как запросить вариант теста, скрываем содержимое страницы:
document.getElementsByTagName("body").style.display = "none";
</script>
<!-- BEGIN ROISTAT A/B TEST -->
<script>
window.onRoistatModuleLoaded = function () {
window.roistat.registerAbTestCallback(1, function (variant) {
switch (variant) {
case "base":
// Оставляем код базового варианта пустым, чтобы показывалась та страница, на которую пользователь изначально заходил
break;
case "first":
// Пользователя, которому выпал вариант “first”, переадресовываем на страницу site1.com:
window.location.href = "https://site1.com";
break;
case "second":
// Пользователя, которому выпал вариант “second”, переадресовываем на страницу site2.com:
window.location.href = "https://site2.com";
break;
}
});
};
</script>
<!-- END ROISTAT A/B TEST -->
Если посетителю выпал вариант base, при котором редиректа не происходит, отобразите на экране содержимое страницы:
<script>
// перед тем, как запросить вариант теста, скрываем содержимое страницы:
document.getElementsByTagName("body").style.display = "none";
</script>
<!-- BEGIN ROISTAT A/B TEST -->
<script>
window.onRoistatModuleLoaded = function () {
window.roistat.registerAbTestCallback(1, function (variant) {
switch (variant) {
case "base":
// Оставляем код базового варианта пустым, чтобы показывалась та страница, на которую пользователь изначально заходил
break;
case "first":
// Пользователя, которому выпал вариант “first”, переадресовываем на страницу site1.com:
window.location.href = "https://site1.com";
break;
case "second":
// Пользователя, которому выпал вариант “second”, переадресовываем на страницу site2.com:
window.location.href = "https://site2.com";
break;
}
});
};
// показываем контент страницы, если выдан вариант “base” без редиректа
window.onRoistatAbTestsApplied = function () {
document.getElementsByTagName("body").style.display = "block";
}
</script>
<!-- END ROISTAT A/B TEST -->