TL;DR
- Client-side tracking отправляет события из браузера пользователя прямо в Google, Meta, TikTok и другие системы.
- Server-side tracking добавляет ваш сервер как управляемый слой между сайтом и рекламными платформами.
- Главные плюсы: контроль данных, меньше нагрузки на браузер, лучшее качество событий, возможность удалять PII до отправки партнерам.
- Главные риски: ложное чувство “мы все обошли”, задвоение событий, плохая дедупликация, лишние расходы на инфраструктуру.
- Server-side не отменяет consent. Он делает передачу данных более управляемой, но не превращает запрещенную обработку в разрешенную.
1. Что такое server-side tracking
В браузерной схеме сайт загружает много внешних тегов. Каждый тег сам решает, что собрать и куда отправить. Маркетолог видит удобный интерфейс, но контроль слабый: часть событий блокируется, часть параметров теряется, а часть данных может уйти туда, куда бизнес не хотел.
Server-side tracking меняет маршрут. Браузер отправляет событие на ваш сервер или на ваш server-side container. Там событие проверяется, чистится, обогащается и только потом уходит в нужные системы.
Технически это не всегда один и тот же продукт. Server-side tracking может быть:
- прямой API-интеграцией backend -> Meta / Google / TikTok;
- server-side Google Tag Manager;
- Meta Conversions API Gateway;
- CDP / reverse ETL;
- custom event collector;
- webhook из CRM в рекламную платформу.
Смысл один: критические события не должны зависеть только от того, разрешил ли браузер загрузить сторонний скрипт.
2. Почему браузерный пиксель стал слабым местом
Браузерный пиксель удобен, потому что его можно поставить без backend-разработки. Но он работает в самой шумной зоне: пользовательский браузер, расширения, настройки privacy, медленный интернет, consent banner, конкурирующие теги.
| Проблема | Что происходит |
|---|---|
| Ad blockers | Запросы к известным рекламным доменам могут блокироваться |
| Safari / Firefox tracking protections | Срок жизни cookies и cross-site доступ ограничиваются |
| iOS ATT | Приложения должны спрашивать разрешение на tracking между чужими property |
| Consent banners | Теги должны ждать выбора пользователя или менять поведение |
| Производительность | Каждый внешний скрипт добавляет вес и риск поломки страницы |
| Утечки PII | Параметры URL, формы и user data могут уйти в vendor без фильтра |
Server-side не решает все эти проблемы автоматически, но дает место, где можно управлять правилами.
3. Что именно улучшается
Контроль данных
На сервере можно убрать лишнее до отправки в платформу:
| Было в событии | Что делаем перед отправкой |
|---|---|
email | Хэшируем SHA-256, если есть согласие и это нужно для match quality |
phone | Нормализуем формат, хэшируем, не логируем в открытом виде |
iin / national ID | Удаляем, если рекламной платформе это не нужно |
utm_* | Оставляем для атрибуции |
value / currency | Проверяем тип и валюту |
event_id | Используем для дедупликации browser + server |
Качество событий
Браузерное событие может прилететь без части параметров. Server-side слой может добавить:
lead_idиз backend;deal_idиз CRM;transaction_idиз платежной системы;- статус лида;
- фактическую выручку;
- маржу или refund;
- normalized source/medium.
Скорость сайта
Google в документации по server-side tagging прямо описывает выгоду: вместо многих похожих запросов из браузера клиент может отправить одно событие на server container, а тот уже отправит vendor-specific requests. Это не магия ускорения, но меньше клиентских скриптов обычно означает меньше нагрузки на страницу.
4. Что server-side не делает
Server-side tracking часто продают как “обход блокировок”. Это плохая формулировка. Правильнее: это controlled data routing.
| Миф | Реальность |
|---|---|
| “Server-side видит 100% пользователей” | Нет. Consent, сетевые ошибки, браузерные ограничения и ошибки реализации остаются |
| “Можно не спрашивать согласие” | Нет. Consent и privacy rules продолжают действовать |
| “Можно оставить старый пиксель и просто включить CAPI” | Можно получить задвоение без event_id |
| “Данные станут точными” | Они станут более управляемыми, но не абсолютно точными |
| “Маркетолог сам все настроит” | Для надежной схемы нужны аналитик, frontend, backend/DevOps и владелец CRM |
5. Дедупликация: место, где чаще всего ломают отчеты
Если одно и то же событие отправляется из браузера и с сервера, рекламная платформа должна понять, что это один purchase, а не два.
Минимальные правила:
- один
event_idсоздается на момент события; - browser event и server event получают одинаковый
event_id; event_nameсовпадает;- timestamp близкий;
- purchase value не отличается;
- retry на сервере не создает новый
event_id.
Плохая дедупликация делает отчет хуже, чем отсутствие server-side. Бизнес видит ROAS 800%, хотя в кассе обычные деньги. Через неделю команда режет бюджеты неправильно, потому что система обучалась на раздутых событиях.
6. Архитектура для разных уровней бизнеса
| Уровень | Практичная схема | Почему |
|---|---|---|
| Малый бизнес на Shopify / Tilda / CMS | Partner integration или Meta CAPI Gateway | Быстро, меньше разработки |
| Performance-команда с несколькими каналами | sGTM на Stape / managed hosting | Один серверный слой для Meta, Google, TikTok, GA4 |
| Fintech / банк / telco | Собственный collector + sGTM/custom APIs в контролируемом облаке | Нужны security, аудит, data residency, контроль PII |
| Продуктовая SaaS-компания | Backend events + warehouse + reverse ETL | Деньги и lifecycle живут в продукте, не только на сайте |
7. Пример: EdTech с длинной сделкой
У школы есть лид-форма на сайте, консультация в WhatsApp и оплата через менеджера через пять дней.
Client-side пиксель хорошо видит Lead, но плохо видит, кто реально оплатил. Meta начинает искать много дешевых лидов, а не покупателей. После server-side схемы события идут так:
- Сайт создает
lead_idи отправляетLead. - CRM получает
lead_id, менеджер ведет статус. - Когда сделка получает статус
Paid, CRM отправляет server eventPurchase. - В событии есть
event_id,lead_id, value, currency, hashed phone/email при наличии consent. - Meta оптимизируется на оплату, BI считает CAC по фактическим деньгам.
Результат не в том, что все “стало отслеживаться”. Результат в том, что алгоритм получает более поздний и качественный сигнал.
8. Локальный контекст СНГ/РК
В локальном performance-маркетинге часто есть разрыв: агентство отвечает за пиксель, разработчики отвечают за сайт, CRM ведет отдел продаж, а финансовая система живет отдельно. Server-side tracking быстро показывает этот организационный долг.
Что обычно всплывает:
- нет владельца
lead_id; - заявки создаются вручную без источника;
- менеджеры меняют статусы хаотично;
- оплата не связана со сделкой;
- WhatsApp-лиды теряются;
- звонки не имеют call_id;
- один и тот же клиент попадает в CRM несколько раз.
Поэтому начинать нужно не с “купить Stape” или “включить CAPI”, а с карты событий и владельцев данных.
9. Практический чеклист внедрения
- Определены события, которые действительно нужны для оптимизации: lead, qualified lead, purchase, refund.
- Для каждого события есть владелец и источник истины.
- В dataLayer или backend есть стабильный
event_id. - Настроена дедупликация browser + server.
- На сервере удаляются или хэшируются персональные данные.
- Consent state передается вместе с событием или учитывается до отправки.
- Есть monitoring ошибок отправки.
- Есть fallback-процесс, если vendor API вернул ошибку.
- В BI сравниваются platform-reported conversions и фактические CRM/payments.
10. Видео
11. Главный совет
Внедряйте server-side tracking не ради красивой надписи “CAPI connected”, а ради управляемого потока данных. Если событие нельзя объяснить, проверить, дедуплицировать и связать с CRM, его не нужно отправлять на сервер только потому, что так модно.
Sources / Notes
- Google Tag Manager Help: Client-side tagging vs. server-side tagging
- Google Developers: Google Tag Manager - Server-side
- Google Developers: Custom domain configuration
- Meta Developers: Conversions API Gateway
- Apple Support: If an app asks to track your activity