7.1. Зачем нужна разметка
Как UTM-метки помогают SCAN правильно атрибутировать регистрации и заказы.
7.2. Структура UTM-меток
5 стандартных параметров + utm_group, правила написания и типичные ошибки.
7.3. Разметка по источникам
Шаблоны для Яндекс.Директа, ВК, Telegram, рассылок, партнёров и видео.
7.4. Скрипт отслеживания
Установка скрипта SCAN на GetCourse, опции и междоменное отслеживание.
7.5. Проверка разметки
Три способа проверить, что метки доходят до SCAN, и типичные проблемы.
Раздел 7. Разметка трафика
В этом разделе — всё про UTM-метки в SCAN: зачем они нужны, как должны быть устроены, какие шаблоны использовать для каждого рекламного источника и как проверить, что разметка работает корректно.
7.1. Зачем нужна разметка
UTM-метки — это параметры в URL посадочной страницы (например, ?utm_source=yandex&utm_medium=cpc&utm_campaign=astrology), по которым SCAN определяет, откуда пришёл пользователь. Без них вся аналитика по источникам, рекламным расходам и окупаемости работать не будет.
Что SCAN делает с UTM-метками
- Считывает метки из URL, по которому пользователь перешёл на сайт школы или прямо на форму регистрации в GetCourse.
- Сохраняет их в карточке пользователя в GetCourse — в специальное доп.поле SCAN.
- Привязывает регистрацию (а через неё — все будущие заказы и платежи) к конкретному источнику, кампании и объявлению.
- Сопоставляет ID объявления из метки с записью в таблице объявлений — и подтягивает к нему расход.
- Считает окупаемость по каждой метке — ROMI, ROAS, ДРР, CPL — в отчёте по рекламе.
Что будет без меток
- Регистрация попадёт в категорию «Без меток» или «-» в любом отчёте по источникам.
- В отчёте по рекламе такая регистрация не свяжется ни с одним объявлением — расход будет, а атрибуции не будет, метрики окупаемости станут недостоверными.
- Невозможно посчитать CPL, ROMI, ROAS по конкретному каналу или кампании.
- Нельзя сравнить «что лучше работает — Яндекс или ВК».
- Бюджет фактически расходуется «вслепую».
Метки — это единственный способ для SCAN понять, откуда пришёл пользователь. Без UTM SCAN видит факт регистрации в GetCourse, но не видит её источник. Поэтому первое правило работы с рекламой в SCAN — размечать все ссылки, которые ведут на регистрацию.
7.2. Структура UTM-меток
SCAN обрабатывает 6 UTM-параметров: 5 стандартных (по протоколу Google Analytics) и 1 дополнительный.
| Параметр | Зачем нужен | Пример значения |
|---|---|---|
| utm_source | Источник трафика — рекламная система или площадка | yandex, vk, google, tg, email, partner |
| utm_medium | Тип трафика | cpc (платный клик), cpm (за показы), email (рассылка), social (соцсети), referral (партнёр), organic (бесплатно) |
| utm_campaign | Название рекламной кампании | astrology-jan-2026, webinar-zhenskaya-energiya |
| utm_term | Ключевое слово (для контекстной рекламы) | как найти призвание, курс астрологии |
| utm_content | Конкретное объявление, креатив или ссылка | Чаще всего — ID объявления (см. 6.1. Разметка динамических параметров) |
| utm_group (SCAN) | Группа объявлений (доп. уровень в иерархии) | ID группы или название |
Правила написания значений
Только латиница, цифры, дефис и подчёркивание. Никакой кириллицы, пробелов, спецсимволов в значениях UTM. Кириллица в URL может «закодироваться» в %D0%B0%D0%B5... или вовсе сломаться при редиректах.
❌ Плохо: utm_campaign=Курс по астрологии, utm_source=Яндекс, utm_medium=cpc m
✅ Хорошо: utm_campaign=astrology-course, utm_source=yandex, utm_medium=cpc
Стандарт «один параметр = одна сущность»
Не пытайтесь упихать всё в один параметр через свои разделители — это ломает аналитику. Используйте по назначению:
- источник →
utm_source, - тип трафика →
utm_medium, - кампания →
utm_campaign, - объявление →
utm_content, - ключевое слово →
utm_term.
Исключение — рекламные кабинеты (Яндекс, VK), где один параметр (utm_campaign или utm_content) содержит составное значение с разделителями | и динамическими макросами. Для них SCAN умеет парсить позицию ID — см. колонку «Где в UTM метке ID объявления?» при настройке кабинета в 6.1.
Несовпадение значений = потеря данных
Малейшая опечатка в метке ломает атрибуцию. Если в одной ссылке utm_medium=cpc, а в другой — utm_medium=cpc (с пробелом в конце) или utm_medium=CPC (с большой буквы) — SCAN будет считать их разными источниками. То же самое с tg vs telegram, vk vs vkontakte.
Один кабинет — одна разметка. Перед стартом кампании договоритесь с командой, какие именно значения вы используете для utm_source / utm_medium, и строго придерживайтесь их во всех ссылках.
Длинные числа в utm_content
Слишком длинные числа в utm_content (больше ~25 цифр подряд) могут не сохраниться в карточке пользователя GetCourse — регистрация не дойдёт до SCAN. Если в Вашем макросе получаются «склеенные» ID типа 2384654764451062523846547644850625 — разделите их через | или -, либо используйте более короткий идентификатор.
7.3. Разметка по источникам
Ниже — готовые шаблоны разметки для самых частых источников трафика в проектах GetCourse + SCAN. Везде, где в значении используются {макрос} — это динамический параметр рекламной системы, который площадка автоматически заменяет на реальный ID при клике (см. 6.1. Разметка динамических параметров).
Платная реклама
Яндекс.Директ (обычные объявления)
?utm_source=yandex
&utm_medium=cpc
&utm_campaign={campaign_id}
&utm_term={keyword}
&utm_content={ad_id}
Яндекс.Директ (Мастер кампаний)
?utm_source=yandex
&utm_medium=cpc
&utm_campaign={campaign_id}
&utm_content={campaign_id}
В Мастер-кампаниях нет отдельных объявлений — поэтому в utm_content пишем тот же {campaign_id}.
VK Реклама (новый кабинет)
?utm_source=vk
&utm_medium=cpc
&utm_campaign={{campaign_name}}
&utm_content={{banner_id}}
Вконтакте (старый кабинет)
?utm_source=vk
&utm_medium=cpc
&utm_campaign={campaign_name}
&utm_content={ad_id}
Google Ads
?utm_source=google
&utm_medium=cpc
&utm_campaign={campaign}
&utm_term={keyword}
&utm_content={creative}
myTarget
?utm_source=mytarget
&utm_medium=cpc
&utm_campaign={{campaign_name}}
&utm_content={{banner_id}}
Facebook Ads
?utm_source=facebook
&utm_medium=cpc
&utm_campaign={{campaign.name}}
&utm_content={{ad.id}}
Telegram Ads (платная реклама в Telegram)
?utm_source=tgads
&utm_medium=cpc
&utm_campaign=название-кампании-латиницей
&utm_content=ID-объявления
Telegram Ads не поддерживает динамические макросы — все значения нужно прописывать вручную при создании объявления.
Органика и партнёры
Email-рассылки (GetCourse)
?utm_source=email
&utm_medium=email
&utm_campaign={название_рассылки}
&utm_content={ID_письма}
GetCourse не подставляет UTM автоматически в рассылки — нужно прописывать руками в шаблоне письма.
Telegram (органика, посты, посевы у блогеров)
?utm_source=tg
&utm_medium=social
&utm_campaign={название_канала_или_блогера}
&utm_content={название_поста}
YouTube (органика, описания под видео)
?utm_source=youtube
&utm_medium=social
&utm_campaign={название_видео}
&utm_content={timestamp_или_место_в_описании}
Партнёрский трафик / реферальная ссылка
?utm_source=partner
&utm_medium=referral
&utm_campaign={имя_партнёра_или_школы}
&utm_content={название_акции}
Альтернатива — использовать домен партнёра в utm_source (например, utm_source=kadalier.ru). SCAN распознаёт оба варианта.
Реклама у блогера (оффер, договор)
?utm_source=blogger
&utm_medium=influencer
&utm_campaign={имя_блогера}
&utm_content={формат_рекламы}
SMS-рассылки
?utm_source=sms
&utm_medium=sms
&utm_campaign={название_рассылки}
Сводная таблица
| Источник | utm_source | utm_medium | utm_content (макрос) |
|---|---|---|---|
| Яндекс.Директ | yandex | cpc | {ad_id} |
| Яндекс.Директ (Мастер) | yandex | cpc | {campaign_id} |
| VK Реклама | vk | cpc | {{banner_id}} |
| Вконтакте (старый) | vk | cpc | {ad_id} |
| Google Ads | google | cpc | {creative} |
| Facebook Ads | facebook | cpc | {{ad.id}} |
| myTarget | mytarget | cpc | {{banner_id}} |
| Telegram Ads | tgads | cpc | прописать вручную |
| Telegram (органика) | tg | social | прописать вручную |
email | email | ID письма | |
| Партнёрка | partner или домен_партнёра | referral | прописать вручную |
| YouTube | youtube | social | название видео |
7.4. Скрипт отслеживания
Чтобы SCAN видел UTM-метки на сайте школы (Tilda, Wordpress, лендинги, GetCourse), нужно установить скрипт отслеживания — фрагмент JS, который читает метки из URL и передаёт их в SCAN при регистрации.
Маршрут в SCAN: Настройки → Скрипт отслеживания → Скрипт GetCourse (открыть).

