What Are Price Floors in Ad Monetization and How Do You Set Them?
Price floors set the minimum CPM an advertiser must bid to win your ad impression. Any bid below the floor gets rejected. Set them right and you prevent low-value clearing prices without killing demand. Set them wrong and you tank fill rate, lose revenue, and wonder why your eCPM looks great while your bank account doesn't. This article covers floor types, GAM Unified Pricing Rules, Prebid's price floors module, and the math behind finding the optimal floor for your inventory.
What Are the Different Types of Price Floors?
Three floor types exist in programmatic: hard floors, soft floors, and dynamic floors. Each handles bid rejection differently and produces different fill rate and CPM outcomes.
| Feature | Hard Floor | Soft Floor | Dynamic Floor |
|---|---|---|---|
| Rule | Reject all bids below floor | Accept bids below floor if no higher bid exists | Adjust floor per auction based on data |
| Fill rate impact | High (blocks low bids entirely) | Low (allows low bids as fallback) | Moderate (optimizes per context) |
| CPM impact | Raises average CPM | Minimal CPM lift | Highest CPM lift |
| Best for | Premium inventory with strong demand | Remnant inventory, Tier 3 geo traffic | All inventory (with sufficient data) |
| Risk | Unfilled impressions if floor too high | Minimal (floor rarely blocks) | Requires algorithmic tooling |
Hard floors reject every bid below the threshold. Period. If your hard floor is $3.00 and the highest bid is $2.80, the impression goes unfilled. You earn nothing on it. Hard floors protect premium inventory value but require high demand to sustain fill.
Soft floors function as preferred minimums. If bids above the floor exist, the soft floor acts like a hard floor. If no bids meet the floor, the highest available bid wins anyway. Fill rate stays intact.
Dynamic floors adjust per auction based on historical clearing data, segmented by geo, device, format, and time. Third-party tools (Assertive Yield, PubStack, Pubwise) and the Prebid Price Floors Module power dynamic optimization.
How Do Price Floors Prevent Bid Shading?
Without a floor, DSPs running bid shading algorithms will progressively reduce their bids until they find the minimum needed to win. Over time, clearing prices drift toward the lowest competitive bid rather than the impression's actual value.
A floor sets a hard boundary on that drift. If your inventory clears at $5 to $7 CPM and you set a $4 floor, bid shading can only reduce bids to $4 before hitting rejection.
Dynamic floors are more effective. A US desktop impression in Q4 might carry a $6 floor. The same slot on mobile in India gets $0.50. Static floors can't differentiate.
Publishers without floors see clearing prices erode 15 to 25% over 6 months as shading algorithms learn your inventory clears cheaply.
How Do You Set Up Floors in Google Ad Manager?
Google Ad Manager's Unified Pricing Rules (UPRs) let you set floor CPMs that apply across all programmatic demand, including AdX, Open Bidding, and Prebid line items. UPRs replaced the older First Look and pricing rules in 2019.
Navigate to Admin > Pricing Rules > New Unified Pricing Rule. Configure:
- Targeting: Select which inventory the rule applies to: specific ad units, sizes, geo targets, device categories, or custom criteria. A single UPR can target "US desktop 300x600 sidebar" with a $5 floor while another targets "India mobile 320x50" with a $0.30 floor.
- Floor price: Set the minimum CPM. Any programmatic bid below this value is filtered out before the auction resolves.
- Priority: When multiple UPRs overlap on the same impression, the most specific rule wins. A rule targeting "US, desktop, leaderboard" overrides a broader "All US traffic" rule.
UPRs apply only to programmatic demand. They don't affect direct-sold campaigns or sponsorship line items. For Prebid-specific floors that apply before bids reach GAM, use the Prebid Price Floors Module.
How Does the Prebid Price Floors Module Work?
The Prebid priceFloors module lets you enforce floor CPMs within Prebid.js before bids pass to GAM. Bids below the floor are rejected at the wrapper level, which means they never reach your ad server.
Configuration uses a rules schema that maps floor prices to specific inventory dimensions:
pbjs.setConfig({
floors: {
enforcement: { floorDeals: false },
data: {
modelVersion: 'floors-v1',
schema: { fields: ['mediaType', 'size', 'gptSlot'] },
values: {
'banner|728x90|/homepage/leaderboard': 3.50,
'banner|300x600|/article/sidebar': 4.00,
'banner|300x250|/article/incontent': 2.50,
'banner|320x50|/article/mobile': 0.80
}
}
}
});Each rule maps a combination of media type, ad size, and GPT slot path to a specific floor CPM. You can add deviceType and country as additional schema fields for geo and device segmentation.
The module also supports a floorProvider endpoint that serves dynamic floor data from an external optimization service. This is how third-party floor optimization tools (Assertive Yield, PubStack) integrate: they calculate optimal floors per auction context and serve them to Prebid in real time.
Where Is the Revenue Sweet Spot Between Floor Price and Fill Rate?
The optimal floor maximizes total revenue, not per-impression CPM. Raising floors increases eCPM on filled impressions but reduces the number of impressions filled. Total revenue peaks at a specific floor level that varies by inventory type.
$1.50 floor: 93% fill = 93,000 impressions. Avg clearing eCPM = $2.80. Revenue = $260.40
$3.00 floor: 78% fill = 78,000 impressions. Avg clearing eCPM = $4.20. Revenue = $327.60
$5.00 floor: 52% fill = 52,000 impressions. Avg clearing eCPM = $6.50. Revenue = $338.00
$7.00 floor: 30% fill = 30,000 impressions. Avg clearing eCPM = $8.80. Revenue = $264.00
Revenue Optimization Curve
Finding the sweet spot between Floor CPM and Fill Rate
Peak revenue hits at $5.00 in this scenario. The $7.00 floor looks great on an eCPM report ($8.80) but produces $74 less total revenue than the $5.00 floor.
The common mistake: publishers look at their eCPM dashboard, see $8.80, and think they're winning. They ignore that 70% of their inventory went unfilled. Total revenue, not per-impression efficiency, is what pays your hosting bill. Use the CPM calculator to model floor adjustments against your actual fill rate data before changing anything live.
What Do Most Publishers Get Wrong About Price Floors?
Applying one floor globally. A $3 floor works for US desktop traffic. It destroys fill in India, Brazil, and Southeast Asia where clearing prices average $0.50 to $1.50. Segment floors by geo tier at minimum. US/UK/CA/AU get one floor. EU gets another. Tier 3 geos get a third. Missing this single segmentation is the most expensive floor mistake in header bidding.
Never updating floors. Static floors decay in effectiveness. Clearing prices shift seasonally (Q4 up, Q1 down), by format, and as DSP algorithms learn your inventory. A floor set in March may be 30% wrong by November. Audit floors quarterly or implement dynamic floor optimization.
Setting floors based on eCPM targets instead of yield data. Your target eCPM is irrelevant to floor optimization. Floors should be set based on historical clearing price distributions and fill rate curves, not on what you wish your CPM would be. Check CPM benchmarks for realistic rate expectations by vertical and geo.
Frequently Asked Questions About Ad Price Floors
What is the difference between a hard floor and a soft floor?
A hard floor rejects all bids below the threshold, even if no higher bid exists. A soft floor prefers bids above the threshold but accepts the highest available bid as a fallback if none meet the floor. Hard floors protect CPM. Soft floors protect fill.
How do price floors affect ad fill rates and total revenue?
Higher floors increase per-impression eCPM but decrease the number of filled impressions. Total revenue peaks at a specific floor level and declines if the floor is set too high. The optimal floor balances clearing price against fill rate.
How do Google Ad Manager Unified Pricing Rules work?
UPRs set minimum CPM thresholds that apply to all programmatic demand in GAM, including AdX and Open Bidding. You target rules by ad unit, geo, device, or custom criteria. The most specific matching rule applies to each impression.
What is dynamic price floor optimization?
Dynamic floors adjust the minimum CPM per auction based on historical clearing data segmented by geo, device, format, and time. Third-party tools or the Prebid Price Floors Module calculate optimal floors in real time, outperforming static floors by 10 to 20% on net yield.
How do price floors protect publishers against DSP bid shading?
Without floors, DSP bid shading algorithms progressively lower bids until they find the minimum needed to win. Floors set a rejection boundary that prevents bids from dropping below a defined threshold, anchoring clearing prices above the floor.