Server Attribution — sGTM, CAPI, Privacy Sandbox
860 subscribers
17 photos
2 videos
41 links
Server-side GTM, Facebook Conversions API (CAPI), TikTok Events API,
Google Privacy Sandbox, Topics API, Attribution Reporting. Как считать
конверсии когда cookies умирают. Гайды Simo Ahava и IAB Tech Lab
на русском. Канал сети public.tg.
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Арбитраж трафика для новичков в 2026: стоит ли начинать?

Три опытных арбитражника — Дима Leto, Михаил Харди и Роман Croyman — развенчивают миф о лёгких деньгах в CPA-арбитраже. Главный вывод: успех требует серьёзного бюджета (минимум $1000, реально больше), года работы с убытками и постоянного тестирования. Маркетинговое образование помогает, но не критично — важнее опыт в конкретной нише. Кейсы с миллионными прибылями создают завышенные ожидания, но без них новичок не верит в возможность вообще. Лучш…

➡️ Читайте на сайте: https://aff.top/blog/arbitrazh-trafika-dlia-novichkov-v-2026-stoit-li-nachinat

🧠 Ещё больше инсайтов → в канале AFF.top
Attribution Reporting API в Chrome: что реально уже можно планировать в стек

Attribution Reporting API — это не замена CAPI или sGTM, а отдельный канал измерения конверсий без передачи user-level данных. Он строится вокруг двух режимов: event-level для грубой связки клика и конверсии, и aggregatable — для сводной аналитики по шумным отчётам.

Если смотреть на внедрение в продуктовый стек, важно закладывать не «ещё один пиксель», а новую логику сбора:
— на стороне сайта помечать источники трафика через eligible click / view события;
— на стороне конверсии задавать триггер регистрации отчёта;
— не ждать привычного уровня детализации по user journey: атрибуция становится ограниченной и с задержкой;
— заранее проверить, где у вас сейчас зависимость от third-party cookies и postback-логики.

Для аналитики это означает сдвиг от user-level reconciliation к model-friendly measurement. Хорошая практика — держать параллельно: Pixel/CAPI для оптимизации платформ, server-side first-party события для внутреннего BI, и Attribution Reporting как privacy-preserving слой для браузерной среды.

Типовая ошибка — пытаться сравнивать отчёты API 1:1 с GA4 или ad platform dashboards. Сравнивать надо не сырые числа, а тренд, покрытие и долю событий, которые вообще можно измерить без идентификаторов. Если этого не сделать, команда будет чинить не трекинг, а ожидания.

Лучший старт — описать карту событий: какие конверсии критичны, где допустима агрегация, где нужен event-level сигнал, и какие разрывы нужно закрывать sGTM. Тогда Attribution Reporting API становится не экспериментом, а ещё одним слоем атрибуции в cookieless-архитектуре.
Custom domain для sGTM: зачем он нужен и где чаще всего ломают трекинг

Custom domain в server-side трекинге — это не про «красивый URL», а про контроль над first-party контекстом. Когда трафик уходит на отдельный домен вида sgtm.example.com, вы снижаете зависимость от стороннего хоста и получаете предсказуемее работу cookies, consent и маршрутизации.

Что важно сделать до запуска:
— Использовать поддомен основного сайта, а не отдельный брендовый домен
— Привести DNS, TLS и сертификаты к стабильной схеме
— Проверить, что endpoint принимает только нужные методы и пути
— Сразу настроить логирование запросов и ошибок 4xx/5xx

Типовая ошибка — отправлять все события на custom domain, но забыть про согласованность cookie scope. В итоге fbp, fbc, client_id и собственные идентификаторы живут в разных контекстах, а дедупликация начинает «плавать».

Еще один частый баг — смешивать server endpoint для трекинга и публичный API на одном поддомене без маршрутизации. Тогда кэш, редиректы и WAF могут резать события, особенно если не разделены пути для collect и admin-запросов.

