Трекинг

Что такое серверный трекинг? Руководство для интернет-магазинов

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

·Обновлено ·11 мин чтения·От команды ROASaurus

Главное
  • Серверный трекинг отправляет события конверсий, например покупки, с сервера в API рекламной платформы, а не только из пикселя в браузере.
  • Когда покупка отправляется из данных заказа в вашем магазине, блокировщики рекламы и страница благодарности, которая так и не загрузилась, больше не приводят к потерянным продажам.
  • Браузер по-прежнему нужен, чтобы сохранить click id при заходе на сайт, а пиксель может работать параллельно с сервером с тем же event_id, чтобы каждая покупка засчитывалась один раз.
  • Серверный тегинг, например серверный контейнер Google Tag Manager, по-прежнему отталкивается от событий браузера, поэтому не может вернуть покупки, которые браузер так и не отправил.
  • Серверный трекинг не позволяет обойти согласие: правила конфиденциальности действуют для данных, каким бы путём они ни шли.

Серверный трекинг означает, что события конверсий, например покупка, отправляются на рекламные платформы с сервера, а не только из скрипта в браузере покупателя. Для интернет-магазина сервер отправляет каждый заказ в Meta, TikTok или Google через их API, поэтому продажа учитывается, даже если браузерный пиксель заблокирован или не загрузился.

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

Браузерный пиксель и серверный трекинг

Браузерный пиксель — это фрагмент JavaScript от рекламной платформы. Он работает на ваших страницах и отправляет события с устройства покупателя прямо на платформу: просмотр страницы, добавление в корзину, покупку на странице благодарности. Он работает, только если скрипт загрузился, выполнился и достучался до платформы раньше, чем покупатель покинул страницу.

Серверный трекинг переносит отправку на сервер. Событие может строиться на данных, которые уже есть в вашем магазине, например на оплаченном заказе, а сервер отправляет его в API платформы. Meta называет этот API Conversions API, а TikTok — Events API. Google Ads использует enhanced conversions, которые добавляют к конверсии хешированные данные клиента.

Браузерный пиксель
  • Работает в браузере покупателя
  • Отправляет события напрямую на рекламную платформу
  • Устанавливает и читает first-party cookie, например _fbp для Meta
  • Ничего не отправляет, если скрипт заблокирован или страница не загрузилась
Серверный трекинг
  • Работает на сервере, который контролируете вы или поставщик услуги
  • Отправляет события в API платформы
  • Может строиться на записи заказа в вашем магазине
  • Не зависит от загрузки страницы благодарности
Эти два метода работают вместе. Большинство магазинов используют оба и позволяют платформе убирать дубли.

Если запускать оба, платформа получает самые полные данные. Событие из браузера добавляет cookie и контекст страницы. Серверное событие приходит, даже когда браузер подводит. Общий id события гарантирует, что платформа засчитает каждую покупку один раз.

Как работает серверный трекинг?

Серверный трекинг для интернет-магазина состоит из двух частей. Первая происходит в браузере: когда покупатель приходит по рекламе, скрипт сохраняет click id из URL. Вторая происходит на сервере: когда заказ оплачен, сервер связывает этот click id с заказом и отправляет покупку.

Клик по рекламеПлатформа добавляет в URL click id, например fbclid, ttclid или gclid.
ЛендингFirst-party скрипт сохраняет click id и UTM вместе с id посетителя.
Заказ оплаченМагазин записывает заказ и сообщает об этом серверу, например через webhook.
СерверСопоставляет заказ с посетителем, хеширует данные клиента и формирует событие.
API рекламной платформыПолучает покупку и сопоставляет её с кликом по рекламе.
Покупка строится на записи заказа, а не на странице благодарности. В браузере нужно сохранить только click id.

Фиксация клика

Рекламные платформы добавляют в URL лендинга click id: fbclid для Meta, ttclid для TikTok, gclid для Google Ads и msclkid для Microsoft Ads. Click id — самая надёжная связь между продажей и рекламой, которая её привела, поэтому его нужно сохранить при первом просмотре страницы. Параметры UTM добавляют названия кампании, группы объявлений и объявления в формате, который вы контролируете.

Сопоставление заказа

