Маршрутизация за миллисекунды
Правила по гео, устройству, ОС, источнику. Взвешенный выбор оффера, дневные лимиты. Клик не ждёт базы — уходит в поток за < 3 мс.
Шесть слоёв, которые обычно пишут по частям и полгода. Здесь — уже работает.
Правила по гео, устройству, ОС, источнику. Взвешенный выбор оффера, дневные лимиты. Клик не ждёт базы — уходит в поток за < 3 мс.
UA-сигнатуры, хостинг-ASN, rate-limit по IP. Боты не портят статистику и не съедают бюджет — помечаются до записи в журнал.
Подпись HMAC-SHA256, IP whitelist per-campaign, идемпотентность по (click_id, status). Конверсии нельзя накрутить или потерять.
Клики, конверсии, spend, profit, ROI, CR — одним запросом. Данные агрегируются воркером раз в минуту, дашборд не тормозит.
COPY-батчинг кликов, партиционирование по дням, Redis Stream, ARQ. Один узел — миллионы кликов в час без просадок latency.
DLQ для постбэков, healthz с проверкой стрима/очереди/статов, retry с exponential backoff. Падение не превращается в потерю денег.
Четыре шага от кампании до первого ROI.
Настрой slug, поток с правилами, офферы с весами и лимитами.
Направь клики на /click/{campaign_slug}. Трекер сам выберет оффер по правилам.
Партнёрка возвращает click_id и payout. HMAC защищает от подделки.
Дашборд показывает клики, конверсии, spend, profit, ROI — без задержек.
Мы решали эти задачи для себя — и сделали так, как хотели бы видеть.
Клики идут через Redis Stream, воркер пишет пачками через COPY. Hot-path не зависит от скорости PostgreSQL.
Постбэк уходит в ARQ. Если БД упала — задача ретраится. После 5 попыток — в DLQ с payload, чтобы переиграть.
HMAC-SHA256, IP whitelist per-campaign, идемпотентность по (click_id, status). Подделать постбэк невозможно.
stats_worker пересчитывает последние 3 дня раз в минуту. Дашборд видит свежие данные, а не ночной снапшот.