Медиабайер льёт нутра-оффер через сеть, которая платит за FTD. Дашборд его трекера показывает 340 кликов и 4 конверсии за день — CR, при котором любую кампанию тут же поставили бы на паузу. Но собственная статистика сети по тому же трафику за тот же период показывает 19 конверсий. Никто ничего не крадёт и не врёт: сеть отправляет событие подтверждения со своего бэкенда, через несколько дней после клика, на домене, к которому браузер байера больше не обращается. Если трекер так и не узнал об этих 15 конверсиях — для него их не существует, сколько бы реального дохода за ними ни стояло. Server-to-server (S2S) постбек-трекинг существует именно для того, чтобы закрыть этот разрыв, и сделать это неправильно — один из самых распространённых способов, которым медиабайеры незаметно занижают собственные показатели.
Что такое S2S-постбек на самом деле
S2S-постбек (иногда его называют server callback или IPN — instant payment notification, термин, заимствованный из платёжных систем) — это HTTP-запрос, который сервер партнёрской сети или рекламодателя отправляет напрямую на сервер вашего трекера в момент, когда происходит конверсия. Никакого браузера, JavaScript, куки или зависимости от того, онлайн ли устройство пользователя, разблокировано ли оно или вообще всё ещё принадлежит тому же человеку, который кликнул по рекламе.
Флоу шаг за шагом:
- Пользователь кликает по вашей рекламе и попадает на оффер через вашу трекинговую ссылку.
- Ваш трекер генерирует уникальный
click_id, логирует клик (источник, кампанию, объявление, sub ID, гео, таймстемп) и передаёт этотclick_idдальше офферу как URL-параметр. - Лендинг оффера, форма регистрации или флоу депозита проносит этот
click_idчерез свою воронку — обычно как скрытое поле или sub-ID, который сеть уже поддерживает. - Когда пользователь конвертится — регистрируется, депонит, проходит KYC, что бы оффер ни считал платным событием, — сервер сети вызывает ваш postback URL с тем же
click_idи статусом. - Ваш трекер сопоставляет
click_idс исходным кликом и записывает конверсию на своей стороне, независимо от того, что происходило в браузере пользователя после этого.
Поскольку весь обмен происходит server-to-server, ему всё равно на iOS ITP, блокировщики рекламы, ограничения на сторонние куки, закрытую вкладку или медленную страницу, которая так и не успела выполнить скрипт. Ему так же всё равно, что конверсия произошла через три дня, на домене, который вы не контролируете, с устройства, отличного от того, с которого кликнули по рекламе. В этом и суть — это единственный слой трекинга, построенный так, чтобы пережить реальную форму партнёрской воронки.
Пиксель против постбека: что на самом деле видит каждый слой
Пиксели не бесполезны — они дешёвые, быстрые и вполне годятся для ранних сигналов воронки вроде просмотра лендинга. Но когда пиксель становится источником истины для событий дохода, байеры в итоге оптимизируются под цифры, которые изначально никогда не были полными.
| Пиксель-трекинг | S2S-постбек | |
|---|---|---|
| Зависит от браузера/куки | Да | Нет |
| Переживает блокировщики рекламы | Нет | Да |
| Работает, если пользователь закрыл вкладку | Нет | Да |
| Работает через редирект на собственный домен рекламодателя | Нет | Да |
| Точность для отложенных конверсий (депозиты спустя дни) | Плохая | Надёжная |
| Срабатывает на | Загрузку страницы / клиентское событие | Подтверждённое server-side изменение статуса |
| Владение данными | Распределено между клиентскими скриптами | Полностью на стороне сервера |
Если вы также ведёте Facebook CAPI параллельно с постбеком, стоит понимать, где заканчивается зона ответственности каждого слоя — смотрите Пиксель против Conversions API против S2S-постбека, как на самом деле эти три слоя делят работу, а не конкурируют.
![]()
Анатомия postback URL
Postback URL — это эндпоинт на вашем трекере, заполненный макросами, которые система сети динамически подставляет в момент отправки колбека. Типичная структура:
https://track.yourdomain.com/postback?click_id={click_id}&status={status}&payout={payout}¤cy={currency}
Справочник макросов
Названия макросов отличаются между сетями, но почти все они отражают одни и те же концепции:
| Макрос (типовая форма) | Что передаёт | Альтернативные названия |
|---|---|---|
{click_id} | Уникальный ID, связывающий конверсию с исходным кликом | {clickid}, {subid}, {aff_click_id} |
{status} | Тип события конверсии | {event}, {action}, {goal} |
{payout} | Значение дохода/комиссии | {amount}, {revenue}, {sum} |
{currency} | Валюта выплаты | {cur} |
{sub1}–{sub5} | Ваши кастомные sub-ID параметры для сегментации | {s1}–{s5}, {subid1}–{subid5} |
{transaction_id} | Собственный внутренний ID сети для конверсии (полезно для дедупа/споров) | {trans_id}, {conversion_id} |
Не считайте название макроса универсальным, пока не проверили документацию сети по постбекам. Пропущенный или неправильно написанный макрос незаметен ровно до момента, пока первая реальная конверсия тихо не провалит сопоставление.
Разобранный пример
Вот как выглядит реальный postback-запрос, когда сеть его фактически отправляет, с макросами, заполненными для события депозита на гемблинг-оффере:
https://track.yourdomain.com/postback?click_id=8f2a91c0d3&status=deposit&payout=45.00¤cy=USD&sub1=fb_lookalike_3
Ваш трекер получает это, ищет click_id=8f2a91c0d3 в своём логе кликов, находит исходный клик (кампанию, объявление, гео, sub1) и записывает конверсию deposit стоимостью $45.00, привязанную к полному контексту этого клика — никакой ручной сверки, никаких таблиц, никакого ожидания, пока дашборд сети начнёт отражать реальность.
Особенности разных сетей, которые стоит знать
Настройка постбека выглядит одинаково в теории и ведёт себя по-разному на практике в зависимости от сети:
- Несогласованность названий макросов.
{clickid}у одной сети — это{subid}у другой и{aff_sub}у третьей. Вставляйте в свой postback URL именно тот синтаксис макросов, который использует сеть — не полагайтесь на то, что он совпадает с последней настроенной вами сетью. - Один постбек против постбека на каждый статус. Некоторые сети отправляют отдельное URL-поле для каждого статуса (отдельные поля для “lead” и “sale”); другие отправляют один URL и ожидают, что вы будете читать макрос
{status}. Настройка под неправильную модель означает, что каждое событие после первого тихо теряется. - Отложенные и повторяемые постбеки. Одни сети ставят в очередь и повторяют неудачные доставки часами или днями; другие отправляют один раз и больше не повторяют. Знайте, с каким поведением имеете дело — от этого зависит, стоит ли вам простой несколько конверсий или все сразу.
- IP allowlisting и HTTPS. Часть сетей требует добавить их исходящие IP в allowlist или вовсе отклоняет postback-эндпоинты на обычном HTTP. Проверяйте оба направления, прежде чем считать настройку сломанной.
Настройка и маршрутизация постбеков по статусу
- Сгенерируйте postback URL в своём трекере, включая каждый макрос, который сеть действительно поддерживает — беря это из их документации, а не угадывая по шаблону.
- Вставьте его в поле постбека сети. Если они поддерживают URL по каждому статусу отдельно — мапьте каждый нужный вам статус (регистрация, депозит, продажа) индивидуально, а не только первый, который вы настроили.
- Запустите тестовую конверсию, если песочница сети это позволяет, или проверьте их лог доставки постбеков после реальной, чтобы подтвердить, что запрос действительно ушёл с их сервера.
- Проверьте совпадение на стороне своего трекера — подтвердите, что пришедший
click_idсоответствует клику, который вы действительно залогировали, а не является сиротским или некорректным запросом. - Замапьте каждый нужный статус, а не только первый, который срабатывает. Настройка, которая ловит только “регистрацию” и теряет “депозит” спустя три дня, выглядит нормально ровно до момента, пока ваши цифры дохода не перестанут двигаться.
Большинство трекеров трактуют каждый постбек как одно плоское событие и ожидают, что вы сами приладите обработку статусов. DarkCore с самого начала трактует статус конверсии как полноценную концепцию: маршрутизация постбеков настраивается прямо на каждом стриме, по статусам — регистрация, депозит или любой кастомный статус, нужный вашей вертикали.
Статусы конверсий существуют как реестр на уровне воркспейса, а не как захардкоженные категории. Добавьте новый — верифицированную KYC-веху, порог второго депозита, что угодно, что реально отслеживает ваша воронка — и он мгновенно становится доступен везде: маршрутизация постбеков, срабатывание пикселя, аналитические метрики и фильтры push-аудиторий, без единой строчки инженерной работы. Вы не подаёте тикет, чтобы новый статус распознавался, — вы просто добавляете строку.
Именно здесь тихо ломаются инструменты, построенные вокруг одного общего события “конверсия”: постбеки регистрации нормально приходят в первый же день, а постбеки депозита или продажи — те, что фактически несут доход — приходят спустя несколько дней и теряются, неправильно маршрутизируются или сливаются со всем остальным, потому что система никогда не была построена различать статусы. Если вы также ведёте Facebook CAPI поверх данных постбека, тот же реестр управляет маппингом событий и там — смотрите как трекать конверсии Facebook-рекламы для партнёрских офферов, как эти два механизма соединяются сквозным образом.
![]()
Дебаг сломанной цепочки постбеков
Когда конверсии не появляются, проходите цепочку по порядку, а не гадайте:
- Подтвердите, что клик вообще залогировался. Откройте лог кликов трекера и найдите клик, соответствующий ожидаемому времени и источнику. Если клика нет — дальше по цепочке нечему сопоставляться.
- Подтвердите, что
click_idпережил редирект на оффер. Многие “сломанные” настройки постбека на самом деле — сломанный passthrough: лендинг сети или форма регистрации потеряли параметр ещё до того, как сработало их событие конверсии. - Проверьте лог доставки постбеков сети, если они его показывают. Это подскажет, ушёл ли запрос вообще с их сервера и что он на самом деле содержал — часто отличается от того, что описано в документации.
- Проверьте входящий лог запросов трекера на предмет сырого хита постбека. Если он пришёл, но не сопоставился с кликом, значение
click_id, вероятно, некорректно, обрезано или использует неправильное название макроса. - Подтвердите, что статус смапился на что-то, что распознаёт ваш стрим. Постбек со
status=ftd, когда ваш стрим мапит толькоdeposit, попадает как нераспознанное событие — проверьте расхождения в названиях между тем, что отправляет сеть, и тем, что ожидает ваш реестр статусов. - Сверьтесь с собственным дашбордом сети за короткий недавний период, когда отложенные события уже успели появиться. Небольшой постоянный разрыв может быть нормой; большой или растущий означает, что какой-то шаг выше всё ещё сломан.
Типичные ошибки
- Мапить только первый статус, который срабатывает. Регистрация работает, депозит — нет, потому что никто не настроил маршрутизацию для чего-либо после первого события в воронке.
- Доверять документации макросов сети без проверки. Документация устаревает. Макрос, который раньше был
{subid}, после миграции платформы становится{sub_id}, и никто не обновляет страницу. - Не проверять passthrough
click_id. Если лендинг сети или форма регистрации ненадёжно проносят ваш идентификатор клика в свою систему, постбеку, который в итоге сработает, не с чем сопоставляться — “успешная” доставка, которая порождает неатрибутированную конверсию. - Предполагать, что сбой доставки будет виден сразу. Некоторые сети молча повторяют попытки днями; другие отбрасывают неудачную доставку без единого алерта. Если у вашего эндпоинта был простой, проверяйте лог доставки сети, а не считайте, что всё дошло.
- Считать одно плоское событие “конверсия” достаточным. Регистрации, депозиты и ребиллы — разные сигналы с разной ценностью. Свести их к одному статусу делает дальнейшую автоматизацию — авто-правила, действующие на реальные депозиты, аналитику, push-сегментацию — слепой к разнице между лидом за $0 и FTD за $200.
FAQ
Сложно ли настроить S2S-постбек-трекинг по сравнению с пикселем?
Изначальная настройка требует чуть больше координации — нужно содействие сети, чтобы пронести ваш click_id через их воронку и вызвать колбек — но сама конфигурация это один URL с макросами, не сложнее, чем вставить код пикселя. Выигрыш — в долговечности: однажды правильно подключённый, он продолжает работать независимо от изменений в браузерах, блокировщиков рекламы или того, сколько дней прошло между кликом и конверсией.
Можно ли использовать пиксель и S2S-постбек одновременно?
Да, и для большинства партнёрских воронок так и стоит делать — пиксель для дешёвых ранних сигналов воронки вроде просмотров страницы, а постбек — для событий ниже по воронке, которые фактически несут доход. Они не конкурируют за одну и ту же работу; постбек существует именно для того, чтобы ловить то, что пиксель структурно не способен.
Что делать, если партнёрская сеть вообще не поддерживает postback URL?
Вы ограничены тем трекингом, который они предоставляют, — обычно ручной экспорт или собственный дашборд, оба с отставанием от реального времени и требуют ручной сверки. Если сеть не может отправить server-side колбек на конверсию, получить от неё атрибутированные данные о доходе в реальном времени невозможно; это реальное ограничение при выборе оффера, которое стоит взвесить против выплаты.
Почему мой трекер показывает меньше конверсий, чем собственный дашборд сети?
Почти всегда одна из причин: click_id не переживает редирект в воронку сети, в postback URL отсутствует маппинг статуса для событий после первого, либо сеть молча повторяет неудачную доставку вместо того, чтобы вас уведомить. Пройдитесь по цепочке от лога кликов наружу, а не считайте разрыв неисправимым.
Как сделать всё правильно с первого раза
В этом нет ничего экзотического — это URL, горстка макросов и статус, который ваш трекер действительно умеет маршрутизировать. Людей путает то, что они трактуют постбек как одноразовую настройку, а не как цепочку с несколькими местами, где она может тихо сломаться: потерянный click_id, немапленный статус, политика повторов, которую никто не проверил. DarkCore берёт на себя то, что обычно приделывают как нечто второстепенное: маршрутизация по статусам, настроенная прямо на стриме, реестр статусов, расширяющийся на пиксели и аналитику без дополнительной настройки, и трекер, построенный на предположении, что интересующая вас конверсия часто происходит значительно позже клика. Если ваши текущие цифры не совпадают с тем, за что реально платит сеть, стоит проследить цепочку, прежде чем прослеживать бюджет — напишите нам в Telegram.