# Design an ad budget pacing system: system design interview question

> Campaign spend control across many servers, with daily limits, uneven traffic, and delayed costs.

Source: https://sysround.com/questions/design-ad-budget-pacing-system
Updated: 2026-11-05


Difficulty: hard. Levels: Senior, Staff+.

## How the interviewer opens it

"Design a service that controls advertising campaign spend. It should spread spend across each day and respect campaign budgets. Many servers make spend decisions before final costs arrive."

## What to clarify first

- Scale
- Read and write mix
- Latency
- Spend goal
- Charge contract
- Delayed reports
- Consistency, availability, and durability
- Daily budget windows
- Policy changes
- Scope limits

## Scope of a strong answer

Core requirements:

- Decide whether a campaign can place a bid
- Spread campaign spend across a day
- Enforce each campaign's daily budget across servers
- Process delayed costs without duplicate charges

Usually out of scope:

- Select ads or calculate bid prices
- Build the auction service
- Support charges for clicks or conversions
- Enforce shared budgets across campaigns
- Process advertiser payments

## What interviewers probe

### Spend before costs arrive

The system commits money before it knows the final charge. Delayed reports make a recent spend total unsafe for budget enforcement.

### Spend through the day

Traffic and auction prices change during the day. Delayed costs can make the service spend too fast or leave budget unused.

### A campaign on many servers

A popular campaign needs fast decisions on many servers. Shared funds must remain exclusive during failures and changes in ownership.

### Budget changes and day boundaries

A policy change cannot undo an accepted bid. Permission before midnight does not establish which daily budget pays for a later acceptance.

## Common mistakes

- Enforce the budget from reported costs while ignoring pending bids.
- Treat the daily cap and the daily spend plan as the same problem.
- Use one remote counter update for every bid without checking latency and hot campaign load.
- Return funds after a timeout without proof that no charge can arrive.
- Let grant expiry or worker replacement create a second copy of reserved funds.
- Reserve funds for one day but permit the auction to accept the bid on another day.

## The bar by level

- **Senior:** Separates pace control from budget safety. Designs local decisions, bounded grants, outcome reconciliation, and safe recovery. Enforces token validity at auction acceptance across midnight. Handles pauses and budget decreases.
- **Staff+:** Proves the financial invariant across grants, pending bids, failures, and policy changes. Quantifies grant size and report delay trade-offs. Defines auction acceptance, clock, and recovery contracts. Identifies guarantees that external systems cannot support.

Practice this question with an AI interviewer: https://sysround.com/practice/new?problem=advertising-budget-pacing


---
SysRound (https://sysround.com) is an AI practice tool for system design interviews. It has a voice or typed AI interviewer and a shared whiteboard. At the end, you get feedback on each skill and a model answer. The AI feedback can be wrong.
