UTM-метки нужны, чтобы показать, откуда пришёл человек, который оставил заявку. Без них вы платите за рекламу, но не видите, какой канал и какое объявление принесли деньги, а какие сожгли бюджет впустую. Я много лет работаю в платном трафике и на разборах связок постоянно вижу одну и ту же картину, когда аналитика врёт из-за криво собранной метки, а вовсе не из-за самой рекламной площадки.
Я веду Telegram-канал «The Maslov»: разборы связок, нейросети и лидогенерация без воды, с готовыми решениями. Если хотите видеть разметку и аналитику на реальных цифрах, а не на общих словах, оставайтесь на связи.
Что такое UTM-метка и зачем она нужна?
UTM-метка - это набор параметров, которые дописываются в конец ссылки и сообщают системе аналитики, откуда пришёл посетитель: с какой площадки, из какой рекламной кампании и по какому объявлению. Без метки визит попадает в общую кучу «переходы по рекламе», и разделить, что именно сработало, вы уже не сможете.
Сама аббревиатура сбивает с толку, потому что означает она вовсе не «универсальный трекинг», ведь буквы расшифровываются как Urchin Tracking Module. Urchin - компания, которая ещё в начале двухтысячных придумала размечать ссылки, чтобы различать источники трафика точнее, чем позволяли серверные логи. В 2005 году Google купил Urchin вместе с этой схемой параметров и оставил набор полей без изменений. Отсюда и пять полей со странными названиями, которые с тех пор стали стандартом для всех систем аналитики.
Практический смысл метки простой. Когда человек кликает по размеченной ссылке, система видит конкретику вроде «пришёл из Яндекс Директа, из кампании по холодильникам, по объявлению номер такой-то», а не безликое «пришёл на сайт». Дальше это превращается в цифры, по которым вы решаете, куда добавить бюджет, а что отключить. Если вы ещё выбираете, на какие каналы вообще опираться, я отдельно разбирал это в статье про контекстную и таргетированную рекламу для лидогенерации, а здесь речь про техническую часть, без которой любой из этих каналов считается вслепую.
Из каких параметров состоит UTM-метка?
Параметров пять, и три из них обязательны всегда: utm_source, utm_medium и utm_campaign. Ещё два, utm_content и utm_term, нужны по ситуации. Справка Google Analytics формулирует это прямо: «Добавляя параметры в URL, необходимо всегда использовать utm_source, utm_medium и utm_campaign». Яндекс Директ требует ту же тройку.
Разберу, что означает каждое поле, чтобы вы не подставляли значения наугад.
| Параметр | Обязателен | Что кладём внутрь | Пример значения |
|---|---|---|---|
utm_source | да | площадка или источник трафика | yandex, vk_ads, telegram |
utm_medium | да | тип трафика | cpc, email, social |
utm_campaign | да | название кампании | holodilniki_dec |
utm_content | нет | чем различаем объявления внутри кампании | banner_a, text_2 |
utm_term | нет | ключевое слово или таргетинг | kupit_holodilnik |
Логика такая: source отвечает на вопрос «откуда», medium - «каким типом трафика», campaign - «в рамках какой кампании». Когда в одной кампании крутится несколько объявлений или баннеров, их разводят через utm_content, а utm_term чаще всего заполняется автоматически ключевой фразой в контекстной рекламе. В Google Analytics есть ещё пара служебных полей вроде utm_id и utm_source_platform, но для повседневной разметки рекламы хватает этих пяти.
Важное правило, которое экономит нервы, простое. Названия самих параметров менять нельзя. Блог Яндекс Метрики фиксирует это жёстко, отмечая, что названия параметров стандартизированы и придумывать свои нельзя. То есть utm_source - это всегда utm_source, а не utm_istochnik и не source. Свобода у вас только в значениях справа от знака равенства.
Как правильно составить синтаксис ссылки с UTM-меткой?
Синтаксис держится на двух знаках: первый параметр отделяется от адреса вопросительным знаком ?, а все следующие цепляются через амперсанд &. Значения пишутся латиницей в нижнем регистре, слова внутри значения разделяются подчёркиванием или дефисом. Одна опечатка в знаке или в регистре ломает всю метку целиком.
Собранная ссылка выглядит так:
https://site.ru/page?utm_source=yandex&utm_medium=cpc&utm_campaign=holodilniki_dec&utm_content=banner_aПервый камень, о который спотыкаются новички, это второй знак вопроса вместо амперсанда. Если после первого параметра снова поставить ?, метка обрывается на этом месте, и всё, что идёт дальше, аналитика уже не прочитает. Знак ? в ссылке допустим ровно один раз, дальше только &.
Второй камень - регистр букв. И Яндекс Метрика, и Google Analytics различают заглавные и строчные буквы буквально. В справке Метрики это сказано без оговорок: «Метрика различает регистр, в котором указано значение UTM-метки. Например, utm_source=Vkontakte не будет соответствовать метке utm_source=vkontakte».
Google формулирует это так: «utm_source=google и utm_source=Google - разные параметры». Система не приводит регистр к единому виду сама, поэтому VK, vk и Vkontakte для неё будут тремя разными источниками, и один канал размажется по трём строкам отчёта.
Третий камень - пробелы и кириллица в значениях. Пробел разрывает ссылку, поэтому слова склеивают подчёркиванием. Кириллицу лучше не использовать вовсе, потому что она кодируется в длинную непонятную последовательность, а самая коварная ошибка тут визуально незаметна. Если в слове utm_source случайно набрать русскую букву «с» вместо латинской, глазом вы разницы не увидите, но метка перестанет работать целиком.
Отдельно стоит держать в голове длину ссылки. Яндекс Директ предупреждает, что «кириллические символы, передаваемые в URL, автоматически кодируются в UTF-8. Если он превысит 4096 байт, значения будут переданы только для меток yclid и openstat». На практике это упирается в предел, когда вы навешиваете много динамических параметров сразу, о которых расскажу ниже.
Как разметить рекламу в Яндекс Директе UTM-метками?
В Яндекс Директе метку не пишут значениями вручную для каждого объявления, а собирают шаблон с динамическими параметрами в фигурных скобках, которые система сама подставляет при клике. Это экономит время и убирает ручные опечатки, потому что вы задаёте разметку один раз на кампанию, а Директ сам подставляет реальные идентификаторы объявления, кампании и ключевой фразы.
Базовый шаблон под Директ выглядит так:
https://site.ru/page?utm_source=yandex&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={ad_id}&utm_term={keyword}Директ отдаёт целый набор таких подстановок, из которых вы собираете нужную детализацию: {campaign_id} подставит идентификатор кампании, {ad_id} или {banner_id} - идентификатор объявления, {keyword} - ключевую фразу, по которой показалось объявление, {phrase_id} - её идентификатор, а {device_type}, {region_name} и {position_type} добавят тип устройства, регион и место показа. Складывать в метку всё подряд не стоит, потому что именно так и упираются в лимит 4096 байт, о котором я говорил выше. Возьмите те параметры, по которым реально будете принимать решения.
Есть одна особенность Директа, которая пугает новичков. Иногда в отчёте вместо utm_source=yandex вы увидите utm_source=ya. Это не ваша ошибка, потому что справка Директа признаёт, что у части пользователей полное значение yandex в ссылке открывается некорректно, поэтому система сама сокращает его до ya. Просто заложите в отчётах обе формы записи одного источника, чтобы данные не разъезжались.
Отдельно держите в голове разметку openstat. Директ умеет добавлять свою метку openstat, которая работает параллельно с UTM, и явного правила, какая из систем главнее, в открытой документации нет. Чтобы отчёты не задваивались, я обычно выбираю одну систему основной и считаю по ней. Как считать саму отдачу с этих кампаний, а не только клики, я разбирал на примере в статье про Яндекс Бизнес и подсчёт отдачи.
Реклама даёт только вход, а дальше начинается работа с заявкой и подсчёт денег, и вот эту часть я как раз и разбираю в канале по частям, где связка приносит клиентов, где бюджет уходит впустую и как это видно по разметке. Без воды и на реальных цифрах.
Разборы связок - в канале
Подписаться на «The Maslov»Как разметить рекламу VK UTM-метками?
В VK Рекламе метка тоже собирается из плейсхолдеров, только формат другой, и значения подстановок пишутся в двойных фигурных скобках. По умолчанию VK уже добавляет к ссылкам свою автоматическую UTM-метку, и её можно либо оставить как есть, либо переопределить своей. Здесь важнее всего разобраться, какой макрос что подставляет, потому что именно на путанице с ними в VK теряют больше всего данных.
Автоматическая метка VK по умолчанию выглядит так:
utm_medium=cpc&utm_source=vk_ads&utm_campaign={{campaign_id}}&utm_content={{banner_id}}Набор подстановок у VK шире, чем кажется, но с их названиями есть ловушка. Несмотря на слово campaign, макрос {{campaign_id}} подставляет идентификатор группы объявлений, и {{ad_group_id}} - это его синоним, то же самое значение. Реальную кампанию отдают другие макросы: {{ad_plan_id}} для её идентификатора и {{ad_plan_name}} для названия. Помимо них есть {{banner_id}}, {{geo}}, {{gender}}, {{age}}, {{search_phrase}} и даже {{random}} для случайного числа. Если вам нужна разбивка именно по кампаниям, берите {{ad_plan_id}}, иначе отчёт будет считать группы объявлений, а вы будете думать, что это кампании.
А теперь про грабли, на которые в VK наступают чаще всего. В кабинете есть два уровня, где живёт разметка: уровень группы объявлений и уровень самого объявления. Справка VK формулирует приоритет прямо: «Настройки параметров URL на уровне группы объявлений приоритетнее разметки ссылки в самом объявлении».
То есть человек правит метку в объявлении, обновляет страницу, а в отчёте прилетает старая, потому что её перебивает метка с уровня группы. Если ваша разметка «не применяется», первым делом смотрите уровень группы объявлений, а не объявление.
Пара нюансов напоследок. Для лид-форм метку добавляют вручную в поле ссылки на шаге с результатом, автоматически она туда не подставляется. А для мини-приложений VK синтаксис свой, без знака ?, с разделением параметров через решётку, и подстановка {{random}} там не срабатывает. Как в принципе устроен запуск и цена заявки в VK, я подробно разобрал в отдельной статье про рекламу в ВК в 2026 году.
Как передать метку в Telegram, если t.me не поддерживает UTM?
Ссылки вида t.me/... обычные UTM-параметры просто игнорируют, потому что Telegram их не читает и всё, что стоит после вопросительного знака, отбрасывает. Вместо привычного ?utm_source=... в диплинк передают один параметр start для бота или startapp для мини-приложения, и уже внутри этого параметра прячут информацию об источнике перехода.
Ограничение здесь жёсткое. Официальная документация Telegram допускает в этом параметре «до 64 base64url-символов», то есть латинские буквы, цифры, подчёркивание и дефис. Полноценный набор из пяти UTM-полей текстом туда не влезет, поэтому источник кодируют коротко. Ссылка на бота с меткой источника выглядит так:
https://t.me/your_bot?start=vk_dec_banner1Дальше значение vk_dec_banner1 бот расшифровывает на своей стороне по заранее заведённому словарю коротких кодов: например, vk означает площадку, dec - декабрьскую кампанию, banner1 - конкретный баннер. Есть и второй рабочий способ, промежуточный лендинг. Человек с рекламы попадает на страницу с полноценными UTM-метками, там генерируется отдельный ключ перехода, и уже с ним пользователь уходит в бота. Так вы сохраняете и привычную аналитику сайта, и переход в мессенджер.
Отдельно про Telegram Ads. По правилам площадки в объявлении нельзя использовать сокращатели ссылок и сторонние редиректы, а ссылка в тексте разрешена одна. При этом обычные UTM-параметры на внешний сайт работают штатно, ведь ограничение касается именно t.me-ссылок и модерации текста объявления, а не аналитики вашего сайта.
Какие ошибки чаще всего ломают UTM-метки?
Чаще всего UTM-метку ломают восемь типовых ошибок, и почти все они незаметны глазом до того момента, как в отчёте появляется дыра и часть трафика уходит в никуда. Собрал их по порядку, от самых частых к более редким, чтобы вы могли пройтись по списку как по чек-листу.
- Разный регистр букв.
vk,VKиVkontakteсистема считает тремя разными источниками, и один канал разъезжается по нескольким строкам. Заведите правило команды писать всё строчными буквами и не отступайте от него. - Пробелы вместо подчёркивания. Пробел внутри значения разрывает ссылку, и метка не читается. Слова склеивают через
_или-. - Кириллица и опечатка в латинице. Русские буквы в значениях кодируются в мусор, а подмена латинской
cна русскуюсв словеutm_sourceвизуально незаметна и убивает метку целиком. - Дубли
utm_contentна один клик. Когда на одно объявление вешают разные значенияutm_content, атрибуция размывается, и вы не понимаете, какой креатив реально сработал. - Забытые метки на части трафика. Если хотя бы часть ссылок ушла без разметки, эти визиты попадут в общую кучу. В VK это частый случай из-за приоритета уровня группы объявлений.
- Конфликт ручной метки с авторазметкой площадки. Директ добавляет openstat, Google Ads - свой
gclid, VK - метку по умолчанию. Если не проверить, чья разметка в приоритете, данные задваиваются или подменяются. - Редиректы съедают метку. Переадресация с
wwwна адрес безwww, сhttpнаhttpsили с лендинга на бота через 301 и 302 нередко отрезает параметры. Проверяйте, что после всех переходов метка доезжает до конечной страницы. - Не декодированный
&из фидов. Когда ссылки подтягиваются из XML или RSS-фида, амперсанд иногда приходит в виде&, и метка распадается. Такие ссылки нужно раскодировать перед публикацией.
Общий корень у всех восьми ошибок один, и заключается он в том, что метку собрали и не проверили. Дальше я как раз покажу, как проверить ссылку до того, как на неё пойдут деньги.
Нужно ли ставить UTM-метки на внутренние ссылки сайта?
На внутренние переходы между страницами своего сайта UTM-метки обычно вешать не стоит. Когда человек уже на сайте кликает по размеченной внутренней ссылке, метка перезаписывает исходный источник визита, и вы теряете правду о том, откуда он пришёл на самом деле. Плюс такие ссылки плодят дубли адресов, которые потом мешают индексации.
Есть и обратная позиция, у которой тоже своя правда. Иногда UTM на внутренних ссылках ставят осознанно: для A/B-тестов или чтобы посчитать клики по баннерам на самом сайте, когда настроить полноценные события в аналитике технически сложно. В этом случае это разумный компромисс, но только с защитой от индексации через canonical или запрет на индексацию для таких адресов. По умолчанию же для кликов внутри сайта лучше подходят цели и события в Метрике или Google Analytics, а UTM оставить для внешних источников трафика.
Что важнее: автоматическая разметка площадки или ручная UTM-метка?
Единого правила, что главнее, нет, потому что на каждой рекламной системе своя логика приоритета, и это стоит проверять отдельно для каждой площадки. Одна и та же ручная метка на разных площадках поведёт себя по-разному, и именно здесь чаще всего теряются данные у тех, кто ведёт рекламу сразу в нескольких кабинетах.
Расклад по площадкам такой. В Google Analytics 4 по умолчанию автоматическая пометка gclid от Google Ads имеет приоритет над ручными UTM. Но это поведение переключается. В настройках ресурса, в разделе Advanced Settings, есть опция, которая разрешает ручной разметке перебивать автопометку. То есть по умолчанию верх берёт gclid, а нужный вам приоритет задаётся вручную одним переключателем.
У Яндекс Директа поведение другое. Openstat и UTM применяются параллельно, жёсткого правила приоритета в открытой документации нет, поэтому я выбираю одну систему основной и считаю по ней. В VK Рекламе, как я уже показал, уровень группы объявлений перебивает уровень объявления, а базовая метка добавляется сама, если её не переопределить.
Практический вывод простой. Перед запуском кампании на новой площадке не считайте, что метка ведёт себя одинаково везде, и проверьте, что именно долетает в отчёт и какая из разметок оказалась главной.
Как проверить, что метка сработала, до запуска рекламы?
Проверить метку нужно до того, как на ссылку пойдёт бюджет, и делается это за пару минут. Смысл в том, чтобы своими глазами увидеть, что параметры доезжают до конечной страницы и корректно попадают в отчёт, а не обнаружить дыру через неделю по пустым данным.
Короткий предпусковой чек-лист, по которому я прохожусь сам:
- Скопируйте готовую ссылку и откройте её в браузере в режиме инкогнито, чтобы не мешала прошлая сессия.
- Убедитесь, что после всех переадресаций в адресной строке остались все параметры метки, а не обрезанный хвост.
- Проверьте, что знак
?в ссылке ровно один, а между параметрами стоит&, а не второй?. - Пробегитесь глазами по регистру и латинице: нет ли заглавных букв и русской «с» в
utm_source. - Через несколько минут после перехода загляните в отчёт «Метки UTM» в Яндекс Метрике и проверьте, что визит встал в нужный источник.
Отдельно помните базовое правило Метрики, по которому метка учитывается, только если она есть в первом просмотре визита. В справке это сказано так: «Яндекс Метрика получает информацию о метке из первого просмотра в течение визита посетителя. Если в первом просмотре метки нет, то она не учитывается для всего визита». Поэтому если человек сначала зашёл на сайт без метки, а размеченную ссылку открыл вторым касанием, источник у этого визита уже не поменяется.
Как стандартизировать разметку UTM, если кампаний много?
Когда кампаний становится много, разметку спасает единое соглашение об именовании плюс шаблон или генератор вместо ручной сборки. Пока метку собирает один человек на десяток ссылок, порядок держится в голове. Как только к разметке подключается команда, а кампаний десятки, каждый начинает называть одно и то же по-своему, и отчёт превращается в кашу.
Проблема здесь не техническая, а договорная. На практике я постоянно вижу, как одну и ту же площадку в метках пишут то vk, то VK, то vkontakte, и в отчёте появляется три разных источника вместо одного. То же самое с кампаниями: осеннюю акцию один назовёт autumn, другой осень, третий fall_2025, и в аналитике это будут три разные кампании, которые невозможно сравнить между собой.
Лечится это заранее принятым соглашением об именовании. Договоритесь в команде о едином порядке значений, например год_период_кампания, и о том, что идентификаторы объявлений подставляются макросами площадки, а не руками.
Сами ссылки собирайте через генератор меток или готовый шаблон в таблице, куда подставляются только значения. Так вы убираете и разнобой в написании, и ручные опечатки разом. Работает это только тогда, когда соглашение соблюдают все, поэтому держите его одним общим документом, а не устной договорённостью.
Готовые шаблоны UTM-меток для Директа, VK и Telegram
Ниже я свёл базовые шаблоны UTM-меток под три площадки, чтобы вам не пришлось собирать логику разметки заново под каждый канал. Скопируйте нужный шаблон, подставьте в него свой адрес страницы и значения кампании, а имена самих параметров и структуру оставьте как есть.
| Площадка | Что подставляется автоматически | Готовый шаблон |
|---|---|---|
| Яндекс Директ | {campaign_id}, {ad_id}, {keyword} | см. блок ниже |
| VK Реклама | {{ad_plan_id}}, {{banner_id}} | см. блок ниже |
| Telegram (бот) | ничего, источник кодируется вручную | см. блок ниже |
Яндекс Директ:
https://site.ru/page?utm_source=yandex&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={ad_id}&utm_term={keyword}VK Реклама:
https://site.ru/page?utm_source=vk_ads&utm_medium=cpc&utm_campaign={{ad_plan_id}}&utm_content={{banner_id}}Telegram-бот (источник в параметре start, до 64 символов):
https://t.me/your_bot?start=vk_dec_banner1Дальше подставляйте свои значения в правой части каждого параметра, держите нижний регистр и латиницу, и перед запуском прогоняйте ссылку по чек-листу из раздела про проверку. Этого хватает, чтобы разметка перестала терять трафик.
Источники
- Яндекс Директ, справка «Параметры URL», и Яндекс Метрика, справка «Как Метрика обрабатывает метки» - синтаксис, обязательные параметры, регистрозависимость и лимит 4096 байт: yandex.ru/support/direct/ru/statistics/url-tags и yandex.ru/support/metrica/ru/general/source-tags
- VK Реклама, справка «UTM-метки» - плейсхолдеры и приоритет уровня группы объявлений: ads.vk.ru/help/features/utm
- Telegram, документация API «Deep links» - параметр start и ограничение в 64 base64url-символа: core.telegram.org/api/links
Разметка держит на себе всю аналитику связок, ведь пока метки собраны верно, видно, какой канал приносит заявки, а какой сжигает бюджет. Разборы таких связок на реальных цифрах я выкладываю в канале.

