← Все проектыПроект / Анализ и фильтрация трафика

Сервис сегментации и выгрузки рекламного трафика

Конвейер анализа трафика: рекламные отчёты, контекст IP и фильтрация с проверкой полноты данных.

PythonClickHouseDuckDBFastAPICeleryPostgreSQLGeoIP2Angular
О проекте

Что делает сервис

Приложение для анализа рекламного трафика. Пользователь загружает файл с IP-адресами либо выбирает период рекламных отчётов, затем фильтрует данные по географии, диапазонам IP, числу кликов или показов и числу депозитов. Результат можно скачать; в одном из процессов список также отправляется в настроенный рекламный сервис.

Объёмные рекламные отчёты сложно разбирать вручную. Операторам нужны воспроизводимые критерии отбора IP-адресов и диапазонов и способ превратить результат в рабочую выгрузку.

Кто пользуется

Аналитики трафика и специалисты рекламных операций, которые разбирают большие отчёты и формируют повторяемые сегменты IP или аудитории.

Что на входе
  • Файл CSV/ZIP/GZIP либо выбранный период рекламной отчётности.
  • Фильтры по географии, IP/CIDR, кликам, показам и депозитам.
  • Импортированные ежедневные отчёты для аналитических фильтров.
Что на выходе
  • CSV-файл с отобранным сегментом IP.
  • Прогресс задачи и ошибки, видимые в интерфейсе.
  • В одном настроенном процессе — отправка списка во внешний рекламный сервис.
Условия работы системы
  • Ежедневные внешние отчёты загружаются в аналитическое хранилище.
  • Фильтрация зависит от полноты данных за заданный интервал.
  • IP- и географический контекст помогают интерпретировать трафик.
  • Результаты выгружаются или опционально отправляются во внешний чёрный список.
01 / Как работает сервис

Файл IP или отчёт → фильтрация трафика → выбранный сегмент

Карта процессаСплошная линия: обычный ход · пунктир: повтор или возврат
Карта процесса: iplookupКарта показывает последовательность работы, решения и альтернативные маршруты.
ВХОДЗагрузить файл IPВходной CSV, ZIP или GZIP
ШАГНормализовать адресаПодготовить IP и диапазоны
СЕРВИСФильтровать файлGeoIP и операции с диапазонами
РЕЗУЛЬТАТСкачать сегментCSV-результат для оператора
ВХОДВыбрать даты отчётаЗагруженные рекламные данные
СЕРВИСПодготовить отчётыЕжедневная загрузка в аналитическое хранилище
РАЗВИЛКАВсе даты на месте?Пропущенные дни останавливают неполный расчёт
СЕРВИСПрименить фильтрыIP, user-agent, число кликов/показов или депозиты
РЕЗУЛЬТАТСкачать или отправить списокCSV и дополнительная настроенная отправка
РЕЗУЛЬТАТПоказать пропускиПопросить полный период отчётов
  1. ВХОДЗагрузить файл IP

    Входной CSV, ZIP или GZIP

    ДалееНормализовать адреса
  2. ШАГНормализовать адреса

    Подготовить IP и диапазоны

    ДалееФильтровать файл
  3. СЕРВИСФильтровать файл

    GeoIP и операции с диапазонами

    ДалееСкачать сегмент
  4. РЕЗУЛЬТАТСкачать сегмент

    CSV-результат для оператора

  5. ВХОДВыбрать даты отчёта

    Загруженные рекламные данные

    ДалееПодготовить отчёты
  6. СЕРВИСПодготовить отчёты

    Ежедневная загрузка в аналитическое хранилище

    ДалееВсе даты на месте?
  7. РАЗВИЛКАВсе даты на месте?

    Пропущенные дни останавливают неполный расчёт

    полный периодПрименить фильтры
    есть пропускиПоказать пропуски
  8. СЕРВИСПрименить фильтры

    IP, user-agent, число кликов/показов или депозиты

    ДалееСкачать или отправить список
  9. РЕЗУЛЬТАТСкачать или отправить список

    CSV и дополнительная настроенная отправка

  10. РЕЗУЛЬТАТПоказать пропуски

    Попросить полный период отчётов

Стрелки показывают направление работы; подписи на ветках объясняют решения, ошибки и повторы.
02 / Архитектура системы

Основные части и их роль

File upload OR report API

Выбор источника

Загрузите файл с IP или выберите период внешних рекламных отчётов.

Как устроено

Это альтернативные входы. CSV/ZIP/GZIP поступают в обработку файлов, а Celery-цепочки загрузки и ETL обслуживают ветку отчётов.

Normalization / staging

Подготовка данных

Каждый источник готовится для своего способа фильтрации.

Как устроено

Файловая ветка приводит IPv4 и mapped IPv6 к единому виду. Ветка отчётов загружает данные во временные таблицы ClickHouse и обновляет нужные партиции по датам.

Metadata / coverage

Проверка готовности

Состояние задачи отслеживает входные данные; фильтры отчётов дополнительно проверяют покрытие дат.

Как устроено

PostgreSQL хранит метаданные задач и файлов. Поиск пропущенных дат относится к аналитическим отчётам, а не ко всем загрузкам файлов.

GeoIP OR analytical SQL

Настроить фильтры

В выбранном режиме фильтры отбирают адреса по географии, числу событий или диапазонам IP.

Как устроено

Для загруженного файла GeoIP2 добавляет данные о местоположении, после чего сервис применяет фильтры IP и диапазонов. В отчётах ClickHouse фильтрует по IP, user-agent, кликам, показам, депозитам или CIDR.

JSONB task progress

Показать ход выполнения

Интерфейс показывает ход выполнения, состояние результата и ошибки.

Как устроено

PostgreSQL хранит состояние задачи и сведения о файле. Интерфейс по этим данным показывает прогресс и результат фильтрации.

CSV / optional upload

Выгрузить результат

Результат можно скачать или отправить в настроенный рекламный сервис.

Как устроено

Сервис создаёт CSV-файл. В настроенном процессе выбранный список также отправляется в рекламную платформу.

03 / Детали реализации

Инженерные решения

01

Разделить операционные и аналитические данные

PostgreSQL хранит состояние приложения, ClickHouse обслуживает аналитические запросы к отчётам.

02

Учитывать неполные периоды

Наличие данных становится условием осмысленной фильтрации.

03

Довести анализ до действия

Фильтр формирует выгрузку, которую оператор может использовать в рекламном процессе.

Разработка приложений для бизнеса

Есть задача для разработки?

Расскажите, что должно делать приложение, как команда работает сейчас и какие требования или сроки важно учесть.