КПКейсПрактика
Все материалы
Продуктовая аналитика

Conversion rate: как собрать честную воронку

Как считать conversion rate по воронке: выбрать вход, порядок событий и окно конверсии, найти настоящий drop-off и не перепутать пользователей с сессиями.

9 июля 2026 г.11 мин
Метрики
Аналитика
Эксперименты
conversion rate
конверсия
воронка
funnel
drop-off
events
гайд · старт · SQL, BI, events
Иллюстрация с надписью Conversion: два специалиста собирают прозрачную воронку из последовательных этапов.

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

Коротко

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

  • Покажи в отчёте входной шаг и знаменатель, а не только итоговый процент.
  • Считай уникальных пользователей, если вопрос про опыт человека; сессии — если вопрос про конкретную попытку.
  • Выбирай окно по реальному циклу: 20 минут для checkout и несколько дней для B2B onboarding — это разные задачи.
  • Разбирай переходы между шагами, а не только общий conversion rate.

Сначала сформулируй путь словами

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

Один и тот же итоговый event может жить в разных путях. Покупка после повторного визита и покупка в первой сессии — не одна конверсия. Первая больше говорит про весь спрос и маркетинг, вторая — про ясность предложения и friction в checkout.

Что нужно зафиксировать до первого графика
НастройкаВопрос, на который отвечает
ЕдиницаСчитаем людей, аккаунты, устройства или сессии?
ВходКто попадает в знаменатель: все визиты, новые пользователи, пользователи с намерением?
ПорядокШаги должны идти строго друг за другом или между ними допустимы другие действия?
ОкноСколько времени пользователю нормально нужно, чтобы закончить путь?
ЦельКакой event доказывает результат: payment_succeeded, report_viewed, lead_qualified?

Воронка должна показывать количество и переход

Итоговая конверсия здесь 11,5%, но для решения важнее не сам процент, а форма пути. Между первым визитом и началом регистрации теряется 71% входа. Потом до первого отчёта доходит заметная часть тех, кто уже создал workspace. Значит, начинать расследование с финального экрана нельзя: сначала нужно понять, почему люди не решаются начать путь.

Пример onboarding-воронки: от первого визита до первого отчёта

Значения условные. Под каждым шагом видно долю от входа; именно переходы дают гипотезы для проверки.

Открыл pricing100% от входа
Начал регистрацию29% от входа
Создал workspace17% от входа
Открыл первый отчёт12% от входа

Closed funnel, open funnel и порядок событий

Closed funnel считает только тех, кто вошёл с первого шага. Он хорош для диагностики конкретного сценария: например, pricing → registration → first report. Open funnel разрешает пользователю появиться на любом шаге, поэтому удобен для проверки целого процесса и качества данных, но не отвечает на тот же вопрос.

Порядок тоже меняет смысл. Для onboarding чаще нужен порядок “сначала это, потом то”: иначе пользователь мог создать workspace вчера, а открыть pricing сегодня, и система назовёт это одним успешным путём. В продукте между основными шагами обычно допустимы другие действия; требовать exact order стоит только для действительно жёсткого технического процесса.

Не сравнивай разные режимы как одну метрику

Если в прошлом месяце в BI считали уникальных пользователей за 7 дней, а в новом отчёте сессии за 24 часа, цифры могут разойтись без единого изменения в продукте. В названии графика лучше сразу писать единицу, окно и режим.

SQL для последовательной onboarding-воронки

Ниже один из прозрачных способов посчитать closed funnel по пользователям. Каждый следующий CTE присоединяется к предыдущему шагу и проверяет окно в семь дней от первого входного события. Это важнее, чем просто проверить наличие всех четырёх events у одного user_id: порядок и срок здесь часть определения метрики.

Воронка pricing → регистрация → workspace → первый отчёт за 7 дней
with pricing as (
  select user_id, min(occurred_at) as pricing_at
  from events
  where event_name = 'pricing_viewed'
    and occurred_at >= current_date - interval '30 days'
    and occurred_at < current_date
  group by 1
),
registration as (
  select p.user_id, p.pricing_at, min(e.occurred_at) as registration_at
  from pricing p
  join events e on e.user_id = p.user_id
    and e.event_name = 'registration_completed'
    and e.occurred_at >= p.pricing_at
    and e.occurred_at < p.pricing_at + interval '7 days'
  group by 1, 2
),
workspace as (
  select r.user_id, r.pricing_at, min(e.occurred_at) as workspace_at
  from registration r
  join events e on e.user_id = r.user_id
    and e.event_name = 'workspace_created'
    and e.occurred_at >= r.registration_at
    and e.occurred_at < r.pricing_at + interval '7 days'
  group by 1, 2
),
first_report as (
  select distinct w.user_id
  from workspace w
  join events e on e.user_id = w.user_id
    and e.event_name = 'report_viewed'
    and e.occurred_at >= w.workspace_at
    and e.occurred_at < w.pricing_at + interval '7 days'
)
select 'pricing_viewed' as step, count(*) as users from pricing
union all select 'registration_completed', count(*) from registration
union all select 'workspace_created', count(*) from workspace
union all select 'report_viewed', count(*) from first_report;

Как найти причину drop-off

Большой drop-off — это место для вопроса, а не готовый диагноз. Сравни тех, кто прошёл переход, с теми, кто остановился: канал, платформа, браузер, тариф, скорость загрузки, ошибки, время между шагами. Если конверсия просела только на Android после релиза, она уже не похожа на общую проблему смысла pricing-страницы.

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

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

Что почитать дальше

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