Диплинк Telegram - это веб-адрес t.me, который при нажатии открывает конкретный чат, канал, группу или бота, опционально неся параметр, который получает ваш бот. Распространённые форматы - https://t.me/username для открытия чата, https://t.me/username?text=Hi для открытия с предзаполненным черновиком и https://t.me/YourBot?start=payload для открытия бота с передачей ему payload. Нажмите на ссылку, Telegram откроется в нужном месте, а для бота payload придёт на сервер.
Именно это отличает Telegram от большинства мессенджеров. WhatsApp не сообщает вам, какая реклама привела к нажатию на wa.me. Боты Telegram - сообщают: payload ?start= доставляется вашему боту в момент, когда пользователь нажимает Start, поэтому атрибуцию можно встроить прямо в ссылку. Для обычных ссылок на чат и канал вам всё ещё нужен редирект впереди, чтобы увидеть клик, - точно так же, как с любым диплинком для мессенджеров. Этот материал разбирает оба случая.
Форматы ссылок t.me
Есть одно семейство адресов и несколько параметров. Telegram документирует их в справочнике по диплинкам (по состоянию на 2026-07-18).
- Открыть чат или канал:
https://t.me/username. Работает для публичных юзернеймов, каналов и групп. Это та ссылка, которую вы ставите в био или в подпись email. - Предзаполнить черновик:
https://t.me/username?text=Hello%20Acme. Сообщение закодировано в URL и попадает в поле черновика. Пользователь сам нажимает «отправить» - Telegram не отправляет сообщение за него. - Открыть бота с payload:
https://t.me/YourBot?start=spring-promo. Telegram открывает бота, показывает кнопку Start, и по нажатию доставляет ботуspring-promoв команде/start. - Добавить пользователя в группу через бота:
https://t.me/YourBot?startgroup=payload. Та же идея, но нацеленная на настройку группы, а не личного чата.
Схема tg:// (tg://resolve?domain=username) существует, но хрупка. Браузеры и встроенные веб-вью блокируют или вырезают кастомные схемы, поэтому напечатанная ссылка tg:// чаще не работает, чем работает. Используйте t.me - это обычный https URL, который разрешается без проблем и может стоять за короткой ссылкой. Механика того, почему t.me вообще маршрутизируется в приложение, - те же нативные средства ОС, что описаны в статье диплинки для мобильных приложений без SDK.
Почему start-параметр - это выигрыш для атрибуции
Большинство каналов click-to-chat однонаправленные: нажатие открывает переписку и ничего вам не сообщает. Боты Telegram ломают этот паттерн, потому что payload ?start= доставляется в код вашего бота. Facebook Messenger делает то же самое со своим параметром ref; WhatsApp - единственный, кто хранит молчание. Telegram ограничивает его 64 символами и допускает только буквы, цифры, дефисы и подчёркивания, а также рекомендует base64url, если вам нужно упаковать структурированные данные, согласно документации по диплинкам ботов.
Таким образом payload может нести тег кампании, id реферера или закодированный id записи. Когда пользователь нажимает Start, ваш бот читает его и узнаёт, что клик пришёл, скажем, из майской рассылки, а не из закреплённого поста канала. Никакого пикселя, никакой гимнастики с вебхуками, никакого чтения тегов из тела сообщения. Сигнал - в том самом /start, который ваш бот уже обрабатывает.
Это ограничение имеет значение. Шестидесяти четырёх символов достаточно для nl-may-hero или короткого id в base64url, но не для полной строки UTM. Масштабируемый паттерн - компактный id в ?start=, а человекочитаемые данные кампании хранятся под этим id в вашей собственной системе.
Слой редиректа
Для ссылок на чат и канал, а также чтобы унифицировать отслеживание по всем поверхностям Telegram, поставьте короткую ссылку перед URL t.me. Клиент нажимает на s.elido.me/tg, ваш edge фиксирует клик, а затем перенаправляет на https://t.me/YourBot?start=nl-may. Со стороны клиента процесс идентичен нажатию на t.me напрямую.
С вашей стороны изменились три вещи:
- Клик фиксируется. Редирект генерирует событие с меткой времени, гео, устройством и UTM-параметрами, пришедшими на короткую ссылку, поэтому Start, который ваш бот залогирует секундой позже, можно связать с конкретной кампанией.
- Адрес назначения редактируем. Меняйте юзернейм бота, канал или payload
?start=без перепечатки QR-кода или редактирования уже запущенной рекламы. Если вы переносите кампанию с одного бота на другой, вы меняете адрес назначения один раз. - Данные кампании переносимы.
s.elido.me/tg?utm_source=email&utm_medium=newsletter&utm_campaign=mayфиксирует метки на этапе редиректа, даже несмотря на то, чтоt.meигнорирует строки запроса, которые не распознаёт.
Это тот же слой, что описан в статье отслеживание UTM-кампаний от начала до конца, и именно такой подход руководство по click-to-chat WhatsApp использует для wa.me. Telegram просто добавляет сверху второй сигнал через payload бота.
Если вам нужны редактируемые, измеримые ссылки Telegram без самостоятельной сборки редиректа, диплинки Elido встают перед любым адресом назначения t.me и логируют каждое нажатие. Вы можете настроить один на бесплатном тарифе.
Практическая настройка
Три короткие ссылки покрывают большинство сценариев Telegram:
- Общая ссылка:
s.elido.me/tgна ваш основной бот или канал, используется в подвале сайта, био и подписи email. Ловит общий входящий трафик. - Ссылка кампании: по одной на каждую активную кампанию,
s.elido.me/tg-may-nl, указывающая на того же бота с payload?start=, специфичным для кампании. Используется в конкретной рекламе или рассылке. - Ссылка для QR-печати:
s.elido.me/tg-shopдля физических размещений, с payload, называющим конкретное место размещения, чтобы ваш бот приветствовал сканирующего с учётом контекста.
Каждая ссылка сопоставлена с UTM-шаблоном и описательной меткой вроде surface:newsletter · channel:telegram · campaign:may. Настройте их на странице /links, и эти метки управляют фильтрами в аналитике. Отфильтруйте по channel:telegram, чтобы увидеть все нажатия из Telegram по всем кампаниям.
Оговорка о предзаполненном сообщении
Черновик ?text= реально снижает трение: клиент попадает в чат с уже набранным сообщением и должен лишь нажать «отправить». Но Telegram никогда не отправляет его автоматически, и это сделано намеренно. Ссылка, которая могла бы незаметно отправить сообщение от вашего имени, стала бы вектором спама, поэтому Telegram требует нажатия. Пишите предзаполненный текст так, чтобы нажатие ощущалось естественным, и не стройте процесс, который зависит от того, что сообщение будет отправлено до того, как пользователь что-то сделает.
Для ботов видимого черновика вообще нет. Payload ?start= невидим для пользователя и передаётся прямо боту, что чище для отслеживания, потому что нет трекинг-id, неловко торчащего в сообщении, которое видит клиент.
QR-коды как поверхность
Значительная доля click-to-chat трафика Telegram приходит от сканирований, а не от нажатий в вебе. Кто-то находится в магазине, на мероприятии или держит флаер и сканирует код, который открывает вашего бота или канал. Путь «от печати до разговора» - одно из самых сильных применений паттерна «короткая ссылка, затем t.me».
Два правила сохраняют пользу от тиража:
- QR-код кодирует
s.elido.me/<slug>, а неt.me/...напрямую. Кодированиеt.meзамораживает адрес назначения, убивает аналитику сканирований и делает тираж бесполезным, если бот или канал изменится. - У каждого размещения своя короткая ссылка и свой payload
?start=, поэтому код на витрине, код на флаере и код на упаковке - это отдельные строки, которые можно сравнивать. Дизайнерские соображения вроде тихой зоны, контраста и коррекции ошибок такие же, как для любого размещения, - разбираются в статье динамические и статические QR-коды.
Что не работает
Три паттерна, которые выглядят разумно, но не работают на практике:
Кодирование голой ссылки t.me в QR-коде или рекламе. Никаких данных о кликах, никакого контроля над адресом назначения, и мёртвый актив в тот день, когда меняется юзернейм. Печатайте короткую ссылку - всегда.
Запихивание строки UTM в ?start=. Лимит в 64 символа и ограниченный набор символов обрежут её или отклонят. Используйте короткий id и разворачивайте его в полные данные кампании на своей стороне.
Опора на tg:// для чего-либо напечатанного или опубликованного. Кастомные схемы блокируются браузерами и встроенными веб-вью, поэтому ссылка не срабатывает для части пользователей без какого-либо запасного варианта. Держите tg:// только для внутреннего использования, а публичный путь ведите через t.me за короткой ссылкой, где смарт-маршрутизация обрабатывает любой запасной вариант по устройству - так же, как это делают смарт-ссылки.
Telegram - редкий канал, где диплинк способен нести атрибуцию сам по себе. Совместите payload ?start= бота с редиректом впереди - и вы получите и клик, и Start, связанные с кампанией, которая их вызвала.
Похожие материалы в блоге
- Глубокие ссылки WhatsApp Business: click-to-chat с атрибуцией
- Click to Messenger: ссылки m.me с отслеживанием
- Что такое диплинк? Простое объяснение
- Диплинки для мобильных приложений без SDK
- Как отслеживать UTM-кампании от начала до конца без CDP
- Что такое смарт-ссылки: маршрутизация на границе без лишних сервисов
Частые вопросы
Как создать диплинк Telegram?
Возьмите адрес t.me своего аккаунта, канала, группы или бота и добавьте параметр. Для бота https://t.me/YourBot?start=payload открывает бота и отправляет ему payload, когда пользователь нажимает Start. Для человека или канала https://t.me/username открывает чат, а добавление ?text= предзаполняет черновик сообщения. Кодируйте сообщение и не превышайте 64 символа для start-параметра, используя только буквы, цифры, дефисы и подчёркивания.
Что такое start-параметр в ссылке Telegram?
Start-параметр - это короткая строка в диплинке бота, записываемая как ?start=payload. Когда кто-то открывает https://t.me/YourBot?start=payload и нажимает Start, Telegram доставляет этот payload вашему боту в сообщении /start. Ваш бот читает его и может поприветствовать пользователя, открыть доступ к контенту или зафиксировать, откуда пришёл клик. Это единственный канал обмена сообщениями, где атрибуция встроена в саму ссылку, а не прикручена сбоку.
Можно ли предзаполнить сообщение в Telegram?
Да, для ссылки на человека или канал. https://t.me/username?text=Hello открывает чат с текстом Hello, уже введённым в черновик. Сообщение не отправляется автоматически - пользователю нужно нажать «отправить», и это особенность безопасности Telegram, а не баг. Ссылки на ботов используют ?start= вместо ?text=, и бот получает payload незаметно, а не в виде видимого черновика.
Можно ли отслеживать клики по ссылке t.me?
Голая ссылка t.me не даёт вам никаких данных о кликах, потому что Telegram не сообщает вам о нажатии. Поставьте перед ней короткую ссылку: клиент нажимает на вашу короткую ссылку, редирект фиксирует клик с временем, устройством и метками кампании, а затем перенаправляет на t.me. Для ботов payload ?start= добавляет второй, серверный сигнал, который ваш бот может залогировать в момент, когда пользователь реально нажимает Start.
В чём разница между t.me и tg:// ссылками?
t.me - это обычный веб-адрес https, который Telegram разрешает и открывает в приложении, поэтому его безопасно печатать, публиковать и ставить за короткой ссылкой. tg:// - это URL-схема приложения в чистом виде, которая работает только при установленном Telegram и может блокироваться или вырезаться браузерами и приложениями. Используйте t.me для всего, что обращено к клиентам, а tg:// рассматривайте максимум как внутренний запасной вариант.
Попробуйте Elido
Вставьте URL - получите короткую ссылку
Без регистрации. Ссылка живёт 30 дней. Зарегистрируйтесь, чтобы оставить её навсегда.
Бесплатно, без регистрации · 2 в день