ИнструкцияАналитика

UTM-метки для рекламы: как размечать Яндекс Директ и VK без ошибок

Рабочие шаблоны для Директа и VK Ads, разбор ошибок, которые ломают метки молча, и генерация разметки через ИИ прямо при сборке кампании.

5 августа 2026

Открываете отчёт Метрики по источникам, а там yandex / cpc / (not set). Клики идут, бюджет тратится, а какое объявление привело заявку — непонятно. Дело почти всегда не в аналитике, а в разметке: UTM-метки либо не проставлены, либо проставлены так, что данные схлопываются в кашу. Разберём, как размечать Директ и VK, чтобы каждый переход был подписан, — и как не наступить на грабли, которые ломают метки без единой ошибки в интерфейсе.

Какие параметры UTM нужны рекламе

UTM-метка — это приписка к ссылке из нескольких параметров, которую системы аналитики (Яндекс Метрика, GA4) раскладывают по колонкам отчёта. Выглядит так:

https://site.ru/?utm_source=yandex&utm_medium=cpc&utm_campaign=summer&utm_content=ad-142&utm_term=dostavka-cvetov

Пять стандартных параметров:

Первый параметр присоединяется к адресу через ?, все следующие — через &. Первые три (source, medium, campaign) — обязательный минимум. content и term добавляйте, когда нужно принимать решения на уровне объявления и фразы, а не только кампании.

Вывод: без content и term вы знаете «пришли из Директа», но не знаете, из какого объявления и по какой фразе. А именно эта детализация и нужна, чтобы отключать нерентабельное и усиливать рабочее.

Главный принцип: не размечайте каждое объявление руками

Типичная ошибка новичка — вписывать UTM в ссылку каждого объявления по отдельности. При сотне объявлений это сотня шансов на опечатку и сотня мест, где что-то развалится.

Правильно — задать шаблон один раз на уровне кампании, а конкретные значения пусть рекламная система подставит сама. Для этого есть динамические параметры — переменные в фигурных скобках. Вместо того чтобы писать номер кампании руками, вы пишете {campaign_id}, и Яндекс подставит реальный ID в момент клика.

В Директе для этого есть поле «Параметры URL» на кампании и на группе. В VK Ads макросы обычно добавляют в ссылку объявления. Логика одна: шаблон живёт не в голове директолога, а в настройках рекламной системы — и подставляет значения сам. По сути это и есть генератор UTM-меток, только встроенный в кабинет: отдельный онлайн-генератор нужен разве что для разовых ссылок вроде постов в соцсетях. Откуда берутся значения вроде {keyword}, понятнее, если помнить, как устроено семантическое ядро: это те самые фразы, по которым показывается объявление.

UTM для Яндекс Директа: рабочий шаблон и все параметры

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

utm_source=yandex&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={ad_id}&utm_term={keyword}

Домен и знак ? Директ подставит сам к ссылке каждого объявления. Полезные динамические параметры Директа:

Полный список параметров есть в справке Яндекс Директа. В обычной лидогенерации чаще всего хватает кампании, группы или объявления, фразы, типа площадки и устройства. Всё остальное добавляйте только под конкретный отчёт: длинная метка ломается чаще короткой.

yclid или UTM: честный разбор

У Директа есть собственная автоматическая разметка — параметр yclid. Если в кампании включена разметка ссылок для Метрики, Яндекс сам добавляет к каждому клику уникальный yclid, и Метрика связывает переход с объявлением без единой UTM-метки.

Отсюда неудобная правда: если вам нужна только Яндекс Метрика, UTM для Директа технически избыточны — yclid уже всё связал. Метки становятся обязательными, когда данные уходят в другие системы: GA4, сквозную аналитику, CRM, коллтрекинг. Или когда вы хотите видеть в отчёте читаемое utm_campaign=summer, а не хеш клика.

