К содержанию
MGRAMСтатьи

UTM-метки для Telegram-бота: воронка от перехода до оплаты

24 октября 20267 мин чтенияКоманда MGRAM

UTM-метки хорошо работают на сайте, но до Telegram-бота не доходят: из ссылки t.me бот получает только start-параметр. Поэтому рекламу бота часто оценивают на глаз. Разберём, как связать переход по рекламе с запуском, регистрацией и оплатой и увидеть, какой источник окупается.

Коротко. Telegram передаёт боту из ссылки только start-параметр — до 64 символов, без UTM-меток. Чтобы видеть источник каждого пользователя, ведите рекламу через короткую ссылку MGRAM UTM: при переходе она запоминает источник и подставляет в адрес бота номер перехода {click_id}. Бот отправляет шаги — запуск, регистрацию, оплату — с этим номером, а панель считает воронку и выручку по каждой ссылке.

Почему UTM-метки не работают в Telegram-боте

На сайте UTM-метки из адреса читает система аналитики. С ботом так не выйдет: по ссылке https://t.me/your_bot?start=oct_mailing бот получает только команду /start oct_mailing, остальное Telegram отбрасывает. В start-параметр помещается до 64 символов: латиница, цифры, _ и -.

Источник можно зашить прямо в start-параметр, но тогда всё остальное придётся делать самому: хранить метку у пользователя, считать переходы, отделять повторные запуски, сводить регистрации и оплаты по источникам. И вы не узнаете, сколько людей нажали на ссылку, но не запустили бота.

Как устроена воронка в MGRAM UTM

ЭлементЧто это
ПроектКуда вести трафик — бот, сайт или Mini App — и шаги после перехода, например «Запуск → Регистрация → Оплата»
СсылкаКороткий адрес вида https://utm.mgram.biz/abc1234 со своими UTM-метками — по одной на каждый источник
ПереходMGRAM запоминает клик, подставляет плейсхолдеры в адрес и ведёт человека дальше
ШагВаш бот, сайт или сервер сообщает о действии человека с номером перехода — шаг засчитывается ссылке и её меткам

UTM-метки ссылки хранятся на стороне MGRAM, поэтому для бота не нужно втискивать их в start-параметр: туда уходит только номер перехода.

Плейсхолдеры в адресе

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

ПлейсхолдерЧто подставится
{click_id}Номер перехода — передавайте его дальше по воронке: в /start бота или в адрес сайта
{utm_source} … {utm_term}UTM-метки ссылки
{sub1} … {sub5}Значения из адреса перехода, например …/abc1234?sub1=vk
{project}, {link}Номер проекта и код ссылки
{country}Страна посетителя
{ts}Время перехода в формате Unix

Готовые адреса:

  • бот — https://t.me/your_bot?start={click_id};
  • Mini App — https://t.me/your_bot/app?startapp={click_id};
  • сайт — https://your-site.ru/?mgram_cid={click_id}. К адресу сайта UTM-метки ссылки добавляются сами, если их там нет.

Как настроить воронку по шагам

  1. Откройте панель app.mgram.biz → «Реклама» → «UTM-воронки» и нажмите «Новый проект».
  2. Выберите шаблон: «Telegram-бот» (шаги «Запуск бота → Регистрация → Оплата»), «Сайт» («Визит на сайт → Заявка → Покупка»), «Mini App» («Открытие Mini App → Целевое действие») или «Своя».
  3. Проверьте адрес с {click_id}, задайте название и UTM-метки первой ссылки.
  4. Сохраните ключ записи: он показывается один раз. Храните его в переменных окружения сервера, например MGRAM_UTM_KEY.
  5. Создайте по ссылке на каждый источник: рассылку, Показы, свой канал, блогера.
  6. Скопируйте код отправки шагов из вкладки «Интеграция» и вставьте его в бота или на сайт.

Переходы считаются сразу, без кода. Код нужен, чтобы видеть шаги после перехода.

Как бот отправляет шаги

Шаг — это POST-запрос на https://utm.mgram.biz/api/v1/events с ключом записи в заголовке Authorization: Bearer utm_sk_…. В панели есть готовый код для Python, aiogram, JavaScript, PHP, cURL и сайта.

ПолеЗачем
stepКлюч шага: start, register, pay. Новый ключ сам добавится в воронку
click_idНомер перехода — связывает шаг со ссылкой и источником
linkКод ссылки, если перехода не было, например бот открыли по его собственной ссылке
user_idВаш идентификатор пользователя
value, currencyСумма шага и валюта — из них панель считает выручку по ссылкам
event_idВаш номер события: повторная отправка не задвоит шаг
uniquetrue — шаг засчитывается один раз на переход или пользователя

