Перейти до контенту

Fix: Розгляньте server-side tagging для стійкості трекінгу

знахідка google ads оновлено 2026.05.25 7 хв читання

Зараз акаунт використовує лише client-side tagging (gtag.js або Web-контейнер GTM). Це працює, але кожен conversion ping залишається вразливим до ad-блокерів, браузерних tracking-prevention механізмів і збоїв на боці third-party мереж. Server-side Google Tag Manager (sGTM) — це додатковий шар, який Google документує з 2020 року [1][2]; аудит позначив його як рекомендацію, а не як зламаний стан, бо це посилює контроль над first-party даними до того, як тиск на client-side cookies зросте ще більше.

Чому це важливо

Client-side tagging виносить кожне вимірювальне рішення у браузер користувача. Браузер — найбільш вороже середовище у твоєму стеку: Safari Intelligent Tracking Prevention обрізає first-party cookies, Firefox блокує відомі tracker-хости за замовчуванням, розширення класу uBlock тихо відкидають запити на google-analytics.com та googleadservices.com, а корпоративні проксі часто зрізають query-параметри. Це не гіпотетика — кожне рішення Smart Bidding у твоєму акаунті базується лише на тих конверсіях, які пройшли цей фільтр.

sGTM працює з архітектурою, а не з окремим симптомом. Події виходять із браузера один раз — на піддомен, яким керуєш ти (наприклад, metrics.<your-domain>.com). Server-контейнер далі формує запити, специфічні для кожного вендора: Google Ads conversion pings, GA4 hits, Meta CAPI calls — все це з твоєї інфраструктури. Оскільки outbound-запит з браузера йде на твій власний домен, blocklist-и, що цілять у вимірювальні хости Google, не спрацьовують [3]. Оскільки запит до Google іде server-to-server, він несе first-party cookies, які ти можеш виставити з правильним HTTP-only прапором і довшим часом життя, ніж ITP дозволяє у JavaScript [1].

Набір capability йде далі. Усередині server-контейнера можна валідувати payload подій до форвардингу, хешувати PII через SHA-256 для відповідності вимогам Enhanced Conversions, додавати CRM-ідентифікатори для Offline Conversion Import і enforcити сигнали Consent Mode v2 на сервері, замість того щоб довіряти кожному client-side тегу [1][2]. Якщо акаунт уже використовує Customer Match та value-based bidding, sGTM — це найчистіший канал для first-party сигналу, від якого залежать ці фічі.

Це finding оформлено як recommendation, а не дефект, бо публічного, vendor-neutral бенчмарку для "conversion uplift від sGTM", який ми готові цитувати, не існує. Вендори називають цифри; чистого незалежного вимірювання у масштабі немає. Що задокументовано — це capability вище. Сприймай апгрейд як хедж проти client-side ерозії, а не як гарантований CPA-виграш.

Як перевірити проблему

  1. Відкрий тестовий landing у Chrome DevTools Network. Відфільтруй запити за googleadservices.com, google-analytics.com, googletagmanager.com. Якщо conversion і analytics запити йдуть напряму на ці домени — у тебе client-side only.
  2. Відкрий Google Tag Manager. У AdminContainer Settings перевір тип контейнера. Web окремо підтверджує finding. Якщо у тому самому акаунті є Server-контейнер — це часткова деплоймент; перевір, які саме теги через нього реально проходять.
  3. Подивись page source або Network tab на наявність параметра transport_url у будь-якій gtag() config або GA4 tag. Якщо його немає — gtag.js відправляє hits напряму на Google-хости, а не у твій server-контейнер [4].
  4. Прогони тестовий conversion path із популярним ad-блокером (uBlock Origin, AdGuard). Якщо conversion ping не спрацював, а сторінка завантажилась нормально — твій трекінг відкритий саме до того failure mode, який sGTM мітигує.

Як виправити