Не выключайте автоматическую разметку yclid в кампании — даже если ставите UTM. Они не конфликтуют: yclid работает на Метрику, UTM — на всё остальное. Отключите — и часть трафика в Метрике превратится в (not set).

UTM для VK Ads: почему шаблон из Директа нельзя скопировать как есть

В VK Ads разметка устроена иначе, чем в Директе, и на этом спотыкаются даже опытные. Макросы визуально похожи на яндексовские, но и скобки, и имена у них свои — рабочий шаблон Директа в VK просто не раскроется.

Первое отличие — двойные фигурные скобки. В Директе {campaign_id}, в VK — {{campaign_id}}. Перепутаете количество скобок — макрос не раскроется и уедет в отчёт буквальным текстом.

Второе — другие имена макросов. Кампанию VK Ads подставляет по {{campaign_id}}, объявление — по {{banner_id}}, а не по знакомому из Директа {ad_id}.

Рабочий шаблон для ссылки объявления в VK Ads — ровно как в примере из справки VK:

utm_source=vk&utm_medium=cpc&utm_campaign={{campaign_id}}&utm_content={{banner_id}}

Для сверки с системами верификации кликов справка также приводит {{clickid}}. Набор макросов VK со временем меняется, поэтому перед заливкой сверяйтесь с актуальной справкой VK по разметке ссылок, а не со сторонними подборками — в них нередко попадают устаревшие или неподдерживаемые токены.

Важно: логика та же (source / medium / campaign / content), но синтаксис у Директа и VK разный. Не копируйте шаблон Директа в VK один в один — получите в ссылках буквальный текст {campaign_id} вместо номеров.

7 ошибок, из-за которых метки врут

  1. Двойной ? в ссылке. Если посадочная уже с параметром (site.ru/?promo=1), а вы дописываете ?utm_source=..., URL ломается. В поле «Параметры URL» Директа и в шаблоне VK пишите только параметры без ? — система склеит правильно. Руками в ссылке — всегда через &, если ? уже есть.
  2. Кириллица и пробелы без кодирования. utm_campaign=летняя распродажа развалится на пробеле. Либо латиница, либо URL-кодирование (пробел → %20). Динамический {campaign_name} с кириллицей — тот же риск; безопаснее {campaign_name_lat} или числовой {campaign_id}.
  3. {keyword} в открытую. Макрос подставляет реальную фразу показа — она бывает длинной, с кириллицей и, по сути, светит поисковый запрос пользователя прямо в URL. Если важна чистота ссылок и приватность — берите {phrase_id} вместо {keyword}, а расшифровку смотрите в отчётах.
  4. Превышение длины. У Директа ссылка с раскрытыми метками не должна выходить за 4096 байт (кириллица в UTF-8 «весит» до трёх байт на символ). Сверх лимита передадутся только yclid и openstat — UTM потеряются. Не набивайте шаблон всеми макросами подряд, берите нужные.
  5. Шаблон Директа, вставленный в VK как есть. Одинарные скобки и {ad_id} в VK Ads не раскроются — там нужны двойные скобки и {{banner_id}}. Скопируете строку из директовой кампании без правок — в отчёт уедет буквальный текст {campaign_id} вместо номера.
  6. Разнобой в значениях. utm_source=yandex в одной кампании и utm_source=Яндекс в другой — это два разных источника в отчёте. Заведите единый словарь (yandex, vk, всегда строчными) и держитесь его во всех кампаниях и площадках.
  7. Потеря меток на редиректе и в форме. Если с рекламы человек попадает на страницу, которая его переадресует (с http на https, со старого URL на новый), метки исчезнут, если редирект их не пробрасывает. То же с формой заявки: не сохраняет UTM в скрытые поля — и в лиде источник пропадёт.

Как проверить, что метки живые

Разметка — это то, что стоит проверить до открутки бюджета, а не после.

Динамику проверяют уже на живом трафике, через день-два после старта: реальные {campaign_id} и {ad_id} раскроются в отчёте, и станет видно, всё ли подставляется. Как вытаскивать такие срезы из Метрики, мы показывали в подборке запросов к Метрике.

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

