Перейти к содержимому

Как DTC-бренд держит UTM-метки чистыми от объявления до заказа в Shopify

10 мин. чтения
PR

Priya Raghunathan

Менеджер по performance в e-commerce

DTC-маркетолог может месяцами докручивать креативы и аудитории, а потом наблюдать, как треть выручки оседает в строке «(not set)» в GA4 – заказы, которые случились, деньги, которые пришли, но без единого объявления рядом. Это руководство проходит UTM-разметку DTC и атрибуцию заказов Shopify так, как это сделал один бренд, чтобы закрыть разрыв насовсем: как они стандартизировали разметку на запуске, применили её массово ко всем объявлениям и заставили каждый заказ Shopify привязываться к тому объявлению, что его привело.

Краткий ответ: Строки «(not set)» появляются, когда заказы приходят без пригодных UTM – почти всегда потому, что ссылки размечались вручную и дрейфовали между объявлением и чекаутом Shopify. Стандартизация генерации UTM на запуске – одна структура, применённая ко всем объявлениям массово ещё до выхода в эфир, – держит значения источника, канала и кампании целыми по всей цепочке, и заказы привязываются к своим объявлениям.

Симптом: треть выручки без единого объявления

Бренд продавал один хитовый товар через Meta и Google и быстро масштабировал расход. Выручка росла, но чем крупнее они становились, тем мутнее становилась отчётность. В GA4 строка источника «(not set)» лезла вверх – сначала 12% конверсий, потом 19%, а в плохую неделю переваливала за 30%. Это были реальные заказы. Деньги лежали на счету. Но маркетолог не мог сказать, какое объявление, какая кампания и даже какой канал их заработал.

У этой неопределённости есть прямая цена. Когда треть ваших конверсий не атрибутирована, каждый канал выглядит хуже, чем он есть, каждая цифра ROAS занижена, и вы не можете уверенно отличить выигрышное объявление от проигрышного. Маркетолог принимал решения о масштабировании по двум третям картины и гадал об остальном. Это не маргинальная проблема: по данным HubSpot за 2024 год, доказательство ROI маркетинговых активностей вошло в число главных вызовов, которые называли сами маркетологи, и сломанная атрибуция – механизм за большой частью этого.

Когда «(not set)» проглатывает треть ваших заказов, вы ведёте не измеряемую программу закупки трафика – вы ведёте частично слепую. Каждое бюджетное решение опирается на конверсии, которые вы можете атрибутировать, и чем больше их растворяется в неразмеченной строке, тем сильнее вы оптимизируетесь на выборке, исключающей вашу же слепую зону.

Первый рефлекс – обвинить GA4, баннер согласия или iOS. Это влияет на полях. Но когда маркетолог реально проследил несколько заказов «(not set)» по цепочке, причина почти всегда оказывалась выше по течению и до банального простой: UTM, которые должны были доехать на клике до заказа, были сломаны, неполны или их вообще не было. Та же корневая причина всплывает в каталоге ошибок UTM-разметки, которые ломают отчётность – и она исправима.

Цепочка: как UTM должна доезжать до заказа в Shopify

Чтобы починить проблему, атрибуцию надо увидеть как цепочку, а не как настройку. Для DTC-бренда на Shopify чистая атрибуция выглядит так:

  1. URL назначения объявления несёт параметры UTM – utm_source, utm_medium, utm_campaign и обычно utm_content для конкретного объявления.
  2. Покупатель кликает. UTM оказываются в URL лендинга.
  3. Сессия сохраняет эти значения, пока покупатель ходит по сайту.
  4. Покупатель оформляет заказ, и Shopify записывает заказ с целой атрибуцией источника.
  5. GA4 считывает полную пару источник/канал и атрибутирует заказ нужному объявлению.

Заказ привязывается к объявлению, только если держится каждое звено цепочки. А цепочка рвётся в самом слабом месте – которым почти для любого бренда оказывается шаг первый: метка, которую человек набрал на запуске.

