Floor Prices
Set minimum bids to filter low-quality ads and capture more value from your inventory.
What is a floor price?
A floor price is the minimum bid you'll accept for an ad impression. Bids below the floor are rejected.
Example — with a floor of $1.00:
| Bid | Result |
|---|---|
| Bid A — $1.50 | Accepted |
| Bid B — $0.80 | Rejected (below floor) |
| Bid C — $1.10 | Accepted |
Why floors matter
1. Filter low-quality ads
Very low bids often come from low-quality advertisers. Floors create a quality baseline.
2. Capture hidden value
In first-price auctions, buyers use bid shading. Floors force them to bid closer to their true value.
Without floor:
Buyer values at $3.00, bids $1.50 (shaded)
You earn: $1.50
With $2.00 floor:
Buyer values at $3.00, bids $2.20 (can't shade below floor)
You earn: $2.20 (+47%)
3. Signal inventory value
High floors signal premium inventory to buyers. This can attract premium demand.
The floor trade-off
Higher floors → Higher CPM, but lower fill rate
Lower floors → Higher fill rate, but lower CPM
Revenue = Impressions × Fill Rate × CPM
You need to find the sweet spot.
| Floor strategy | CPM impact | Fill rate impact | Best for |
|---|---|---|---|
| High floors | ↑ Higher | ↓ Lower | Premium inventory, high-demand |
| Low floors | ↓ Lower | ↑ Higher | Scale, backfill inventory |
| No floors | Lowest | Highest | Maximum fill (not recommended) |
Setting your first floors
Start conservative
Begin with floors you're confident you can fill:
| Inventory type | Starting floor | Adjust based on |
|---|---|---|
| Premium above-fold | $1.50 - $2.50 | If fill rate > 90%, raise |
| Standard display | $0.50 - $1.00 | If fill rate > 85%, raise |
| Below-fold / lazy | $0.25 - $0.50 | If fill rate > 80%, raise |
| Mobile | $0.30 - $0.75 | If fill rate > 85%, raise |
The 80% rule
A good starting target: set floors so fill rate stays above 80%.
Below 80% fill rate: You're leaving impressions unsold (lost revenue). Above 95% fill rate: You might be setting floors too low.
Floor strategies
Strategy 1: Global floors
One floor for all inventory. Simple but not optimal.
All ad slots: $0.75 floor
Pros: Easy to manage Cons: Doesn't account for inventory differences
Strategy 2: Position-based floors
Different floors by ad position.
Above-fold: $2.00
Sidebar: $1.00
In-content: $0.75
Below-fold: $0.50
Pros: Matches inventory value Cons: Requires more management
Strategy 3: Device-based floors
Different floors by device type.
Desktop: $1.00
Mobile: $0.60
Tablet: $0.80
Pros: Accounts for device CPM differences Cons: May miss geo/content variations
Strategy 4: Dynamic floors
Floors that adjust automatically based on:
- Time of day
- Day of week
- Historical performance
- Real-time demand
Pros: Optimal pricing Cons: Requires sophisticated tooling
Begin with position-based floors. Add complexity as you learn your inventory.
Optimizing floors over time
Week 1-2: Observe
Set conservative floors and monitor:
- Fill rate by slot
- CPM by slot
- Revenue trends
Week 3-4: Adjust
For each slot, evaluate:
| Fill rate | CPM trend | Action |
|---|---|---|
| > 95% | Stable | Raise floor 10-20% |
| 80-95% | Stable | Floor is optimal |
| < 80% | Any | Lower floor 10-20% |
| Any | Dropping | Investigate demand |
Monthly: Review
- Compare revenue to baseline
- Check for seasonal patterns
- Adjust for market conditions
Common floor mistakes
Setting floors too high
Symptom: Low fill rate (< 70%) Problem: Rejecting too many bids Solution: Lower floors until fill rate improves
Setting floors too low
Symptom: High fill rate (> 95%) with low CPM Problem: Not capturing full value Solution: Gradually raise floors
One floor for everything
Symptom: Some slots unfilled, others too cheap Problem: Inventory has different values Solution: Use position or device-based floors
Never adjusting
Symptom: Flat or declining revenue despite traffic growth Problem: Market changes, your floors don't Solution: Review floors monthly
Floors in Anima
Per-slot floors
The primary place to set floors is on the ad slot itself:
- Go to Inventory → Ad Slots
- Open the slot
- On the Auction tab, set the floor value
- Save
Slot floors are the most flexible — you can tune them per placement based on fill-rate and CPM data.
Global / wrapper-level floor settings
Wrapper-wide floor configuration (granularity, currency, price buckets that drive GAM key-value rounding) lives in Wrapper → Configs. Anima doesn't have a single "global floor" value that applies everywhere; the effective floor is what's on the slot.
Bulk floor updates
To change floors across many slots without opening each one individually:
- Use the AI Assistant: "Set floor price to $1.00 for all sidebar slots"
- Or edit slot-by-slot, then ship a single release once the set is done
Viewing floor performance
Go to Dashboard → Monetization and break down by ad slot to see fill rate, CPM, and revenue. Comparing before/after a floor change on the same slots is the cleanest read.
Common questions
What's a good starting floor?
For most publishers: $0.50 – $1.00 on standard placements, set on each ad slot's Auction tab. Premium above-fold slots can start higher ($1.50–$2.50); below-fold / lazy-loaded slots can start lower ($0.25–$0.50).
Anima doesn't have a single "global floor" value — configure floors per slot. This filters obvious low-quality demand while maintaining good fill rate. Adjust after 2 weeks of data.
Should I have a $0 floor?
Generally no. Even a $0.10 floor filters the lowest-quality demand. Zero floors invite bad ads.
Exception: If you're prioritizing fill rate for specific testing.
Do floors apply to all demand partners?
Yes, floors apply to all prebid partners. GAM may have separate floor configurations for AdX.
How do floors interact with experiments?
You can test floor changes using experiments:
- Control: Current floor
- Variation: New floor
- Measure: Revenue impact
This is the safest way to change floors.
Related concepts
- Auction Types → — Why floors matter more in first-price
- Revenue vs. Latency → — Balancing optimization
- Demand Partners → — Who's bidding on your inventory