Нужны ли UTM-метки, если уже стоит Яндекс Метрика?

Для связки только с Метрикой — нет: Директ добавляет к каждому клику автоматический yclid, и Метрика связывает переход с объявлением без единой UTM. Метки нужны, когда данные идут в GA4, сквозную аналитику, CRM или коллтрекинг, либо когда в отчёте нужны читаемые названия, а не идентификатор клика.

Обязательно ли использовать динамические параметры вроде {campaign_id}?

Нет, но с ними метки надёжнее: {campaign_id} и {ad_id} подставляются автоматически и не зависят от опечаток при массовой заливке. Статичные значения проще читать глазами, но их легко перепутать, когда объявлений сотни.

Почему трафик в отчёте идёт как (not set)?

Значит, по этим переходам аналитика не получила ни UTM, ни yclid. Обычные причины: выключена автоматическая разметка ссылок в Директе, метки потерялись на редиректе или посадочная страница обрезала параметры из URL.

Размечать VK теми же метками, что и Директ?

Логика одна (source, medium, campaign, content), но синтаксис разный: у Директа одинарные фигурные скобки, у VK Ads — двойные, и имена макросов свои. В Директе кампания — {campaign_id}, объявление — {ad_id}; в VK Ads — {{campaign_id}} и {{banner_id}}. Один шаблон на обе площадки без правок не подойдёт: скопируете код Директа в VK — макрос не раскроется.

Можно разметить все объявления кампании одной меткой?

Да, если использовать шаблон с динамическими параметрами. В Директе его удобно задавать в поле «Параметры URL» кампании или группы. В VK Ads макросы обычно живут в ссылке конкретного объявления, поэтому шаблон тот же по логике, но вставляется в другое место.

Как это делает LidFly

Всё описанное выше можно делать руками: собрать шаблон, не перепутать скобки, вставить в нужное поле, проверить длину. Но это как раз тот тип рутины, где ИИ полезен: он держит правила площадки в контексте и применяет их во время сборки кампании, а не после запуска, когда отчёты уже испорчены.

LidFly подключается к Яндекс Директу и VK Ads через протокол MCP, и ИИ работает с кабинетами обычными командами. С UTM это выглядит так:

Собери UTM-шаблон для этой кампании в Директе:
source=yandex, medium=cpc, кампанию и объявление — динамическими
параметрами, фразу подставляй по ID, а не текстом.
Проставь шаблон в параметры URL кампании.

ИИ соберёт корректную строку utm_source=yandex&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={ad_id}&utm_term={phrase_id} и запишет её в поле «Параметры URL» кампании или группы одной операцией — без открывания интерфейса и копирования макросов. Для VK он подготовит ссылку объявления с правильными двойными скобками — {{campaign_id}} и {{banner_id}}; запись зависит от типа доступа к VK и формата объявления, поэтому перед изменением ИИ сначала читает объект и показывает действие на подтверждение. Управление кабинетами таким способом мы подробно разбирали в статье про управление Директом через нейросеть.

А дальше — то, ради чего метки и затевались. Если посадочная собрана на конструкторе LidFly, те же UTM автоматически попадают в карточку лида: source, medium, campaign, content, term сохраняются вместе с заявкой. Подключена CRM — метки уезжают в неё вместе с лидом, и в отчёте видно не просто «заявка с сайта», а заявка с конкретного объявления.

Получается сквозная петля: клик по объявлению → метка → заявка → источник. По каждой заявке видно, какое объявление и какая фраза её принесли, а не абстрактное «пришли из Директа». Как довести трафик до формы и не потерять источник по пути, мы разобрали в статье про поток заявок из рекламы.

Попробовать: подключите Директ или VK в кабинете LidFly и попросите ИИ собрать и проставить UTM-шаблон при запуске кампании. Разметка окажется на месте с первого клика.