Собесов

Сценарий: дроп на 3-м шаге воронки — как разобрать

Продуктовая аналитикаFunnel and conversionСредняяMiddle

Условие

Воронка: view → cart → checkout → payment → success. На шаге checkout → payment 70% уходят. Разобрать причину.

Решение

Шаг 1: сегментировать дроп

SELECT segment, COUNT(DISTINCT user_id) AS users,
       SUM(CASE WHEN reached_payment THEN 1 ELSE 0 END)::float
       / COUNT(DISTINCT user_id) AS conv
FROM funnel
GROUP BY segment
ORDER BY conv;

Сегменты для проверки:

  • Платформа: iOS / Android / Web
  • Браузер: Chrome / Safari / Firefox
  • Geo: страна / регион
  • Сумма корзины: < 1k, 1-5k, > 5k
  • Тип товара: категории
  • Способ оплаты: карта / СБП / купон
  • Новый/возвратный

Цель — найти сегмент с аномально низким conv или аномально высоким размером.

Шаг 2: смотреть, что юзеры делают на шаге

Heatmap кликов, session recordings (Hotjar/FullStory). Типичные находки:

  • Кнопка скрыта под клавиатурой на мобиле.
  • Поле «промокод» не валидируется — юзер 5 раз тыкает и уходит.
  • Captcha грузится 10 секунд.
  • На последнем шаге появилась комиссия, которой не было в корзине — ценовой шок.

Шаг 3: технические сигналы

SELECT error_type, COUNT(*) AS n
FROM events
WHERE step = 'checkout' AND event = 'error'
GROUP BY 1 ORDER BY 2 DESC;
  • API timeouts на checkout-эндпоинте.
  • Ошибки 3DS со стороны банка.
  • Anti-fraud false positives.

Шаг 4: гипотеза → A/B

После того, как нашли вероятную причину — A/B-тест с фиксом, не «выкатить и надеяться».

Чек-лист причин

Причина Сигнал
Технический баг error_rate ↑, одно устройство/браузер
UX-проблема drop равномерный по сегментам, recordings показывают замешательство
Ценовой шок (доставка/комиссия) drop при больших корзинах, отказ на view-цены
Доверие/безопасность drop при первом checkout, новые юзеры
Способ оплаты недоступен drop по странам/банкам

Подводные камни

  1. «Средний дроп 70%» — иногда это всегда так было; нужен бенчмарк за прошлый период.
  2. Сегментация без поправок на маленькие выборки — увидите «дроп по Молдове 100%», а там 3 юзера.
  3. Drop = 1 − conv. Conv считается на тех, кто дошёл до шага, а не на топ воронки.
  4. Если воронка не атомарна (юзер может вернуться), last_step искажает. Использовать «дошёл когда-либо».
  5. Шоковые изменения метрик часто внешние: новый релиз, проблема у вендора, региональный outage.

Эталонный ответ

Сегментировать дроп (платформа, geo, сумма, способ оплаты) → смотреть recordings/error logs → формулировать гипотезу → A/B-тест с фиксом. Не «выкатить и надеяться».

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти