5 написаний одной соцсети и 40% рекламы в строке «определено по меткам»: так выглядит счетчик, где метки стоят везде, но не работают. Внутри: словарь значений, которые понимает Метрика, параметры Директа, 4 этапа потери метки, скрипт передачи в CRM и таблица симптомов.
Открываем отчет «Источники, сводка» у нового клиента и видим 5 строк про одну и ту же соцсеть: vk, VK, Vkontakte, vk.com и vk_ads. Рядом «Другая реклама: определено по меткам» с 40% всего платного трафика и 3 кампании Директа, у которых в utm_campaign стоит слово «тест». На вопрос «какой канал приносит заявки» этот счетчик ответить не может, хотя метки в нем стоят на каждой ссылке. Это собирательный пример, но в нем нет ни одной выдуманной детали.
Короткий ответ на вопрос из заголовка:
Дальше по порядку: что Метрика читает из метки, какие значения она понимает, почему в Директе метки лучше не писать руками, где они теряются по дороге до отчета и как довести метку до CRM вместе с заявкой.
Что Метрика читает из UTM‑метки
- utm_source. Источник трафика: рекламная система, соцсеть, рассылка, партнерский сайт. Обязателен для соцсетей и всех рекламных систем, кроме Директа.
- utm_medium. Канал: контекстная реклама, медийная, рассылка,
QR-код . Обязателен дляQR-кодов , соцсетей, мессенджеров, рассылок и рекомендательных систем. - utm_campaign. Название кампании.
- utm_content. Содержание: конкретное объявление, баннер, место ссылки в письме.
- utm_term. Ключевая фраза.
Первый параметр идет после «?», остальные после «&». В ссылке не должно быть лишних символов вроде %2B, второго знака вопроса или пробела: любой из них ломает разбор, и метка либо не читается целиком, либо читается частично.
Еще 3 правила из справки, которые чаще всего нарушают.
Первое: Метрика берет метку из первого просмотра в визите. Если посетитель зашел на сайт без метки, а через минуту кликнул по размеченной ссылке в письме, визит останется с тем источником, с которого начался. Второе: значения регистрозависимы: utm_source=Vkontakte и utm_source=vkontakte в отчете будут 2 разными источниками, и загрузка расходов по рекламе тоже разойдется. Третье: порядок параметров формально не важен, но справка Директа рекомендует ставить их последовательно: source, medium, campaign, content, term. Это удобно, когда ссылки читают люди, и снимает часть ошибок при копировании.
Отдельная история — параметр utm_referrer. Он не входит в стандартную пятерку, но Метрика его понимает: в него передают адрес сайта, с которого идет переход, когда обычный реферер теряется. Так бывает при