Затем серверу нужно узнать, какой посетитель оформил заказ. Самая надёжная связь — значение, которое вместе с корзиной попадает в заказ, например id посетителя, сохранённый в корзине. Другие методы слабее: адрес электронной почты, который посетитель ранее указал на сайте, либо тот же IP-адрес и браузер, замеченные незадолго до заказа. В каждой платформе для интернет-магазинов доступны свои варианты. В нашем руководстве по другим интернет-магазинам перечислены методы, которые ROASaurus использует для каждой платформы.

Отправка события

Наконец, сервер отправляет покупку в API каждой платформы. Событие включает сумму заказа, click id и данные клиента, которые помогают платформе найти человека, кликнувшего по рекламе. Если платформа недоступна или возвращает ошибку, хорошая настройка повторяет попытку позже, чтобы покупка не потерялась.

Что содержит серверное событие?

У каждой платформы свои названия полей, но событие покупки везде несёт одни и те же типы данных. Вот сокращённый пример для Meta Conversions API:

Пример: событие Purchase для Meta Conversions API
{
  "data": [{
    "event_name": "Purchase",
    "event_time": 1793009700,
    "event_id": "order-1042",
    "action_source": "website",
    "event_source_url": "https://yourstore.com/checkout/thank-you",
    "user_data": {
      "em": ["8c87b489ce35cf2e2f39f80e282cb2e804932a56a213983eeeb428407d43b52d"],
      "ph": ["6d420c869d4eb97fe7de4576c9d04bb34d1a5788e0b3a657f61d7be020d8ead0"],
      "client_ip_address": "203.0.113.24",
      "client_user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_6 like Mac OS X) ...",
      "fbc": "fb.1.1792832531000.IwAR2xExampleClickId",
      "fbp": "fb.1.1792832529000.1234567890"
    },
    "custom_data": { "currency": "USD", "value": 84.00 }
  }]
}
ПолеЧто этоХеш?
Название и время событияPurchase и время оформления заказаНет
Сумма и валютаСумма заказа, которую платформа использует для ROAS и ставок по ценностиНет
event_idУникальный id события, одинаковый в браузере и на сервере, для дедупликацииНет
Email, телефон, имя, адресДанные клиента из заказа, нормализованные и хешированные с помощью SHA-256Да
Click id (fbc, ttclid, gclid)Id клика по рекламе, сохранённый, когда покупатель пришёл на сайтНет
IP-адрес и user agentПомогают платформе сопоставить событие с устройствомНет
Данные клиента хешируются до того, как покинут ваш сервер. Meta требует отправлять IP-адрес, user agent и click id без хеширования.

Хеширование превращает адрес электронной почты в строку символов фиксированной длины. Один и тот же адрес всегда даёт одну и ту же строку, но по строке адрес не определить. Платформа использует хешированные значения только для поиска совпадения среди собственных пользователей. Так покупку можно сопоставить с человеком, который видел рекламу или кликнул по ней, даже если браузер этого человека заблокировал пиксель.

Как работает дедупликация?

Когда пиксель и сервер отправляют одну и ту же покупку, платформа должна засчитать её один раз. Обе копии несут одинаковое название события и одинаковый id события, например order-1042. Meta сравнивает пару и оставляет одну копию, если вторая копия пришла в течение 48 часов после первой.

Purchase event_id=order-1042 browserПолучено от пикселя
Purchase event_id=order-1042 serverОдинаковые название и id: засчитывается один раз
Purchase event_id=order-1043 serverПиксель был заблокирован: серверная копия единственная
Purchase event_id=1044 serverБраузер отправил order-1044: id различаются, поэтому засчитывается дважды
Дедупликация работает, только если обе копии используют в точности один и тот же id события.

Большинство двойных подсчётов возникает из-за двух отправителей, которые не используют общие id. Типичный случай — собственное приложение платформы для магазина и отдельный инструмент трекинга, которые оба отправляют покупки со своими id. В нашей справочной статье о предотвращении двойного подсчёта перечислены типичные причины и способы исправления.

Серверный тегинг и отправка из данных заказа

Термином «серверный трекинг» называют две разные схемы. Обе отправляют события с сервера, но начинаются в разных местах.

Серверный тегинг, например серверные контейнеры Google Tag Manager

При серверном тегинге браузер отправляет свои события на ваш собственный сервер, а не каждому поставщику отдельно. Известный пример — серверный контейнер Google Tag Manager. Он работает в вашем собственном проекте Google Cloud или в другой выбранной вами среде. Он принимает запросы из браузера, а его теги пересылают данные в Google Analytics, Meta и другим поставщикам. Вы решаете, какие данные куда уходят, а сервер может работать на поддомене вашего сайта.

