Budget Pacing
In one line: an advertiser with a daily budget and no pacing spends it before breakfast, on whichever impressions happened to come first.
Why unpaced spending is wrong
An advertiser sets £1,000 a day. Without pacing, they bid on every eligible auction until the money runs out — which on a large platform is early morning.
Three things go wrong, and only the first is obvious.
They only reach morning users. The audience is not uniform across the day, so their reach is skewed to whoever was online first. If their customers browse in the evening, the budget was spent on the wrong people.
They bought the wrong impressions. Early impressions are not the best impressions; they are merely the earliest. The money went to whatever arrived first rather than to what was worth most.
The auction gets lumpy. A large advertiser spending out in an hour means everyone else faces intense competition in the morning and a thin auction afterwards — so clearing prices swing wildly and every other advertiser's cost becomes unpredictable.
That third effect is the one worth raising: pacing is not only an advertiser feature. It stabilises the marketplace, which is a platform interest.
The target curve
Pacing needs something to pace against, and "spend one twenty-fourth per hour" is wrong because traffic is not uniform.
The target is a spend curve shaped like the traffic: if 8% of the day's eligible impressions occur between 8 and 9pm, roughly 8% of the budget should be spent then. Built from historical traffic for that advertiser's targeting, since a campaign targeting one country has a different daily shape from a global one.
Then the system continuously compares actual spend against the curve and corrects.
Two levers
Spending too fast, and you have a choice.
Throttling — participate in only a fraction of eligible auctions, chosen at random. Simple, and it preserves your bid so you win the ones you enter at the same rate as before. You are sampling the day's impressions rather than taking a biased slice.
Bid shading — enter every auction at a reduced bid. You win fewer, and specifically you win the cheaper ones, because you now lose the competitive auctions and keep the uncontested ones.
The distinction is the interesting part and it is a genuine design decision:
| Wins | Selection effect | |
|---|---|---|
| Throttle | A random sample of what you would have won | None — an unbiased subset |
| Shade | Only the auctions that were cheap | Biased toward low-competition impressions |
Neither is universally right. For an advertiser optimising reach, throttling is correct — they want a representative slice of their audience. For one optimising cost per click, shading is correct — they would rather have the cheap impressions.
The control loop
Pacing is a feedback controller, and describing it as one is the right frame.
Measure spend rate. Compare to the target curve. Adjust the participation rate or bid multiplier. Repeat on a short interval.
The standard control problems all apply, and naming them shows the frame is real rather than decorative.
Overshoot and oscillation. React too aggressively and the advertiser alternates between spending too fast and stalling. Damping matters, and the usual answer is a proportional controller with a conservative gain rather than a hard on-off switch.
Dead time. Spend is not observed instantly — auctions clear, events are logged, aggregation lags. The controller acts on data that is already slightly old, which is exactly the condition that produces oscillation if the gain is too high.
The end of the period. A budget nearly exhausted with hours remaining needs to slow down smoothly, not stop dead. And an underspending campaign should not dump its remaining budget in the final ten minutes, which buys the worst impressions of the day at the highest urgency.
Where pacing meets prediction
The connection back to the model, and it is a coupling most designs miss.
Pacing decisions depend on predicted spend, which depends on predicted click rates — an advertiser paying per click spends only when clicked, so their spend rate is a function of pCTR. A miscalibrated model produces a miscalibrated spend forecast, so the pacer either throttles a campaign that was never going to spend out, or lets one overspend.
That is a second, less obvious cost of poor calibration: it degrades budget control, not just auction pricing.
And it runs the other way. Pacing changes which impressions an advertiser participates in, which changes the data collected about their ads — a heavily throttled campaign generates less training data, so its estimates stay noisy, so its pacing stays imprecise.
Overdelivery
The operational constraint that makes this a hard engineering problem rather than a tidy control one.
Budget checks and auction decisions happen across many machines, thousands of times a second. Perfect global consistency on remaining budget would require coordination on every auction, which the latency budget does not permit. So budget state is distributed and slightly stale, and an advertiser can be charged past their cap.
Most platforms accept small overdelivery and absorb the cost rather than serialising every decision. The mitigations are practical: reserve a safety margin below the true cap, tighten the check frequency as the budget nears exhaustion, and shard the budget across serving nodes so each holds a slice and coordinates only when its own slice runs low.
That last one is the standard answer, and it is the same pattern as distributed rate limiting — which is worth naming, because it shows the problem is a familiar one wearing different clothes.
Key takeaway
Pace against a curve shaped like traffic, not a flat rate, and choose the lever deliberately: throttling gives an unbiased sample of impressions, shading gives the cheap ones. It is a feedback controller with real dead time, so damping matters. Pacing depends on predicted spend, which depends on pCTR — so miscalibration degrades budget control as well as pricing. And budget state is distributed and stale, so shard the budget and accept small overdelivery rather than serialising every auction.
Next: new ads, with real money at stake.