UTM-метки — основа любой маркетинговой аналитики. Без них вы не отличите клиента из контекста от клиента из email-рассылки. С ошибками в метках — путаете каналы, теряете данные и принимаете неверные решения о бюджете.

Этот гайд закрывает 99% ситуаций, с которыми сталкиваются маркетологи в России: от первых 5 меток в Директе до сложной разметки кросс-канальных кампаний с офлайн-точками контакта.

Что такое UTM-метки

UTM (Urchin Tracking Module) — параметры в URL, которые передают информацию об источнике трафика в системы аналитики (Яндекс Метрику, Google Analytics) и CRM.

Пример размеченной ссылки:

https://growmatrix.ru/?utm_source=yandex&utm_medium=cpc&utm_campaign=brand_search&utm_content=ad_42

Когда пользователь переходит по ней:

  • Метрика записывает: источник=yandex, тип=cpc, кампания=brand_search
  • CRM получает данные через JS-скрипт и привязывает их к лиду
  • Отчёты показывают, какой канал и какое объявление привели сделку

Без UTM весь этот трафик попадёт в "не определено" или будет агрегирован в одну запись "yandex".

5 стандартных UTM-меток

1. utm_source — откуда трафик

Источник: домен сайта или название платформы. Обязательная.

Примеры:

  • yandex — Яндекс Директ
  • vk — ВКонтакте
  • telegram — Telegram (Ads или каналы)
  • email — рассылки
  • dzen — Яндекс Дзен
  • vc — VC.ru
  • partner_name — конкретный партнёр

2. utm_medium — тип трафика

Канал/среда: тип маркетингового действия. Обязательная.

Стандартные значения:

  • cpc — оплата за клик (контекст, таргет)
  • cpm — оплата за показы
  • social — органика в соцсетях
  • email — email-рассылки
  • referral — переходы с других сайтов
  • affiliate — партнёрский трафик
  • display — медийная реклама
  • qr — переходы с QR-кодов
  • notification — push-уведомления

3. utm_campaign — название кампании

Идентификатор маркетинговой кампании. Обязательная.

Структура должна быть единой по всему бизнесу. Пример хорошего шаблона:

{месяц}_{продукт}_{сегмент}_{цель}

Например: 2025_05_audit_smb_lead

4. utm_content — дифференциация креатива

Используется для A/B-тестов и различения объявлений внутри одной кампании. Опциональная.

Примеры:

  • headline_a / headline_b — разные заголовки
  • image_red / image_blue — разные креативы
  • cta_demo / cta_call — разные призывы

5. utm_term — ключевое слово

Изначально — для поисковой рекламы (Директ автоматически подставляет ключ через {keyword}). Опциональная.

Примеры:

  • kupit_lendingn
  • marketingovoe_agentstvo_moskva
  • roi_kalkulyator

Шаблон разметки для распространённых каналов

Яндекс Директ — поиск

Подставляется автоматически в шаблоне ссылки кабинета:

?utm_source=yandex
&utm_medium=cpc
&utm_campaign={campaign_id}_{campaign_name}
&utm_content={ad_id}
&utm_term={keyword}
&yclid={yclid}

{yclid} — обязательно для CRM-привязки и автоматического импорта расходов в Метрику.

Яндекс Директ — РСЯ

?utm_source=yandex
&utm_medium=cpm
&utm_campaign={campaign_id}_rsya
&utm_content={ad_id}_{position_type}
&utm_term={source}

{source} в РСЯ подставит площадку показа (yandex.ru, vc.ru, и т.д.).

VK Ads

?utm_source=vk
&utm_medium=cpc
&utm_campaign={campaign_name}
&utm_content={ad_id}_{ad_name}

VK Ads поддерживает {campaign_id}, {campaign_name}, {ad_id}, {ad_name} через макросы.

Telegram Ads

?utm_source=telegram
&utm_medium=cpc
&utm_campaign=brand_q2
&utm_content={ad_id}

В Telegram Ads нет автоматических макросов — UTM нужно прописывать вручную для каждого объявления. Используйте формат вложенных кампаний: tg_{месяц}_{креатив}.

Email-рассылки

?utm_source=email
&utm_medium=newsletter
&utm_campaign=q2_audit_promo
&utm_content=cta_top

utm_content=cta_top / cta_middle / cta_bottom — отслеживает, какая кнопка в письме сработала.

QR-коды на офлайн-материалах

?utm_source=offline
&utm_medium=qr
&utm_campaign=spbcamp25
&utm_content=banner_hall_a

Каждый QR-код должен иметь уникальный utm_content, иначе вы не отличите конверсии с разных носителей.

Партнёрские ссылки

?utm_source=partner
&utm_medium=affiliate
&utm_campaign=blog_vc
&utm_content={partner_slug}

utm_content={partner_slug} позволяет считать выплаты партнёрам по точным заявкам.

10 правил, которые сэкономят вам сотни часов

1. Только латиница и нижний регистр

utm_source=Yandex и utm_source=yandex — это два разных источника в Метрике. Кириллица в URL ломает фильтры.

Плохо: utm_campaign=Осенняя%20Распродажа
Хорошо: utm_campaign=autumn_sale_2025

2. Без пробелов — только подчёркивания или дефисы

Пробел = %20 в URL = ад в отчётах.

Плохо: utm_campaign=brand search
Хорошо: utm_campaign=brand_search или brand-search

