1. What Are Floor Prices?

A floor price is the minimum CPM a publisher is willing to accept for a given ad impression. When a bid request goes out to demand partners, any bid below the floor is automatically rejected — the impression will not be sold at that price. Floors serve as the publisher's primary pricing lever in programmatic auctions, protecting inventory value and preventing demand partners from acquiring impressions at artificially low prices.

Without floor prices, the open auction becomes a pure race to the bottom. DSPs, optimizing for their advertisers' lowest possible cost, will bid the minimum needed to win. In the absence of a floor, that minimum can be fractions of a cent — far below the inventory's true market value. Floors establish a baseline that forces buyers to bid at or above the publisher's acceptable threshold.

How Floors Work in the Auction

In a typical programmatic transaction, the SSP communicates the floor price to connected DSPs as part of the bid request (via the bidfloor field in OpenRTB). DSPs must either bid at or above the floor, or return a no-bid. The floor can be communicated as a hard floor (bids below are rejected) or a soft floor (bids below are accepted but deprioritized). Most modern SSPs implement hard floors, which provide stronger pricing protection but carry a greater risk of unfilled impressions.

The floor price paradox
Set floors too low, and you leave revenue on the table by allowing buyers to win at below-market prices. Set floors too high, and you increase unfilled impressions — inventory that generates zero revenue. The optimal floor maximizes the product of fill rate and winning CPM, not either metric in isolation.

2. Dynamic vs Fixed Floors

Fixed floors apply a single, static CPM threshold to all inventory within a defined segment (e.g., $2.00 CPM for all US desktop 300x250 impressions). They are simple to implement and easy to audit, but they ignore the enormous variation in impression value that exists within any segment.

The Case Against Fixed Floors

Consider a publisher with US desktop display inventory. A 300x250 impression served to a Fortune 500 CFO browsing a finance article at 10am on Tuesday is worth dramatically more than the same ad slot served to a casual browser at 2am on Saturday. Yet a fixed floor treats both impressions identically. The CFO impression could command a $15+ CPM from financial services advertisers, but the fixed floor of $2.00 allows a DSP to win it for $2.01 — a massive loss of potential revenue.

Conversely, the 2am impression might have a true market value of $0.80, but the $2.00 fixed floor means no bids qualify, and the impression goes unfilled. The publisher earns nothing from inventory that could have generated revenue at a lower price.

Dynamic Floor Pricing

Dynamic floors adjust the minimum CPM for each individual impression based on real-time signals and historical data. Modern SSPs use machine learning models that consider:

Dynamic floors typically increase publisher revenue by 15–30% compared to equivalent fixed floor strategies, with no change in fill rate. The improvement comes from raising floors on high-value impressions (capturing more revenue) and lowering floors on low-value impressions (maintaining fill rate).

3. How to Set Optimal Floors

Setting optimal floors is an analytical discipline that requires understanding your inventory's demand profile. The following framework provides a structured approach.

Step 1: Analyze Bid Density

Before setting any floor, examine the distribution of bids across your inventory. Most SSPs provide bid density reports showing the percentage of impressions that receive 0 bids, 1 bid, 2+ bids, etc., at various price points. This data reveals the natural demand curve for your inventory.

The ideal floor sits at the point where auction pressure remains healthy (multiple bidders competing) while extracting maximum value. If 80% of impressions receive 3+ bids at a $1.50 floor, there is room to raise the floor. If only 20% receive bids at a $4.00 floor, it is too high.

Step 2: Segment Your Inventory

Avoid setting a single floor across all inventory. Instead, create floor segments based on the dimensions that most influence demand:

Segment Dimension High-Value Low-Value
Geography US, UK, Canada, Australia ($3–$8+ floor) Tier 3 countries ($0.30–$1.00 floor)
Device Desktop, high-end mobile ($2–$6 floor) Low-end mobile, feature phones ($0.50–$1.50 floor)
Ad Format Video, 300x600, native ($4–$12 floor) 320x50, 300x50 ($0.50–$2.00 floor)
Content Finance, tech, health ($3–$8 floor) Entertainment, forums ($1–$3 floor)
Time Weekday business hours (+20–50%) Weekend overnight (-20–40%)

Step 3: Implement Gradual Adjustments

Never change floors dramatically in a single adjustment. Increase or decrease floors by 10–15% increments, then monitor fill rate and RPM for 3–5 days before making further changes. Large, sudden floor increases often cause sharp fill rate declines that take weeks to recover from, as DSP bidding algorithms recalibrate to the new pricing environment.