Минимальный чек-лист:
— один поддомен под сбор событий
— отдельные пути для ingestion и healthcheck
— отсутствие лишних редиректов
— same-site/cookie policy проверены в браузере и в сетевых логах
— тест на дубли и потерю event_id

Если custom domain не помогает вам лучше видеть запросы и стабильнее передавать идентификаторы, значит он настроен как «витрина», а не как транспорт.
This media is not supported in your browser
VIEW IN TELEGRAM
Claude скоро станет по паспорту

С 8 июля 2026 года все модели Claude потребуют верификации личности через паспорт и селфи. Это произошло после закрытия доступа к Fable 5, выпущенной в открытый доступ буквально на неделю. Ограничение касается веб-версии на сайте Anthropic, но остаётся неясным, будут ли верификацию требовать API и AI-агенты вроде Codex. Решение выглядит излишне строгим в свете качества моделей, однако компания явно ужесточает контроль над доступом к своим продук…

➡️ Читайте на сайте: https://aff.top/blog/claude-skoro-stanet-po-pasportu

🧠 Ещё больше инсайтов → в канале AFF.top
TTL для server-side cookies: где ставить срок, чтобы не сломать атрибуцию и privacy

TTL у first-party cookies в sGTM — это баланс между окнами атрибуции, повторными визитами и минимизацией лишнего хранения. Если TTL слишком короткий, вы теряете связку между сессиями и падает match rate. Если слишком длинный — растёт объём данных, а часть сигналов начинает жить дольше, чем нужно для performance-логики.

Рабочий подход такой:
_fbp и аналоги для advertising-сигналов держат обычно 90 дней, если бизнес-окно атрибуции длинное.
_fbc логично ограничивать сроком жизни click-id в ваших отчётах.
— session cookies: 30 минут без активности или по правилам вашей аналитики.
— user-id / auth cookies: только пока реально нужен persistent login, не “на всякий случай”.

Для server-side важно не копировать client-side TTL слепо. В sGTM cookie часто используется как мост между запросами, а не как постоянный идентификатор. Поэтому сначала определите: это идентификатор сессии, клик-сигнал или пользовательский ключ? От этого зависит TTL, path, domain и SameSite.

Хорошая практика: хранить минимум для дедупликации и склейки, а не всё подряд. Если cookie не участвует в активации события в течение окна атрибуции, TTL можно сокращать без потери качества.

Итог простой: TTL настраивают от функции cookie, а не от привычки “поставить побольше”. Начните с 30 минут для сессии, 90 дней для рекламных сигналов и пересмотрите всё, что живёт дольше бизнес-окна.
Типовая sGTM-архитектура для арбитража: что должно быть в контуре с первого дня

Базовая схема почти всегда одна: client-side ловит сигнал, server-side нормализует его и уже потом раздаёт в Meta, Google, TikTok. Если сразу тащить всё напрямую из браузера в платформы, получите дубли, дырки в дедупликации и грязный event payload.

Что обычно закладывают:
— отдельный subdomain для sGTM, чтобы не смешивать трекинг с основным сайтом
— Client для входящих событий: web, MP, custom endpoint
— единый event_id на событие для Pixel + CAPI deduplication
— нормализацию user data: email, phone, fbp, fbc, external_id
— роутинг по платформам через один event bus, а не через набор разрозненных тегов

Главная ошибка — делать sGTM как «прокладку» между GA4 и рекламными сетями. Тогда в контейнере оказываются лишние зависимости, а логика атрибуции расползается по тегам. Лучше держать в сервере только transport layer: принять, проверить, обогатить, отправить.

Для арбитража особенно важно:
— не терять click_id и gclid/fbclid на входе
— сохранять raw payload для дебага
— отдельно логировать accepted / dropped / duplicated events
— не смешивать production и test traffic в одном потоке

Если архитектура собрана правильно, потом проще чинить EMQ, дедупликацию и расход событий. А если нет — sGTM превращается в ещё одну точку отказа.
This media is not supported in your browser
VIEW IN TELEGRAM
Google выпустил Android 17

