MediaMagic / Под капотом ← Живое демо Обсудить запуск ↗

Техническая архитектура

Как мы это обеспечиваем — по компонентам

Демо показывает, что машина делает. Эта страница — как именно: пять компонентов, контракты данных между ними и что реально умеет каждая из шести сетей. Каждый факт о сетях ниже — из опубликованного аудита интеграций.

1 строка кода на вашей стороне 4 компонента на нашей 6 сетей через их API рекламодателя 0 баз никуда не передаётся

Карта подключения

Где подключаемся, что забираем, что отдаём

Четыре точки подключения — вся интеграция. Всё дальнейшее на этой странице — эти четыре строки в развороте.

Где подключаемся В каком виде Что забираем Что отдаём Что нужно от вас
Ваши лендинги + страницы подтверждения одна строка: <script async> — напрямую или через GTM технические данные клика: анонимный visitor-id, click-id, sub-id, источник, девайс. Без PII, без содержимого форм со страницы стреляют аудиторные теги сетей — каждый посетитель ложится сразу в шесть аудиторий ~10 минут вместе с выкаткой
Ваш CRM / бэкенд S2S: HTTP POST на наш эндпоинт событий два факта-события — reg и dep — с visitor-id и суммой. Больше ничего работающие окна сегментации, исключение конвертеров, подтверждённые (не оценочные) цифры возврата ~1 час работы бэкендера
Шесть рекламных сетей их API рекламодателя + их пиксели в нашем контейнере; кабинеты — наши статистику кампаний и спенд — по сетям и сегментам кампании дожима на дозревшие когорты, ставки/бюджеты, S2S-постбэки, которые учат их биддинг документы лицензий — только там, где этого требуют iGaming-гейты
Обратно к вам отчёт: возвраты, депозиты, экономика по сетям — подтверждённые возвраты и депозиты, спенд против ценности по каждой сети, минусовые сети выключены ничего

Таблица листается вбок на узких экранах →

Карта компонентов

Три зоны, одна петля

На вашей стороне — страницы и события. На нашей — журнал, сегментатор, пульт кампаний и постбэк-роутер. В сетях — аудитории, и наружу они их не отдают: так устроены сами сети.

ВАША СТОРОНА MEDIAMAGIC ВНУТРИ СЕТЕЙ Лендинги + страницы подтверждения контейнер стоит на обеих: thank-you метит конвертеров <script … async> Ваш CRM / бэкенд шлёт два события: рег и деп, с нашим visitor-id внутри Контейнер (в странице) грузит теги включённых сетей, ставит visitor-id, пишет в журнал Журнал кликов (ledger) visitor-id · click-id · sub-id · источник · девайс · события рег/деп Сегментатор выдерживает когорты по окнам; исключает конвертеров Пульт кампаний создаёт/останавливает кампании и ставки через API рекламодателя каждой сети Постбэк-роутер Аудитории копятся в каждой сети; выгрузить их наружу нельзя — так устроены сами сети Propeller · Exo · TS · Kadam · MGID · Taboola Кампании дожима pop · push · native · teaser · adult на когорты минус конвертеры Конверсионный биддинг CPA Goal · Smart Bid · CPA Tune учится на подтверждённых депозитах одна строка пиксели сетей наш ивент reg/dep · S2S дозревшие когорты API таргетинг S2S-постбэк сети касания
Данные пересекают границу ровно в трёх местах: теги сетей стреляют со страницы, ваши события reg/dep приходят по S2S, наши постбэки подтверждают конверсии сети касания. Всё остальное не покидает свою зону. На узких экранах диаграмма листается вбок.

Компонент 01 · в вашей странице

Контейнер: одна строка, три задачи

Лендинги + страницы подтверждения · иллюстрация

<script src="https://tag.mediamagic.example/mm.js"
        data-client="acme" async></script>

Грузится асинхронно — не блокирует рендер и не замедляет лендинг. Ставится напрямую или через GTM.

Стреляет аудиторными тегами включённых сетей

У каждой сети — свой механизм сбора, контейнер просто размещает их: PropellerAds — JS-пиксель Audiences 2.0; ExoClick — тег целей tag_gen.js; TrafficStars — img-пиксель User Collections; Kadam — пиксель аудиторий с cookie- и fingerprint-режимами; MGID — MGID Pixel с правилами по URL; Taboola — Taboola Pixel в My Audiences. Набор тегов настраивается под каждого клиента — сети включаются и выключаются без правок вашей страницы.

Ставит first-party visitor-id

Случайный идентификатор в first-party cookie на вашем домене. Это ключ всей петли: вы возвращаете его внутри событий reg/dep, и журнал связывает клик с конверсией без каких-либо персональных данных.

Пишет наш ивент в журнал кликов

click-id, sub-id, источник, девайс — минимум, нужный для сегментации и атрибуции будущего возврата к правильной сети. Это наша собственная история кликов, не зависящая от отчётности сетей.

Чего контейнер не делает: не читает формы, не собирает e-mail и телефоны, ничего не вытаскивает из сетей обратно. Односторонний, как обычный рекламный пиксель — тот же класс инструмента, что Meta Pixel, и обычно та же строка в cookie-политике.

