Please enable JavaScript.
Coggle requires JavaScript to display documents.
REDIS (tracker_events (ВРЕМЕННОЕ хранилище event'ов) (Нужно выпилить)…
REDIS
tracker_events
(ВРЕМЕННОЕ хранилище event'ов)
Нужно выпилить
ads
(кампании вебов)
КЛЮЧ: ads.id
offers
(оффера реклов)
KEY: offer.id
offer_tariffs
(id тарифов офферов со статусом актив\нет)
KEY: offer.id
tariffs
(тарифы)
KEY: tariffs.id
leads_pb
(постбеки лидов)
LIST
event_id
(инкремент идентификаторов event'ов)
INCREMENT
owner_postbacks
(id постбеков пользователя)
KEY: user.id
postbacks
(постбеки)
KEY: postback.id
offer_promotions
(промо оффера)
KEY: offer.id
network_offers
(id офферов сети)
KEY: network.id
networks
(сети)
KEY: network.id
offer_ads
(кампании оффера)
KEY: offer.id
users
(пользователи – сеть, рекл, веб)
KEY: user.id
promotions
(промо – баннеры, ссылки)
KEY: promotion.id
lead_id
(инкремент идентификаторов лидов)
INCREMENT
LUA-СКРИПТЫ
PATH: /pixel.lua
URL: tracker/{offer_id}/{action}.gif
Сохраняет любые входящие запросы с параметрами:
– COOKIE: session_id, client_id, ad_id, promo_id
– QUERY_STRING: любые параметры (remote_id, price)
– NGX: ip, created_at, action, offer_id
Нужно совместить с event.lua
event.lua
Разбираем тело запроса
обязательные поля: event, session_id
Проверяем параметр status, по-умолчанию "new"
Если сессия существует
Если есть активный оффер
Берем идентификаторы активных тарифов оффера
Берем самый новый тариф, среди активных
Если тариф найден
Инкрементируем lead_id
2 more items...
Инкрементируем event_id
Создаем event
redirect.lua
Генерируем новый или берем старый client_id
Генерируем новый session_id
Расшифровываем campaign_id и promo_id
Если кампания и промо найдены
Если оффер найден и status=active
ПРАВКА: ДОБАВИТЬ ТРАФИКБЕК И ФИЛЬТРЫ
По задаче с лимитами нужно:
добавить таблицу offer_filters
поля с декрементными счетчиками для дневных, месячных и общих лимитов
по UTC обновлять дневной счетчик
использовать это в redirect.lua
если не удавл фильтру - отправляю на trafficback_url
Передаем клиенту куки и редирект
PATH: /log.lua
URL: tracker/{offer_id}/log
(фиксирует сессию)
Если кампания и оффер существуют
Если сессия не существует – создаем
Если клиент не существует – создаем
CLICKHOUSE
events
leads
sessions
clients
PHP-СКРИПТЫ
PATH: /crons/event.php
DAEMON
Выдирает и обрабатывает записи
Если кампания и оффер активны
Для активного тарифа оффера, с нужным action
Рассчитываем сумму
Создаем lead на основе event, сохраняем в mysql(clickhouse)
Создаем event, сохраняем в mysql(clickhouse)