Android получил встроенную Gemini с функциями автоматизации задач, конспектирования браузера и редактирования медиа. Обновление принесло новый интерфейс Bubble, двухкамерную запись и игровой режим для складных телефонов. Критический момент: Gemini Intelligence требует Gemini Nano v3 и минимум 12 ГБ RAM, что ограничивает аудиторию премиум-девайсов. Это создаёт потенциал для таргетинга криптооффера на узкий сегмент владельцев флагманов, готовых пл…

➡️ Читайте на сайте: https://aff.top/blog/google-vypustil-android-17

🧠 Ещё больше инсайтов → в канале AFF.top
Adblock режет не весь трафик: как считать события, когда клиентский пиксель молчит

Когда Pixel или analytics.js не доезжают до браузера, ошибка обычно не в отчёте, а в архитектуре сбора. Сначала отделите блокировку загрузки от блокировки отправки: скрипт может не загрузиться, но запрос с формы, order API или backend webhook всё ещё доступен.

Рабочая схема для performance:
— ключевые события отправляйте с сервера: purchase, lead, submit_form, signup
— клиент оставляйте для UI-событий и мягкого сигнала
— для каждого события задайте event_id, чтобы дедуплицировать Pixel + CAPI
— передавайте server-side user_agent, ip, fbp, fbc, если они доступны легально и стабильно

Если нужно понять, где именно теряются события, сравнивайте три слоя:
1) browser hit
2) server hit
3) backend truth, например заказ в CRM

Если backend truth выше server hit — проблема в маршрутизации sGTM, очередях, таймаутах или фильтрах. Если server hit выше browser hit — это нормальная зона, где server-side как раз и закрывает разрыв.

Важно не пытаться “обойти” блокировщики. Правильный путь — минимизировать зависимость от клиентского JS, унести критичные конверсии в first-party endpoint и держать одинаковую схему идентификаторов между каналами.

Практика простая: сначала переносите purchase и lead, потом уже всё остальное. Так вы быстрее увидите, где именно adblock съедает атрибуцию, а где у вас ломается сбор.
QA server-side трекинга: 9 проверок до запуска, чтобы не ловить пустые события

Первый слой — сетевой маршрут. Проверь, что все хиты доходят до sGTM, нет 4xx/5xx, а таймауты не рвут цепочку. Если используешь Cloud Run или VPS, отдельно смотри latency p95 и наличие редиректов: один лишний hop легко убивает часть браузерных запросов.

Второй слой — валидность payload. Сверь schema для каждого события: обязательные поля, типы, пустые значения, длину строк. Для CAPI и аналогичных API особенно важно, чтобы user_data приходили уже нормализованными: lowercase, trim, телефон в E.164, email без пробелов. Иначе событие уходит, а match quality не растёт.

Третий слой — дедупликация. Убедись, что browser и server отправляют один event_id, а не два разных ID на одну конверсию. Типовая ошибка — генерировать event_id на клиенте и заново на сервере. В QA прогоняй сценарий: refresh страницы, повторный submit, back button, двойной клик по кнопке.

Дальше проверь, что в логах видно: какой client принял запрос, какой tag сработал, какой upstream ответил ошибкой. Если есть трансформация cookies, сравни fbp/fbc, IP и User-Agent до и после маршрутизации. Когда эти поля теряются по пути, серверный трекинг становится просто дорогой пересылкой пустых данных.

Финальный чек: event count client-side vs server-side, доля deduplication, и тестовая конверсия от первого клика до отправки. Если хотя бы один шаг расходится, сначала чинится QA-цепочка, потом атрибуция.
This media is not supported in your browser
VIEW IN TELEGRAM
Армения заблокирует онлайн-казино для получающих пособия

Армения ввела жёсткие ограничения на онлайн-гемблинг: запретила депозиты для получателей соцпособий и пенсий, ограничила остальным суммы до 20% дохода, обязала казино добавить кнопку самозапрета. Сайты, не подчинившиеся требованиям, будут заблокированы — технология реализации неясна. Проблемы с платёжками неизбежны. Криптоказино, вероятно, останутся без контроля, что открывает новый канал для залива трафика.

