Telegram-канал собственника DFAKTOR: про бизнес и интернет-маркетинг ✌🏻Подпишитесь на наш официальный Telegram-канал ❤️Telegram канал про бизнес и интернет-маркетинг 🎯Telegram-канал собственника DFAKTOR: про бизнес и интернет-маркетинг ✌🏻Подпишитесь на наш официальный Telegram-канал ❤️Telegram канал про бизнес и интернет-маркетинг 🎯Telegram-канал собственника DFAKTOR: про бизнес и интернет-маркетинг ✌🏻Подпишитесь на наш официальный Telegram-канал ❤️Telegram канал про бизнес и интернет-маркетинг 🎯Telegram-канал собственника DFAKTOR: про бизнес и интернет-маркетинг ✌🏻Подпишитесь на наш официальный Telegram-канал ❤️Telegram канал про бизнес и интернет-маркетинг 🎯Telegram-канал собственника DFAKTOR: про бизнес и интернет-маркетинг ✌🏻Подпишитесь на наш официальный Telegram-канал ❤️Telegram канал про бизнес и интернет-маркетинг 🎯Telegram-канал собственника DFAKTOR: про бизнес и интернет-маркетинг ✌🏻Подпишитесь на наш официальный Telegram-канал ❤️Telegram канал про бизнес и интернет-маркетинг 🎯
Москва, Цветной бульвар, дом 2
Санкт-Петербург, Парашютная ул., дом 6Время работы: 9:30 - 19:30 пн-пт
8(800)775-87-45Время работы: 9:30 - 19:30 пн-пт
Обсудим задачу
прямо сейчас?
Заказать продвижение сайта
Вы можете прямо сейчас заказать эту услугу заполнив форму в шапке сайта.

Как определить источник клиента в Telegram-боте при помощи UTM метки?

Опубликовано: Обновлено: Чтение: 4 минуты Просмотров: - Поделились: - Комментариев: -
Как определить источник клиента в Telegram-боте при помощи UTM метки?
Поделиться: Telegram ВКонтакте WhatsApp E-mail

Материал носит информационный характер. Результаты продвижения и рекламы зависят от ниши, конкуренции и исходного состояния сайта и не могут быть гарантированы.

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

Клик был, диалог есть, а какая реклама сработала — непонятно.

Это классическая ситуация, когда utm telegram фактически «обрываются» при уходе пользователя с сайта в мессенджер.

Мы решили эту задачу простым и надёжным способом*, без серверов и сложной инфраструктуры.

В чём была задача

Нам было важно:

  • передавать UTM-метки из рекламы
  • сохранять utm source telegram при переходе в Telegram-бот
  • использовать эти данные в CRM
  • не усложнять техническую часть
  • реализовать решение без отдельного бэкенда

Ключевая цель — сохранить utm метки telegram на всём пути пользователя: от рекламы → сайта → Telegram-бота.
Решение должно было работать на любом сайте* и не требовать отдельного бэкенда.

Какое решение мы используем

Мы добавили на сайт небольшой JavaScript-код.
Который:

  1. Считывает UTM-метки из URL страницы
  2. Находит ссылки на Telegram-бота
  3. Добавляет к ним параметр start
  4. Передает источник в бот при первом запуске

Для пользователя процесс выглядит как обычный переход в Telegram.
Вся логика остаётся на стороне сайта.
Как это работает технически
Когда пользователь заходит на сайт, например, по ссылке:
site.ru/?utm_source=telegram&utm_medium=yandex&utm_campaign=seo-dfaktor

Скрипт автоматически формирует ссылку на бота вида:
https://t.me/имя_бота?start=s_telegram-m_yandex-c_seo-dfaktor

При первом нажатии кнопки «Start» в боте Telegram передает в бот команду:
/start s_telegram-m_yandex-c_seo-dfaktor

Этот текст бот получает в явном виде. Например, в Битрикс24 он выглядит так:
Как определить источник клиента в Telegram-боте при помощи UTM метки? - иллюстрация 3
Таким образом:

  • utm telegram передаются в явном виде
  • источник можно сохранить в базе данных
  • utm source telegram корректно фиксируется в CRM (например, Bitrix24)*
  • данные можно использовать для аналитики и оценки эффективности рекламы

⚠️ Важно: параметр start передается только при первом запуске бота.
Повторные открытия без нового /start не перезаписывают utm метки telegram — это корректное и ожидаемое поведение Telegram.

Что нужно сделать на сайте

Достаточно:

  • вставить JavaScript-код на страницу (который я дам в конце материала)
  • оставить обычную ссылку на Telegram-бота в формате
  • https://t.me/имя_бота

Скрипт автоматически:

  • найдет все ссылки на бота
  • добавит utm метки telegram
передаст utm source telegram при старте диалога

Код можно разместить:

  • в <head>
  • перед </body>
  • в кастомный HTML/JS-блок (Tilda, WordPress, Webflow, самописные сайты)

При каких условиях решение работает корректно

Решение работает, если:

  • пользователь приходит на сайт с UTM-метками
  • на странице есть ссылка на Telegram-бота
  • бот поддерживает параметр /start
  • используются допустимые символы и длина параметра (учтено в генерации ссылки)
  • требуется корректная передача utm source telegram без серверной логики

Код адаптирован под сайты с динамической версткой — ссылки обновляются даже при перерисовке страницы.

Итог и практическая польза

