Перейти к содержимому
Все статьи
7 мин чтения

Server-side tracking для медиабаинга: полный гайд

Событие из браузера проходит через защищённый серверный relay к трём рекламным платформам

Server-side tracking — архитектура, в которой сервер под вашим контролем принимает, проверяет и передаёт measurement events вместо того, чтобы браузер посетителя напрямую отправлял каждый запрос в рекламные и аналитические системы. Для affiliate- или media-buying команды полезная реализация — не просто «поставить server GTM». Нужен сквозной маршрут, где один click ID сохраняется от рекламы до трекера и оффера, а каждая конверсия, payout и смена статуса возвращаются к этому ID.

Сервер может ответить 200 OK, хотя click ID потерян, purchase посчитан дважды или revenue попал не в ту кампанию. Внедрение завершено только тогда, когда контролируемый тест доказывает работу всего пути.

Server-side tracking, server-side tagging и S2S postback

Термины связаны, но не взаимозаменяемы.

ТерминЧто означаетТипичный inputТипичный output
Server-side trackingОбщая архитектура обработки measurement data на серверном слое.События браузера, PWA, CRM, трекера или backendАналитика, рекламные платформы, отчёты и внутреннее хранилище
Server-side taggingРеализация через tag manager, например GTM server container.Запросы, распознанные client контейнераНормализованные события, переданные нужными tags
S2S postbackCallback между серверами о конверсии.Click ID, status, payout, transaction IDОдна атрибутированная конверсия или смена статуса

В официальном описании Google server container принимает запросы, превращает их в events и обрабатывает через tags, triggers и variables. Google отдельно объясняет, что server-side tagging дополняет browser collection, а не магически заменяет его. Постбек affiliate-сети уже по смыслу: обычно он сообщает о конверсии после того, как клик покинул трекер. Для базы начните с гайда что такое S2S postback.

Production-маршрут данных

клик по рекламе
  → first-party route / tracker click
  → landing или PWA session
  → offer/advertiser с сохранённым click ID
  → postback / backend conversion
  → normalized event в отчёты и рекламные платформы

Для каждой стрелки запишите имя параметра и тестовое значение. «Мы передаём ID» — не спецификация. Это спецификация:

Meta URL parameter: dc_campaign={{campaign.id}}
Tracker click ID:    dc_click_id=dc_01K4N8...
Network storage:     aff_sub=dc_01K4N8...
Network callback:    click_id={aff_sub}
Canonical event ID:  deposit:partner-transaction-9472

Ключ слева принадлежит receiver, макрос справа — sender. Поэтому click_id={aff_sub} может быть правильным. Подробная схема есть в гайде про click ID, sub ID и postback macros.

1. Source context не должен становиться идентичностью клика

Campaign ID, ad set ID, ad ID, placement и creative — dimensions. Они описывают группу визитов, но не один визит. Храните их отдельно, а трекер должен создать или принять стабильный click ID.

Используйте проверенные шаблоны Facebook Ads URL parameters и TikTok Ads macros. Одинаковые фигурные скобки не означают совместимость макросов разных систем.

2. Click ID должен пережить каждый redirect

Частые места потери:

  • JavaScript пересобирает offer URL и выбрасывает query string;
  • redirect сохраняет UTM, но удаляет уникальный token;
  • PWA install/reopen создаёт новую session без исходной attribution;
  • поле сети обрезает ID по длине;
  • два трекера переименовывают subid без задокументированного mapping.

Успешная загрузка финальной страницы ничего из этого не доказывает. Проверьте реальный destination URL и сохранённую запись у receiver.

3. Нормализуйте backend event

{
  "click_id": "dc_01K4N8...",
  "event_name": "deposit",
  "event_id": "deposit:partner-transaction-9472",
  "event_time": "2026-08-18T12:04:31Z",
  "transaction_id": "partner-transaction-9472",
  "value": 45.00,
  "currency": "USD",
  "status": "approved"
}

Сначала canonical schema, потом отдельные payload для Meta, TikTok и analytics. Не разрешайте каждой интеграции по-своему понимать purchase, deposit, value или currency.

Click ID и event ID решают разные задачи

  • Click ID: какому визиту отдать attribution?
  • Transaction ID: какая бизнес-транзакция произошла?
  • Event ID: browser- и server-копии описывают одно событие?

Один click может дать registration, first deposit и redeposit. Повторный click ID нормален. Один event ID для трёх разных событий — ошибка.