➡️ Читайте на сайте: https://aff.top/blog/armeniia-zablokiruet-onlain-kazino-dlia-poluchaiuschikh-posobiia

🧠 Ещё больше инсайтов → в канале AFF.top
This media is not supported in your browser
VIEW IN TELEGRAM
В DeepSeek добавили распознавание изображений

DeepSeek запустил бета-версию распознавания изображений — функция доступна бесплатно прямо в чате. Работает нестабильно, но для базовых задач подходит: например, проверить, есть ли на креативе узнаваемая знаменитость в нужном гео. Платная подписка не нужна.

➡️ Читайте на сайте: https://aff.top/blog/v-deepseek-dobavili-raspoznavanie-izobrazhenii

🧠 Ещё больше инсайтов → в канале AFF.top
This media is not supported in your browser
VIEW IN TELEGRAM
📡 Запустили AFF.TOP — медиа про арбитраж, ИИ и вайб-кодинг

Разбираем новости из мира ИИ, тренды вайб-кодинга, инсайды индустрии арбитража — без воды и продаж курсов.

👉 Подписаться на канал AFF.TOP
Joomla до сих пор жива не из-за ностальгии: где она реально удобна, а где тормозит проект

Joomla часто берут «по инерции», но у неё есть понятный сценарий: каталог, корпоративный сайт, портал с ролями и разными типами материалов. Если нужен админский контроль без тяжёлой кастомной платформы — она закрывает задачу.

Что у Joomla обычно сильнее, чем ожидают:
— гибкая модель материалов и категорий;
— нормальная работа с правами доступа;
— шаблонная система, которую можно быстро подстроить под типовой проект;
— меньше магии, чем в больших enterprise-CMS, если команда любит явную структуру.

Где начинаются проблемы:
— сложнее держать чистую архитектуру, если сайт разрастается в «комбайн»;
— расширения часто решают задачу точечно, а не системно;
— после нескольких доработок проект легко превращается в набор несвязанных плагинов.

Есть наблюдение которое стоит проверить: Joomla хорошо живёт там, где контент-структура понятна заранее. Если же нужен headless, мобильные клиенты, сложные интеграции и API-first подход — чаще выгоднее смотреть в сторону Drupal, Strapi или Sanity.

Перед стартом проверь три вещи: кто будет поддерживать проект, сколько кастомных типов контента нужно, и не упрётся ли дальнейший рост в расширения. Если на эти вопросы нет чёткого ответа, Joomla почти всегда берут не как решение, а как компромисс.
Server-side проксирование Pixel-событий: чек-лист без потерь на маршруте

Если Pixel шлёт события через sGTM, сначала проверь не «тег», а путь данных. Ошибки почти всегда сидят в одном из 4 мест: client, routing, payload, dedup.

— event_name должен совпадать между browser и server
— event_id обязателен для пары Pixel + CAPI, иначе dedup сломается
— user_data собирай в нормализованном виде: email lowercase, phone в E.164, SHA-256
— передавай IP и User-Agent из запроса, а не из кастомных полей
— fbp/fbc не теряй при редиректах и SPA-навигации
— не меняй смысл события на сервере: Purchase не должен превращаться в Lead

Если проксируешь через Cloud Run или VPS, отдельно тестируй заголовки и cookies. Частая анти-ошибка: сервер получает запрос, но теряет оригинальный Host, а затем ломается CORS, cookie scope и часть match keys. Ещё одна точка отказа — пустой event_id: браузер и сервер отправили одно и то же, а deduplication rate всё равно падает.

Минимальный smoke-test: открыть devtools, поймать browser event, затем увидеть server event с тем же event_id, одинаковым event_name и полным набором user_data. Если этого нет, не трогай оптимизацию EMQ — сначала чини транспорт. Дальше уже можно поднимать качество матчей и снижать долю дублей.
This media is not supported in your browser
VIEW IN TELEGRAM
Google заставляет махать руками перед камерой

