База знаний Серверные постбэки (S2S)

Что такое постбэк — на пальцах

Постбэк — это маленькое уведомление, которым один сервис говорит другому: «у тебя произошло событие». Регистрация, депозит, отказ — всё это события. Постбэк — способ их передавать в реальном времени по интернету.

В нашей платформе постбэки ходят в две стороны:

  • От рекламодателя к нам. Игрок зарегистрировался / положил депозит — рекл нам об этом стучит, мы записываем конверсию в системе.
  • От нас к партнёру. Конверсия записалась, прошла проверки — мы стучим в трекер партнёра, чтобы у него появилось то же событие.

Технически постбэк — это обычная HTTP-ссылка, по которой одна система «дёргает» другую. Никаких архивов, паролей, ручных загрузок — данные передаются мгновенно.

Как всё работает целиком

Пройдём по шагам, как одна регистрация добирается от партнёра до его выплаты:

  1. Партнёр льёт трафик по своей ссылке (она содержит наш click_id).
  2. Игрок переходит, попадает к рекламодателю.
  3. Игрок регистрируется. Рекл шлёт нам постбэк с этим click_id и событием «регистрация».
  4. Мы ловим постбэк, привязываем к нужному клику и партнёру, считаем выплату.
  5. Если конверсия прошла наши правила, мы стучим в постбэк-ссылку партнёра.
  6. Партнёр видит конверсию в своём трекере и получает выплату.

Главное правило: в каждой постбэк-ссылке должен быть click_id — это «номер билета», по которому система понимает, к какому клику привязать событие.

Шаг 1. Настраиваем рекламодателя

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

Что отдать рекламодателю

Высылаем шаблон. Это наша ссылка — мы её принимаем, не рекл.

https://sftshrt.space/postback?click_id={CLICK_ID}&goal=reg

На что обратить внимание:

  • {CLICK_ID} — это плейсхолдер на стороне рекла. Он должен сам подставить туда реальный click_id. У разных рекламодателей этот плейсхолдер называется по-разному: {clickid}, [clickid], %CLICK_ID% и т.д.
  • goal=reg — для регистрации. Для депозита — goal=dep, для FTD — goal=ftd. Алиасы целей согласуем с реклом заранее (карточка оффера → Цели).

Если есть сумма депозита

https://sftshrt.space/postback?click_id={CLICK_ID}&goal=dep&deposit_sum={AMOUNT}&currency=USD

Если рекл отдаёт сумму депозита — добавляем deposit_sum и явную currency. Выплата партнёру всё равно считается у нас по тарифу оффера, но статистика по реальным депам будет под рукой.

Если рекл присылает отклонения

https://sftshrt.space/postback?click_id={CLICK_ID}&goal=dep&status=declined&declined_reason=duplicate

На отклонение нам нужны status=declined + любая причина в declined_reason. Без причины систему намеренно роняем — иначе ломается аналитика качества трафика.

Шаг 2. Настраиваем партнёра

Цель — чтобы при каждой нашей одобренной конверсии партнёр получал стук в свою постбэк-ссылку.

Что попросить у партнёра

Постбэк-ссылку его трекера. Внутри неё должны быть наши макросы вида {click_id} в фигурных скобках, на место которых мы вставим реальные значения.

https://tracker.partner.com/postback?cid={click_id}&goal={goal}&amount={payout}&currency={currency}&sub1={sub1}

Слева от = — имя параметра в трекере партнёра. Справа — наш макрос в фигурных скобках.

Куда вставлять

  • Глобальный постбэк партнёра — один URL на все офферы. Карточка партнёра → вкладка «Постбэки». Когда у партнёра один трекер на всё.
  • Постбэк под конкретный оффер — карточка оффера → вкладка «Постбэки». Когда нужен отдельный URL или другой набор параметров.

Если у партнёра по этому офферу есть и глобальный, и кастомный постбэк — сработает только кастомный. Он перебивает глобальный.

Обязательное правило

В URL партнёра обязательно должен быть макрос {sub1}. Большинство трекеров используют sub1 как ключ привязки, и без него мы такую ссылку не сохраним.

Макросы

Макрос — это «волшебное слово в фигурных скобках», которое мы заменим на реальное значение в момент отправки.

Самые нужные

Макрос Что подставится
{click_id} «Номер билета» клика. Обязательно в любом постбэке.
{goal} Цель: reg, dep, ftd и т.д.
{payout} Сумма выплаты партнёру в валюте оффера. Алиасы: {revenue}, {sum}.
{currency} Код валюты (USD, EUR …). По умолчанию USD.
{status} Статус: approved, declined, pending, hold.
{sub1}{sub8} Произвольные значения, которые партнёр сам передал нам в клик.
{deposit_sum} Сумма реального депозита (если рекл её передал).
{country} Страна игрока (ISO-2, например DE).
{conversion_id} Внутренний номер конверсии в нашей системе.

Реже нужные

Макрос Что подставится
{offer_id} Внутренний номер оффера.
{offer_name} Название оффера.
{aff_id} Внутренний номер партнёра.
{source} Источник трафика, если был передан.
{creative_id} ID креатива.
{ip} IP игрока на момент клика.
{user_agent} Браузер/устройство на момент клика.
{datetime} Дата и время конверсии (UTC).

Если макрос не из этих списков — система откажется сохранить URL. Так мы защищаем от опечаток.

Как проверить, что всё работает

В платформе две точки:

  • Карточка оффера → «Постбэки». Кнопка «Отправить тест» — посылает партнёру тестовый постбэк с реальным click_id. В статистике конверсия НЕ появится, но партнёр увидит её в трекере.
  • Меню «Постбэки» → «Логи». Каждое обращение к нам и каждая попытка достучаться до партнёра логируется. Видно URL до подстановки и после.

Чтобы рекл прислал тест без загрязнения статистики, пусть добавит в URL is_test=1. Такие конверсии запишутся в логи, но не попадут в отчёты и финансы.

Что делать, если не работает

Конверсии от рекла не приходят

  1. Открой Постбэки → Логи. Был ли вообще запрос от рекла? Если нет — он не настроил, либо неправильный URL. Сверь с тем, что отдавал.
  2. Если запрос пришёл, но в логе click_id_not_replaced — рекл шлёт буквальную строку {CLICK_ID}. Нужно, чтобы он использовал свой плейсхолдер.
  3. Если ошибка про неизвестный goal — алиас цели не совпадает с настройками оффера.

Партнёру не доходят постбэки

  1. В логах смотри тип записи outgoing по этому партнёру/офферу. Если записей нет — конверсия либо не одобрена, либо отрезана оптимизацией.
  2. Если запись есть, но HTTP-ответ от партнёра не 2xx — копируй URL, открой в браузере, посмотри что говорит трекер.
  3. Если URL партнёра выглядит криво (макрос не подставлен) — у партнёра опечатка в имени макроса. Иди в его постбэки и почини.

90% проблем — это либо неправильный плейсхолдер у рекла, либо опечатка в макросе у партнёра. Прежде чем писать в техподдержку — глянь логи.