3. Единая структура `utm_campaign` по всему бизнесу

Если в Директе вы пишете 2025_05_audit, в VK — osen_audit, в email — kampaniya_5, отчётность превращается в кашу. Зафиксируйте шаблон и пользуйтесь им везде.

4. utm_medium только из стандартного списка

Не плодите medium=context, paid, online, banner — используйте cpc, cpm, social. Это позволит группировать каналы автоматически в готовых отчётах Метрики.

5. utm_source — это платформа, а не продукт

Плохо: utm_source=audit_promo (это название кампании, а не источник)
Хорошо: utm_source=yandex + utm_campaign=audit_promo

6. Не дублируйте информацию

utm_source=email&utm_medium=email&utm_campaign=email_q2 — две ненужные email повторяются. Тратите место в URL и засоряете отчёты.

7. Передавайте UTM в CRM через скрытые поля формы

<input type="hidden" name="utm_source" value="">
<input type="hidden" name="utm_medium" value="">
<input type="hidden" name="utm_campaign" value="">

JS-скрипт читает параметры URL, записывает их в эти поля и sessionStorage. При отправке формы данные летят в CRM вместе с лидом.

8. Сохраняйте UTM в sessionStorage между переходами

Пользователь зашёл с Директа на главную, а заявку оставил через 2 минуты на странице услуг. Если не сохранить UTM — Метрика и CRM запишут переход с предыдущей страницы, а не с Директа.

// Сохраняем при первом заходе
const params = new URLSearchParams(window.location.search);
['utm_source','utm_medium','utm_campaign','utm_content','utm_term'].forEach(k => {
  const v = params.get(k);
  if (v) sessionStorage.setItem(k, v);
});

// Достаём при отправке формы
function getUtm() {
  return ['utm_source','utm_medium','utm_campaign','utm_content','utm_term']
    .reduce((acc, k) => { acc[k] = sessionStorage.getItem(k) || ''; return acc; }, {});
}

9. Длина URL — не более 2000 символов

Браузеры режут длинные URL. Если делаете глубокую вложенность параметров — проверяйте итоговую длину.

10. Никогда не пишите PII в UTM

Email, телефон, ФИО в UTM — нарушение 152-ФЗ. Эти данные попадают в логи Метрики и Google Analytics, доступны множеству служб, и могут утечь.

Типичные ошибки, которые видим у клиентов

Ошибка 1. Отсутствие меток на органике из соцсетей

Когда менеджер шерит ссылку в Telegram-канале без UTM, переход уходит в "(direct)" или "telegram referral". Решение — настроить шаблон ссылок в pretty link или Bitly с автоматическими UTM.

Ошибка 2. Один utm_campaign на год

utm_campaign=brand — и так для всего бренда круглый год. Невозможно понять, какие активности сработали лучше.

Ошибка 3. Микс автоматических и ручных меток

В Директе подставлены автоматические UTM через макросы, а в одном объявлении кто-то прописал руками — теперь в отчёте 80% точных данных и 20% мусора.

Ошибка 4. UTM на внутренних ссылках сайта

https://example.ru/page1?utm_source=internal

Так теряется реальный источник пользователя — он перезаписывается на internal. Внутренние UTM делать нельзя никогда.

Ошибка 5. Использование разных utm_source для одной площадки

utm_source=yandex.direct в одной кампании, yandex_direct в другой, yandex в третьей. В Метрике это три разных источника — статистика разваливается.

Как проверить, что метки работают

  1. Откройте Яндекс Метрику → Отчёты → Источники → Метки UTM
  2. Найдите вашу кампанию в списке
  3. Сверьте число визитов с числом кликов в рекламном кабинете (расхождение до 10% — норма, 20%+ — проблема)
  4. Проверьте конверсии в воронке Метрики — UTM должны передаваться вплоть до целевого действия

Если расхождение больше 20% — частые причины:

  • Метки не скопировались во все объявления
  • Ошибки в синтаксисе (опечатки, лишние символы)
  • Неправильные макросы в кабинете
  • Метки теряются при редиректе через сторонний домен (Bitly без сохранения параметров)

Шаблон для быстрого старта

Сохраните в Excel/Google Sheets как генератор:

Канал utm_source utm_medium utm_campaign шаблон
Яндекс Директ Поиск yandex cpc direct_search_{месяц}_{продукт}
Яндекс Директ РСЯ yandex cpm direct_rsya_{месяц}_{продукт}
VK Ads vk cpc vk_{месяц}_{сегмент}
Telegram Ads telegram cpc tg_{месяц}_{креатив}
Email email newsletter em_{месяц}_{тема}
SEO/органика yandex/google organic (не размечается)
QR офлайн offline qr qr_{ивент}_{носитель}

Формула в Google Sheets для генерации полной ссылки:

=A2&"?utm_source="&B2&"&utm_medium="&C2&"&utm_campaign="&D2&"&utm_content="&E2

Разметка — это не разовая задача

Хорошая разметка живёт годами и расширяется по мере роста маркетинга. Один раз договоритесь с командой о структуре, зафиксируйте в notion или гайде, и проверяйте каждую новую кампанию по чек-листу.

Если хотите аудит вашей UTM-разметки и чтобы все каналы стали корректно атрибутироваться в одном дашборде — мы делаем это в рамках настройки сквозной аналитики.