Атрибуция настолько сильна, насколько сильно её самое слабое звено, а самое слабое звено – почти всегда UTM, набранная вручную на запуске. Всё ниже по течению – лендинг, сессия, заказ Shopify, отчёт GA4 – добросовестно несёт то, что ему передали. Если метка сломана в источнике, каждая система после неё прилежно записывает сломанную метку.

Вот почему первая дюжина починок маркетолога – подкрутка окон атрибуции GA4, правка баннера согласия, добавление серверной метки – почти не сдвинула цифру «(not set)». Он чинил звенья четыре и пять, пока звено один продолжало подсовывать мусор. Структурную починку, которая нужна была бренду, как раз и призвана принуждать нормальная система UTM-трекинга для платной рекламы: сделай метку правильной в источнике – и остаток цепочки донесёт её корректно бесплатно.

Почему ручная разметка ломается на масштабе DTC

Маркетолог размечал ссылки вручную – так, как начинают почти все бренды. Открыть конструктор, набрать источник, набрать канал, назвать кампанию, вставить URL в объявление. Это работает для первых нескольких объявлений. Перестаёт работать в тот момент, когда в картину входят объём и скорость – что для растущего DTC-бренда происходит немедленно.

Вот что на самом деле пошло не так, прослеженное от сломанных заказов:

  • Дрейф источника. За несколько месяцев запусков источник Meta писали как facebook, Facebook, fb и meta. Для GA4 это четыре разных источника. Заказы с меткой «fb» иногда разрешались; заказы, где значение покорёжилось, падали в «(not set)».
  • Пропущенные параметры. Под давлением дня запуска ссылки уходили с utm_source, но без utm_medium. GA4 нужны оба, чтобы атрибутировать чисто; наполовину размеченная ссылка едва лучше неразмеченной.
  • Гниль копипаста. Байеры клонировали URL предыдущего объявления, чтобы сэкономить время, и наследовали прошломесячное значение utm_campaign. Заказ атрибутировался – не той кампании.
  • Забытое объявление. В партии из пятнадцати вариантов объявлений, запущенных в спешке, одно-два просто никогда не получали метку. Это были гарантированные «(not set)».

Ни одно из этого – не провал компетентности. Это неизбежный выхлоп поля свободного ввода, к которому прикасаются десятки раз в дедлайн. Пока человек набирает метку руками на каждом объявлении, дрейф – не риск, а значение по умолчанию.

Ручная разметка ломается не потому, что маркетологи небрежны. Она ломается потому, что объём и поле свободного ввода математически несовместимы: каждая ссылка – ещё один шанс на опечатку, пропущенный параметр или унаследованное значение, а растущий DTC-бренд отгружает сотни ссылок в месяц. Доле ошибок не нужно быть высокой, чтобы треть заказов осталась без атрибуции.

Починка, часть первая: стандартизировать метку на запуске UTM-конструктором

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

Три вещи изменились в тот же момент. Во-первых, источник и канал стали выбором из заданного списка, а не набранными строками, поэтому facebook / Facebook / fb схлопнулись в одно каноническое значение – четырёхстороннее расщепление, дробившее их крупнейший канал, исчезло. Во-вторых, структура стала обязательной: ссылка не могла уйти без utm_medium, потому что структура его требовала. В-третьих, utm_content выводился из самого объявления, поэтому каждый отдельный креатив нёс в заказ свой, консистентный идентификатор.

Разблокировкой стало то, что корректная метка стала единственной, которую вообще мог выдать процесс. Раньше чистая UTM зависела от того, помнит ли человек конвенцию на каждой ссылке в дедлайн. Теперь структура применялась на запуске по умолчанию, а чтобы выдать кривую метку, нужно было осознанное усилие. Консистентность перестала быть вопросом дисциплины и стала свойством инструмента.

Принципиально: это не инструмент действует сам по себе. Маркетолог определяет структуру один раз и проверяет сгенерированные метки до запуска – конструктор собирает и предлагает, человек утверждает и действует. Тот же паттерн «собери и проверь» сравнивается по инструментам в разборе подходов к UTM-конструкторам; разница, которая здесь имела значение, – в том, что структура жила внутри шага запуска, а не в отдельной таблице, от которой реальность дрейфовала прочь.

Починка, часть вторая: применить её ко всем объявлениям через массовый запуск

