Design an ad click tracking system
Company: Meta
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Onsite
Design a system to track **ad impressions and clicks** and support:
1. **Online serving / real-time analytics**
- Near-real-time counters (e.g., clicks per campaign/creative, CTR) with low latency.
- Dashboards that can filter by time window, campaign, geo, device, etc.
2. **Offline/batch reporting & billing**
- Accurate daily aggregates for invoicing.
- Ability to reprocess data if attribution rules change.
3. **Attribution & deduplication**
- Deduplicate repeated events (retries, double clicks, client re-sends).
- Attribute clicks to impressions (e.g., last-touch within a time window).
4. **Scale & reliability**
- Very high write QPS, bursty traffic.
- No event loss; tolerate partial outages.
5. **Abuse/fraud considerations**
- Basic detection signals and rate limiting.
Explain APIs/events, data model, storage choices, streaming/batch pipelines, consistency tradeoffs, and key metrics/alerts.
Quick Answer: This question evaluates a candidate's ability to architect a high-throughput, reliable ad event tracking system, including event modeling, streaming and batch processing, storage selection, deduplication, attribution logic, and operational monitoring.