YCLID нужно сохранять до того, как человек уйдет из браузера в Telegram. Сам Telegram не возвращает рекламный query из Яндекс Директа в событии подписки, поэтому прямой переход на t.me почти всегда оставляет маркетолога без надежной связки клика и вступления.
Практичный маршрут такой: Директ ведет на лендинг, лендинг сохраняет исходный query, Stat pixel переносит yclid в трекинговую ссылку, сервер записывает его в клик, а Telegram-подписка потом связывается с этим кликом. После этого событие можно использовать для отчета и офлайн-конверсии Метрики. Если yclid не дошел до записи клика, честно восстановить его задним числом нельзя.
Кому нужно сохранить YCLID до Telegram
Telegram-канал на Директе
Покупаете трафик и хотите понимать, какие кампании дают подтвержденные вступления.
Маркетолог
Нужно вернуть в Метрику событие, которое связано с реальным кликом Директа.
Интегратор
Собираете маршрут лендинг, Stat, Telegram и хотите видеть, где теряется query.
Онлайн-школа
Ведете рекламу на вебинар, канал прогрева или закрытое комьюнити перед продажей.
Быстрый ответ
Если вопрос звучит как "как сохранить yclid при переходе в Telegram", главный ответ не в настройке бота. Главный ответ в маршруте до Telegram. Нужно иметь промежуточную точку, где URL еще доступен: лендинг, микролендинг или трекинговый переход. Там сохраняются yclid, UTM, дополнительные параметры и исходная строка query.
В Strelo Stat этот участок закрывает связка pixel плюс route /c/<token>. Pixel на странице берет query лендинга и переписывает Telegram-кнопки на Stat-ссылку. Route /c/<token> принимает переход, пишет yclid в отдельное поле клика, сохраняет UTM, прочие параметры и raw query, затем отправляет человека в Telegram. Когда Telegram подтверждает вступление, подписка связывается с сохраненным кликом.
Для кого это важно
Владельцу канала нужно понимать не только сколько людей кликнули объявление, но и сколько дошли до Telegram. Разница бывает неприятной: кампания может давать дешевые переходы, но слабую подписку. Без yclid рекламная система и отчетность видят верх воронки, а не реальный результат.
Маркетологу нужен ключ для обратной связи с Директом. UTM помогают читать кампанию, группу, креатив и площадку. YCLID нужен как технический идентификатор рекламного клика. Если сохранить только UTM, вы сможете построить отчет внутри Stat, но Метрике и Директу будет сложнее сопоставить офлайн-событие с исходным рекламным визитом.
Интегратору важно не перепутать две задачи: сохранить метку на переходе и отправить конверсию позже. Первая задача решается на лендинге и Stat-редиректе. Вторая задача решается через Метрику и цель. Если первый шаг слабый, второй уже не спасает данные.
Что получает каждая команда
Видит, где реклама дает участников, а не только переходы.
Отдает в рекламную систему событие, связанное с исходным кликом.
Понимает, на каком участке пропал yclid, UTM или invite-связка.
Где именно теряется yclid
Самый частый сбой - объявление ведет сразу на Telegram. Пользователь нажал рекламу, браузер открыл приложение, а рекламный query остался вне вашей системы. Telegram-событие подписки не содержит исходный URL объявления. В результате подписка есть, а yclid нет.
Второй сбой мягче, но встречается не реже: объявление ведет на лендинг, yclid есть в адресной строке, но кнопка "Перейти в Telegram" ведет напрямую на https://t.me/.... Пользователь уходит с лендинга, а query не переносится на следующий шаг. С точки зрения аналитики это почти то же самое, что прямой t.me.
Третий сбой - редирект есть, но он не пишет raw query и не выделяет yclid в отдельное поле. Потом в отчетах видно, что был переход, но нельзя доказать, какой рекламный клик привел к подписке. Четвертый сбой - человек вступил в канал без индивидуальной invite-связки: через поиск, пересланную ссылку или старый публичный адрес.
Где yclid чаще всего пропадает
Проблема почти всегда возникает до события подписки.
| Критерий | Участок | Что происходит | Как исправить |
|---|---|---|---|
| Объявление ведет на t.me | Переход сразу открывает Telegram | Некуда записать рекламный query | Вести на лендинг или Stat-ссылку |
| Лендинг с прямой кнопкой | YCLID остается в адресе страницы | Telegram CTA не переносит query | Переписывать CTA через Stat pixel |
| Редирект без хранения | Клик проходит через промежуточный маршрут | Параметры не попадают в запись клика | Сохранять yclid, UTM, params и raw query |
| Подписка без invite-связки | Пользователь вступил другим путем | Нет надежного matched click | Не отправлять как рекламную конверсию |
Правильная цепочка сохранения
Рабочая цепочка начинается с нормального Final URL в Директе. Это страница, которую видит пользователь и которую можно объяснить модерации: лендинг канала, вебинарная страница, промо закрытого клуба, страница лид-магнита. На нее добавляется Stat pixel.
Когда страница открывается с ?yclid=..., pixel не отправляет человека в Telegram сам по себе. Он переписывает Telegram-ссылки так, чтобы следующий клик пошел через Stat route. Если кнопка уже была Stat-ссылкой, pixel дополняет ее query лендинга. Если кнопка была обычной t.me-ссылкой, pixel делает ее трекинговой.
На route /c/<token> сервер фиксирует клик. В коде Stat yclid берется из query как отдельный идентификатор, UTM попадают в структурированное поле, остальные параметры сохраняются в params, а исходная query-строка остается в raw_query. Это важно для диагностики: можно увидеть не только итоговые поля, но и то, что пришло на вход.
Как yclid проходит до Telegram-подписки
Клик из Директа
В адресе лендинга появляется yclid и маркетинговые параметры.
Лендинг
Страница показывает оффер и загружает Stat pixel.
Stat pixel
Telegram-кнопка получает трекинговый маршрут с query лендинга.
Запись клика
Route сохраняет yclid, UTM, params и raw query.
Telegram
Пользователь вступает через invite или начинает сценарий.
Matched subscription
Событие подписки связывается с сохраненным кликом.
Метрика
Офлайн-событие можно отправить по yclid, если связь надежная.

