Telegram-боты и каналы: одно подключение — полная атрибуция
В Telegram-трафике бот - это мост атрибуции. Сам по себе клик по рекламе - просто редирект: как только бот подключён, Leadgram точно знает, какой клик нажал Start, из какой кампании пришёл подписчик, и может передать эти конверсии в Meta или Google, чтобы алгоритм закупки приводил вам больше пользователей, которые реально доходят до конверсии. Десять минут настройки здесь делают измеримым каждый доллар спенда потом.
Добавление бота
- Откройте @BotFather в Telegram, отправьте
/newbotи скопируйте API-ключ, который он вернёт (выглядит как110201543:AAHdqTcv...). - Перейдите в Боты и нажмите «Добавить бота».
- Вставьте ключ в поле «API-ключ Telegram-бота» - платформа проверит токен и сама подтянет
@usernameбота. - Выберите тип: «Боевой бот» (боевой трафик, реальные пользователи) - для бота, который пойдёт в рекламу, «Черновой бот» (для тестирования флоу) - для экспериментов.
- Нажмите «Добавить бота».
Бот сразу получает бейдж «Активен», но этот бейдж означает только то, что строка сохранилась - это не сигнал, что Telegram принял подключение. За кулисами сохранение бота заодно регистрирует для него Telegram-вебхук, так что поднимать сервер или куда-то вставлять URL не нужно. Эта регистрация выполняется в режиме best-effort: если вызов не проходит, бот всё равно сохраняется и всё равно показывает «Активен», а Telegram просто никогда не узнаёт, куда слать обновления. Если только что добавленный бот молчит, смотрите пункт «Бот молчит на Start» ниже.
Как только вебхук заработал, Telegram присылает на него сообщения и нажатия кнопок, и то и другое уходит в вашу воронку. Изменения состава канала и заявки на вступление тоже долетают до вебхука, но пока ничто не превращает их в активность флоу - подробнее об этом в следующем разделе.

Как бот атрибутирует клики
Цепочка выглядит так: трекинг-ссылка кампании → лендинг → deep-link t.me/your_bot?start=click_id. Когда пользователь жмёт Start, Leadgram сопоставляет payload с сохранённым кликом (подойдёт и ref_id от внешнего трекера), запускает активный флоу, привязанный к этому боту, с его первого узла и записывает чат в базу подписчиков бота. Добавьте во флоу узел события «Старт бота» - и клик перейдёт в статус «Старт» и уйдёт серверной конверсией. Повторный /start всегда перезапускает воронку с начала - именно так пользователи Telegram и ожидают от бота.
Каналы и события вступления
Каналы не определяются автоматически - каждый вы добавляете вручную.
- На странице Каналы нажмите «Не видите свой канал?».
- Заполните «Telegram ID канала» (отрицательное число, начинается с
-100- найдите его через @userinfobot или переслав любой пост канала в @JsonDumpBot), название и тип - Публичный или Приватный. - Отправьте форму. Канал сохранится со статусом «Ожидание».
Статус может быть и «Ожидает активации», и «Активен», но сейчас ничто не выводит канал из «Ожидания» само по себе. Считайте эту строку справочной записью, которую вы привязываете к кампаниям и постбэкам, а не живой проверкой состояния.
channel_join - полноценный тип события: его можно пересылать через Постбэки, а при доставке в Meta он маппится на событие Subscribe. Но пока ничто не отслеживает реальные вступления в Telegram - сегодня событие channel_join срабатывает только если в середину Флоу вставлен узел события «Вступление в канал», либо через прямой вызов API. join_request существует как тип события, но как вариант узла флоу не предлагается.
Где боты встречаются в продукте
- Флоу - флоу можно создать без привязанного бота, но перед тем как перевести его в статус «Активна», бот понадобится. Селектор бота в диалоге создания флоу показывает ботов, добавленных здесь.
- Кампании - бот кампании проставляется на каждый клик, чтобы сопоставление по
/startсрабатывало надёжно. - Пуши - список получателей - это подписчики, которых бот собрал через Start. Подписчик, заблокировавший бота, выпадает из этого списка, а повторный
/startвозвращает его обратно.
Частые грабли
- Токен не принимается. Копируйте ключ из BotFather целиком: цифры, двоеточие и 35-символьный хвост. Обрезанная вставка мгновенно проваливает валидацию.
- Бот молчит на Start. Одна и та же картина может быть вызвана двумя разными причинами. Чаще всего бот отвечает только тогда, когда к нему привязан флоу в статусе «Активна»; без активного флоу апдейт игнорируется - так задумано. Реже регистрация вебхука незаметно проваливается в момент добавления бота: строка всё равно сохраняется без ошибки, но Telegram так и не узнаёт, куда доставлять обновления. Если первая причина исключена, а бот всё равно не отвечает, обратитесь в поддержку, чтобы перерегистрировать вебхук.
- Старты без атрибуции. Пользователи, открывшие бота по username, минуют трекинг-ссылку - в payload нет click id. Весь платный трафик ведите только через трекинг-URL кампании.
- Канал завис в «Ожидании». Это нормальное текущее состояние, а не признак поломки - см. «Каналы и события вступления» выше. Работе канала в кампаниях и постбэках это не мешает.
- Тесты на боевом боте. Держите отдельного «Черновика» для экспериментов с флоу, чтобы сломанный тест никогда не задел живой трафик.
- Удаление бота. Любой флоу, который был на нём «Активна», не ломается, а падает в «Черновик» - клики, кампании и история канала, привязанные к боту, остаются нетронутыми. Привяжите к флоу нового бота и снова переведите его в «Активна», прежде чем он начнёт срабатывать.