Релиз совпал с сезонной распродажей, и конверсия выросла. Как отделить эффект релиза от влияния распродажи?

Релиз совпал с сезонной распродажей, и конверсия выросла. Как отделить эффект релиза от влияния распродажи?

Проходите собеседования с ИИ помощником Hintsage

Краткий ответ

Нужно сравнить пользователей, получивших релиз, с одновременной контрольной группой, которая подверглась той же распродаже, но не получила изменение. Разница между группами оценивает добавочный эффект релиза; простое сравнение конверсии до и после релиза смешивает эффект продукта с сезонным фактором.

Исторический контекст

До широкого применения контролируемых экспериментов продуктовые решения часто основывались на сравнении показателей до и после изменения. Такой подход не учитывает внешние события: сезонность, рекламные кампании, изменения цен и активность конкурентов.

Рандомизированный контроль появился как способ сформировать сопоставимую группу, которая живёт в тех же внешних условиях, но не получает проверяемое воздействие. Это помогает оценивать причинный эффект, а не только наблюдаемую корреляцию.

Постановка проблемы

Если после релиза конверсия выросла с 10% до 13%, нельзя сразу заключать, что причиной стал релиз. Распродажа могла самостоятельно увеличить показатель до 13% или, например, до 12%, оставив релизу лишь небольшой дополнительный вклад.

Неверное решение может привести к масштабированию неэффективной функции, ошибочному прогнозу выручки и неправильной оценке работы команды. Особенно опасно это при коротком периоде наблюдения, когда сезонный эффект велик относительно эффекта изменения.

Подробное решение

Пользователей случайно распределяют на тестовую группу, получающую релиз, и контрольную группу, которая продолжает пользоваться старой версией. Обе группы наблюдают в один и тот же период, поэтому на них воздействуют одна распродажа, одинаковый календарный фон и общие маркетинговые активности.

Если конверсия тестовой группы равна 13%, а контрольной — 12%, оценка добавочного эффекта составляет примерно 1 процентный пункт. Затем проверяют доверительный интервал, размер эффекта, статистическую неопределённость и влияние на ключевые защитные метрики, например возвраты или отмены заказов.

Основной анализ обычно проводят по намерению лечить: пользователя относят к группе, в которую его первоначально назначили, даже если он не увидел релиз или не воспользовался новой функцией. Это сохраняет преимущества рандомизации и отражает эффект предложения изменения для всей целевой аудитории.

До запуска нужно проверить корректность распределения групп, отсутствие перекрёстного показа версий и достаточную длительность теста. Если распродажа меняет поведение только части пользователей, полезно заранее определить такие сегменты, но не делать выводы по случайно выбранным подгруппам без достаточного объёма данных.

Если рандомизированный holdout невозможен, применяют разность разностей: сравнивают изменение метрики в затронутой группе с изменением в похожей незатронутой группе. Однако этот метод требует предположения о параллельных трендах до релиза; без него причинный вывод слабее, чем в рандомизированном эксперименте.

Важно, что контрольная группа отделяет эффект релиза именно в условиях распродажи. Если требуется понять эффект в обычный период, эксперимент повторяют вне распродажи или анализируют взаимодействие релиза с сезонным фактором. Один тест во время акции не гарантирует переносимость результата на другие условия.

Ситуация из практики

Команда интернет-магазина сократила форму оформления заказа за день до сезонной распродажи. Общая конверсия выросла, и были рассмотрены три варианта: принять рост как эффект релиза, сравнить показатели с прошлогодней распродажей или оставить небольшой holdout без новой формы.

Сравнение с прошлым годом оказалось слабым: изменились ассортимент, рекламный бюджет и состав трафика. Сравнение до и после также не отделяло релиз от распродажи. Команда выбрала рандомизированный holdout, сохранив старую форму для части пользователей.

В тестовой группе конверсия оказалась выше контрольной, но одновременно немного выросла доля отмен заказов. Поэтому решение принимали не по одной конверсии: оценили доверительные интервалы, выручку на пользователя и отмены. Форму оставили в работе после проверки, что прирост итоговой ценности пользователя сохраняется, а ухудшение защитной метрики находится в допустимом диапазоне.

Что кандидаты часто упускают

1. Достаточно ли сравнить конверсию после распродажи с конверсией до неё?

Нет. Такое сравнение измеряет суммарный эффект всех изменений между периодами. Даже если релиз был единственным изменением внутри продукта, распродажа, рекламный трафик, календарные особенности и внешние события могут объяснить часть или весь рост.

Для причинного вывода нужен одновременный контрфактический сценарий — оценка того, что произошло бы с пользователями без релиза. Рандомизированная контрольная группа приближает этот сценарий значительно надёжнее, чем исторический период.

2. Можно ли использовать контрольную группу, если распродажа действует на неё иначе?

Да, если различие вызвано случайными особенностями пользователей и группы достаточно сбалансированы. Но если релиз меняет реакцию пользователей на распродажу, измеренный эффект будет специфичен для этого контекста: он покажет влияние релиза именно во время акции.

Нужно отдельно анализировать взаимодействие релиза и распродажи, а выводы для обычных периодов делать осторожно. Перенос результата требует повторной проверки или убедительного обоснования стабильности эффекта.

3. Что делать, если после запуска часть контрольной группы всё же увидела новый релиз?

Это нарушение протокола, которое обычно уменьшает наблюдаемую разницу между группами и может занизить оценку эффекта. Сначала измеряют масштаб загрязнения, проверяют причины и оценивают, не связано ли оно с особенностями пользователей или каналов.

Основной анализ сохраняют по первоначальному назначению в группы, чтобы не потерять преимущества рандомизации. Дополнительно можно провести анализ фактически увидевших релиз пользователей, но он подвержен смещению: решение или возможность увидеть функцию может зависеть от поведения пользователя.