Что хранить кроме yclid
YCLID нужен для сопоставления с рекламным кликом Директа. Но один yclid не заменяет нормальную маркетинговую разметку. Если вы хотите разбирать отчеты по кампаниям, объявлениям, креативам и аудиториям, рядом должны жить UTM и дополнительные параметры. В Stat это разные слои данных, и смешивать их не нужно.
UTM отвечают на человеческий вопрос: откуда пришел человек. YCLID отвечает на технический вопрос: какой рекламный клик должен получить офлайн-событие. Raw query нужен для расследований, когда маркетолог говорит "в объявлении метка была", а в отчете ее нет. Params нужны для всего, что не является UTM или выделенным click-id.
Что сохранять в клике
YCLID
Технический ключ рекламного клика Директа для офлайн-сопоставления.
UTM
Читаемая разметка источника, кампании, объявления и аудитории.
Raw query
Исходная строка параметров для расследования спорных случаев.
Params
Дополнительные параметры, которые не попали в UTM или отдельные click-id поля.
YM ClientID
Резервный идентификатор Метрики, если yclid отсутствует.
Consent
Согласия и ограничения обработки данных, если они применимы в вашем маршруте.
Чем yclid отличается от ClientID Метрики
YCLID - это идентификатор клика Директа в URL. ClientID Метрики - идентификатор посетителя в счетчике. Оба могут использоваться в офлайн-данных, но это разные привязки. Если у вас есть yclid, в рекламном Telegram-маршруте обычно лучше использовать его как более прямой ключ рекламного клика.
ClientID полезен как резерв, особенно если путь пользователя проходит через сайт, где Метрика стабильно работает и cookies не потерялись. Но Telegram добавляет разрыв: пользователь может уйти в приложение, вернуться позже, открыть ссылку на другом устройстве. Поэтому в статье про переход в Telegram фокус именно на yclid: его нужно пронести до записи клика до ухода из веб-контекста.
YCLID и ClientID Метрики решают разные задачи
Оба могут быть полезны, но в рекламном Telegram-маршруте yclid обычно ближе к клику.
| Критерий | YCLID | ClientID Метрики | Что выбрать |
|---|---|---|---|
| Что идентифицирует | Рекламный клик Директа | Посетителя в счетчике Метрики | Для Директа начинать с yclid |
| Где появляется | В URL после клика по объявлению | В cookies и данных счетчика | Сохранять оба, но не смешивать |
| Риск потери | Теряется при прямом уходе в Telegram | Зависит от работы Метрики и cookies | Записывать до Telegram |
Что делает Stat pixel на лендинге
Pixel нужен не только как "код аналитики". В этой задаче он выполняет прикладную работу: читает query страницы, аккуратно переписывает Telegram CTA и может повторить переписывание, если кнопка появилась после загрузки страницы. Это важно для Tilda, Taplink, конструкторов лендингов и виджетов, где кнопки рисуются не сразу.
Еще pixel может включать режим авто-перехода, если страница специально используется как промежуточная. Но для большинства рекламных сценариев лучше оставлять пользователю нормальный лендинг и нормальную кнопку. Так вы не превращаете маршрут в подозрительный редирект, а просто делаете Telegram-переход измеримым.
Что делает Stat pixel на странице
Читает query лендинга
Берет yclid, UTM и другие параметры из текущего URL.
Переписывает Telegram CTA
Заменяет прямую t.me-ссылку на измеримый Stat-маршрут.
Следит за динамикой
Повторно проверяет кнопки, если лендинг дорисовал их после загрузки.
Не подменяет оффер
Пользователь остается на честной странице и сам нажимает Telegram-кнопку.

