Design an Ad Frequency Capping System
Company: Netflix
Role: Software Engineer
Category: System Design
Interview Round: Onsite
Design a frequency capping system for an advertising platform.
A frequency cap limits how many times a user can be shown an ad, campaign, line item, or order within a configured time window. For example, a campaign may specify: "show this user at most 3 impressions per 24 hours" and an advertiser-level rule may specify: "show at most 10 impressions per user per 7 days."
Your design should cover:
- Real-time serving-time checks before an ad impression is selected.
- Updating impression counts after an impression is served.
- Support for caps at multiple scopes, such as creative, line item, campaign, advertiser, and order.
- Multiple window types, such as hourly, daily, rolling 24-hour, weekly, and lifetime caps.
- Low-latency reads on the ad-serving hot path.
- Correctness under high traffic, retries, duplicate events, and distributed serving.
- Configuration storage and propagation.
- Privacy considerations for user identifiers.
- Monitoring, alerting, and failure modes.
Quick Answer: This question evaluates expertise in scalable distributed system design, real-time state management, data consistency, low-latency serving, multi-scope aggregation, configuration propagation, and privacy-aware counting for advertising frequency capping.