Google запустила новую капчу на основе распознавания движений — требует включённую камеру и помах руки перед экраном для подтверждения. Система отслеживает 21 точку-координату положения руки в реальном времени, а данные удаляются сразу после проверки. Для арбитражников это усложнит автоматизацию — обход вероятно будет работать через перехват хэша с положительным ответом. Капча пока на тестировании, но предвещает новый уровень защиты от ботов в и…

➡️ Читайте на сайте: https://aff.top/blog/google-zastavliaet-makhat-rukami-pered-kameroi

🧠 Ещё больше инсайтов → в канале AFF.top
Server-side трекинг для PWA: где ломается атрибуция и как собрать её без лишнего шума

PWA часто выглядит как обычный сайт, но для трекинга это отдельный режим: навигация идёт через service worker, страница может открываться из cache, а часть запросов уходит не так, как в классическом web.

Первое, что проверяют в sGTM для PWA:
— не теряется ли event_id между переходами и офлайн-буфером;
— не дублируются ли события после возврата соединения;
— передаётся ли client_id / session_id стабильно через собственное хранилище;
— не ломает ли service worker отправку hit’ов на ваш endpoint.

Если используете CAPI или Events API, не полагайтесь только на browser context. В PWA важнее:
— прокинуть first-party идентификаторы в localStorage / IndexedDB с явной логикой очистки;
— отправлять server-side IP и User-Agent с учётом того, что часть сессий может приходить из кэша;
— делать deduplication на уровне event_id, а не только по времени события.

Отдельный анти-кейс: PWA шлёт purchase повторно после восстановления сети, а сервер считает его новым. Лечится просто — один и тот же event_id должен жить от клика до подтверждения заказа, а не генерироваться на каждом слое.

Ещё один нюанс: service worker может перехватить часть fetch/XHR. Поэтому endpoint трекинга лучше явно исключать из кеширования и проверять, что запрос уходит напрямую, без stale response.

Для PWA server-side трекинг — это не “добавить ещё один тег”, а выстроить стабильный путь для идентификаторов и повторной отправки. Если event_id и storage не спроектированы заранее, атрибуция начнёт дрейфовать уже на первой офлайн-сессии.
This media is not supported in your browser
VIEW IN TELEGRAM
Как заработать 2500$ с УБТ трафика из Twitter’а не привлекая внимания санитаров

Арбитражник проkил органическbq трафик с X (Twitter) через связку с dating-офферами, используя маскировку ссылок под видеопревью. После полугода залива с марта по октябрь 2025-го он заработал скромный, но стабильный доход, внедрив динамическую генерацию страниц, обфускацию ссылок и cookie-разделение трафика для увеличения конверсии на треть. Основной вызов — постоянные баны доменом из-за обновлений Google и требований антифрода, из…

➡️ Читайте на сайте: https://aff.top/blog/kak-zarabotat-2500-s-ubt-trafika-iz-twitter-a-ne-privlekaia-vnimaniia-sanitarov

🧠 Ещё больше инсайтов → в канале AFF.top
7 типовых ошибок в Bitrix, из-за которых сайт начинает тормозить и ломаться

Bitrix часто «виноват» не сам по себе, а из-за того, как его собирали и сопровождали. Ниже — ошибки, которые повторяются в агентских проектах снова и снова.

— Тяжёлые запросы в циклах: один вызов ORM или SQL внутри foreach легко превращает страницу в медленную.
— Кэш включён формально, но ключи собраны плохо: в итоге кэш либо не работает, либо отдаёт чужие данные.
— Шаблон лезет в бизнес-логику: когда верстка начинает считать, фильтровать и править данные, поддержка дорожает.
— События и агенты без контроля: старые обработчики копятся, дублируются и создают побочные эффекты.
— Кастомный код правит ядро или полагается на правки в админке, которые никто не может быстро отследить.

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