Как понять, что yclid сохранился
Первый тест технический: открыть лендинг с тестовым параметром ?yclid=test_123&utm_source=yandex&utm_campaign=test и нажать Telegram-кнопку. В Stat должна появиться запись клика, где yclid равен тестовому значению, UTM лежат в UTM-поле, а raw query содержит исходную строку.
Второй тест продуктовый: пройти путь как обычный пользователь. Вступить в канал, отправить заявку или открыть бота. Подписка должна получить связь с кликом. Если клик записался, а подписка не связалась, проблема не в yclid, а в invite, webhook, join request или выбранном режиме атрибуции.
Третий тест рекламный: проверить очередь отправки в Метрику. Интеграция должна предпочесть yclid, а если его нет, использовать ClientID только как резерв. Если нет ни yclid, ни ClientID, событие не нужно отправлять как атрибутированную офлайн-конверсию.
Как проверить сохранение yclid
Откройте лендинг с тестовым yclid
Добавьте query вручную, чтобы не ждать реальный рекламный клик.
Нажмите Telegram CTA
Кнопка должна вести через Stat route, а не напрямую на t.me.
Проверьте click row
YCLID должен лежать в отдельном поле, UTM и raw query должны быть на месте.
Сделайте подписку
Вступление должно получить matched click, иначе офлайн-событие будет слабым.
Проверьте интеграцию
Метрика должна получить событие только при надежном идентификаторе.

