Product Context
Meta Ads Manager and Ads Insights are used by advertisers, account managers, and internal ops teams to monitor campaign delivery. Design an ML system for a real-time dashboard that tracks ad impressions, highlights important changes, and ranks which campaigns or ad sets need attention first.
Scale
| Signal | Value |
|---|
| Active advertisers/day | 15M |
| Ad accounts with live delivery | 8M |
| Active campaigns | 120M |
| Active ads | 1.5B |
| Impression events/day | 450B |
| Peak event ingest | 8M events/sec |
| Dashboard read QPS (peak) | 250K |
| Freshness target for metrics | < 60 sec |
| p99 dashboard API latency | < 300 ms |
Task
- Define the product requirements for a dashboard that does more than show raw counts: it should prioritize, rank, and explain impression changes in real time.
- Estimate system scale for ingestion, feature computation, model serving, and storage.
- Propose an end-to-end ML architecture, including candidate generation, ranking, and optional re-ranking for the entities shown on the dashboard.
- Choose models for each stage and explain how you would serve them online versus compute them in batch.
- Define offline and online evaluation, including how you would validate alert quality, ranking quality, and business impact.
- Identify failure modes such as delayed event pipelines, feature drift, training-serving skew, and bad anomaly spikes, and explain mitigation.
Constraints
- Impression counts must be queryable at campaign, ad set, and ad granularity.
- The dashboard must support both global views and personalized views per advertiser or account manager.
- Some labels are delayed: true business outcomes like spend efficiency or conversions may arrive hours later.
- Cost matters: most traffic should be served from pre-aggregated features and lightweight models, not expensive per-request deep inference.
- The system must degrade gracefully if streaming features are late or unavailable.