Если Pixel и server API отправляют одну конверсию, используйте одинаковые event name и стабильный event ID. Meta в Conversions API overview описывает CAPI вместе с Pixel и подчёркивает, что CAPI не обходит privacy rules. TikTok в документации deduplication требует одинаковый event_id для пересекающихся Pixel и Events API events.

Не дедуплицируйте только по timestamp: retries, queue delays и две реальные транзакции могут идти рядом. Надёжнее partner transaction ID плюс event type.

Что улучшает server-side tracking — и чего не делает

Google называет privacy control, client performance и data quality среди причин использовать server-side tagging. Для buying-stack это означает:

  • validation до delivery;
  • единый status/value/currency mapping;
  • secrets вне browser JavaScript;
  • backend events, которых нет в браузере;
  • видимые retries и delivery responses;
  • меньше third-party code на landing.

Но server-side tracking не создаёт consent, не делает запрещённые данные разрешёнными, не восстанавливает ID, которого никогда не захватили, и сам не доказывает рекламный uplift. Broken macros, redirects, late callbacks и duplicates могут быть важнее browser restrictions.

План внедрения

1. Inventory producers и consumers

Перечислите Pixel, PWA events, tracker, affiliate network, CRM, payment backend, Meta CAPI, TikTok Events API и analytics. Для каждого зафиксируйте event names, IDs, timestamps/currency, consent, retention, retry behaviour и владельца credentials.

2. Canonical contract

Versioned map должен содержать click_id, event_name, event_id, event_time, transaction_id, status, value, currency, source context и consent state. Отсутствующее value может означать zero, unknown или invalid — определите явно.

3. Idempotent receiver

Проверяйте authentication, mandatory keys и statuses. Храните raw request и normalized result с защитой sensitive data. Повтор той же transaction/event type не создаёт новый revenue.

4. Queue и видимые outcomes

Надёжный pattern: receive → validate → persist → enqueue → deliver. Записывайте attempt count, response class и final state. Отличайте временный rate limit от permanent schema rejection.

5. Pass/fail таблица

ТестОжидаемый фактPass?
Route и fallbackКаждое правило ведёт на правильный destination.
Первая конверсияОдно событие на верном click, campaign и offer.
Duplicate callbackRevenue и totals не удваиваются.
Смена статусаИстория lead → approved/rejected корректна.
Cost correctionCost меняется только на нужном уровне.
Meta/TikTok feedbackПриняты event, value, currency и ID.
Нет IDEvent quarantined/rejected, не приписан случайно.
Buyer accessТолько assigned data, без raw secrets.
Export/rollbackRecovery path проверен.

Это разница между «кажется, работает» и releasable measurement system. Частные ошибки разбирает postback troubleshooting.

Какие tools нужны

  • tracker/routing layer — click identity, streams, offers, postbacks;
  • server tag/event gateway — validation и vendor delivery;
  • CRM/backend — business truth, например deposit status;
  • analytics/finance — reconciled decisions;
  • queue/observability — retries и incident evidence.

Не покупайте overlapping dashboards, оставляя joins между ними без документации. Tracker vs CRM объясняет, почему tracker видит conversion, но не знает, состоялся ли settlement.

DarkCore полезен, когда проблема проходит через эти границы: Streams связывают routing, offers и postbacks; Pixels маппируют events; статусы конверсий сохраняют business state; Analytics оставляет контекст для решений. Это fit, а не универсальный рейтинг: сначала проверьте один реальный campaign path.

FAQ

Server-side tracking означает cookieless?

Нет. Сервер может получать cookies/identifiers и всё равно обязан учитывать consent, platform terms и закон. «Server-side» описывает место processing, а не разрешение.

Он заменяет Meta Pixel или TikTok Pixel?

В обычном рекомендуемом setup — нет. Meta описывает CAPI рядом с Pixel, TikTok — Pixel + Events API с deduplication. Для двух копий одного события нужен одинаковый event ID.

Postback и Conversions API — одно и то же?

Оба server-to-server, но postback обычно возвращает conversion в tracker, а platform API отправляет eligible event в рекламную систему.

Что тестировать первым?

Один click, один offer и одну conversion. Докажите, что тот же click ID дошёл до offer и вернулся в callback; затем duplicate и status update.

Когда сложность не оправдана?

Когда команда не может владеть monitoring, data contract, consent и retries. Тогда начните с узкой managed реализации или почините текущий click-to-postback flow.

  • server side tracking
  • серверный трекинг
  • affiliate tracking
  • conversion api
  • s2s postback
  • медиабаинг