What Is CPM Floor Pricing and Why Does It Matter?
CPM floor pricing is the minimum price a publisher sets for their ad inventory. Any bid below this threshold is rejected, ensuring that impressions are not sold at undervalued rates. For mobile game and app developers, floor pricing is one of the most powerful levers to increase effective CPM and total ad revenue.
Without floors, demand sources can win impressions at extremely low bids, dragging down your overall yield. A well-configured floor strategy protects your inventory value while still maintaining high fill rates.
Types of Floor Pricing Strategies
Hard Floors
A hard floor is a strict minimum price. If no bid meets or exceeds the floor, the impression goes unfilled. Hard floors protect revenue per impression but can reduce fill rate if set too aggressively.
Soft Floors
A soft floor sets a preferred minimum, but allows the ad server to accept a lower bid if no higher bid is available. This balances revenue optimization with fill rate preservation. Soft floors are often used as a starting point before publishers have enough data to set hard floors confidently.
Dynamic Floors
Dynamic floor pricing adjusts the minimum CPM in real time based on historical performance data, time of day, user segment, geo, and other signals. This is the most advanced approach and typically delivers the best results when paired with machine learning algorithms.
Pro tip: Start with soft floors to gather baseline data, then transition to dynamic floors as you accumulate enough impression-level performance history.
Setting Floors by Geo, Format, and Network
Geographic Segmentation
Ad rates vary dramatically by country. Tier-1 markets like the United States, United Kingdom, and Australia command CPMs that can be 10 to 20 times higher than Tier-3 markets. Your floor prices should reflect this reality:
- Tier-1 geos: Set higher floors to capture premium demand and prevent low bids from winning valuable impressions.
- Tier-2 geos: Use moderate floors that balance revenue and fill.
- Tier-3 geos: Keep floors low or use soft floors to maximize fill rate, since demand is limited.
Ad Format Segmentation
Different ad formats have different value profiles. Rewarded video consistently delivers the highest CPMs, followed by interstitials, then banners:
- Rewarded video: Set aggressive floors since demand is strong and users opt in voluntarily.
- Interstitial: Use moderate floors and test frequently as performance varies by placement.
- Banner: Keep floors conservative since banner CPMs are naturally lower.
Network-Level Floors
When running a mediation waterfall, you can set different floor prices for each demand source. This forces networks to compete at higher price points and prevents any single network from winning all impressions at low rates.
Common Floor Pricing Mistakes
Even experienced publishers make floor pricing errors that leave money on the table. Here are the most frequent mistakes to avoid:
- Setting floors too high: This kills fill rate and can actually reduce total revenue even though CPM looks better on paper.
- Using one floor for all geos: A single global floor ignores the massive CPM differences between markets.
- Never updating floors: Ad market conditions shift seasonally and with advertiser budget cycles. Floors that worked in Q4 may be wrong for Q1.
- Ignoring ad format differences: Applying the same floor to banners and rewarded video wastes potential revenue from high-value formats.
- Not monitoring fill rate alongside CPM: A rising CPM with a plummeting fill rate often means net revenue is actually declining.
Testing and Iterating on Floors
Floor pricing is not a set-it-and-forget-it task. The most successful publishers treat it as an ongoing optimization process:
- A/B test floor levels: Split traffic between different floor prices and measure total revenue, not just CPM.
- Run tests for sufficient duration: Ad performance varies by day of week and time of day. Test for at least one full week before drawing conclusions.
- Measure holistically: Track CPM, fill rate, total revenue, and user experience metrics together. A floor change that boosts CPM but increases ad latency may hurt retention.
- Iterate incrementally: Adjust floors by 10 to 20 percent at a time rather than making dramatic changes.
Floor Pricing in Waterfall vs. Bidding
The role of floor pricing differs depending on your monetization architecture:
Waterfall Mediation
In a traditional waterfall, floors define the entry price for each position in the stack. Higher positions have higher floors, creating a cascading priority system. The challenge is that historical eCPM averages may not reflect what a network would actually pay for a specific impression.
In-App Bidding
In a real-time bidding environment, floors serve as a true minimum threshold. Since all demand sources bid simultaneously, the auction naturally finds the highest price. Floors in bidding are primarily used to filter out extremely low-value bids rather than to structure the competition.
Hybrid Approach
Many publishers run a hybrid setup with bidding demand competing against waterfall entries. In this scenario, floors should be set carefully to ensure that bidding demand and waterfall demand are competing fairly without one system undermining the other.
Tools and Automation
Modern ad monetization platforms offer tools that make floor management more efficient and data-driven:
- Google Ad Manager floor rules: Create rules based on geography, device, ad unit, and other targeting dimensions.
- Mediation platform analytics: Use reporting dashboards to identify underperforming floor configurations.
- Automated floor optimization: Some platforms use machine learning to adjust floors continuously based on real-time auction data.
- Custom reporting pipelines: Build or use tools that combine data from multiple demand sources to get a complete picture of how floors affect total yield.
Effective CPM floor pricing is a blend of data analysis, market knowledge, and continuous testing. Publishers who invest in sophisticated floor strategies consistently outperform those who rely on default settings or static configurations. Start with the fundamentals, measure everything, and iterate relentlessly.