Ad Serving Platform - System Design (reference)
Ad Server (Advertiser/Seller Side) + Ad Config
-
CRUD Campaigns, Ads adding them to stores
-
Maintains budgets for seller side
-
Ad Config Queue: Updates in campaigns, budgets, … on seller side
Ad Consumer - (User / Buyer Side)
User API Gateway
- Ad Fetching - starts Ad Auction & service to client SDK
- Cache Active Campaigns, Ads for Real Time Exchanges
Ad Delivery - Client side
- Ad SDK Client for Integration with User App(Buyer App)
- Storing Location Insights (per User App)
Ad Tracking
- Tracking actions on Ads - Reach, Clicks, Orders.
- Send Events to Engagement tracking Service
Engagement Tracking Service (ETS)
- Listens to Engagement Triggers & Aggregates in store
Background Services
- Daily Reporting(Per Day): Reports Engagement from ETS to Ad Manager (Seller Side).
- Budget Pacing Service(Real Time): When Ad is Served, budget/campaign metrics is updated to control over-serving