События по-прежнему начинаются в браузере. Если тег в браузере заблокирован или страница благодарности так и не загрузилась, серверному контейнеру нечего пересылать. Кроме того, вы сами запускаете сервер, платите за него и обновляете его.

Отправка из данных заказа

Второй подход строит покупку на записи заказа в вашем магазине. Магазин сообщает серверу об оплаченном заказе через webhook или API, а сервер отправляет его на все подключённые платформы. Браузер нужен только раньше, чтобы сохранить click id, когда покупатель приходит на сайт.

Серверный тегингОтправка из данных заказа
Откуда начинается покупкаТег в браузереОплаченный заказ в вашем магазине
Страница благодарности закрыта раньше времениПокупка потерянаПокупка отправлена
Тег заблокирован в браузереПокупка потеряна, если только не пройдёт запрос через first-party endpointПокупка отправлена
Наложенный платёж и внешние страницы оплатыЗависит от страницы благодарностиОтправляется при создании или оплате заказа
События просмотра (просмотры страниц, добавление в корзину)ДаНужен отдельный сборщик в браузере
Кто управляет серверомВы: хостинг и обновленияВы или поставщик услуги
Серверный тегинг улучшает доставку событий из браузера. Отправка из данных заказа делает покупку независимой от браузера.

Эти два подхода можно совмещать. Многие магазины собирают просмотры страниц и добавления в корзину в браузере, а покупку отправляют из данных заказа. Именно по покупке рекламные платформы считают ROAS и оптимизируют ставки, поэтому это событие нужно передавать наиболее полно.

Что серверный трекинг исправляет, а что нет?

Что он исправляет
  • Покупки, потерянные из-за того, что блокировщик рекламы остановил пиксель
  • Покупки, потерянные из-за того, что страница благодарности не загрузилась
  • Покупки со способов оплаты, которые завершаются вне вашего сайта
  • Слабое сопоставление: к каждому событию добавляются хешированные данные клиента
Что он не исправляет
  • Согласие: посетитель, который отказался, так и остаётся посетителем, который отказался
  • Разные окна и модели атрибуции у каждой платформы
  • Дублирующих отправителей, которые используют разные id событий
  • Click id, которые не сохранили при заходе на сайт
Серверный трекинг делает данные полнее. Он не меняет правила, которые действуют для этих данных.

Согласие по-прежнему действует

Серверный трекинг — это способ доставки данных, а не способ обойти правила конфиденциальности. Если закон требует согласия на маркетинговые cookie или трекинг, это требование распространяется на собираемые вами данные, каким бы путём они ни попадали на платформу. Перенос трекера на ваш сервер не меняет того, с чем согласился посетитель.

Атрибуция остаётся у каждой платформы своей

Каждая платформа по-прежнему засчитывает покупки по своим окнам и правилам. Серверные события дают каждой платформе лучшие данные, но итоги по Meta, TikTok и Google всё равно могут в сумме превышать выручку вашего магазина. Чтобы сравнивать каналы по единым правилам, используйте одну модель атрибуции для всех, например модели из атрибуции ROASaurus.

Нужен ли серверный трекинг вашему магазину?

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

  • Рекламная платформа получает заметно меньше событий покупки, чем у вашего магазина веб-заказов. В нашем руководстве о блокировщиках рекламы и трекинге показано, как измерить этот разрыв.
  • Многие ваши посетители пользуются Safari на iPhone или Mac, где cookie, установленные скриптами, живут не дольше 7 дней. См. Safari ITP и рекламный трекинг.
  • Покупатели часто покупают через несколько дней после первого клика по рекламе.
  • Оплата завершается вне вашего сайта или заказы оплачиваются позже, как при наложенном платеже или банковском переводе.
  • Вы оптимизируете кампании под покупки или ценность покупки, поэтому платформе нужна каждая продажа, чтобы на ней учиться.

Вот как разрыв влияет на решения на практике. У примера магазина за месяц 1,000 веб-заказов. Его пиксель Meta зафиксировал 820 событий Purchase, то есть 18% заказов так и не дошли до Meta из браузера.

Пример магазина: покупки, дошедшие до Meta за один месяц
Веб-заказы в магазине
1,000
Только пиксель
820
Пиксель + сервер, с дедупликацией
1,000
В этом примере один пиксель упускает 180 из 1,000 заказов. Отправка покупок из данных заказа закрывает разрыв.

