S2S постбэк ломается не на клике, а на одном пустом поле в payload
В нормальной схеме у тебя должны совпасть хотя бы: click_id, status, payout, currency, event_time. Если трекер ждёт click_id, а прилетает subid или cid — конверсия уедет в никуда. Если payout приходит строкой с запятой вместо точки, часть трекеров молча режет запись. Если currency не зафиксирована, в отчётах начнётся каша при мультивалютных офферах.
Валидацию делай на входе, а не в отчёте. Минимум проверок:
— обязательные поля не пустые;
— типы совпадают: число, строка, timestamp;
— event_time не старше окна атрибуции;
— status разрешён по твоей карте статусов;
— signature/HMAC считается из тех же параметров, в том же порядке.
Отдельно проверь нормализацию: URL-encoding, регистр валюты, десятичный разделитель, timezone и дубли. Повторный postback с тем же click_id должен либо игнорироваться, либо идти как idempotent update, иначе дубли всплывут в payout и CR. Логи храни с сырой строкой запроса и распарсенной версией — без этого искать рассинхрон долго и грязно.
Если трекер и партнёрка спорят по конверсии, сначала сравни payload, потом логи валидации, и только потом трогай атрибуцию.
Tracker Lab
@tracker_lab
S2S постбэк ломается не на клике, а на одном пустом поле в payload
Этот пост опубликован в Telegram-канале Tracker Lab. Подписаться можно по ссылке: @tracker_lab.