Перейти к содержимому
Назад в Академию

UTM-метки: как размечать ссылки, чтобы видеть источник заявки

10.02Веб-аналитика и GTM
Содержание статьи

Онлайн-школа в Алматы набирает поток курса по аналитике. В неделю она тратит 120 000 ₸ на рекламу в Instagram и 80 000 ₸ на поиск Google, а администратор ещё выкладывает посты в Telegram-канале школы (цифры в уроке условные). Через неделю владелец открывает GA4 и видит строки instagram / cpc, inst / paid, t.me / referral и (direct) / (none). Таргетолог и подрядчик подписали рекламу каждый по-своему, а посты из Telegram ушли без меток вовсе. Сколько заявок принёс каждый канал, по такому отчёту не скажешь.

UTM-метки - это подписи к ссылке. В конец адреса дописывают, где стоит ссылка, какой это трафик и к какой кампании он относится. Когда человек переходит по такой ссылке, GA4 читает подписи и записывает визит под этими названиями, а не гадает по адресу предыдущей страницы.

Пост за пределами сайта ведёт на example.com/course, а четыре метки подписывают источник telegram, тип трафика social, кампанию course_start и версию поста post_a.
Пост за пределами сайта ведёт на example.com/course, а четыре метки подписывают источник telegram, тип трафика social, кампанию course_start и версию поста post_a.

Из чего состоит ссылка с метками

Для сайта пост в Telegram-канале школы - внешний, и ссылка в нём выглядит так:

https://example.com/course?utm_source=telegram&utm_medium=social&utm_campaign=course_start&utm_content=post_a

Метки начинаются после ? и разделяются знаком &. У каждой своя работа:

МеткаВ примереЧто подписывает
utm_sourcetelegramПлощадку, где стоит ссылка
utm_mediumsocialТип трафика: соцсети, платная реклама, рассылка
utm_campaigncourse_startКампанию, здесь набор на поток
utm_contentpost_aПост или креатив внутри кампании

Первые три Google советует ставить всегда: если одной из них нет, в отчётах на её месте будет (not set). utm_content нужен, когда в кампании несколько объявлений или постов и их хочется сравнить между собой. Есть ещё utm_term для ключевого слова и utm_id для номера кампании, но для начала хватит четырёх.

Правила, о которых договариваются заранее

Метки ломаются, когда каждый пишет их по-своему. Таргетолог ставит Instagram, SMM-специалист instagram, подрядчик inst, и у одного канала в отчёте три строки. Google прямо пишет, что значения чувствительны к регистру: utm_source=google и utm_source=Google для GA4 два разных источника.

До первой ссылки команда договаривается о нескольких вещах:

  • Только строчные латинские буквы и цифры. Кириллица в адресе кодируется в цепочку вида %D0%BA%D1%83: такую ссылку не прочитаешь глазами и легко сломаешь при копировании.
  • Слова разделяются подчёркиванием: course_start, а не course-start и не course start (пробел превратится в %20).
  • Одна кампания называется одинаково во всех каналах. Набор на поток - это course_start и в Instagram, и в Google, и в Telegram, тогда в отчёте по кампании видно, какой канал сработал лучше.
  • В utm_content пишут то, чем объявления отличаются друг от друга: идею креатива, формат, номер поста.
  • Никаких имён, телефонов и email. Google запрещает передавать в Analytics персональные данные, и запрет касается и пути, и параметров адреса.
  • Справочник лежит в одной общей таблице, и у него есть хозяин. Новое значение сначала вносят в справочник и только потом ставят в ссылку.

Справочник для Meta, Google и Telegram

Для школы из примера справочник выглядит так. Такую же таблицу вы соберёте для своего проекта в задании в конце урока.

Каналutm_sourceutm_mediumutm_campaignutm_content
Реклама Meta{{site_source_name}}paid_socialcourse_start{{ad.name}}, объявления названы по правилам
Google Ads, поискgooglecpccourse_start, так же названа кампания в Google Adsгруппа объявлений: search_brand, search_course
Telegram-канал школыtelegramsocialcourse_startпост: post_a, post_b
Посев в чужом каналеtelegrampaidcourse_startназвание канала латиницей

