Рассчитайте выборку и проведите A/B-тест честно
Настройка A/B-экспериментов: формулировка гипотез, расчёт выборки, выбор инструментов (Яндекс.Метрика, VWO), дизайн теста и анализ результатов.
Как агент работает
Тест начинается с гипотезы в формате «если внести изменение, то метрика изменится на X процентов, потому что есть такое обоснование» — конкретной, измеримой, обоснованной и опровергаемой. Метрики разводятся на три роли: одна основная OEC, по которой принимается решение, вторичные для понимания эффекта и guardrail вроде времени загрузки и bounce rate, которым запрещено ухудшаться.
Выборка считается из базовой конверсии, минимального детектируемого эффекта, уровня значимости 0.05 и мощности 80%. При базе 3% и MDE в два процентных пункта нужно 11 200 наблюдений на группу, при базе 5% и MDE в пять пунктов — 2 920, при базе 20% и MDE в один пункт — 245 000. Длительность держится в границах от 7 дней ради полного недельного цикла до 4–6 недель, дальше внешние факторы размывают результат.
Дизайн подбирается под задачу: A/B в долях 50 на 50 как стандарт, A/B/n с поправкой Бонферрони при двух и более вариантах, многовариантный тест для комбинаций элементов, бандитский алгоритм при дефиците трафика, последовательный тест для раннего завершения. Рандомизация идёт по пользователю, по сессии для анонимных или по кластеру при сетевых эффектах, а сегменты фиксируются заранее, до старта.
На маркетплейсе рандомизация по пользователю невозможна, поэтому A/B сводится к switchback: минимум два цикла переключений с wash-out, один изменённый артефакт и одна метрика — CTR из выдачи для главного фото и заголовка либо CR карточки для описания, цены и размерной сетки. При базовом CTR 2% нужно порядка 16 000 показов на вариант, а при трафике меньше 500 показов в день тест не запускается вовсе.
Протокол важнее результата: подглядывать в цифры каждый день нельзя, останавливать тест раньше расчётного срока — тоже, а post-hoc сегментация и игнорирование множественных сравнений превращают находку в шум. Значение p не меньше 0.05 читается как «данных не хватило», а не как «эффекта нет». Если расчёт длительности даёт больше 30 дней, честнее сменить артефакт и померить органический lift, чем называть это экспериментом.
Перед настройкой теста
- Что тестируем? — страница, элемент, email, рекламное объявление, цена, функция
- Текущая метрика — конверсия, CTR, средний чек, retention (и текущее значение)
- Цель — какой прирост хотим увидеть (MDE — минимальный детектируемый эффект)
- Трафик — сколько посетителей/событий в день/неделю
- Платформа — сайт, мобильное приложение, email, реклама
Пошаговый протокол
Шаг 1. Формулировка гипотезы
Если [изменение], то [метрика] изменится на [X%], потому что [обоснование].
Примеры:
- Если упростить форму регистрации с 5 до 3 полей, то конверсия в регистрацию вырастет на 15%, потому что снизится барьер входа.
- Если добавить социальное доказательство (отзывы) на лендинг, то конверсия в заявку вырастет на 10%, потому что повысится доверие.
Гипотеза должна быть:
- Конкретной — чёткое изменение и метрика
- Измеримой — можно посчитать результат
- Обоснованной — есть логика или данные за ней
- Опровергаемой — может быть неверной
Шаг 2. Выбор метрик
- Основная метрика (OEC) — одна метрика, по которой принимаем решение
- Вторичные метрики — дополнительные показатели для контекста
- Guardrail-метрики — показатели, которые не должны ухудшиться
| Тип | Пример | Зачем |
|---|---|---|
| Основная (OEC) | Конверсия в покупку | Принятие решения |
| Вторичная | Средний чек, глубина просмотра | Понимание эффекта |
| Guardrail | Время загрузки, bounce rate | Не навредить |
Шаг 3. Расчёт выборки
Параметры для расчёта:
- Базовая конверсия (p₁) — текущее значение метрики
- MDE — минимальный эффект, который хотим обнаружить
- Статистическая значимость (α) — обычно 0.05 (95%)
- Мощность теста (1-β) — обычно 0.80 (80%)
Формула для размера выборки (на одну группу):
Таблица быстрых оценок (на одну группу, α=0.05, β=0.20):
| Базовая конверсия | MDE ±1% | MDE ±2% | MDE ±5% | MDE ±10% |
|---|---|---|---|---|
| 1% | 15 800 | 4 000 | 650 | 170 |
| 3% | 44 600 | 11 200 | 1 800 | 460 |
| 5% | 72 700 | 18 200 | 2 920 | 740 |
| 10% | 138 000 | 34 600 | 5 540 | 1 400 |
| 20% | 245 000 | 61 400 | 9 840 | 2 480 |
| 50% | 384 000 | 96 000 | 15 400 | 3 840 |
Длительность теста:
Минимум — 7 дней (полный недельный цикл). Максимум — 4-6 недель (после этого внешние факторы размывают результат).
Шаг 4. Дизайн эксперимента
Типы тестов:
| Тип | Когда использовать |
|---|---|
| A/B (50/50) | Стандарт: контроль vs вариант |
| A/B/n | 2+ вариантов (нужна коррекция Бонферрони) |
| Многовариантный (MVT) | Тестирование комбинаций элементов |
| Бандитский алгоритм | Оптимизация в реальном времени, меньше трафика |
| Последовательный тест | Раннее завершение при явном результате |
Рандомизация:
- По пользователю (user-level) — стандарт для веб-продуктов
- По сессии — для анонимных пользователей
- По региону/кластеру — для офлайн или сетевых эффектов
Сегментация (заранее):
- Новые vs вернувшиеся пользователи
- Десктоп vs мобильные
- Платные vs бесплатные
- География (Москва/СПб vs регионы)
Шаг 5. Инструменты
Рекомендуемые инструменты для российского рынка:
| Инструмент | Тип | Когда использовать |
|---|---|---|
| Яндекс.Метрика (эксперименты) | Бесплатный | A/B на сайте, интеграция с Директом |
| VWO | SaaS | Визуальный редактор, многовариантные тесты |
| Optimizely | SaaS | Enterprise, серверные эксперименты |
| Google Optimize (закрыт) | — | Используй альтернативы |
| Firebase A/B Testing | Бесплатный | Мобильные приложения |
| Unleash / Flagsmith | Open source | Feature flags + эксперименты |
| Самописное решение | Код | Полный контроль, нужна экспертиза |
| Statsig | SaaS | Product analytics + эксперименты |
Яндекс.Метрика — настройка эксперимента:
Шаг 6. Запуск и мониторинг
Чеклист перед запуском:
- Гипотеза сформулирована и записана
- Метрики определены (OEC, вторичные, guardrail)
- Выборка рассчитана, длительность определена
- QA: оба варианта работают корректно
- Трекинг настроен и проверен (events firing)
- Нет конфликтов с другими активными тестами
- Согласованы критерии принятия решения
- Документация эксперимента заполнена
Во время теста:
- НЕ подглядывай в результаты каждый день (peeking problem)
- Мониторь guardrail-метрики (ошибки, время загрузки)
- НЕ останавливай тест раньше расчётного срока
- Если критическая ошибка — останови и зафиксируй
Шаг 7. Анализ результатов
Статистическая значимость:
- p-value < 0.05 → результат статистически значим
- p-value ≥ 0.05 → недостаточно данных (НЕ «нет эффекта»)
- Доверительный интервал: если включает 0 — результат незначим
Принятие решения:
| Результат | p < 0.05 | Действие |
|---|---|---|
| Вариант лучше | Да | Внедряй |
| Вариант лучше | Нет | Продли тест или увеличь MDE |
| Вариант хуже | Да | Откатывай, анализируй почему |
| Нет разницы | Нет | Оставь контроль, тестируй другое |
Типичные ошибки анализа:
- Остановка теста при первом значимом результате
- Сегментация post-hoc (вишнёвый отбор)
- Игнорирование множественных сравнений
- Смешивание статистической и практической значимости
- Сезонность и внешние факторы (праздники, акции)
A/B-тесты на маркетплейсах (WB / Ozon)
Маркетплейс — не сайт: контроль над выдачей частичный, рандомизация юзера невозможна (нет cookies/session per user). A/B сводится к последовательным переключениям контента с lift-измерением.
Что можно тестировать
| Артефакт | Wildberries | Ozon |
|---|---|---|
| Главная фотография карточки | /content/api/v2/upload/file + /cards/update | /v1/product/pictures/import |
| Заголовок | /content/api/v2/cards/update | /v1/product/attributes/update |
| Описание | /content/api/v2/cards/update | /v1/product/attributes/update |
| Цена | /api/v2/prices | /v1/product/import/prices |
| Инфографика на главной | загрузка как фото | загрузка как фото |
| Видео | частично (через ЛК) | /v1/product/pictures/import (video URL) |
| Размерная сетка | /content/api/v2/cards/update (атрибут) | /v1/product/attributes/update |
Дизайн теста для маркетплейса
1. Switchback-тест (последовательный) — основной.
2. Параллельный тест на сиблингах. Если в портфеле есть 2 похожих SKU в одной нише — поставить A на один, B на другой, измерить CTR и CR за один период. Точность ниже (товары не идентичны), но в 2–3 раза быстрее. Использовать только если SKU действительно близкие (одна категория, диапазон цен ±15%).
3. Не запускать. Если показов <500/день на SKU — шум перекроет эффект, A/B не валиден. В этом случае — менять, мерить органический lift как маркетинговое решение, не как тест.
Метрики (одна, не composite)
Главная метрика — одна из двух, выбрать ДО старта:
- CTR из выдачи (показы → клики на карточку) — для теста главного фото, заголовка, инфографики на главной.
- CR карточки (клики на карточку → заказ) — для теста описания, размерной сетки, цены.
Источники CTR/CR:
- WB:
/api/v2/analytics-statisticsили/content/api/v2/cards/detail— показы, переходы, заказы по карточкам. - Ozon:
/v1/analytics/dataс metricshits_view_search,hits_view_pdp,ordered_units:- CTR =
hits_view_pdp / hits_view_search - CR =
ordered_units / hits_view_pdp
- CTR =
Расчёт длительности (MDE 10%, α=0.05, β=0.2)
| Бейзлайн | Нужно на вариант | При трафике |
|---|---|---|
| CTR 5% | ~6 000 показов | 3–5 дней при 1500 показов/день |
| CTR 2% | ~16 000 показов | 10–14 дней при 1500 показов/день |
| CR 2% | ~30 000 кликов | 2–4 недели на низкочастотном SKU |
| CR 5% | ~12 000 кликов | 1–2 недели |
Если расчёт даёт >30 дней — тест нерелевантен (тренд/сезон сломает). Менять артефакт, мерить органический lift вместо A/B.
Чек-лист A/B на маркетплейсе
- Артефакт изменения один (фото ИЛИ заголовок ИЛИ цена ИЛИ описание).
- Главная метрика одна (CTR или CR), зафиксирована до старта.
- Длительность рассчитана из MDE и текущего трафика; не <500 показов/день.
- Switchback с wash-out, минимум 2 цикла A→B→A→B.
- Период исключает праздники/распродажи/ЧП.
- Заранее зафиксирован критерий «значимости» (p-value < 0.05 + достигнут MDE).
- Эффект ранжирования учтён: первые 2 дня после смены фото исключены из расчёта.
- Сохранена базовая версия артефакта на случай отката (фото в локальном архиве, текст в diff).
Похожие навыки
Попробуйте этот навык
Зарегистрируйтесь и используйте навык «Настройка A/B-тестов» бесплатно.