Conversion rate (CR, коэффициент конверсии) — это доля пользователей или сессий, совершивших целевое действие, из всех, у кого была возможность его совершить. Формула проста: CR = (конверсии) / (база (знаменатель)) × 100%. Вся сложность не в делении, а в том, что считать в числителе и знаменателе — визиты, сессии или уникальных пользователей — и в каком окне.
Что такое conversion rate и зачем он аналитику
Конверсия отвечает на вопрос, какая доля дошла до цели. Целью может быть покупка, регистрация, подписка, добавление в корзину, клик по кнопке. CR — это метрика эффективности шага или всей воронки: если из 10 000 визитов покупку сделали 320, конверсия в покупку равна 3,2%.
CR всегда относителен к конкретному действию и конкретной базе. «Конверсия сайта 4%» без уточнения «во что» и «от чего» — бессмысленная фраза. На собеседовании аналитика первым делом проверяют, уточняете ли вы знаменатель.
Как выбрать знаменатель: визиты, сессии или пользователи
Один и тот же числитель даст разные проценты в зависимости от базы. Три типовых знаменателя:
| Знаменатель | Что считаем | Когда использовать |
|---|---|---|
| Визиты / просмотры | каждое открытие страницы | эффективность лендинга, рекламного объявления |
| Сессии | сгруппированные события одного захода | воронка внутри одного визита (корзина → оплата) |
| Уникальные пользователи | по user_id или cookie за период | продуктовая конверсия, retention, LTV-модели |
Практическое правило: числитель и знаменатель должны быть в одной единице. Если считаете уникальных покупателей, делите на уникальных посетителей, а не на визиты. Смешение единиц — самая частая ошибка, которая завышает или занижает CR в разы.
Пример расхождения (числа иллюстративные). За неделю: 12 000 визитов, 8 000 уникальных пользователей, 400 покупок от 360 уникальных покупателей.
- CR по визитам:
400 / 12000 = 3,3% - CR по пользователям:
360 / 8000 = 4,5%
Разница в 1,2 п.п. — не ошибка данных, а разные вопросы. По визитам — насколько эффективен трафик, по пользователям — какая доля людей купила.
Чем micro-конверсии отличаются от macro
Macro-конверсия — главное бизнес-действие (оплата, оформленная подписка). Micro-конверсии — промежуточные шаги, которые к нему ведут: регистрация, подтверждение email, добавление в корзину, начало оплаты.
Micro-конверсии нужны, чтобы понять, *где* теряются пользователи. Если macro-CR упал, разбивка по micro-шагам покажет проблемный этап. Это прямой мост к воронке: воронка — это цепочка micro-конверсий, заканчивающаяся macro-конверсией. Пошаговый расчёт разобран в отдельном материале про воронку конверсии в SQL.
Как считать CR: формула и разбор на числах
Базовая формула:
CR = (число конверсий) / (число в базе) × 100%
Пример на иллюстративных данных. Интернет-магазин за день:
- Уникальных посетителей: 5 000
- Добавили в корзину: 900
- Начали оформление: 500
- Оплатили: 300
Считаем пошагово:
- Визит → корзина:
900 / 5000 = 18% - Корзина → оформление:
500 / 900 = 55,6% - Оформление → оплата:
300 / 500 = 60% - Сквозная (визит → оплата):
300 / 5000 = 6%
Перемножение шаговых конверсий даёт сквозную: 0,18 × 0,556 × 0,60 ≈ 0,06. Это удобная проверка целостности расчёта.
Как посчитать конверсию по воронке в SQL
Типичная задача — из таблицы событий получить число уникальных пользователей на каждом шаге и конверсии между ними. Пример с обобщёнными данными (не привязан ни к какой конкретной задаче тренажёра):
WITH steps AS (
SELECT
COUNT(DISTINCT user_id) FILTER (WHERE event = 'visit') AS visits,
COUNT(DISTINCT user_id) FILTER (WHERE event = 'add_cart') AS carts,
COUNT(DISTINCT user_id) FILTER (WHERE event = 'purchase') AS purchases
FROM events
WHERE event_date >= DATE '2024-01-01'
)
SELECT
visits,
carts,
purchases,
ROUND(100.0 * carts / NULLIF(visits, 0), 1) AS cr_visit_cart,
ROUND(100.0 * purchases / NULLIF(visits, 0), 1) AS cr_visit_purchase
FROM steps;
Три момента, за которые снимают баллы на собеседовании: COUNT(DISTINCT ...) вместо простого COUNT (иначе один активный пользователь с пятью визитами раздует базу), NULLIF(..., 0) для защиты от деления на ноль, и 100.0 вместо 100 — чтобы не получить целочисленное деление с нулём в дробной части.
Как оценить доверительный интервал для конверсии
CR — это доля, поэтому у неё есть погрешность, зависящая от размера выборки. При n = 50 конверсии 6% и 4% статистически неотличимы; при n = 50 000 разница уже значима. Для доли используют нормальное приближение (интервал Вальда):
CI = ± z · (1-)n
где ` — наблюдаемая конверсия, n — размер базы, z = 1,96 для 95%.
Пример: = 0,06, n = 5000.
- Стандартная ошибка: 0,06 · 0,94 / 5000 ≈ 0,00336
. - Полуширина: 1,96 · 0,00336 ≈ 0,0066
. - Интервал: 6% ± 0,66%
, то есть от 5,34% до 6,66%.
Проверка на Python:
import numpy as np
p, n, z = 0.06, 5000, 1.96
se = np.sqrt(p * (1 - p) / n)
print(round(p - z*se, 4), round(p + z*se, 4)) # 0.0534 0.0666
Нормальное приближение работает, когда n 5 и n(1-) 5. При маленьком n или очень редком событии берите интервал Уилсона — он корректнее у краёв. Разбор доверительных интервалов на пальцах есть в материале про доверительный интервал простыми словами.
Частые ошибки при расчёте конверсии
- Двойной счёт. COUNT(*)
илиCOUNT(event)вместоCOUNT(DISTINCT user_id), когда база — пользователи. Один человек с несколькими визитами считается многократно, и знаменатель раздувается. - Смешение единиц. Числитель в уникальных пользователях, знаменатель в визитах (или наоборот). Всегда сверяйте единицу измерения числителя и базы.
- Игнор окна атрибуции. Покупка через неделю после визита относится к тому визиту или нет? Без фиксированного окна (например, конверсия в течение 7 дней после первого касания) числа не воспроизводятся между отчётами.
- Конверсия без контекста знаменателя. «CR вырос до 8%» может означать не рост качества, а падение трафика: слабый источник отключили, осталась горячая аудитория. Смотрите CR вместе с абсолютными числами конверсий.
- Деление на ноль и целочисленное деление. Нет NULLIF
— запрос падает или отдаёт NULL; забыли100.0— в PostgreSQL и SQLite целочисленное деление обнулит проценты. - Сравнение CR без учёта размера выборки. Разница 4,1% против 4,3% на 200 наблюдениях — почти наверняка шум. Проверяйте через доверительный интервал или A/B-тест.
Кратко: как правильно считать conversion rate
Зафиксируйте целевое действие, выберите знаменатель (визиты, сессии или пользователи) и держите числитель в той же единице. Разбивайте macro-конверсию на micro-шаги, чтобы видеть, где отвал. В SQL используйте COUNT(DISTINCT), NULLIF` и явное окно атрибуции. Не сравнивайте два CR без оценки погрешности.
Потренируйтесь собрать воронку и посчитать конверсии на реальных схемах в SQL-тренажёре, а расчёт погрешности доли — в Python-тренажёре. Разбор таких задач с интервьюером есть в разделе вопросов с собеседований.
Частые вопросы
Какая конверсия считается хорошей?
Универсального «хорошего» значения нет: норма сильно зависит от отрасли, канала и конкретного шага воронки. Сравнивайте не с чужими бенчмарками, а со своей исторической конверсией и между сегментами.
Чем conversion rate отличается от CTR?
CTR — это клики, делённые на показы, он измеряет интерес к ссылке или объявлению. Conversion rate считает целевые действия (покупку, регистрацию) от базы пользователей или сессий и относится к более глубокому шагу воронки.
Можно ли перемножать конверсии отдельных шагов воронки?
Да: произведение пошаговых конверсий даёт сквозную, если шаги идут последовательно и считаются в одном окне на одной базе. При разных знаменателях или окнах перемножение даст неверный результат. Отработать логику воронки удобно на SQL-задачах.
Как понять, почему упала конверсия?
Разбейте CR по сегментам — источник трафика, устройство, регион — и проверьте каждый шаг воронки отдельно. Часто причина не в продукте, а в знаменателе: приток ботов или нецелевого трафика раздувает базу и занижает конверсию.
Что такое макроконверсия и микроконверсия?
Макроконверсия — это главное бизнес-действие: покупка, оплата подписки, заявка. Микроконверсии — промежуточные шаги к ней: добавление в корзину, регистрация, подписка на рассылку. Они помогают увидеть, где воронка проседает до финальной цели.