Це проєкт на кілька тижнів, а не toggle у UI. Орієнтовний effort: 2-6 інженерних тижнів плюс QA, залежно від інвентаря тегів.

  1. Зафіксуй scope. Зроби інвентар усіх тегів, що зараз firing з Web-контейнера або hard-coded gtag.js: Google Ads conversion tags, GA4, Floodlight, Meta Pixel, LinkedIn Insight, інші vendor-pixels. Теги без server-side counterpart (деякі нішеві вендори) або залишаться client-side, або будуть замінені.
  2. Створи server-контейнер. У Google Tag Manager натисни AdminCreate Container → обери Server. Google публікує one-click deployment у Cloud Run; App Engine і self-hosted опції доступні для оптимізації витрат [2]. Вартість хостингу залежить від навантаження на Cloud Run — невеликі сайти з низьким event-volume зазвичай вкладаються у місячний free tier платформи, понад нього оплата йде per-request та per-vCPU-second [2].
  3. Прив'яжи контейнер до first-party піддомена. Налаштуй DNS так, щоб піддомен, яким ти керуєш (наприклад, metrics.<your-domain>.com), вказував на server-контейнер. Це критичний крок — використання дефолтного *.run.app URL від Google ламає головну перевагу проти ad-блокерів, бо вони можуть таргетити hosting-платформу [3].
  4. Налаштуй Google tag через server_container_url. Онови gtag.js або GTM Web-теги, щоб вони слали hits на новий піддомен через параметр transport_url / server_container_url [4]. Саме це команда, яка каже браузеру маршрутизувати події через твій контейнер, а не напряму в Google.
  5. Мігруй теги у server-контейнер. Почни з GA4 client (вже встановлений). Додай Google Ads conversion tags, далі non-Google вендорів через їхні server-side templates з GTM template gallery. Кожна міграція має бути протестована у Preview mode перед промоушеном.
  6. Прокинь Consent Mode v2 на сервер. Форвард consent-сигналів із Web-контейнера у server-контейнер як event parameters; налаштуй server-side теги поважати їх. Деталі — у glossary-статті Consent Mode v2.
  7. Поетапний rollout. Запусти server-side і client-side теги паралельно на 2-4 тижні. Порівнюй conversion counts у Google Ads щодня. Коли parity у межах ±5%, виводь client-side path з експлуатації.

Як переконатися що виправлення спрацювало

Diagnostic checklist — пройди всі шість пунктів за 30 днів від go-live

  • Server-контейнер відповідає на твоєму first-party піддомені (curl -I https://metrics.<your-domain>.com/healthy повертає 200).
  • Google Tag Assistant показує, що conversion events ідуть через server-контейнер, а не напряму на googleadservices.com.
  • Network panel із увімкненим ad-блокером підтверджує, що conversion pings далі firing (вони тепер ідуть на твій піддомен, який блокери не можуть таргетити лише за доменом).
  • Денний conversion count у Google Ads у межах ±5% від pre-migration baseline. Більший розрив у будь-який бік — це помилка конфігурації, а не "виграш".
  • Match rate для Enhanced Conversions не впав — server-side канал має його зберегти або покращити, ніколи не погіршити.
  • Сигнали Consent Mode v2 видно у Preview mode server-контейнера, теги поважають "Denied" defaults.

Вікно верифікації: мінімум 30 днів. Smart Bidding перевчається, коли conversion volume або signal source змінюються, тому не нашаровуй інші measurement-зміни під час parallel-run періоду.

Server-side tagging — це plumbing. Він рідко проявляється як одна драматична uplift-цифра, але co-occurs з іншими finding-ами у цьому аудиті: слабкі match rates для Enhanced Conversions фіксяться легше, коли user-provided data хешується на сервері; enforcement Consent Mode v2 надійніший, коли його не делеговано кожному client-side тегу; pipelines Offline Conversion Import виграють від єдиного канонічного event spine перед fan-out до вендорів. Акаунти, що шиплять sGTM рано, через 12 місяців під час повторного аудиту тримають усі downstream measurement-фікси — не тому, що sGTM сам по собі піднімає CPA, а тому, що кожен наступний фікс має стабільну поверхню для прикріплення.

Пов'язані правила + концепти

Джерела

  1. Google Tag Manager Help — Client-side and server-side tagging. https://support.google.com/tagmanager/answer/13387731 (accessed 2026-05-25)
  2. Google for Developers — Google Tag Manager — Server-side. https://developers.google.com/tag-platform/tag-manager/server-side (accessed 2026-05-25)
  3. Analytics Mania — Benefits of Server Side Tagging (with Google Tag Manager). https://www.analyticsmania.com/post/benefits-of-server-side-tagging/ (updated 2026-02)
  4. Google for Developers — An introduction to server-side tagging. https://developers.google.com/tag-platform/tag-manager/server-side/intro (accessed 2026-05-25)
// чи було корисно?
// анонімно · не зберігаємо персональні дані