В результате мы получаем:

  • зафиксированный источник обращения в Telegram
  • корректную передачу utm меток telegram
  • возможность связывать рекламу и диалоги
  • более точную аналитику эффективности кампаний
  • основу для корректных управленческих решений

Принцип работы простой:

UTM-метки с сайта упаковываются в параметр start, Telegram передаёт его в команду /start, а мы сохраняем источник обращения.
Для агентства это базовый уровень контроля маркетинга.
Без него любая оптимизация превращается в догадки.

Вот сам код, неизменно вставляйте его и наслаждайтесь еще более точными данными в аналитике.

Этот скрипт сам найдет все ссылки на телеграм-бота и добавит к ним данные из UTM-меток
  • в <head>
  • перед </body>
  • в кастомный HTML/JS-блок (Tilda, WordPress, Webflow, самописные сайты)
<script>
(function () {
  const params = new URLSearchParams(location.search);

  const src = params.get('utm_source') || '';
  const med = params.get('utm_medium') || '';
  const cmp = params.get('utm_campaign') || '';

  if (!src && !med && !cmp) return;

  const clean = (v, max) =>
    v.toString()
     .trim()
     .replace(/\s+/g,'-')
     .replace(/[^A-Za-z0-9_-]/g,'')
     .slice(0, max);

  const payload = (
    `s_${clean(src,12)}-m_${clean(med,12)}-c_${clean(cmp,24)}`
  ).slice(0,64).replace(/-$/,'');

  const buildHref = (href) => {
    try {
      const url = new URL(href);
      if (!/^(t\.me|telegram\.me)$/.test(url.hostname)) return null;

      const parts = url.pathname.split('/').filter(Boolean);
      if (!parts[0]) return null;

      return `https://t.me/${parts[0]}?start=${payload}`;
    } catch {
      return null;
    }
  };

  const updateLinks = () => {
    document.querySelectorAll('a[href*="t.me/"], a[href*="telegram.me/"]').forEach(a => {
      const newHref = buildHref(a.href);
      if (newHref && a.href !== newHref) {
        a.href = newHref;
      }
    });
  };

  updateLinks();

  const observer = new MutationObserver(updateLinks);
  observer.observe(document.body, {
    childList: true,
    subtree: true,
    attributes: true
  });
})();
</script>
И бонус для всех, кто дочитал до конца - онлайн-генератор UTM-меток для Telegram

Первый в мире, аналогов нет.* Доступен полностью бесплатно, уже сейчас https://utm.dfaktor.ru 

Дайте, пожалуйста, обратную связь по скрипту, на каких CMS ставили, все ли хорошо работает, и расскажите, какой способ оценки эффективности рекламы для Telegram-ботов вы используете? 

Если вдруг не получилось установить скрипт или не хотите тратить на это время, вы можете воспользоваться услугой нашей тех поддержки для сайтов, сделаем всё быстро и в лучшем виде*.

Вопросы и ответы

Почему теряется источник клиента при переходе с сайта в Telegram?
UTM-метки остаются в адресе страницы сайта и не передаются в мессенджер. Поэтому диалог в боте есть, а из какой рекламы пришёл пользователь, не видно.
Как передать UTM-метки в Telegram-бота?
Скрипт на сайте считывает UTM-метки из URL, находит ссылки на бота и добавляет к ним параметр start. При первом нажатии «Start» Telegram передаёт это значение боту в команде /start.
Нужен ли для этого сервер или отдельный бэкенд?
Нет, по описанию в статье вся логика остаётся на стороне сайта и выполняется JavaScript-кодом на странице.
Перезаписываются ли метки при повторном открытии бота?
Нет. Параметр start передаётся только при первом запуске бота, повторные открытия без нового /start метки не перезаписывают.
Куда вставлять код на сайте?
В <head>, перед </body> или в кастомный HTML/JS-блок конструктора или CMS. Ссылку на бота оставляют в обычном формате https://t.me/имя_бота.

Глоссарий

UTM-метка
Параметр в адресе ссылки, который сообщает системе аналитики источник, канал и кампанию перехода.
utm_source
UTM-параметр, обозначающий источник трафика, например рекламную площадку или рассылку.
Telegram-бот
Программа-аккаунт в Telegram, которая автоматически принимает сообщения и команды пользователей и отвечает на них.
Параметр start
Значение, которое добавляется к ссылке на бота и передаётся ему вместе с командой /start при запуске (deep linking).
CRM
Система учёта клиентов и сделок, в которой хранятся обращения, их источники и история взаимодействия.
Бэкенд
Серверная часть сайта или сервиса, которая обрабатывает данные и логику вне браузера пользователя.
CMS
Система управления содержимым сайта, например WordPress, или конструктор сайтов.

Источники

  1. Telegram Bot Features: Deep Linking
  2. Telegram Bot API
  3. Google Analytics: сбор данных о кампаниях с помощью UTM-меток
  4. Яндекс Справка: Метрика

Официальная документация и нормативные акты, на которые мы опираемся в работе. Практические выводы в статье основаны на опыте проектов DFAKTOR.

Оговорка. Материал носит информационный характер. Результаты продвижения и рекламы зависят от ниши, конкуренции и исходного состояния сайта и не могут быть гарантированы. Цифры в примерах относятся к конкретным проектам и периодам. Перед принятием решений рекомендуем получить консультацию специалиста по вашему проекту.
#Telegram#UTM-метки#Аналитика#Инструкция#CRM

Комментарии

Комментариев пока нет. Будьте первым.

Комментарии публикуются после проверки модератором.