Что делает скрипт
- Читает все
utm_*параметры из текущего URL. - Сохраняет их в cookie домена (или localStorage) на 30 дней — чтобы метки «не терялись», если пользователь сначала зашёл на лендинг, а потом на другой странице зарегистрировался.
- При регистрации в GetCourse передаёт сохранённые UTM в специальное доп.поле SCAN в карточке пользователя.
Где взять и куда вставить
- Откройте в SCAN Настройки → Скрипт отслеживания → Скрипт GetCourse (открыть).
- Нажмите «Скопировать в буфер» — код скопируется в буфер обмена.
- В GetCourse зайдите в Настройки → Дизайн → Виджеты сайта → Дополнительные виджеты (точное расположение может отличаться от версии).
- Вставьте скрипт. Сохраните.
- Если у Вас отдельные сайты вне GetCourse (Tilda, Wordpress) — вставьте этот же скрипт на каждый сайт перед закрывающим
</body>.

В GetCourse поле для скрипта называется «Счетчики и прочие скрипты для BODY» — изменения применяются в течение 10 минут.
Опции скрипта
На странице — три переключателя:
- Валидация электронной почты — скрипт проверяет правильность формата email при регистрации (опечатки типа «mai.ru» → «mail.ru», «gmail.con» → «gmail.com») и подсвечивает их пользователю.
- Перекидывать UTM метки на все страницы — даже если пользователь сначала зашёл на лендинг, потом перешёл на главную, метки сохраняются и применяются к регистрации, где бы он её ни сделал. Рекомендуется включить — это повышает процент атрибуции.
- Показывать идентификатор отслеживания в адресной строке — добавляет к URL служебный параметр SCAN для удобства отладки. Для боевого использования обычно оставляют выключенным.
Междоменное отслеживание
Если Ваша школа использует несколько доменов (например, лендинг на mysite.com, регистрация на mysite.getcourse.ru, основной сайт на tilda.ws) — без специальной настройки UTM-метки не передаются между доменами. Браузер не пускает cookie одного домена на другой.
В SCAN есть раздел «Междоменное отслеживание» — список доменов, между которыми SCAN автоматически прокидывает UTM-метки через специальный параметр в URL.
Чтобы добавить домен:
- Прокрутите до раздела «Междоменное отслеживание».
- Нажмите «+ Добавить домен».
- Введите домен (без
https://, без слэша в конце), напримерmysite.com. - Включите переключатель.
После этого SCAN при переходе пользователя с одного домена на другой автоматически перекидывает UTM-метки через query-параметр и восстанавливает их на новом домене. Без этого пользователь, который пришёл на lending.com?utm_source=yandex, а потом перешёл на school.getcourse.ru/register, потеряет метки и будет атрибутирован как «прямой переход».
7.5. Проверка разметки
В SCAN нет отдельного UI-валидатора («вставь URL — увидь, какие метки распознались»), но есть несколько способов убедиться, что разметка работает.
Как проверить, что всё работает
Способ 1. Сделать тестовую регистрацию
- Возьмите готовую размеченную ссылку из своей рекламной кампании.
- Перейдите по ней в режиме инкогнито (чтобы не было старых cookie).
- Зарегистрируйтесь как новый пользователь с тестовым email.
- В GetCourse откройте карточку этого пользователя → доп.поле «SCAN UTM» (или похожее).
- Там должны быть все ваши метки одной строкой.
Способ 2. Проверить регистрацию в SCAN
- Откройте отчёт по регистрациям или отчёт по рекламе.
- Поставьте период «Сегодня» и фильтр по своему тестовому email.
- Включите группировки по
UTM source/UTM campaign/UTM content. - Если ваш тестовый юзер виден в строке с правильными метками — всё работает. Если в строке «-» или «Без меток» — что-то сломалось.
Способ 3. Через DevTools браузера
- Откройте лендинг с UTM в URL.
- F12 → вкладка Application → Cookies (или Storage → LocalStorage).
- Найдите ключ типа
scan_utm,school_webvisorили_scan_*— там должны лежать метки в JSON. - Если их нет — скрипт не отрабатывает (не вставлен, заблокирован, неправильный school_id).
Типичные проблемы
| Симптом | Причина | Решение |
|---|---|---|
| Регистрации идут, но в «Без меток» | Скрипт не установлен / не загружается / стоит блокировщик | Проверить установку, отключить адблоки на тестовом устройстве |
| Часть регистраций с метками, часть без | Пользователи приходят с разных лендингов, не все размечены | Размечать все ссылки, включая старые посты, рассылки, описания видео |
| Мобильное приложение GetCourse «съедает» метки | Редирект через приложение теряет query-параметры | Известная проблема. Размечать ссылки максимально компактно, минимизировать длину UTM |
| Кириллица в utm_campaign не работает | URL-кодирование ломается на разных площадках | Только латиница / цифры / дефис / подчёркивание |
Опечатка cpc (с пробелом) дробит источник на два | Малейшая разница в значении — отдельная строка | Привести все ссылки кампании к единому виду |
| Очень длинные числа в utm_content — регистрация не появляется в SCAN | Длинные строки не сохраняются в доп.поле GetCourse | Сократить ID, использовать разделители |
Перед запуском новой рекламной кампании сделайте 2–3 тестовые регистрации по своим же ссылкам в режиме инкогнито. Проверьте через 5–10 минут в отчёте по регистрациям — попали ли они в нужные строки. Это сэкономит десятки тысяч рублей на «слитом» бюджете без атрибуции.