Если проект на Bitrix уже ведёт себя нервно, начинайте не с переписывания всего подряд, а с аудита запросов, кэша, событий и точек интеграции.
Server-side проксирование Pixel событий: чек-лист, чтобы не сломать дедупликацию и match rate

Если Pixel уходит через sGTM, ошибка обычно не в «сервере», а в связке: идентификаторы, порядок отправки, заголовки, схема событий.

Проверяю всегда в таком порядке:
event_id одинаковый в browser и server. Без него Pixel + CAPI начинают считаться как два разных события.
fbp и fbc сохраняются и прокидываются дальше, а не теряются на редиректах и SPA-навигации.
user_data нормализуется до хеша: lowercase, trim, телефон в E.164, email без лишних пробелов.
IP и User-Agent берутся на сервере из запроса, а не подставляются вручную.
Content-Type и payload совпадают с ожидаемой схемой тега, иначе часть событий тихо отваливается.

Отдельно смотрю на логику маршрутизации: один и тот же event не должен уходить в несколько тегов без явной причины. Иначе дедупликация начинает зависеть от случайного порядка доставки.

Хорошая практика — сначала отправить Pixel в browser, потом server-версию с тем же event_id, и только потом включать дополнительные каналы. Так проще поймать, где именно ломается цепочка.

Если после проксирования падает EMQ или растёт дубль, первым делом проверяйте не «какой тег виноват», а какой идентификатор потерялся.
Facebook CAPI без потерь событий: схема, которая не разваливается на дедупликации

Если CAPI подключили «в лоб», потери обычно сидят не в Facebook, а между сайтом, sGTM и логикой event_id. Самые частые провалы: Pixel шлёт одно имя события, сервер — другое; event_id генерируется заново на каждом хите; user_data пустой или не нормализован; fbp/fbc не доезжают до сервера.

Что должно быть в базе:
— один и тот же event_name на клиенте и сервере;
— стабильный event_id из браузера, а не новый UUID на сервере;
— email/phone в SHA-256 после lowercase, trim и нормализации;
— IP и User-Agent передавать с server-side запроса;
— fbp и fbc сохранять из браузера и прокидывать в CAPI.

Дедупликация ломается чаще всего из-за тайминга и разных payload. Если Pixel стреляет purchase без event_id, а CAPI присылает его позже, Meta не склеит событие. Для purchase, lead и add_to_cart лучше делать единый генератор event_id на фронте и использовать его и в Pixel, и в CAPI. Для повторных сабмитов — отдельная бизнес-логика, а не «пусть Meta сама разберётся» ⚙️

Перед запуском проверьте три вещи: в Events Manager должны приходить одинаковые event_name, event_id и время события; user_data не должен быть пустым; на сервере не должно быть подмены IP на адрес прокси без необходимости.

Итог простой: CAPI не спасает плохую схему трекинга. Сначала стабилизируйте идентификаторы и нормализацию, потом смотрите на EMQ и deduplication rate.
7 проверок плагина перед установкой: экономят часы отладки и откатов

Перед тем как тащить плагин на боевой WP, смотрите не на красивые скриншоты, а на поведение в реальной сборке. Список короткий, но отсекает большую часть мусора:
— есть ли реальная причина ставить его, а не закрыть задачу кодом или ядром;
— как он пишет данные: свои таблицы, postmeta, options, cron, AJAX;
— не грузит ли он лишние скрипты и стили на всех страницах;
— умеет ли отключаться без хвостов в базе и файловой системе.

Дальше — совместимость с вашим стеком. Даже хороший плагин ломает сайт, если конфликтует с кэшем, билдом шаблона, Gutenberg-блоками, мультиязычностью или формами. Ищите, есть ли у него отдельные хуки, фильтры, namespace, нормальная документация по интеграции. Если этого нет, поддержка часто превращается в игру в угадайку.

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

Хороший плагин не тот, что делает больше всего, а тот, который можно предсказать, ограничить и удалить без боли.