Dynamic floor pricing: the lever most publishers set once and forget
Your floor price is the single most direct control you have over yield — and most publishers touch it quarterly, if that. Here's why static floors leak money, and what a real floor strategy looks like.
Ask a monetization team how often they revisit their price floors and the honest answer is usually some version of “when revenue drops.” A floor gets set during onboarding, nudged after a bad week, and otherwise left alone for months at a time.
That’s a problem, because the floor is the most direct lever you have over what an impression earns. It’s the one number that sits inside the auction, deciding in real time whether a bid wins, loses, or never gets made. Treating it as a quarterly config setting leaves money on the table on both sides — unfilled inventory when it’s too high, suppressed bids when it’s too low.
Here’s what a real floor strategy looks like, and why “set it and forget it” is the most expensive habit in publisher monetization.
What a floor actually does
A price floor is the minimum bid an impression will accept. Set it at $2 and a $1.80 bid is discarded; a $5 bid clears at $5 (in a first-price auction) or just above the next-highest bid (in a second-price auction).
That makes the floor do two jobs at once:
- It protects value. A floor stops your premium inventory from clearing at remnant prices when demand is thin.
- It signals value. In first-price auctions — now the norm — the floor is information. Buyers shade their bids toward the floor, so where you set it actively shapes what they’re willing to pay.
Both jobs depend on the floor being right for this impression, right now. A single global number can’t be.
Why static floors leak money
The optimal floor for an impression is a function of dozens of variables — placement, format, geo, device, time of day, the demand sources currently bidding, and the user’s likely value to a buyer. Every one of those moves continuously.
A static floor is a single guess frozen against a moving target:
- Too high, and you lose fills. Bids that would have cleared a smarter floor get rejected. The impression goes unsold or falls through to a lower-paying backup — pure lost revenue.
- Too low, and you leave surplus on the table. Buyers who would have paid $4 shade down toward your $1 floor and win at $1.20. You handed back the difference on every impression.
- It can’t react. A demand partner pulls back, a seasonal CPM spike arrives, a new buyer enters the auction — a quarterly floor sees none of it until the next review.
This is the same trap we flagged in the eCPM guide: an average set against a distribution that’s anything but average.
Unified vs. per-segment vs. dynamic floors
There’s a maturity curve here, and most publishers are earlier on it than they think.
One global floor. Simplest, and the most lossy. A single number across all inventory guarantees it’s wrong for nearly every impression — too high for your remnant, too low for your premium.
Per-segment floors. Floors broken out by placement, format, and geo. This is the minimum credible baseline. Moving from a single global floor to per-format and per-placement floors typically lifts yield in the 8–15% range, before any machine learning enters the picture — simply because you stop averaging your best inventory together with your worst.
Dynamic floors. A floor computed per impression, in real time, from live auction signals — what’s bidding, at what density, for this exact slot right now. This is where the remaining yield lives, and it’s not something a human sets. It’s something the auction layer decides on every request.
Why floors are a pre-auction decision
Here’s the part that gets lost: the floor isn’t a reporting output. It’s an input to the auction, and it has to be decided before the bid request goes out.
Most monetization tooling treats pricing as something you analyze after the fact — you pull a report, notice a placement underperformed, and adjust the floor for next time. By then you’ve already run thousands of auctions at the wrong price.
A floor that adapts has to live where the decision happens: in the auction itself, evaluating each request as it arrives. That’s a different architecture from a dashboard you check on Mondays — and it’s the difference between optimizing the next quarter and optimizing the next impression.
What to actually do
-
Get off the single global floor. If you’re running one number across all inventory, per-segment floors are the highest-ROI change available to you. Start with format and placement.
-
Pair every floor with a fill rate. A floor you can’t see the fill impact of is a floor you’re tuning blind. A higher floor that drops fill 20% may net less than a lower one — judge floors on revenue per impression, not clear price.
-
Shorten your review cycle — or remove it. Quarterly is a liability. Monthly is better. Per-impression, decided automatically, is the goal.
-
Watch the floors and the bid landscape. If bids are clustering right at your floor, buyers are telling you it’s set below their willingness to pay. If a large share of bids fall just under it, you may be cutting off real demand.
-
Treat the floor as auction infrastructure, not a setting. The publishers capturing the most yield in 2026 aren’t the ones with the best quarterly floor — they’re the ones who stopped setting floors by hand at all.
Lumorrow computes floors per impression, in real time, from live auction signals — pre-auction, not in a report you read later. See how the platform works → or explore it as a publisher →