Стандартизировать одну ссылку легко. Реальная уязвимость бренда была в объёме – они запускали варианты объявлений партиями, и каждая партия была свежей возможностью для «забытого объявления» и гнили копипаста. Корректно разметить двадцать ссылок вручную, каждый раз, – ровно та задача, на которой люди проваливаются в дедлайн.

Поэтому вторым ходом стал массовый запуск с тем, чтобы одна и та же UTM-структура применялась к каждому варианту, который создаёт запускатель. С помощью Bulk Launcher (массовый запуск кампаний) от Wevion маркетолог подготовил партию объявлений по Meta и Google в одной сетке, и стандартная разметка прокинулась на все сразу. Сотое объявление несло ту же чистую, полную, структурную метку, что и первое, – не потому, что маркетолог набрал её сто раз, а потому, что структура применилась один раз и удержалась по всей партии.

Вот где стандартизация и масштаб наконец усилили друг друга, а не дрались. Маркетолог проверил всю сетку – структуру кампаний, бюджеты и сгенерированные UTM, всё видно в одном месте – и утвердил её до выхода в эфир. Запускатель подготовил и предложил партию; человек посмотрел сетку и принял решение. Ничто не публиковалось само. Та же сквозная механика партий разобрана в гайде о том, как массово запускать кампании на разных платформах; атрибуционная отдача здесь пришла от спайки этого объёма с одной принуждённой структурой меток.

Массовый запуск обычно подают как фичу скорости, но его тихий вклад в атрибуцию – консистентность на масштабе. Когда одна UTM-структура применяется к каждому объявлению партии, объём перестаёт множить ошибку. Бренд мог отгрузить тест из сорока объявлений, зная, что все сорок атрибутируются одинаково, – превратив свой главный источник «(not set)» в самый надёжный.

Звено цепочкиРучная разметка на масштабеСтандартизировано + применено массово
Значение источникадрейф fb, Facebook, metaодно каноническое значение, выбранное
Обязательные параметрыканал порой пропущенструктура принуждает оба
Контент-метка на объявлениенепоследовательна или отсутствуетвыведена на каждый креатив
Партия из 40 объявленийодно-два без меткивсе 40 идентичны и полны
Результат в GA4«(not set)» лезет вверхзаказ привязан к точному объявлению

Итог: заказы, которые называют своё объявление

Результат проявился в следующем полном отчётном цикле. Строка источника «(not set)», съедавшая за 30% конверсий в плохие недели, упала до низкого однозначного остатка – действительно неатрибутируемых заказов (прямые ввод-ом адреса, обрезанные рефереры), которые не может присвоить себе ни одна система разметки. Всё, что бренд реально привёл объявлением, теперь приходило в Shopify с UTM, называвшими то объявление, что его привело.

Это изменило не только то, что маркетолог мог видеть, но и то, что он мог делать. Когда заказы стали атрибутироваться чисто, канальный ROAS перестал занижаться неатрибутированным грузом, и маркетолог смог наконец сравнивать варианты объявлений по реальной выручке, а не по частичному сигналу. Выигрышный креатив в тесте теперь был очевиден, потому что его заказы указывали на него по имени. Решения о масштабировании перешли от «кажется, этот канал работает» к «вот это конкретное объявление вернуло вот эту конкретную выручку».

Самая глубокая отдача – не чистые дашборды, а решения по полной картине. Когда каждый заказ называет своё объявление, маркетолог перестаёт масштабироваться по двум третям данных и гадать об остальном. Строка «(not set)» облагала налогом каждое решение об оптимизации; убрать её – значит вернуть то, на чём держится performance-маркетинг: знание, что сработало.

Есть одна честная оговорка, которую бренд принял без проблем. Wevion синхронизирует расход и данные эффективности с платформ примерно раз в 15 минут, а не мгновенно. Для атрибуции это не вопрос: UTM попадают в заказ Shopify в момент покупки, поэтому привязка на уровне заказа точна вне зависимости от тайминга синхронизации – вы сопоставляете состоявшийся заказ с размеченным кликом, а не гонитесь за живым потоком. Каденс синхронизации влияет лишь на то, насколько свежи цифры расхода рядом с этими заказами, и 15 минут незаметны для ежедневных и еженедельных решений, которые DTC-бренд реально принимает.

