Метрики Telegram-бота: что считать, чтобы не жить в иллюзиях

У многих Telegram-каналов сейчас есть бот: для лид-магнита, записи на консультацию, квиза, оплаты, обучения или прогрева.
И вот тут начинается самое интересное.
В канале мы обычно смотрим на просмотры, реакции и подписчиков. Но если у вас есть бот, настоящая аналитика начинается именно там. Потому что бот показывает не «красивый охват», а реальные действия: кто нажал кнопку, дошёл до заявки, оплатил, вернулся через неделю или отвалился после первого сообщения.
Разберём базовые метрики, которые стоит считать 👇
ERR: насколько людям интересно

ERR - это вовлечённость.
Проще говоря: из тех, кто увидел сообщение, сколько людей что-то сделали.
Для канала:
ERR = реакции + комментарии + репосты + клики / просмотры × 100%Для Telegram-бота лучше считать так:
ERR bot = действия в боте / доставленные сообщения × 100%Что считать действием:
- 1.
клик по кнопке;
- 2.
ответ на сообщение;
- 3.
прохождение шага;
- 4.
заявка;
- 5.
оплата.
Пример:
| Кампания | Доставлено | Клики | Заявки | Оплаты |
|---|---|---|---|---|
| Welcome | 10 000 | 1 700 | 420 | 95 |
| Promo | 8 500 | 930 | 110 | 48 |
Если было 10 000 доставок и 1 700 кликов:
ERR click = 1 700 / 10 000 × 100% = 17%SQL-пример:
SELECT
campaign_id,
COUNT(DISTINCT user_id) FILTER (
WHERE event = 'message_delivered'
) AS delivered,
COUNT(DISTINCT user_id) FILTER (
WHERE event = 'button_click'
) AS clicked,
ROUND(
COUNT(DISTINCT user_id) FILTER (
WHERE event = 'button_click'
)::decimal /
NULLIF(COUNT(DISTINCT user_id) FILTER (
WHERE event = 'message_delivered'
), 0) * 100, 2
) AS err_click
FROM bot_events
GROUP BY campaign_id;Важно: не смешивайте всё в одну кучу. Клик - это интерес. Заявка - намерение. Оплата - деньги.
Retention: возвращаются ли пользователи

Retention показывает, сколько людей вернулись в бота через день, неделю или месяц.
Формула:
Retention Day N =
активные пользователи в Day N / пользователи в Day 0 × 100%Для бота Day 0 — это обычно /start.
Пример:
| Когорта | Day 0 | Day 1 | Day 7 | Day 30 |
|---|---|---|---|---|
| 01.08 | 1000 | 420 | 180 | 75 |
| 02.08 | 850 | 310 | 120 | 40 |
Считаем:
Retention D1 = 420 / 1 000 × 100% = 42%
Retention D7 = 180 / 1 000 × 100% = 18%
Retention D30 = 75 / 1 000 × 100% = 7,5%SQL-пример:
WITH starts AS (
SELECT user_id, MIN(event_date) AS start_date
FROM bot_events
WHERE event = 'start'
GROUP BY user_id
),
activity AS (
SELECT DISTINCT user_id, event_date
FROM bot_events
WHERE event IN (
'button_click',
'message_sent',
'payment',
'lesson_completed'
)
)
SELECT
s.start_date AS cohort_date,
COUNT(DISTINCT s.user_id) AS users_day_0,
COUNT(DISTINCT a.user_id) FILTER (
WHERE a.event_date = s.start_date + INTERVAL '1 day'
) AS day_1_users,
ROUND(
COUNT(DISTINCT a.user_id) FILTER (
WHERE a.event_date = s.start_date + INTERVAL '1 day'
)::decimal / COUNT(DISTINCT s.user_id) * 100, 2
) AS retention_day_1
FROM starts s
LEFT JOIN activity a
ON s.user_id = a.user_id
GROUP BY s.start_date;Если retention почти нулевой - бот не стал полезной точкой контакта. Человек зашёл, посмотрел и ушёл. Значит, надо чинить сценарий, ценность или повторные касания.
CAC и LTV: сходится ли экономика

CAC - сколько стоит привлечь одного клиента.
CAC = рекламные расходы / новые клиентыПример:
| Источник | Расход | Клиенты | CAC |
|---|---|---|---|
| TG Ads | 120 000 ₽ | 240 | 500 ₽ |
| Посевы | 80 000 ₽ | 100 | 800 ₽ |
| Инфлюенсеры | 150 000 ₽ | 180 | 833 ₽ |
Но сам по себе CAC мало что говорит. 800 ₽ за клиента - дорого или нормально? Непонятно, пока не знаем LTV.
LTV - сколько денег в среднем приносит клиент.
LTV = выручка / количество клиентовГлавная связка:
LTV / CACПример:
| Источник | CAC | LTV | LTV/CAC |
|---|---|---|---|
| TG Ads | 500 ₽ | 1 800 ₽ | 3.6 |
| Посевы | 800 ₽ | 1 200 ₽ | 1.5 |
| Инфлюенсеры | 833 ₽ | 900 ₽ | 1.08 |
Как читать:
• LTV/CAC < 1 — привлекаем в минус;
• 1–2 — экономика хрупкая;
• 2–3 — уже можно работать;
• 3+ — есть потенциал масштабирования.
Метрики эффективности Telegram-бота
Кроме ERR, retention и LTV/CAC, я бы смотрел ещё вот это:
Start Rate
Start Rate = запуски бота / переходы в бота × 100%Показывает, насколько хорошо работает вход в бота.
Lead Conversion
Lead Conversion = лиды / запуски бота × 100%Показывает, сколько пользователей оставили заявку, контакт или прошли нужный шаг.
Payment Conversion
Payment Conversion = оплаты / запуски бота × 100%Можно считать глубже:
Payment Conversion from Leads = оплаты / лиды × 100%Так видно, где проблема: во входе, прогреве или оффере.
Drop-off Rate
Drop-off = ушедшие на шаге / вошедшие на шаг × 100%Пример:
| Шаг | Пользователи | Потеря |
|---|---|---|
| Start | 1000 | - |
| Квиз | 700 | 30% |
| Оффер | 400 | 43% |
| Оплата | 80 | 80% |
Если на одном шаге резкая просадка - не надо гадать. Надо идти туда и переписывать сценарий.
Block Rate
Block Rate = заблокировали бота / доставленные сообщения × 100%Если блокировки растут - бот раздражает: часто пишет, даёт нерелевантные сообщения или слишком давит продажей.
Минимальный дашборд

| Метрика | Зачем нужна |
|---|---|
| Start Rate | понять силу входа |
| ERR Click | увидеть интерес |
| Lead Conversion | оценить прогрев |
| Payment Conversion | проверить оффер |
| Retention D1/D7/D30 | понять, возвращаются ли |
| Drop-off Rate | найти слабые шаги |
| Block Rate | поймать раздражение |
| CAC | стоимость клиента |
| LTV | ценность клиента |
| LTV/CAC | можно ли масштабироваться |
Telegram-бот - это не просто “прокладка” между каналом и продажей. Это полноценная воронка.
Если считать только просмотры постов, можно легко обмануться.
Настоящая картина появляется, когда вы видите всю цепочку:
увидел → перешёл → запустил → кликнул → оставил заявку → оплатил → вернулсяИменно связка ERR → retention → конверсии → LTV/CAC показывает, есть ли у бота реальная экономика или только красивые цифры в канале.
Если хотите внедрить такого бота под свой проект - можете заказать разработку у меня в ЛС. Мой ЛС
А если пока хотите просто прикинуть бюджет



Дискуссия