4. A/B Testing Strategies

Floor price optimization requires systematic experimentation. The following A/B testing framework ensures statistically valid results.

Traffic Splitting

Most SSPs support native floor price A/B testing by splitting traffic into control and treatment groups. The control group operates under the current floor strategy, while the treatment group tests the proposed change. Traffic should be split randomly at the user or session level to avoid confounding variables.

Run tests for a minimum of 7 days (to capture weekday/weekend variation) and ensure each group receives at least 500,000 impressions for statistical significance. Monitor the following metrics for each group: fill rate, eCPM, RPM, and total revenue.

Key Test Variables

Test duration matters
DSP bidding algorithms adapt to floor changes over time. A floor increase that causes a 5% fill rate drop in the first 48 hours may recover to only a 1% drop after 2 weeks as DSPs adjust their bid strategies upward. Always allow a full stabilization period before declaring a test winner or loser.

5. Impact on Fill Rate and Revenue

Floor prices directly control the trade-off between fill rate and eCPM. Understanding this relationship is essential for making rational floor pricing decisions.

The Revenue Equation

Total programmatic revenue is the product of three variables:

Revenue = Ad Requests × Fill Rate × eCPM / 1000

When you raise the floor, eCPM typically increases (winning bids are higher) while fill rate decreases (fewer bids clear the floor). The net effect on revenue depends on which force dominates. If eCPM increases by 20% while fill rate drops by only 5%, revenue increases. If eCPM increases by 10% but fill rate drops by 25%, revenue decreases.

Finding the Revenue Maximum

Plot revenue as a function of floor price, and you will typically see a parabolic curve: revenue increases as floors rise from zero (because eCPM increases faster than fill rate drops), reaches a maximum, then declines (because fill rate drops faster than eCPM increases). The optimal floor is the peak of this curve.

For most publishers, the revenue-optimal floor allows a fill rate between 40–70%, depending on inventory quality and demand density. Fill rates above 80% usually indicate floors that are too low; fill rates below 30% usually indicate floors that are too high.

6. SSP-Level vs Header Bidding Floors

Publishers using header bidding face a nuanced floor pricing challenge: floors can be set at multiple layers, and misalignment between layers creates inefficiencies.

Prebid.js Floor Module

The Prebid.js Floor Module allows publishers to set floors at the wrapper level, before bid requests are sent to adapters. These floors are communicated to all connected SSPs and DSPs via the bidfloor field in the bid request. The advantage of wrapper-level floors is consistency: every demand partner sees the same floor, preventing arbitrage opportunities where one SSP might receive a lower floor than another.

SSP-Level Floors

Individual SSPs also support floor configuration within their own platforms. SSP-level floors can be more granular (per-deal, per-buyer) but risk creating inconsistencies if not synchronized with wrapper-level floors. If the Prebid wrapper floor is $2.00 but an SSP's internal floor is $1.50, the SSP may accept bids between $1.50 and $2.00 that the wrapper would reject — leading to discrepancies and potential revenue loss.

Best Practice: Unified Floor Strategy

The most effective approach is to set floors in a single location — either the Prebid wrapper or the SSP — and ensure all other layers are configured to pass through or align with that floor. Publishers using multiple SSPs should implement a centralized floor management strategy, ideally through the Prebid.js Floor Module with dynamic floor providers (e.g., PubWise, Adagio, Freestar) that adjust floors in real time based on auction data.

7. Common Mistakes

Even experienced ad ops teams make floor pricing errors that cost significant revenue. Avoid these common pitfalls:

The continuous optimization imperative
Floor price optimization is not a set-it-and-forget-it task. The most sophisticated publishers treat floor pricing as a continuous optimization loop: measure auction dynamics, hypothesize floor changes, test incrementally, analyze results, and scale winning configurations. Each cycle yields 3–8% incremental revenue, and these gains compound across dozens of optimization cycles per year.

Effective floor pricing is both an art and a science. The science lies in the data: bid density analysis, fill rate curves, and statistical testing. The art lies in judgment: knowing when to push floors higher despite short-term fill rate risk, when to prioritize volume over price, and how to balance floor strategies across deal types, geographies, and formats. Publishers who master both dimensions consistently outperform those who treat floor pricing as a static configuration task.