Объясните, какое искажение возникает, если воронка считает шаг пройденным независимо от порядка событий.

Объясните, какое искажение возникает, если воронка считает шаг пройденным независимо от порядка событий.

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

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

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

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

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

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

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

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

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

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

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

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

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

Простая проверка наличия всех событий отвечает на вопрос «были ли у пользователя такие действия когда-либо». Корректная последовательная воронка отвечает на другой вопрос: «прошёл ли пользователь этапы в нужном порядке в рамках одного пользовательского пути».

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

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

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

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

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

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

  1. Достаточно ли сортировать события по времени поступления в хранилище?

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

  1. Нужно ли исключать пользователя, если один из шагов имеет некорректное время?

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

  1. Почему одного ограничения порядка недостаточно для оценки воронки?

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