In this article
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.
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:
- Time signals: Day of week, time of day, proximity to seasonal demand peaks (Q4, holiday shopping, political campaigns).
- User value: Audience segment data, device type, geographic location, and browsing behavior signals that indicate advertiser demand.
- Content context: Page category, article topic, content quality score, and brand safety classification.
- Historical bid data: Recent bid density, winning CPM trends, and demand partner competition levels for similar impressions.
- Competitive dynamics: Number of DSPs actively bidding, auction pressure ratios, and the presence of PMP deals competing for the same inventory.
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
- Floor level: Test incremental changes ($0.25–$0.50 CPM increments) to find the optimal threshold.
- Floor type: Compare hard floors vs soft floors to measure the fill rate impact of strict enforcement.
- Segment granularity: Test more granular segmentation (per-page, per-user-type) vs broader segments to determine whether additional complexity yields sufficient lift.
- Time-based adjustments: Test dayparting strategies with different floor levels for peak vs off-peak hours.
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:
- Setting and forgetting: Floors require continuous monitoring and adjustment. Market conditions change — seasonal demand fluctuations, new demand partners, competitive shifts — and stale floors fail to capture evolving value. Review floors at least monthly, ideally weekly.
- Optimizing for eCPM instead of RPM: eCPM only measures the average price of filled impressions. A publisher who raises floors to achieve a $10 eCPM with a 15% fill rate earns less than one who maintains a $5 eCPM with a 60% fill rate (assuming equal ad request volume). Always optimize for RPM, which captures the combined effect of price and fill.
- Ignoring bid latency: Overly high floors can reduce bid density, which paradoxically increases auction latency. When fewer DSPs bid, the SSP may wait longer for responses, degrading page performance and viewability rates.
- Applying uniform floors across geographies: A $2.00 floor might be appropriate for US inventory but catastrophically high for Tier 3 geos where average CPMs are $0.30–$0.80. Always segment floors by geography.
- Neglecting PMP floor alignment: If your open auction floor is $3.00 but your PMP floor is $2.50, sophisticated buyers will shift their spend to the PMP channel, undermining open auction pricing. Ensure floor strategies are coordinated across deal types.
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.