Почему нельзя восстановить yclid потом
Иногда после запуска кампании выясняется, что подписчики уже пришли, но yclid не сохранился. Возникает соблазн собрать таблицу по времени клика, IP, user agent или UTM и "примерно сопоставить" события. Для рекламной оптимизации это плохая идея. Нужен надежный идентификатор, а не догадка.
Если пользователь пришел без yclid, это может быть органика, пересланная ссылка, другой источник, прямой заход или блокировка части скриптов. Внутри вашей аналитики такое событие можно хранить как неатрибутированное. Но отдавать его в Метрику как рекламную офлайн-конверсию опасно: алгоритм будет учиться на сигнале, которому нельзя доверять.
Как связать это с офлайн-конверсией Яндекса
Сохранение yclid - это первый этап. Отправка офлайн-конверсии - второй. Для Метрики нужно событие с идентификатором, целью, временем события и, если нужно, ценностью и валютой. При режиме YCLID в CSV или API используется поле Yclid. В коде Stat интеграция выбирает yclid как приоритетный идентификатор, а ClientID использует только запасным путем.
Официальная справка Яндекса указывает важное окно: между визитом и обработкой офлайн-данных по yclid должно пройти не больше 21 дня. Поэтому нормальная система не копит события месяцами. Она отправляет их регулярно, а временем конверсии считает момент подписки, а не момент выгрузки.
Что важно для офлайн-события
В Stat интеграция выбирает yclid, если он есть у клика.
Между визитом и обработкой офлайн-данных должен пройти ограниченный срок.
DateTime должен описывать момент подписки, а не момент экспорта.
Чем эта статья отличается от статьи про передачу подписки в Директ
Тема похожая, но угол другой. Статья про передачу подписки в Директ отвечает на вопрос "как отправить подтвержденное Telegram-событие в Метрику и использовать цель в стратегии". Эта статья отвечает на более ранний вопрос: "как не потерять yclid до того, как событие вообще станет возможным".
Если маршрут сохранения сломан, дальше нечего отправлять. Поэтому здесь больше внимания к лендингу, Telegram-кнопке, pixel, route /c/<token>, полям клика и диагностике raw query. А статья про офлайн-конверсию нужна после этого, когда click-id уже сохранен и подписка связалась.
Сохранить yclid и передать конверсию - не одно и то же
Сначала нужен надежный click-id, потом уже настройка Метрики.
| Критерий | Эта статья | Статья про офлайн-конверсию |
|---|---|---|
| Главный вопрос | Где теряется yclid до Telegram | Как отправить подписку в Метрику |
| Ключевая точка | Лендинг, pixel и route /c | Цель, CSV, API и статусы загрузки |
| Результат | YCLID лежит в клике | Подписка ушла как офлайн-событие |
Прямой t.me против лендинга с Stat
Прямой t.me кажется короче и дешевле, но в платной рекламе он часто дороже по последствиям. Вы не объясняете оффер, не собираете нормальные события, хуже диагностируете качество трафика и рискуете потерять yclid до Telegram.
Лендинг с Stat pixel дает больше контроля. Пользователь видит обещание, условия, пример контента или форму. Рекламный query остается доступен в браузере. Telegram-кнопка переписывается в измеримый маршрут. Сервер записывает клик. Подписка связывается с этим кликом. Это не усложнение ради схемы, а минимальный мост между веб-рекламой и Telegram-событием.
Прямой Telegram или лендинг с Stat
Короткий путь не всегда лучше, если нужно обучать рекламу.
| Критерий | Прямой t.me | Лендинг плюс Stat |
|---|---|---|
| Сохранение yclid | Слабое или отсутствует | Записывается до Telegram |
| Оффер для пользователя | Почти нет объяснения | Есть страница с контекстом |
| Диагностика | Непонятно, где потеря | Видны query, click row и matched click |
Диагностика по симптомам
Если в Stat есть клики, но yclid пустой, проверьте URL объявления, авторазметку Директа, Final URL и редиректы до лендинга. Если yclid есть в raw query, но не выделился в поле, это уже техническая ошибка обработки параметров. Если yclid есть в клике, но подписка не связалась, смотрите invite и matched click.
Если подписки есть, а Метрика их не принимает, это другой слой: счетчик, OAuth, имя цели, формат данных, время события, окно 21 день. Не надо чинить все сразу. Идите по цепочке: URL, pixel, /c, click row, invite, Telegram event, conversion queue, upload status.
Как быстро найти слабое место
Проверяйте маршрут по слоям, а не все сразу.
| Критерий | Симптом | Вероятная причина | Что смотреть |
|---|---|---|---|
| В кликах нет yclid | Переходы есть, поле пустое | URL, auto-tagging или редирект до Stat | Final URL, raw query, кнопка Telegram |
| YCLID есть, подписки не связаны | Клики записаны, matched click пустой | Проблема invite или webhook | Режим ссылки, Telegram-событие, join request |
| Метрика не видит событие | Подписка есть, upload не принят | Цель, OAuth, счетчик или срок | Логи интеграции и статус обработки |
Что делать и чего не делать
- Вести рекламу на лендинг с понятным оффером и Stat pixel.
- Проверять yclid в записи клика до запуска бюджета.
- Хранить UTM, params и raw query рядом с click-id.
- Отправлять в Метрику только события с надежной связкой.
- Ставить прямой t.me в рекламную ссылку и ждать атрибуцию.
- Подставлять yclid задним числом по времени или UTM.
- Считать любую подписку рекламной, если нет matched click.
- Путать сохранение yclid с уже настроенной офлайн-конверсией.
Минимальная настройка перед рекламой
Перед запуском бюджета сделайте один чистый тест. Создайте отдельную трекинговую ссылку, откройте лендинг с тестовым yclid, нажмите Telegram CTA, проверьте клик в Stat, вступите в канал, дождитесь Telegram-события и убедитесь, что подписка связалась с кликом. Только потом подключайте офлайн-конверсию.
Если в проекте несколько лендингов, не полагайтесь на "один раз проверили". На каждом лендинге могут быть разные кнопки, виджеты, формы и редиректы. Особенно внимательно проверяйте мобильную версию: пользователь может открывать Telegram-приложение, и именно там чаще видны слабые места маршрута.
Минимальный чеклист
Auto-tagging включен
Директ добавляет yclid к рекламному переходу.
Лендинг открыт
Final URL ведет на страницу, где есть Stat pixel.
CTA переписан
Telegram-кнопка проходит через Stat, а не напрямую на t.me.
Click row проверен
YCLID, UTM и raw query видны после тестового перехода.
Подписка связалась
Telegram-событие получило matched click.
Метрика готова
Цель, счетчик и доступы проверены до отправки событий.
Когда Strelo Stat особенно нужен
Strelo Stat полезен, если вы покупаете трафик из Директа на Telegram-канал, бота, бесплатный вебинар, закрытый клуб, лид-магнит или платный канал. В таких сценариях рекламная система видит клик, но бизнес-ценность появляется уже внутри Telegram. Нужен слой, который соединяет эти два мира.
Если бюджет маленький и задача пока учебная, можно начать с UTM и ручной проверки. Но как только вы сравниваете кампании, спорите о качестве подписчиков или хотите учить стратегию по вступлению, без сохраненного yclid маршрут будет слабым. Вы будете оптимизировать вход, а не подтвержденное действие.
Где Strelo Stat дает максимум пользы
Канал закупает подписчиков
Нужно сравнивать кампании по вступлениям, а не по кликам.
Вебинар или запуск
Реклама ведет в Telegram-прогрев перед продажей продукта.
Агентство ведет клиентов
Нужны доказуемые отчеты, где видно путь от клика до подписки.
Команда спорит о качестве трафика
YCLID и matched click снимают часть догадок из обсуждения.
Итог
Сохранить yclid при переходе в Telegram можно только до ухода пользователя из веб-контекста. Ведите рекламу на лендинг, ставьте Stat pixel, переносите query в /c/<token>, сохраняйте yclid в записи клика и связывайте Telegram-подписку с этим кликом. Тогда офлайн-конверсия будет опираться на реальный рекламный идентификатор, а не на догадку.
Главное правило простое: если yclid не попал в клик, не надо рисовать его задним числом. Настройте маршрут так, чтобы параметр дошел до Stat заранее. Тогда и отчет, и Метрика, и рекламная стратегия будут работать с более чистым сигналом.
Проверьте, где у вас теряется yclid
Создайте трекинговую ссылку, поставьте Stat pixel на лендинг и посмотрите, доходит ли рекламный query до Telegram-подписки.
Открыть Strelo StatЧастые вопросы
Можно ли поставить рекламу сразу на t.me и сохранить yclid?
Технически это слабый вариант. Если нет промежуточной точки записи клика, yclid часто не доходит до события подписки. Для платной рекламы надежнее вести на лендинг с Stat pixel или на Stat-ссылку.
Где должен храниться yclid?
В записи рекламного клика до перехода в Telegram. В Strelo Stat это отдельное поле клика, рядом с UTM, params и raw query.
Нужно ли сохранять UTM, если есть yclid?
Да. YCLID нужен для технического сопоставления, а UTM нужны людям для отчетов по источникам, кампаниям и креативам.
Что делать с подписками без yclid?
Хранить их как органику, no-link или неатрибутированные события. Не стоит отправлять их в Метрику как рекламную офлайн-конверсию без надежной связки.
Почему yclid есть в raw query, но не в отчете?
Проверьте, выделяет ли трекинговый маршрут yclid в отдельное поле, не фильтруется ли параметр и не ломается ли регистр или кодировка на редиректе.
Что важнее для Telegram-рекламы: yclid или ClientID Метрики?
Если есть yclid, он ближе к рекламному клику Директа. ClientID полезен как резерв, но он зависит от работы Метрики и cookies.
