Deep-link в Telegram-боте: откуда приходят клиенты

Одна ссылка на бота не отвечает на вопрос «что сработало». Разбираем параметр start — как устроен, какую схему меток выбрать, как бот его читает, где владелец видит отчёт и чем метка отличается от UTM.

Павел Седов, основатель CHATBOSS.PRO · · Обновлено:

Deep-link в Telegram-боте: откуда приходят клиенты

Ссылку на бота обычно раздают одну и ту же: в шапку канала, в подпись почты, на визитку, в рекламный пост, на QR у кассы. Через месяц владелец видит в боте сто человек — и не может сказать, откуда пришли девяносто из них. Дальше решение «куда вкладываться» принимается по ощущениям.

Задача решается параметром, который Telegram поддерживает с самого начала: ?start=. Ниже — как он устроен, как назвать метки, чтобы через полгода их можно было читать, и где смотреть результат. Про сценарий, в который эти люди попадают, — на странице автоворонка в Telegram.

Как устроена ссылка t.me/bot?start=

Обычная ссылка на бота выглядит так:

https://t.me/vashbot

Ссылка с меткой — так:

https://t.me/vashbot?start=qr-stoika

Для человека разницы нет: открывается тот же диалог с той же кнопкой «Начать». Разница в том, что при нажатии бот получает не голую команду /start, а /start qr-stoika — то есть команду вместе с вашей меткой.

Ограничения параметра, которые придётся учитывать:

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

Схема названий: src-medium-campaign

Метка — это 64 символа, в которые нужно упаковать смысл. Без схемы через полгода в отчёте будут строки новая, test2, qr и qr1, про которые никто не вспомнит, что они значили.

Рабочая схема — три части через дефис, от общего к частному:

источник-формат-кампания

Примеры:

Три правила, которые экономят время позже:

  1. Первый кусок — всегда источник. Тогда отчёт группируется взглядом: все qr-* рядом, все vk-* рядом.
  2. Не кодируйте в метке то, что и так знаете. Дата размещения и стоимость живут в вашей табличке, а не в 64 символах.
  3. Заведите одну табличку «метка → где висит». Две строки на метку: где размещено и когда. Без неё через квартал отчёт снова станет нечитаемым.

Как бот читает метку и что делает дальше

Дальше есть две разные вещи, которые легко перепутать: учёт источника и использование метки внутри сценария.

Учёт источника происходит без вашего участия. Человек переходит по помеченной ссылке, бот получает /start qr-stoika, метка нормализуется (латиница, цифры, дефис, подчёркивание, до 64 символов) и сохраняется за этим пользователем. Всё, что не проходит проверку, — кириллица, слишком длинная строка, мусор — складывается в отдельную строку «Нераспознанная метка», чтобы не притворяться настоящим каналом.

Использование метки внутри сценария — другое дело, и здесь стоит знать границу честно. Отдельной развилки «если метка такая — иди сюда» в редакторе сейчас нет: метка не превращается в переменную, по которой строится условие. Что метка умеет внутри сценария — попадать в текст уведомления владельцу: в блоке уведомления доступна подстановка {{refSource}}, и сообщение «пришла новая заявка» может сразу сообщать, с какой ссылки человек пришёл.

Поэтому «разный сценарий под разные метки» сегодня собирается не меткой, а разными точками входа: отдельный бот-сценарий, отдельная команда или отдельный шаг, на который ведёт конкретное размещение.

Отдельный случай — приглашения по реферальной программе. У блока «Реферальная программа» свой формат ссылки, и такой переход в отчёте показывается строкой «По приглашению», а не сырым идентификатором пригласившего. Кто кого привёл — отдельный вопрос и отдельный раздел метрик.

Первое касание: почему метка не переписывается

Человек пришёл по QR со стойки, через месяц увидел ваш пост в канале и перешёл оттуда ещё раз. Какой источник его привёл?

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

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

Где владелец видит результат

В метриках бота есть раздел «🧭 Откуда приходят пользователи» с таблицей: метка, всего пользователей, за последние 30 дней. Три строки в этой таблице особенные:

Переключатель периода в шапке метрик на эту таблицу не влияет: метка — свойство пользователя, а не события, поэтому колонка «всего» считается за всё время, а «за 30 дней» — по дате, когда метка была поставлена.

UTM для сайта и start для Telegram: это разные слои

Частая путаница: человек берёт ?utm_source=vk&utm_medium=post и приклеивает к ссылке на бота. Так не работает — Telegram не знает про UTM-параметры и до бота они не доедут.

Разделение простое:

Если между рекламой и ботом стоит страница-прокладка на сайте, вам нужны обе метки: UTM — чтобы посчитать заходы на страницу, start в ссылке с этой страницы — чтобы посчитать тех, кто дошёл до бота. Совпадение названий облегчит жизнь: utm_campaign=zapis и ?start=direct-zapis читаются как одно и то же размещение.

QR-код с меткой

QR — это просто картинка со ссылкой внутри, поэтому метка в него попадает так же, как в обычную ссылку: кодируете не https://t.me/vashbot, а https://t.me/vashbot?start=qr-stoika.

Что стоит знать:

Типовые ошибки

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

С чего начать за один вечер

  1. Выпишите все места, где сейчас стоит ссылка на бота. Обычно их 5–10, и половина находится с трудом.
  2. Придумайте каждому метку по схеме источник-формат-кампания.
  3. Замените ссылки. Перепечатайте QR там, где он печатный.
  4. Запишите метки в табличку: где висит, с какой даты.
  5. Через две недели откройте раздел «Откуда приходят пользователи» и посмотрите, что из этого действительно приводит людей.

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

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

Сколько символов помещается в метку?

64 — это ограничение Telegram на параметр start. Разрешены латиница, цифры, дефис и подчёркивание.

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

Нет. Такая ссылка не сработает, а переход попадёт в строку «Нераспознанная метка» в отчёте по источникам.

Что будет, если человек уже пользовался ботом и перешёл по новой ссылке с меткой?

Источник у него не изменится: метка ставится один раз, при первом переходе. Это осознанное решение — иначе рассылка со ссылкой переписала бы всем реальный источник привлечения.

Чем метка start отличается от UTM-меток?

UTM читает веб-аналитика на сайте, start читает бот в Telegram. Друг друга они не заменяют: если между рекламой и ботом есть страница, нужны обе.

Где посмотреть, какая метка сколько привела?

В метриках бота, раздел «Откуда приходят пользователи»: метка, всего пользователей и сколько пришло за последние 30 дней. Строка «Прямые / без метки» — те, кто пришёл по ссылке без метки.

Нужно ли делать отдельный сценарий под каждую метку?

Нет, и собрать такую развилку по метке сейчас нельзя: условия в редакторе значение метки не видят. Учёт источника при этом работает сам, без единого блока в сценарии. Внутри сценария метку можно подставить в текст уведомления владельцу — {{refSource}} в блоке уведомления.

Павел Седов, основатель CHATBOSS.PRO. Об авторе платформы

Ещё в блоге