Перейти к содержанию

UTM-соглашение для публикаций учебного сайта

Две публикации могут вести на один урок, но решать разные задачи. Одна знакомит читателей Telegram с новым курсом, другая напоминает подписчикам о полезном примере. Если обе ссылки выглядят одинаково и источник теряется, редактору трудно сопоставить распространение материала с действиями на сайте. Для этого используют метки кампании.

В нашей вымышленной библиотеке опубликуем внешнюю ссылку на markdown. Постоянный путь /articles/markdown-guide.html сохраняется. Метки описывают обстоятельства перехода, а не новую статью. Значения ниже придуманы для учебного соглашения; они не являются отчётом о продвижении ProfessorWeb или фактически размещённым сообщением.

Кампания и документ

UTM-параметры добавляются к внешней ссылке как query string. Обычно источник обозначается utm_source, канал — utm_medium, кампания — utm_campaign. Дополнительные параметры помогают различить варианты сообщения или объявления. Выбранный сервис объясняет, как эти значения используются в его отчётах. Метки для Метрики, кампании GA4.

Главное правило соглашения — одинаковая задача получает одинаковое значение. Если один автор пишет telegram, другой Telegram, а третий название конкретного канала в поле источника, данные сложнее группировать. Платформа не обязана догадаться, что строки имеют одно редакционное значение. Нормализация должна происходить при создании ссылки, а не после каждого экспорта.

Для нашего примера источник будет telegram, канал social, кампания markdown-series, вариант intro-post. Это один возможный набор, не универсальная классификация для любых проектов. Если вам нужно различать каналы, добавьте заранее выбранное правило, например устойчивое имя площадки в источнике и вариант размещения в дополнительном поле.

Параметр Учебное значение Вопрос
utm_source telegram Откуда размещение?
utm_medium social Какой тип распространения?
utm_campaign markdown-series Какая редакционная кампания?
utm_content intro-post Какой вариант ссылки?

Не передавайте через метки имя человека, email или содержание его сообщения. URL виден участникам передачи, может сохраняться в истории и журналах. Для сравнения двух публикаций достаточно устойчивого общего идентификатора варианта. Наличие поля не означает, что в него следует помещать подробную информацию о посетителе.

Создание ссылки

Собирать query string вручную неудобно: пробелы, амперсанд и неэкранированные значения способны изменить структуру адреса. Используем стандартный URL и URLSearchParams. Ниже полный небольшой пример, который только формирует строку; он не публикует сообщение и не делает запрос к указанному домену.

const link = new URL("https://example.com/articles/markdown-guide.html");
const labels = {
  utm_source: "telegram",
  utm_medium: "social",
  utm_campaign: "markdown-series",
  utm_content: "intro-post"
};
for (const [name, value] of Object.entries(labels)) {
  link.searchParams.set(name, value);
}
console.log(link.href);

Ожидаемая строка ведёт на тот же pathname и содержит четыре параметра. Домен example.com здесь обозначает вымышленную ссылку, а не доступное вам тестовое окружение. Для своей проверки читатель заменяет origin адресом собственного сайта. ID документа в событии остаётся markdown, независимо от наличия меток.

Обратите внимание на метод set. Если параметр уже существует, он заменяется, а не появляется второй раз с неопределённой трактовкой. Если исходная ссылка содержит нужный функциональный параметр, объект URL его сохраняет. Поэтому соглашение по меткам не должно начинаться с очистки всей query string: некоторые параметры могут отвечать за реальную работу страницы.

На нашем статическом материале UTM не меняют содержание. Это не основание объявлять любые параметры любого сайта несущественными. В поисковом интерфейсе запрос и фильтр имеют собственную функцию. Правила canonical и индексации таких адресов рассматривались в SEO; здесь мы только обеспечиваем согласованное описание внешнего перехода.

Внутренняя навигация

Ссылка из Markdown на XML остаётся обычной ссылкой постоянного маршрута. Не добавляйте к каждой кнопке следующей главы UTM, чтобы узнать место нажатия. Для этого уже существует lesson_next и поле surface. Кампанийная метка предназначена для описания входа, а постоянное обновление её на внутренних ссылках способно усложнить атрибуцию.

Представим, что посетитель пришёл из Telegram, а следующая глава содержит utm_source=next-button. В отчёте могут появиться сведения, которые читатель ошибочно принимает за внешний источник. Конкретная обработка зависит от платформы, но сама разметка уже смешивает два разных вопроса: источник посещения и элемент навигации.

Если нужно отличать кнопку в конце статьи от ссылки в оглавлении, расширьте понятные значения surface или заведите отдельное согласованное поле. Не переименовывайте источник. Так договор событий продолжит описывать UI, а соглашение UTM — внешнее распространение. Обе модели смогут использовать ID статьи, не создавая дополнительные документы.

Переход и обработка меток

Проверка ссылки включает не только её исходный вид. Если короткий адрес перенаправляет посетителя, параметры могут сохраниться либо потеряться из-за настройки промежуточного сервиса. Редактору нужен конечный URL собственного контрольного перехода и наблюдение в выбранном ресурсе. Само наличие UTM в тексте публикации не доказывает, что платформа их получила.

В рабочей таблице сохраняйте исходную ссылку, место размещения, выбранную кампанию, дату и ожидаемое назначение. Она поможет понять, почему две строки похожи или отличаются. Для действующих материалов URL назначения сверяется с реестром. Потеря UTM и потеря старого маршрута — разные неисправности; первая относится к измерению источника, вторая может помешать открыть статью вообще.

Сначала используйте небольшой контрольный набор. Например, два варианта intro-post и example-post с одной кампанией и одинаковым документом. Их показатели можно сопоставлять при известных условиях. Однако разное число переходов может зависеть от аудитории, времени размещения и охвата, а не только от формулировки сообщения.

Не называйте такую проверку доказанным экспериментом, если варианты увидели разные несопоставимые группы. UTM помогают сохранить сведения, но не создают случайное распределение посетителей. Они также не превращают пропущенные события в полную выборку. В будущем отчёте эти ограничения должны соседствовать с цифрами, а не исчезать после построения диаграммы.

Поддержание соглашения

Сохраните допустимые значения и правила именования рядом с планом измерения. Новая кампания должна иметь владельца и цель. Старое значение не переиспользуется для несвязанного запуска только ради короткого имени: тогда сравнение периодов будет объединять разные действия редакции. Варианты, напротив, удобно связывать общим именем кампании.

При росте библиотеки важна не длина списка меток, а возможность объяснить каждую строку отчёта. На двадцать тысяч страниц не требуется двадцать тысяч кампаний. Одна серия может объединять десятки материалов, а ID документа различит назначения. Теперь у нас есть общий язык внешних переходов и внутренних действий; следующий урок соберёт из него отчёт по материалам.