Компонент 02 · два ваших события

Контракт S2S: час работы бэкендера

Петле нужны от вас ровно два факта: случилась регистрация, случился депозит. Каждый приходит одним HTTP-вызовом с visitor-id, который контейнер уже поставил.

POST /v1/events · иллюстрация контракта

Authorization: Bearer <client_api_key>
X-Signature: sha256=…      ← HMAC от тела запроса

{
  "visitor_id": "mm_9f3k…", ← из first-party cookie
  "event": "dep",           "reg" | "dep" | "suppress"
  "amount": 50,
  "currency": "EUR",
  "ts": "2026-08-06T11:42:00Z",
  "idempotency_key": "dep-88213"
}

Каждый запрос подписан HMAC-ключом клиента; контракт идемпотентен по ключу — ретраи безопасны. В контракт заложен тестовый режим: он показывает, как событие сджойнилось с кликом, — интеграция проверяется до запуска.

Что открывают эти два события

  • Окна сегментации «клик без рега», «рег без депа» становятся вычислимыми — сегментатор перестаёт быть слепым
  • Исключение конвертеров внёсшие уходят из аудиторий дожима — бюджет перестаёт капать на них
  • Подтверждённая экономика возвраты считаются по вашим событиям, а не по заявлениям сетей
  • Обучение сетей постбэки кормят конверсионный биддинг сетей — цена возврата снижается со временем

Без событий машина всё равно собирает и крутит кампании — но вслепую. Пресет «Web2app» в демо показывает, сколько это стоит.

опционально

Третье событие: suppress

Self-excluded и RG-флагнутые игроки не должны получать дожим ни при каких обстоятельствах — это лицензионный риск, а не пожелание. Если ваш CRM уже шлёт reg/dep, он может слать и suppress с тем же visitor-id: контейнер проведёт такого юзера через тот же механизм исключения, что и конвертеров, — сразу во всех шести сетях.

Компонент 03 · наш бэкенд

Сегментатор: когорты, а не поштучно

Сети таргетируют аудитории целиком, через include/exclude, — не человека поштучно. Поэтому наш сегментатор работает бакетами по времени: бакет дозрел — на него включаются кампании.

окно 1

Клик без регистрации — ~5 дней

Умер с первого прогона. Первыми идут дешёвые форматы: поп и пуш там, где сеть их даёт.

окно 2

Регистрация без депозита — ~14 дней

Самый тёплый сегмент. Оба окна — ручки, не константы: настраиваются под клиента и GEO.

окно 3

Сконвертился — исключается

Исключение происходит внутри каждой сети её собственным механизмом — таблица ниже. Именно поэтому контейнер обязан стоять и на страницах подтверждения.

Сеть Механизм аудитории Исключение конвертеров Прогрев до кампаний (из их доков)
PropellerAdsJS-пиксель Audiences 2.0 · ≤15 аудиторий · членство 90 днейf=off на thank-youсначала собрать 30–50 юзеров
ExoClickConversion Goals + tag_gen.js · метит всех посетителей, не только с Exo · cookieNegative-цель в таргетинге~3 дня данных пикселя
TrafficStarsimg-пиксель User Collections · до 5 динамических параметров (reg, dep…)коллекция подключается как исключениерекомендуют ~30 дней
Kadamпиксель аудиторий · cookie + fingerprint · аудитории также из статистики и S2Sуточняется при интеграциинорматив не публикуется
MGIDMGID Pixel · правила по URL (starts/contains/ends) + события · выдаётся после KYC/KYB (проверка компании)goal-based аудитория → excludeпосле KYB-верификации (срок не публикуется)
TaboolaTaboola Pixel → My Audiences · правила по URL + JS-события · авто-«All Website Visits»exclude-аудитория в кампаниидо минимального масштаба (гейт «No Scale», порог не публикуется)

Компонент 04 · один пульт

Шесть сетей, один пульт — через их API рекламодателя

Кампании, ставки, бюджеты и статистика управляются программно во всех сетях. Там, где сеть держит создание аудиторий только в кабинете, этот шаг делается один раз на клиента руками — таблица честно показывает, где как.

Сеть API Аудитории через API Особенности доступа
PropellerAdsSSP API v5 · Swagger/OAS3подключать к кампаниям — да; создавать — только кабинетоткрывается от $1 000 суммарного спенда/депозита
ExoClickPublic API v2 · RESTда — аудитории живут как Conversion Goals, полностью через APIтокен самовыдаётся в кабинете; «automate every single feature»
TrafficStarsREST · api.trafficstars.com/v1да — полный CRUD ретаргетинг-коллекцийOAuth2 bearer, ключ со страницы профиля
KadamAPI v1 · partners.kadam.netда — эндпоинты pixel-, stat- и S2S-аудиторийbearer-токен из кабинета; опубликован OpenAPI-спек
MGIDREST · api.mgid.com/v1в API не документированы — по докам только кабинет; кампании/статистика через API32-символьный токен; аккаунт — после KYC/KYB
TaboolaBackstage API · OAuth2pixel-аудитории: создание + таргетинг через API; CRM/lookalike: создание — только UI, таргетинг — через APIкредентиалы выдаёт account manager — managed-отношения

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