Словарь значений: договоритесь до первой ссылки
Самая частая причина, по которой аналитика по меткам врет, не техническая. Ссылки делают 4 человека: подрядчик по Директу, utm_medium. Через полгода в отчете 30 вариантов источников, и свести их в 5 каналов можно только руками.
Решается это одним документом на 1 страницу: таблицей разрешенных значений. Важно, что значения в ней не произвольные. У Метрики есть список слов, по которым она сама распознает источник и относит визит в нужный отчет: «Рекламные системы», «Социальные сети», «Мессенджеры», «Рассылки». Если написать значение не из списка, визиты по справке уйдут в сборную группу «определено по меткам», и сравнивать канал с другими придется вручную.
| Канал | utm_source | utm_medium | Куда попадет в Метрике |
|---|---|---|---|
| Яндекс Директ | yandex (Директ может сократить до ya) | cpc | Рекламные системы, плюс отчеты группы «Директ» по yclid |
| VK Реклама | vk_ads | cpc или cpm | Рекламные системы |
| Пост в сообществе ВКонтакте | vk | social | Социальные сети |
| Реклама в Telegram | telegram_ads | cpm | Рекламные системы |
| Пост в | telegram | messenger | Мессенджеры |
название сервиса или newsletter | email | Рассылки | |
| место размещения | qr | Источники, сводка (переходы по QR) | |
| Партнерский сайт | домен партнера | referral | Сборная группа «определено по меткам» |
Главный вывод из таблицы: utm_source и utm_medium — не поле для творчества. Их значения диктует Метрика, а свобода начинается с utm_campaign. Полный список распознаваемых значений лежит в той же справке, и он длиннее, чем кажется: там есть Avito, Ozon, Яндекс Маркет, myTarget и еще около 50 систем.
Для utm_campaign, utm_content и utm_term правила проще, но они тоже нужны:
- Только латиница и нижний регистр. Кириллица в адресе кодируется в
UTF-8 , ссылка становится в 3 раза длиннее, а в некоторых сервисах превращается в набор процентов. Слова разделяйте подчеркиванием или дефисом. - Название кампании читается без словаря.
support_msk_searchлучше, чемcamp_17: через год никто не вспомнит, что было под номером 17. - Один смысл на один параметр. Не пишите в
utm_campaignодновременно и регион, и тип объявления, и дату. Регион — вutm_campaign, объявление — вutm_content. Если нужно больше уровней, используйте разделитель внутри значения:utm_content=banner_a.top.
Директ: не пишите метки руками
В Директе
Дальше главное, ради чего этот блок стоит использовать: динамические параметры. Директ сам подставляет в ссылку идентификатор кампании, объявления, ключевую фразу, тип площадки, регион и устройство. Рабочая заготовка для блока на уровне кампании выглядит так:
utm_source=yandex&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={ad_id}&utm_term={keyword}
# расширенный вариант: площадка и тип блока для РСЯ и поиска
utm_source=yandex&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={ad_id}.{source_type}.{position_type}&utm_term={keyword} Полный список подстановок есть в справке «Параметры URL». Из практики полезнее всего 5: {campaign_id}, {ad_id}, {keyword}, {source} (домен площадки РСЯ или none для поиска) и {device_type}. Параметр {campaign_name} удобен для чтения, но название кампании можно переименовать, и статистика разъедется; идентификатор стабилен.
3 подводных камня, про которые в справке написано мелко.
Директ может сократить utm_source=yandex до utm_source=ya при переходе: ссылки с полным словом у части пользователей открывались некорректно. Если в отчетах нужна единообразная метка, справка советует сразу писать ya или любое другое значение. Метрика при этом распознает Директ по служебному параметру yclid, а не по utm_source, поэтому на отчеты группы «Директ» сокращение не влияет.
После изменения параметров URL объявления уходят на повторную модерацию. Правка меток в работающей кампании в пятницу вечером — не лучшая идея.
Если адрес с подставленными значениями длиннее 4096 байт, Директ передаст только yclid и метку Openstat. Обычной ссылке это не грозит, но кириллические ключевые фразы в {keyword} кодируются в
Где метка теряется по дороге
Справка Метрики описывает путь метки как 4 этапа: создание ссылки, клик и переход, загрузка счетчика, чтение отчета. На каждом данные могут потеряться, и разбирать расхождение между кликами в кабинете и визитами в отчете нужно по этим этапам, по порядку.
Этап 1. Ссылка
Опечатки в именах параметров: utm_sourse, utm-medium, utm_campaing. Такой параметр Метрика не считает ?ref=123?utm_source=… вместо ?ref=123&utm_source=…. Скопированные из другой системы объявления с чужими метками: трафик VK Рекламы приписывается Директу. Закодированный амперсанд & из
Этап 2. Переход
Здесь живет самая коварная потеря — редирект, который отбрасывает параметры. Классический случай: в объявлении стоит http://site.ru/page, сайт перенаправляет на https://www.site.ru/page/, и если правило перенаправления написано без сохранения строки запроса, посетитель приходит уже без меток. Метрика видит визит, но относит его к переходу по ссылке без источника или к прямому заходу.
Проверяется за минуту: откройте ссылку из объявления в режиме инкогнито и посмотрите на адресную строку после загрузки. Если меток в ней нет, а в объявлении они были, редирект их съел. Чинится на стороне сервера. Для nginx правило с сохранением параметров выглядит так:
# http и www -> https без www, параметры сохраняются
server {
listen 80;
server_name example.ru www.example.ru;
return 301 https://example.ru$request_uri;
}
# добавление слэша в конце: $request_uri уже содержит ?utm_...,
# поэтому дописываем слэш только к пути
location ~ ^([^.?]*[^/])$ {
return 301 $1/$is_args$args;
} Переменная $request_uri содержит и путь, и строку запроса, поэтому метки доезжают. Ошибка, которую делают чаще всего: return 301 https://example.ru$uri; — здесь $uri без параметров, и все UTM пропадают. В Apache то же самое решается флагом QSA в правиле RewriteRule.
Вторая потеря на этом этапе — utm_referrer.
Этап 3. Счетчик
Счетчика нет на посадочной странице. Это бывает чаще, чем кажется: лендинг сделали на отдельном поддомене, а счетчик стоит только на основном сайте. Счетчик есть, но грузится после тяжелых скриптов, и часть посетителей закрывает страницу раньше. Блокировщики и корпоративные прокси режут счетчик у части аудитории. Этот процент есть всегда, повлиять на него нельзя, но он объясняет, почему клики в кабинете и визиты в Метрике никогда не сходятся один в один.
Этап 4. Отчет
Данные есть, но их сравнивают неправильно. Кабинет рекламной системы считает кликом и переход на сайт, и открытие карточки объявления, и переход в сообщество. Метрика фиксирует только тех, кто дошел до сайта. Разные модели атрибуции: в Метрике по умолчанию «Последний переход», в кабинете может быть «Последний значимый». Разные периоды и часовые пояса. Прежде чем искать ошибку в метках, приведите к одному знаменателю период, атрибуцию и определение клика.
Как довести метку до CRM вместе с заявкой
Отчет «Метки UTM» показывает визиты и конверсии по целям. Для оценки рекламы этого мало: нужно знать, из какой кампании пришла заявка, которая в итоге стала оплатой. Значит, метка должна попасть в CRM вместе с заявкой.
Схема простая. При первом заходе скрипт на сайте читает
(function () {
var keys = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term'];
var params = new URLSearchParams(location.search);
var saved = {};
try { saved = JSON.parse(localStorage.getItem('dl_utm') || '{}'); } catch (e) {}
// сохраняем только если пришли с меткой и в хранилище еще пусто (первый касание за 30 дней)
var fresh = {};
keys.forEach(function (k) { if (params.get(k)) fresh[k] = params.get(k).slice(0, 100); });
if (Object.keys(fresh).length && (!saved.ts || Date.now() - saved.ts > 30 * 86400000)) {
fresh.ts = Date.now();
localStorage.setItem('dl_utm', JSON.stringify(fresh));
saved = fresh;
}
// подставляем в скрытые поля всех форм на странице
document.querySelectorAll('form').forEach(function (form) {
keys.forEach(function (k) {
var input = form.querySelector('input[name="' + k + '"]');
if (input && saved[k]) input.value = saved[k];
});
});
})(); В форме при этом должны быть скрытые поля с теми же именами:
<form method="post" action="/api/lead.php">
<input type="hidden" name="utm_source">
<input type="hidden" name="utm_medium">
<input type="hidden" name="utm_campaign">
<input type="hidden" name="utm_content">
<input type="hidden" name="utm_term">
<input type="tel" name="phone" required>
<button type="submit">Оставить заявку</button>
</form> Пара замечаний к коду. Значения обрезаются до 100 символов и на сервере должны проверяться как любые пользовательские данные: в
Со звонками та же логика, только метку в CRM передает коллтрекинг: он подменяет номер под сессию с меткой и при звонке отдает ее вместе с записью. Как это устроено, мы разбирали в статье про коллтрекинг в Яндекс Директе.
Проверка раз в месяц: 20 минут
Метки ломаются постепенно: новый подрядчик, новая рассылка, переезд на HTTPS. Поэтому раз в месяц стоит открыть отчет «Отчеты → Источники → Метки UTM» и пройти по короткому списку.
- Дерево источников. В отчете по умолчанию значения группируются деревом: source → medium → campaign. Разверните первый уровень и сравните с вашим словарем. Каждое значение, которого нет в словаре, — ошибка в
чьей-то ссылке. - Отчет «Параметры URL». Отфильтруйте параметры, начинающиеся с
utm. Здесь всплывают опечатки:utm_sourse,utm_compaign. Они не попадают в отчет по меткам, поэтому в первом пункте их не видно. - Регистр. Ищите дубли, различающиеся только заглавными буквами.
Из-за них расходы, загруженные по одной версии метки, не свяжутся с визитами по другой. - Сверка с кабинетом. Возьмите 1 кампанию Директа и сравните клики за неделю с визитами по ее
utm_campaignв Метрике. Расхождение в пределах10–15 % — рабочий ориентир (это оценка, у Яндекса такой нормы нет): блокировщики, отмененные загрузки, разное определение клика. Расхождение в разы — сигнал искать потерю на 2 или 3 этапе. - Рассылки и QR. Убедитесь, что визиты из последней рассылки видны в отчете «Рассылки». Если ушли в общую группу, значит в
utm_mediumнаписаночто-то кромеemail.
| Симптом в отчете | Вероятная причина | Что сделать |
|---|---|---|
| Кликов в кабинете в 3 раза больше, чем визитов по метке | Редирект отбрасывает параметры или счетчика нет на посадочной | Открыть ссылку из объявления в инкогнито, проверить адрес после загрузки и наличие счетчика |
| Реклама в соцсети показана как «определено по меткам» | В utm_source значение не из списка Метрики | Заменить на vk_ads, telegram_ads и подобные из справки |
| Одна кампания разбита на | Разный регистр или разные написания в разных объявлениях | Перенести метки в блок «Параметры URL» на уровне кампании |
| Есть визиты, нет ни одной метки в отчете | Опечатка в имени параметра | Проверить отчет «Параметры URL» |
| Расходы Директа не сходятся с визитами по метке | yandex сократился до ya или расходы загружены по другому написанию | Зафиксировать одно значение и перезагрузить расходы |
Таблица закрывает 90% обращений «метки не работают», с которыми к нам в
Частые вопросы
Нужны ли UTM‑метки для Директа, если Метрика и так его видит?
Для отчетов группы «Директ» не нужны: Метрика связывает клики по параметру yclid, который Директ добавляет сам. Метки нужны, когда вы сравниваете Директ с другими каналами в одном отчете «Метки UTM», передаете источник в CRM или используете стороннюю систему аналитики, которая yclid не понимает. На практике метки ставят всегда, а yclid работает параллельно.
Что будет, если поставить метку на внутреннюю ссылку сайта?
Начнется новый визит с источником из метки, а реальный источник посетителя потеряется. Это ломает атрибуцию: заявка, которую принесла реклама, будет приписана «баннеру на главной». Внутренние переходы размечают через параметры целей и события, а не через UTM.
Можно ли использовать кириллицу в значениях?
Технически можно: адрес закодируется в
Как разметить ссылку в офлайне: на вывеске, листовке, упаковке?
Через utm_medium=qr и в utm_source указано место размещения. Метрика выделяет переходы по
Метки стоят, а в отчете «Метки UTM» пусто. Куда смотреть?
По порядку этапов: ссылка (опечатки, второй «?»), переход (открыть в инкогнито и посмотреть адрес после редиректа), счетчик (есть ли он на посадочной и загружается ли), период отчета. В 4 случаях из 5 причина находится на первых 2 этапах.
Что сделать на этой неделе
Составить словарь значений на 1 страницу и разослать всем, кто делает ссылки. Перенести метки Директа в блок «Параметры URL» на уровне кампаний с динамическими подстановками. Открыть 3 ссылки из объявлений в инкогнито и проверить адрес после загрузки. Добавить скрытые поля в формы и убедиться, что метка приходит в CRM с тестовой заявкой. После этого отчет «Метки UTM» начнет отвечать на вопрос, ради которого его открывают: какой канал приносит деньги. Если нужен взгляд со стороны, мы в


