Аффилиатная система и S2S-постбеки: точный атрибуцион
1) Зачем это всё и что такое «точный атрибуцион»
Аффилиаты приводят трафик и ожидают прозрачной оплаты за целевые действия (регистрация/депозит/ревенью). Оператор хочет защиту от фрода, консистентные отчёты и предсказуемую экономику. «Точный атрибуцион» значит:- однозначная связка клика → сессия → событие (FTD/депозит/выручка);
- детерминированные правила (окна, приоритеты, мульти-тач);
- идемпотентные S2S-постбеки и сверяемые отчёты;
- единая валюта/таймзона расчёта и понятные статусы.
2) Модели выплат и ключевые определения
CPA (Cost per Acquisition): фикс за событие (обычно FTD — первый депозит) при выполнении условий (KYC/мин.депозит/NGR>0).
RevShare: процент от NGR/Net Gaming Revenue игрока за период/весь LTV (с потолками/полом).
Hybrid: CPA + RevShare.
CPL/CTR/RS метрики: CR к регистрации, CR к FTD, ARPU/ARPPU, eCPA/eRPS.
FTD — first time depositor, Qualified FTD — FTD после антифрод/вейтинга.
3) Маркировка трафика: ссылки, UTM и саб-параметры
Трекинг-линк аффилиата (пример):
https://brand.com/track?aff_id=42&campaign_id=uk_oct&click_id={CLICK_ID}
&sub_id1={SOURCE}&sub_id2={ADGROUP}&sub_id3={CREATIVE}&t=slot-promo- `aff_id` — партнёр, `campaign_id` — оффер/страна, `click_id` — уникальный идентификатор клика (GUID/ULID), `sub_id1..5` — свободные поля (источник/объявление/креатив/плейсмент/А/В).
- На лендинге создайте клик-сессию и установите cookie `aff_click_id` (HTTP-only, same-site), параллельно сохраните в серверном сторадже (anti-cookie-loss).
4) Окна атрибуции и приоритеты
Click-through window: 30 дней (регистрация/FTD).
Engagement window (после регистрации до FTD): 7–14 дней.
Приоритеты: last-click среди аффилиатов (внутри последнего промоусточника), но не перекрывает прямой бренд-поиск по внутренним правилам (задокументируйте).
Мульти-тач: храните цепочку кликов, но платите по «правилу выплат» (например, last-click). Для аналитики показывайте вклад всех касаний.
5) S2S-постбеки: события и контракты
Зачем S2S: браузерный пиксель ненадёжен (адблок/браузерная политика). S2S-постбек → вебхук на сторону аффилиата/трекера без участия клиента.
События, которые обычно шлют
`registration` (sign-up)- `ftd` (первый депозит)
- `qualified_ftd` (после KYC/вейтинга)
- `deposit` (каждый депозит)
- `revenue` (RevShare: NGR/GGR за период)
Пример S2S-постбека (HTTP POST, JSON)
POST https://aff-network.com/postback
Headers: X-Signature: sha256=ab12..., X-Timestamp: 1730000000
Body:
{
"aff_id": "42",  "click_id": "clk_9f23",  "event": "ftd",  "user_id": "u_12345",      // псевдоним, не PII
"amount_minor": 2000,  "currency": "EUR",  "market": "DE",  "ts": "2025-10-23T17:41:26Z",  "session_id": "s_77",  "sub_id1": "fb",  "sub_id2": "adg_12",  "sub_id3": "cr_88"
}Безопасность и идемпотентность
6) Привязка клика: как не потерять атрибуцию
При регистрации: сопоставить `aff_click_id` из cookie/серверной сессии с `user_id` (+ отпечаток устройства как резерв, но GDPR-чувствительно, применяйте только при согласии).
При FTD: искать последнюю действующую клик-сессию в окне; если нет — вернуть `organic/direct`.
Дедуп: если два FTD зашли в один день из-за ретраев PSP — платим один раз (уникальный FTD-флаг на `user_id`).
7) Антифрод и вейтинги
Время жизни: FTD → статус `PENDING` на 24–72 часа, qualified после KYC/отсутствия чарджбэка.
Сигналы: «бурст» из hosting-ASN, VPN/Proxy, высокая скорость регистраций, cookie-stuffing (клик без реальной сессии), мис-матч гео/валюты.
Взвешивания (weighting): уменьшайте CPA-выплаты по порогам качества (например, NGR<0, удержание < X%). Правила заранее в договоре.
Список исключений: брендовое SEM, запрещённые источники, incent-трафик — бан/0-выплаты.
8) Экономика и формулы
NGR = GGR − бонусы − джекпоты − провайдерские фи − PSP фи − chargebacks.
RevShare payout = NGR × RS% (с min/max cap).
Hybrid payout = CPA + NGR × RS%.
eCPA = Payout / кол-во FTD, ROI аффилиата = Payout − TrafficCost.
Документируйте валюту расчёта (например, EUR) и ежедневный FX-курс (ECB/провайдер).
9) Схемы данных (упрощённо)
sql
-- Клики/сессии aff_clicks(
click_id text primary key,  aff_id int, campaign_id text,  sub1 text, sub2 text, sub3 text, sub4 text, sub5 text,  ts timestamptz, ip inet, asn int, ua text, landing text
);
-- Привязка к пользователю aff_attribution(
user_id bigint primary key,  click_id text references aff_clicks(click_id),  aff_id int, campaign_id text,  attributed_at timestamptz,  window_days int, rule text -- e.g. 'last_click'
);
-- События для постбеков aff_events(
event_id uuid primary key,  user_id bigint, click_id text,  event_type text,     -- registration/ftd/deposit/revenue/adjustment amount_minor bigint, currency char(3),  ngr_minor bigint,     -- для revenue occurred_at timestamptz,  status text,       -- pending/sent/acked/failed retries int default 0
);
-- Финансовый учёт аффилиата aff_payouts(
payout_id uuid primary key,  aff_id int, period month, currency char(3),  model text,        -- CPA/RevShare/Hybrid cpa_minor bigint, rs_minor bigint, adjustments_minor bigint,  total_minor bigint, status text   -- draft/issued/paid
);10) Отчётность и панели
Performance (день/рынок/оффер): клики, регистрации, FTD, CR, депозиторы, GGR/NGR, выплаты, eCPA.
Когортный срез: удержание D1/D7/D30, NGR/депозиты на игрока, доля chargebacks.
Discrepancy-панель: расхождения кликов/регистраций/FTD с аффилиат-трекером (±X%).
Fraud heatmap: ASN/страны/площадки с аномалиями.
11) Порядок расчётов и reconciliation
1. Ежедневно — сырые события в срезах (клики/рег/FTD/депозиты/NGR), выгрузка CSV/S2S.
2. Раз в период (неделя/месяц) — проект счёта (invoice draft) с расшифровкой и корректировками (chargeback/возвраты).
3. Арбитраж: окно споров (обычно 5–10 рабочих дней), документированные причины отклонений (фрод, несоответствие офферу, incent).
4. Итоговый счёт → выплата (SEPA/SWIFT/крипто) с референсом периода; статусы `issued/paid`.
5. Аудит: WORM-снапшоты отчётов, подпись/хэш.
12) Приватность и комплаенс
Сторонам не нужны PII: используйте псевдонимы (`user_id`, `hash(email)` при необходимости с солью).
DPA с аффилиат-сетями, указание ролей (controller/processor), сроки хранения кликов/событий.
Consent для cookie/UTM; фингерпринтинг — только при законном основании.
Гео-ограничения офферов (страны лицензии), возрастные фильтры.
13) Примеры API
13.1. Регистрация клика (сервер-сайд, опционально)
http
POST /v1/aff/click
{"aff_id":42,"campaign_id":"uk_oct","click_id":"clk_9f23","sub1":"fb","sub2":"adg12"}
→ 202 {"status":"ok"}13.2. Привязка пользователя при регистрации
http
POST /v1/aff/attach
{"user_id":12345,"click_id":"clk_9f23","ip":"1.2.3.4","ua":"..."}
→ 201 {"attributed": true, "rule":"last_click","window_days":30}13.3. Постбек на сторону сети (наше «исходящее»)
http
POST https://aff.example/postback
Headers: X-Idempotency-Key: evt_7a1, X-Signature: sha256=...
Body: {"event":"ftd","click_id":"clk_9f23","amount_minor":2000,"currency":"EUR","ts":"..."}
→ 200 {"ok":true}14) Анти-ловушки и инциденты
A. Cookie-stuffing (перебивка клика)
Признаки: много кликов без сессии/скролла/времени на странице.
Меры: серверный клик-лог + порог «валидной сессии» (минимальная активность), игнор последних кликов при подозрении.
B. Разные таймзоны/валюты → расхождения отчётов
Меры: единая расчётная TZ (например, UTC или Europe/Kyiv) и валюта (EUR); конверсия по фиксированному источнику курса с дневным снэпшотом.
C. Дубли постбеков
Меры: Idempotency-Key + уникальный индекс `event_id`, статусная машина `pending→acked`.
D. Всплеск фрода из hosting-ASN
Меры: WAF/бот-менеджер, стоп оффера по сегментам, вейтинги FTD, 0-платежи по спорным источникам до разбирательства.
15) Дашборды для ежедневной работы
Affiliate Overview: FTD/депозиторы/NGR/выплаты по топ-10 партнёров за 7/30 дней.
Funnel: клики → регистрации → KYC → FTD (CR по шагам, время до FTD).
Quality: удержание/ARPPU/chargeback rate по офферам.
Tech Health: задержка постбеков p95, ошибка HMAC, ретраи, DLQ.
Finance: акты/счета, статус выплат, дебиторка.
16) Чек-лист прод-готовности
- Единая схема UTM/`sub_id` + обязательный `click_id`.
- Привязка клика к пользователю с серверной страховкой (session store).
- Окна атрибуции и правило приоритета задокументированы; мульти-тач хранится для аналитики.
- S2S-постбеки: HMAC, timestamp-скользящее окно, Idempotency-Key, ретраи+DLQ.
- Антифрод: вейтинги FTD, ASN/Proxy фильтры, cookie-stuffing защита, качество-веса.
- Reconciliation: ежедневные выгрузки, периодические инвойсы, окно споров, акты.
- Таймзона/валюта расчёта едины; источники FX фиксированы.
- Приватность: псевдонимы вместо PII, DPA/сроки хранения.
- Наблюдаемость: дашборды, алерты по задержке/ошибкам постбеков, discrepancy-панель.
- Документация офферов: гео/условия квалификации/правила выплат.
Резюме
Надёжная аффилиатная система — это детерминированные правила атрибуции, безопасные S2S-постбеки с идемпотентностью, антифрод-контуры и строгий reconciliation. Стандартизируйте параметры ссылки, храните клики и цепочки касаний, платите по понятной модели (CPA/RevShare/Hybrid), фиксируйте окна и таймзоны, защищайте вебхуки и автоматизируйте инвойсинг. Тогда у вас будут чистые отчёты, меньше споров и устойчивая юнит-экономика для оператора и партнёров.