Компонент 05 · замыкание петли

Постбэк-роутер: каждая сеть слышит о конверсии на своём языке

Вернувшийся конвертится → ваше событие приходит с visitor-id → журнал находит, чей клик стал касанием → роутер шлёт этой сети её S2S-постбэк с её сохранённым click-id. Контракт спроектирован идемпотентным, с ретраями.

СетьФормат постбэка (из их доков)
PropellerAdsconversion.php · goal=2 деп / goal=3 редеп
ExoClicks.magsrv.com/tag.php · goal + tag + value
TrafficStarscpa/action · clickid + lead_code (reg/dep)
Kadamkdtrk.net/ru/postback · data={subid} (click_id из URL лендинга)
MGIDS2S postback · {click_id} · до 3 целей
Taboolapostback URL · click_id

Зачем роутить по сетям

Потому что именно это делает дожим дешевле со временем. Конверсионный биддинг каждой сети — CPA Goal у Propeller, Smart Bid у Exo, CPA Tune у MGID и их аналоги — оптимизируется под события, которые получает. Кормите его реальными депозитами — он ищет депозитчиков; оставьте голодным — оптимизируется под клики. Роутер передаёт и уровень цели (регистрация или депозит) там, где сеть поддерживает мультицелевые постбэки: goal-уровни Propeller, Conversion Goals у ExoClick, lead_code у TrafficStars, три цели MGID.

Одно ваше событие уходит ровно одной сети — сети касания. Без даблкаунта и без приписывания сети чужого возврата.

Всё вместе

Жизнь одного клика

День 0 — клик, за который вы уже заплатили

Юзер попадает на лендинг. Контейнер стреляет тегами включённых сетей — посетитель ложится сразу в шесть аудиторий — и пишет клик в журнал со свежим visitor-id.

День 0 — сконвертился сам?

Если да — тег на thank-you помечает его конвертером, событие reg/dep подтверждает — он исключается из дожима везде. Если нет — остаётся в пуле.

День 5 — когорта дозревает

Регистрации в окне не случилось. Сегментатор помечает бакет; пульт включает на него кампании в тех сетях, где прогрев и допуски уже пройдены.

День 6 — касание

Поп, пуш или натив находит юзера внутри сети. Клик обратно на ваш лендинг несёт click-id сети; журнал сохраняет его к visitor-id.

День 7 — возврат конвертится

Регистрация, затем депозит. Ваши два S2S-события приходят с visitor-id — журнал фиксирует подтверждённый возврат, не оценочный.

День 7 — петля замыкается

Роутер шлёт постбэк сети касания в её формате. Её биддинг учится; конвертер уходит из всех шести аудиторий; в отчёте экономики — ещё один подтверждённый депозит.

Границы данных

Приватность: что куда уходит — и что не может уйти

Односторонность по построению

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

Ни одного персонального поля в петле

Журнал хранит visitor-id, click-id, sub-id, источник, девайс и два факта-события. Имена, e-mail, телефоны, платёжные данные в пайплайн не попадают — в контракте S2S для них нет полей.

Ваша база остаётся вашей

Мы не получаем вашу базу. Вы шлёте два анонимных типа событий с нашим visitor-id; ваш CRM, карточки игроков и платёжные данные целиком остаются у вас.

Тот же класс инструмента, что ваши пиксели

Технически контейнер эквивалентен прямой установке тегов самих сетей — тот же класс инструмента, что Meta Pixel. Тот consent-флоу, что уже стоит на ваших страницах для рекламных пикселей, обычно закрывает и его — стоит подтвердить со своим комплаенсом.

Честная инженерия

Что деградирует — и насколько мягко

01

События не подключены

Машина всё равно собирает и крутит кампании — но окна слепнут, конвертеры остаются в аудиториях, постбэки молчат, и сети не учатся. Это слепой режим; пресет Web2app в демо проигрывает его целиком.

02

Блокировщики и cookie-лимиты

Часть посетителей в аудитории не попадает: блокировщики, cookie-ограничения Safari/iOS. Эта доля недостижима, и мы так её и считаем — поэтому модель в демо честно берёт лишь часть мёртвого трафика как достижимую. Fingerprint-режим Kadam частично компенсирует это на её инвентаре.

03

Сеть уходит в минус

Экономика видна по каждой сети; минусовая выключается из пульта. Аудитория при этом продолжает копиться — включение обратно стартует с тёплой базы, а не с нуля.

А если упадёт сам контейнер?

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

Чеклист интеграции

Всё, что нужно от вас

Кабинеты сетей, бюджеты, крео, кампании, отчётность — наша сторона.

Посмотрите, как это движется, — и обсудим цифры

Живое демо даёт покрутить каждый сценарий с этой страницы; аудит сетей подтверждает каждое утверждение в таблицах.

→ Живое демо · → Аудит сетей · → Обсудить запуск