Почему чистые метки чинят и ваш ROAS, а не только источники

Стоит проговорить вторичную выгоду явно, потому что бренды часто её упускают. Когда треть заказов – «(not set)», они распределены по каналам неравномерно: они скапливаются там, где разметка ломалась сильнее всего. Это значит, что неатрибутированные заказы тихо искажают относительную эффективность ваших каналов, а не только абсолютные итоги. Канал, которому случилось иметь худшую разметку, выглядит вашим худшим исполнителем, даже если он лучший.

Чистка меток не просто возвращает потерянные заказы; она исправляет сравнение между каналами, которое эти потерянные заказы перекашивали. Ставки растут с бюджетом: eMarketer в 2024 году прогнозировал, что расходы на рекламу в розничном e-commerce США перевалят за $60 млрд, и каждый доллар из них распределяется ровно против того типа ранжирования каналов, который сломанная атрибуция искажает. Это тот же разрыв между заявленной и сверенной эффективностью, который конкретизирует фреймворк «заявленный против истинного ROAS»: когда в числителе (атрибутированной выручке) не хватает куска, каждый коэффициент эффективности ниже по течению неверен, и вы двигаете бюджет по перекошенному ранжированию. Перераспределение бюджета бренда после починки выглядело существенно иначе, чем то, что они сделали бы на старых, изрешечённых «(not set)» данных, – и эта разница и есть весь смысл.

Плейбук для любого DTC-бренда

Ситуация бренда – значение по умолчанию для любого e-commerce, масштабирующего платную закупку на Shopify. Починка обобщается чисто, и порядок операций важен:

  • Чините источник, а не симптом. «(not set)» – это проблема шага один, маскирующаяся под проблему GA4. Стандартизируйте метку на запуске до того, как трогать окна атрибуции или серверные метки.
  • Уберите поле свободного ввода. Пока человек набирает источник и канал на каждом объявлении, дрейф – значение по умолчанию. Генерируйте из одной общей структуры, чтобы кривую метку стало трудно создать.
  • Сделайте разметку частью запуска, а не отдельным шагом. Метка, собранная в другой вкладке, – это метка, которую пропустят в дедлайн. Размечайте там, где запускаете.
  • Пусть массовый запуск применяет структуру, а не множит ошибку. Применяйте одну UTM-структуру по всей партии, чтобы объём стал вашей самой консистентной поверхностью, а не самой ненадёжной.
  • Оставьте человека на утверждении. Инструмент готовит и предлагает партию и её метки; вы смотрите сетку и утверждаете. Ничто не уходит в эфир само.

Чистая атрибуция – не отчётная роскошь для DTC-бренда, это разница между масштабированием на том, что вы можете измерить, и масштабированием на том, что вы можете измерить плюс треть, о которой вы гадаете. Wevion встраивает UTM-конструктор в Bulk Launcher (массовый запуск кампаний), чтобы консистентные метки были значением по умолчанию по каждому отгруженному объявлению, а вы сохраняли контроль над тем, что выходит в эфир. Запустите 14-дневный бесплатный пробный период и сделайте следующую строку «(not set)» последней, которую вам пришлось объяснять.

Чтобы увидеть более широкую картину того, как разметка, запуск и накладные расходы на отчётность ограничивают способность бренда масштабироваться, это руководство – часть нашего хаба по масштабированию кампаний; изучите полный кластер, чтобы найти операционные плейбуки вокруг него. А если вы взвешиваете специализированный инструмент атрибуции против починки меток в источнике, сравнение Wevion и Triple Whale показывает, где какой подход уместен.

Назад в блог
Поделиться

Часто задаваемые вопросы

The Ad Signal

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

Готовы автоматизировать рекламные операции?

Массовый запуск кампаний на всех аккаунтах. Попробуйте Wevion бесплатно 14 дней на тарифе Pro. Для старта карта не нужна: мы попросим её на 7-й день, а оплата начнётся на 14-й день, только если вы её добавите.