ROAS безубыточности магазина равен 2.5, а Ads Manager показывает ROAS 2.3 по данным пикселя. По этим цифрам кампании убыточны. Если заказы из рекламы терялись с той же долей 18%, реальный ROAS составляет около 2.3 ÷ 0.82 = 2.8, то есть выше безубыточности. Это верхняя оценка, потому что не каждый потерянный заказ пришёл из рекламы. Но она показывает, как разрыв в трекинге может заставить прибыльную кампанию выглядеть убыточной.

Серверный трекинг менее важен для магазина, который не рекламируется или тратит на рекламу совсем немного.

Как ROASaurus отправляет серверные события

ROASaurus фиксирует 19 click id и шесть полей UTM при заходе на сайт и сохраняет их вместе с first-party visitor id. Он отправляет каждую покупку из оплаченных заказов вашего магазина в Meta, TikTok, Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn, OpenAI Ads, Spotify, AppLovin, Criteo, AdRoll и Outbrain. В Shopify конверсии Google Ads отправляются из чекаута Shopify. Браузерные пиксели могут работать параллельно с серверными событиями с тем же event id, а Meta, TikTok, Snapchat, Pinterest, Reddit, OpenAI Ads, AppLovin и Spotify дедуплицируют их. Каждая отправка и ответ платформы перечислены в Event log.

Подробнее читайте на странице серверного трекинга или найдите свой интернет-магазин на странице интеграций.

Источники

  1. Meta for Developers: Conversions API
  2. Meta for Developers: Handling Duplicate Pixel and Conversions API Events
  3. Meta for Developers: Customer Information Parameters
  4. Google for Developers: An introduction to server-side tagging
  5. Google Ads Help: About enhanced conversions

В ROASaurus

Читайте дальше

ТрекингБлокировщики рекламы и трекинг: что теряет ваш магазинБлокировщики рекламы останавливают пиксели трекинга, поэтому рекламные платформы не видят часть покупок. Узнайте, какие события теряются, почему серверные события не теряются, и как измерить свой разрыв.ТрекингConsent Mode v2 и GDPR: что может отправлять интернет-магазинConsent Mode v2 для интернет-магазинов: четыре сигнала согласия Google, что требует законодательство ЕС и что серверный трекинг всё ещё может отправлять. Только общая информация.ТрекингДублирующиеся события покупки: почему продажи считаются дваждыДублирующиеся события покупки завышают конверсии и ROAS. Узнайте о причинах, о том, как Meta, TikTok, Snapchat, Pinterest и Reddit выполняют дедупликацию, и как это исправить.
FAQ

Ответы на вопросы

Серверный трекинг лучше браузерного пикселя?

Для покупок он полнее, но лучше всего работает вместе с пикселем. Пиксель добавляет cookie браузера и контекст страницы, сервер добавляет заказы, которые браузер пропустил, а общий id события оставляет по одной копии каждой покупки.

Работает ли серверный трекинг с блокировщиками рекламы?

Покупки, отправленные из данных заказа, блокировщики не затрагивают, потому что их отправляет не браузер покупателя. Click id всё равно нужно сохранить в браузере при заходе на сайт, а first-party сбор делает это надёжнее.

Соответствует ли серверный трекинг GDPR?

Серверный трекинг — это способ доставки, а не правовое основание. Правила о согласии действуют для данных, каким бы путём они ни шли, поэтому учитывайте выбор посетителя и уточните у своего юриста, какие данные вам можно отправлять.

Чем серверный трекинг отличается от серверного тегинга?

Серверный тегинг пересылает события браузера через ваш собственный сервер, например через серверный контейнер Google Tag Manager. Серверный трекинг из данных заказа строит покупку на заказе в вашем магазине, поэтому покупка не зависит от браузера.

Нужен ли разработчик для настройки серверного трекинга?

Нет, если вы используете сервис, который подключается к вашему магазину и рекламным платформам через приложения и логины. Самостоятельно размещаемый сервер тегов требует, чтобы кто-то его настроил, развернул и поддерживал в актуальном состоянии.

Каждая продажа прослежена до рекламы, которая её принесла

Серверный трекинг, прибыль и пожизненная ценность клиента в одном приложении. 14 дней бесплатно, без банковской карты.

Начать бесплатный пробный период →