Как это выглядит в боте:

  1. Пользователь нажимает рекламную ссылку и запускает бота — бот получает /start <номер перехода>.
  2. В обработчике /start бот отправляет шаг start с этим номером и сохраняет номер у пользователя.
  3. После регистрации бот отправляет register с тем же номером, после оплаты — pay с суммой.

Пример тела запроса: {"step": "register", "click_id": "…", "user_id": "42", "unique": true}. События можно отправлять пачкой — до 100 в одном запросе.

На сайте подключите скрипт https://utm.mgram.biz/t.js с публичным ключом проекта: из браузера засчитываются только шаги, которые в проекте отмечены «сайт». Ключ записи в код страницы не вставляйте — он только для сервера и бота.

UTM-ссылки в рекламе MGRAM

  • Рассылка и Показы. Поставьте ссылку в кнопку поста. Чтобы сравнить услуги между собой, сделайте копию поста для каждой — со своей ссылкой.
  • Запуски бота. На шаге «Ссылка» заказа запусков пришлите адрес с кодом ссылки: https://t.me/your_bot?start=<код ссылки>. Бот передаёт этот код в шаге как click_id — шаги засчитаются этой ссылке, а значит, этому заказу.
  • ИИ-ассистент. Через MGRAM в ChatGPT и Claude ассистент сам создаёт проект, ссылки и копии постов, а потом показывает по каждому заказу переходы и шаги воронки.

Что видно в статистике

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

Переходы ботов предпросмотра — Telegram, VK, Facebook и других — считаются отдельно и не портят статистику. IP-адреса MGRAM не хранит: уникальных посетителей считает по суточному обезличенному отпечатку.

Как сравнить источники

МетрикаКак считать
Цена переходаРасходы на источник ÷ переходы по его ссылке
Цена запускаРасходы ÷ шаги start
Цена регистрацииРасходы ÷ шаги register
Цена оплатыРасходы ÷ шаги pay
Возврат на рекламу (ROAS)Сумма шагов pay ÷ расходы

Дешёвый переход ещё не значит дешёвого клиента: решения принимайте по цене оплаты и возврату на рекламу. Общие метрики рекламы — CPM, CTR, CPA — разобраны в статье как отслеживать рекламу в Telegram.

Частые ошибки

  • Бот не сохранил номер перехода. Шаг start пришёл, а регистрации и оплаты — без click_id, и источник теряется. Сохраняйте номер у пользователя сразу при /start.
  • Одна ссылка на все источники. Тогда воронка общая и сравнивать нечего — создайте ссылку на каждое размещение.
  • Ключ записи в браузере. Из кода страницы его может взять кто угодно. На сайте — только публичный ключ и шаги «сайт».
  • Повторы оплат. Передавайте event_id: повторная отправка того же события не задвоит выручку.

Лимиты

До 50 проектов, до 500 ссылок в проекте, до 20 шагов воронки, до 1 200 событий в минуту и до 100 в одном запросе. Полное описание API — в документации MGRAM UTM.

Частые вопросы

Можно ли передать UTM-метки в Telegram-бота?

Напрямую — нет: из ссылки t.me бот получает только start-параметр до 64 символов. С MGRAM UTM метки остаются у короткой ссылки, а в start-параметр уходит номер перехода {click_id}, по которому шаги бота связываются с источником.

Как отследить конверсию Telegram-бота в оплату?

Ведите рекламу через ссылку MGRAM UTM с адресом https://t.me/your_bot?start={click_id}. При запуске бот сохраняет номер перехода и отправляет шаги start, register и pay — панель покажет воронку и выручку по каждой ссылке.

Нужно ли программировать?

Переходы считаются без кода. Для шагов после перехода нужно несколько строк в боте или на сайте — готовый код для Python, aiogram, JavaScript, PHP и cURL есть в панели во вкладке «Интеграция».

Подойдёт ли это для сайта и Mini App?

Да. Для сайта используйте адрес с {click_id} и скрипт t.js, для Mini App — ссылку со startapp={click_id}. В панели есть шаблоны «Сайт» и «Mini App» с готовыми шагами.

Сколько стоят UTM-воронки MGRAM?

Отдельной платы сейчас нет: UTM-воронки входят в панель app.mgram.biz. Вы платите только за рекламу, которую заказываете.

Можно ли сравнить заказы MGRAM по оплатам?

Да. Дайте каждому заказу свою ссылку — в кнопке поста или в start-параметре заказа запусков. Тогда шаги и выручка по ссылке — это результат конкретного заказа.