Для Meta пишут одну строку на все объявления кампании. Значения в фигурных скобках Meta подставит сама: площадку, где показалось объявление, и его название.

utm_source={{site_source_name}}&utm_medium=paid_social&utm_campaign=course_start&utm_content={{ad.name}}

Эту строку вставляют в объявлении, в разделе «Отслеживание», в поле «Параметры URL». Если поле оставить пустым, Meta может дописать к ссылке свои метки (источник Facebook или Instagram и paid), но кампанию и объявление по вашим правилам она не подставит. Собрать её можно и в конструкторе UTM: пресет Meta подставит {{site_source_name}} и {{ad.name}} с фигурными скобками. Останется вписать свою кампанию и скопировать в поле часть ссылки после ?.

Кампанию мы пишем руками, course_start, а не через {{campaign.name}}. Названия Meta запоминает в момент первой публикации: переименуете кампанию, а в метке останется старое имя, и пробелы в нём придут как %20. По той же причине объявления называют по правилам справочника до публикации, ведь {{ad.name}} подставит то имя, с которым объявление ушло в показ.

С двумя объявлениями в Meta, двумя группами в Google и двумя постами в Telegram на сайт придут шесть таких ссылок (у Meta - после подстановки):

https://example.com/course?utm_source=ig&utm_medium=paid_social&utm_campaign=course_start&utm_content=video_teacher
https://example.com/course?utm_source=fb&utm_medium=paid_social&utm_campaign=course_start&utm_content=carousel_program
https://example.com/course?utm_source=google&utm_medium=cpc&utm_campaign=course_start&utm_content=search_brand
https://example.com/course?utm_source=google&utm_medium=cpc&utm_campaign=course_start&utm_content=search_course
https://example.com/course?utm_source=telegram&utm_medium=social&utm_campaign=course_start&utm_content=post_a
https://example.com/course?utm_source=telegram&utm_medium=social&utm_campaign=course_start&utm_content=post_b

Почему именно эти слова

Названия выбраны не на вкус. Группу каналов GA4 определяет по своим правилам: смотрит, есть ли источник в его списке соцсетей и поисковиков и подходит ли utm_medium под известные шаблоны. Если он не узнает ни источник, ни utm_medium, переход попадёт в Unassigned («Не назначено»), сколько бы вы ни договаривались о названиях внутри команды.

  • Вместо {{site_source_name}} Meta подставит fb, ig, an, msg или th. fb и ig в списке источников GA4 значатся соцсетями. Платным GA4 считает medium, который начинается с paid, содержит cp, как cpc, или равен ppc либо retargeting, и вместе с paid_social такие переходы попадут в Paid Social («Платная реклама в социальных сетях»). an, msg и th в списке нет, эти переходы уйдут в Paid Other («Другая реклама»). Слова meta там тоже нет: с utm_source=meta в Paid Other ушла бы вся реклама Meta.
  • telegram в том же списке нет, там только t.me. Свой канал выручает utm_medium=social: это значение GA4 узнаёт и без источника и относит переход к Organic Social. Посев с paid окажется в Paid Other. Ничего страшного, если вы знаете, где его искать, а для отдельной строки Telegram в GA4 можно собрать собственную группу каналов.
  • Метка вида utm_medium=telegram_post не подходит ни под одно правило, и такие переходы попадут в Unassigned.

В Google Ads есть автоматическая пометка (auto-tagging): к каждому клику дописывается параметр gclid. По нему GA4 получает из кабинета то, чего в метках нет: группу объявлений, ключевое слово, поисковый запрос. Если на ссылке стоят и gclid, и UTM, источник, канал и кампанию GA4 возьмёт из автопометки. Выходит, course_start из метки до отчёта GA4 не дойдёт, там будет название кампании из Google Ads. Назовите саму кампанию в кабинете по тем же правилам, course_start, иначе в отчёте по кампаниям Google окажется отдельно от остальных каналов. Автопометку при этом не выключают.

