Через три месяца работы с несколькими офферами вы открываете отчёт и видите четыре отдельные строки: FB_Test, fb-test, facebook test 2 и Fb_test_NEW. Это одна и та же кампания. Никто не помнит, в какой из них живёт выигрышный креатив, а в sub-полях лежит то, что каждый вписал в тот день.
Схема именования решает это заранее. Вы один раз определяете, какой слот несёт какой факт, как пишутся значения и где лежит словарь допустимых значений. После этого каждая ссылка и каждый отчёт читаются одинаково, будь то один оффер или десять клиентов.
Дайте каждому UTM-полю и каждому из sub1–sub5 одну постоянную роль: источник, кампания, креатив, плейсмент, клиент. Значения пишите строчными буквами, без пробелов, с одним разделителем, и держите файл-словарь допустимых коротких кодов. Ссылки собирайте из словаря, а не вручную. Тогда отчёты группируются чисто, а данные каждого клиента лежат в своих строках.
Чем грязные названия бьют по деньгам
Отчёт группирует по точному тексту. Facebook и facebook это две группы. Пробел в конце даёт третью. Когда вы выгружаете данные в таблицу и строите сводную, каждый вариант приходится склеивать руками, и пару вы пропустите.
Вторая цена это память. Кампания test3_final_v2 через полтора месяца ничего не значит. Название вроде us-ios-lp2 сразу говорит гео, платформу и лендинг.
Третья цена всплывает, когда вы работаете не на одного человека. Если клиент, оффер и источник лежат в одном текстовом поле, на простой вопрос «сколько клиент А потратил на креатив 7» ответить нельзя.
Решите, что несёт каждый слот
В UTM пять стандартных полей: source, medium, campaign, content и term. В партнёрских ссылках обычно добавляются sub1–sub5, то есть свободные параметры, которые трекер сохраняет с каждым кликом. Названия и макросы у сетей и трекеров разные, точные имена параметров смотрите в своей документации. Схема ниже от них не зависит.
Смысл в том, чтобы перестать считать поля свободным текстом. У каждого слота одна роль.
| Слот | Что несёт | Пример значения |
|---|---|---|
utm_source | Источник трафика | push, native, social |
utm_medium | Тип закупки | cpc, cpm, cpa |
utm_campaign | Оффер, гео и подход | vpnapp-us-angle2 |
utm_content | Креатив | c014 |
utm_term | Плейсмент или аудитория | p-feed, aud-lal1 |
sub1 | Клиент | cl-acme |
sub2 | ID кампании в источнике | 8841230 |
sub3 | ID креатива в источнике | c014 |
sub4 | ID плейсмента или сайта | pl-77310 |
sub5 | Запас под тест или версию | v2 |
Копировать эту таблицу один в один не обязательно. Важно, чтобы sub1 на всех ваших ссылках значил одно и то же. Если позже вы меняете раскладку, запишите дату и считайте старые данные отдельной эпохой.
Почему клиент идёт в фиксированный слот
Клиента надо класть в одно и то же поле каждый раз, в нашем примере это первое sub-поле. Тогда группировка отчёта по этому полю разделяет данные по клиентам за один шаг. Если имя клиента спрятано внутри текста кампании, приходится искать и фильтровать по подстроке, и это ломается при первой же опечатке.
Храните ID самого источника
Придуманные вами названия нужны вам. Числовые ID из источника нужны для сверки с его собственным кабинетом, поэтому держите их в отдельном слоте. Когда ваши цифры и цифры источника расходятся, сверять по ID гораздо проще, чем по названиям (см. почему статистика трекера и сети расходится).
Правила, которые держат порядок
Схема работает, только если она скучная и строгая. Эти правила закрывают почти все случаи.
- Только строчные буквы. Заглавные создают дубли групп. Решите один раз и больше их не используйте.
- Без пробелов. В URL пробел превращается в
%20или+, и разные инструменты декодируют его по-разному. Используйте разделитель. - Один разделитель. Дефис для слов внутри значения и другой символ, например подчёркивание, если вы склеиваете слоты. Роли не смешивайте.
- Латиница и цифры. Без кириллицы, диакритики и символов вроде
&,#и?, у которых в URL особый смысл. - Короткие коды, а не фразы.
usвместоunited-states-of-america. Что значит код, объясняет словарь. - Постоянный порядок внутри значения. Если кампания собирается как оффер-гео-подход, то всегда в таком порядке. Читать её тогда легко.
- Не переиспользуйте коды. Если
c014был зелёным баннером, он им и остаётся. Старые коды выводят из обращения, а не отдают под новое.
Файл-словарь
Словарь это простой файл, таблица или текст в общей папке, где перечислены все допустимые значения каждого слота и их смысл. Именно он помогает схеме пережить появление нового человека в команде.
| Слот | Код | Значение | Добавлен |
|---|---|---|---|
| source | push | Закупка пуш-трафика | 2026-01-12 |
| client | cl-acme | Acme, команда по офферу A | 2026-01-12 |
| geo | us | США | 2026-01-12 |
| angle | angle2 | Подход со сравнением цен | 2026-02-03 |
К словарю прилагаются два правила. Новое значение сначала попадает в словарь и только потом в ссылку. А ссылки собираются из словаря, лучше всего формулой в таблице или небольшим скриптом, который склеивает части, чтобы никто не набирал название кампании по памяти.
Грязно и чисто
Ниже три одинаковые кампании в том виде, как их вписывали руками за несколько недель, и в том виде, как они выглядят по схеме.
| Грязно | Чисто |
|---|---|
utm_campaign=Тест 1 FB US | utm_campaign=vpnapp-us-angle1 |
utm_source=Facebook&utm_medium=Paid | utm_source=social&utm_medium=cpc |
sub1=ivan (на этой неделе), sub1=acme (на прошлой) | sub1=cl-acme |
utm_content=новый баннер финал2 | utm_content=c014 |
Полная ссылка в чистом варианте выглядит так, всё строчными и без декодирования:
?utm_source=social&utm_medium=cpc&utm_campaign=vpnapp-us-angle2&utm_content=c014&sub1=cl-acme&sub2=8841230Доходят ли параметры вашей ссылки до адреса назначения, зависит от того, как настроен редирект. Как это проверить, описано в статье UTM через редирект.
Как держать клиентов раздельно в отчётах
Если вы ведёте трафик для нескольких клиентов, разделение делает схема, и делает она его через данные. Никакой особой структуры аккаунтов в этом подходе нет. Клиентов вы разводите кодом клиента и тем, как строите отчёты.
- Всегда заполняйте слот клиента. Ссылка без него это ссылка, которую нельзя атрибутировать. Пусть сборщик ссылок отказывается выдавать такую.
- Сначала группируйте по клиенту. В отчёте первый уровень группировки клиент, затем кампания, затем креатив.
- Фильтруйте до выгрузки. Когда отправляете цифры клиенту, отфильтруйте по его коду и выгружайте только эти строки. Проверьте файл перед отправкой, потому что один неверный код покажет данные другого клиента.
- Заводите отдельные ссылки на клиента. Даже при одном домене создавайте для кампаний каждого клиента свои ссылки, чтобы их правила и логи не смешивались.
Считайте это соглашением, которое вы соблюдаете сами. Схема именования не предотвращает ошибку, поэтому встройте проверки в процесс: один человек отвечает за словарь, одно место собирает ссылки.
Где это видно в TDS.SO
В TDS.SO на каждую кампанию клиента можно завести свою ссылку с правилами за ней, а лог кликов показывает каждый клик со временем, страной и городом, IP, устройством и браузером, реферером и статусом. Раздельные ссылки позволяют смотреть трафик одного клиента отдельно. Для конверсий привяжите клики к постбэкам через click ID, как описано в статье про click ID и subid. Трекер с постбэками, конверсиями, доходом и ROI находится в бете; доход там это подтверждённые конверсии, а расход это все клики, и это хорошая причина с самого начала держать закупаемый трафик размеченным и аккуратным.
Проверка перед запуском
Перед тем как отправить ссылку в рекламу, пройдите короткий список. Это занимает минуту и спасает от недели грязных данных.
- Все значения есть в словаре, и ни одно не набрано вручную.
- Заполнены слоты клиента, источника и кампании. Пустой слот хуже неверного, потому что его не видно в группировке.
- В ссылке нет пробелов, заглавных букв и кириллицы.
- Вы открыли ссылку сами и посмотрели в логе кликов, что клик пришёл и параметры на месте.
- Ссылка записана в таблицу запусков вместе с датой и именем того, кто её собрал.
Последний пункт кажется формальностью, пока через полгода не придётся выяснять, кто и когда запустил кампанию с кодом angle2. Таблица запусков и словарь вместе дают вам историю, которую не восстановить по памяти.
Частые вопросы
Сколько sub-полей реально использовать?
Те, которые вы будете читать в отчёте. Пяти слотов хватает с запасом. Последний оставьте под версии или тесты, остальные заполняйте стабильными повторяемыми фактами.
Класть в sub-поля названия или ID?
Место есть у обоих. Ваши короткие коды нужны для читаемой группировки, числовые ID источника для сверки с ним. Держите их в разных слотах.
Можно ли менять схему позже?
Можно, но считайте это новой версией. Запишите дату, обновите словарь и не сравнивайте две эпохи строка к строке, пока не сопоставите старые коды с новыми.
Строчные буквы правда обязательны?
Это самое дешёвое правило, и оно убирает целый класс дублей. Большинство инструментов считают заглавные другим значением, поэтому одна заглавная буква раскалывает отчёт.
А пробелы и кириллица?
В значениях избегайте и того и другого. В URL они кодируются, разные инструменты показывают их по-разному, и возвращаются те самые дубли, от которых вы хотели избавиться.
Когда ссылки чистые, данные за ними легко читаются. На странице аналитики показаны обзор и лог кликов, где эти названия появляются.
Гайды и разборы о маршрутизации, фильтрации ботов и трекинге от команды TDS.SO.
Все статьи автора