Метки на Google Ads всё равно ставят, потому что их читает не только GA4. Если сайт сохраняет UTM вместе с заявкой и передаёт их в CRM, менеджер увидит в карточке клиента google / cpc, а gclid ему ничего не скажет. Пишут их не в каждое объявление, а в «Суффикс конечного URL» (Final URL suffix): общий для кампании или свой у каждой группы объявлений, если utm_content у групп разный.

Внутренние баннеры размечают событием

Баннер на главной ведёт на страницу курса, и хочется пометить его utm_source=home_banner, чтобы посчитать клики. Так делать не стоит: человек уже на сайте, и источник у него один - тот, откуда он пришёл.

GA4 не начинает новый сеанс, когда видит новую кампанию, и привяжет метки баннера к событиям после клика. Сеанс останется за Instagram, а заявка после клика по баннеру в отчётах по атрибуции частично или целиком достанется источнику home_banner, то есть вашему же сайту.

Для внутренних промо у GA4 есть рекомендованные события: view_promotion, когда баннер показан, и select_promotion, когда по нему кликнули. Название баннера и его место на странице передают параметрами события, а источник визита не перезаписывается.

Пройдите по ссылке до запуска

Конструктор соберёт ссылку без опечаток, но не знает, что с ней случится по дороге. Каждую ссылку перед запуском проходят руками:

  1. Откройте ссылку на телефоне из того приложения, где она будет стоять: из Telegram, из предпросмотра объявления.
  2. Посмотрите на адрес страницы, куда попали. Метки должны дожить до конца. Их может потерять неправильно настроенный редирект: с http на https, с адреса без www на адрес с www или через сокращатель ссылок.
  3. Страница-визитка вроде Taplink - это отдельный сайт. Метки со ссылки на неё дальше не пойдут, их ставят на кнопки внутри визитки.
  4. Если в адресе есть #, метки ставят до решётки. Всё, что после неё, браузер считает якорем на странице, а не параметрами.
  5. Откройте ссылку в режиме отладки GA4 и найдите page_view в DebugView. В параметре page_location должен быть адрес вместе с метками.
  6. На следующий день откройте отчёт «Привлечение трафика» (Traffic acquisition) и переключите таблицу на «Источник/канал сеанса». Тестовый переход должен быть там под вашими названиями.

Что метки покажут, а что нет

Через неделю с метками картина у школы такая: Instagram и Facebook вместе дали 40 заявок на 120 000 ₸, то есть 3 000 ₸ за заявку; google / cpc - 20 заявок на 80 000 ₸, по 4 000 ₸; telegram / social - 9 заявок без рекламного бюджета. О бюджете теперь можно спорить по цифрам.

Но метки отвечают на один вопрос: откуда пришёл человек. Сколько стоил клик, купил ли он курс и не вернул ли деньги, они не знают. Расходы берут из рекламных кабинетов, оплаты из CRM, а связывают всё это в сквозной аналитике. И дешёвая заявка ещё не значит дешёвого покупателя: сравнение каналов до оплаты - следующий шаг после меток.

Задание: справочник и шесть ссылок для своего проекта

Возьмите свой проект или тестовый сайт и три кампании: в Meta, в Google и в Telegram.

Справочник работает, если седьмая ссылка до символа совпала с той, что собрали бы вы. Если нет, найдите место, где человек засомневался: регистр, дефис вместо подчёркивания, название объявления не по правилам. Туда и допишите правило.

Бывает и обратное: на чужом проекте одна кампания живёт в отчёте под тремя именами, course_start, Course_Start и course-start. Для GA4 это три разные кампании. Если это действительно один запуск, а не три размещения с похожими названиями, выберите одно написание, внесите его в справочник и пересоберите действующие ссылки. Прошлые данные переименование не исправит, за них строки придётся складывать вручную.

Видео: разметка кампаний в GA4

UTM parameters in Google Analytics 4 - Analytics Mania

Видео на английском.

Нужна помощь с аналитикой вашего проекта? Обсудить задачу с Goodlabs →