Ad Slot Best Practices
Optimize your ad slot configuration for revenue and user experience.
Naming conventions
Recommended format
[page]_[position]_[number]
Examples
| Slot name | Meaning |
|---|---|
homepage_header_1 | First header slot on homepage |
article_sidebar_top | Top sidebar on articles |
article_incontent_1 | First in-content placement |
category_sidebar_1 | Sidebar on category pages |
mobile_sticky_footer | Mobile sticky footer |
Do's and Don'ts
| Do | Don't |
|---|---|
| Use lowercase | Homepage_Header |
| Use underscores | article-sidebar |
| Be descriptive | ad1, slot_a |
| Include position | Just sidebar |
| Keep consistent | Mix conventions |
Size selection
Do
- Use IAB standard sizes — Highest demand
- Include 2-3 sizes per slot — More competition
- Match sizes to design — Natural fit
Don't
- Use obscure sizes — Low demand
- Add too many sizes (5+) — Unpredictable
- Use sizes that don't fit — Bad UX
Recommended combinations
| Position | Sizes |
|---|---|
| Header | 728x90 + 970x250 |
| Sidebar | 300x250 + 300x600 |
| In-content | 300x250 + 336x280 |
| Mobile | 320x50 + 300x250 |
Placement guidelines
Above the fold
| Practice | Why |
|---|---|
| Prioritize viewability | First impression matters |
| Use high-impact sizes | 970x250, 728x90 |
| Limit to 1-2 slots | Don't overwhelm |
| Disable lazy loading | Needs to load immediately |
Below the fold
| Practice | Why |
|---|---|
| Enable lazy loading | Improves page speed |
| Use standard sizes | 300x250 works everywhere |
| Consider refresh | Users spend time here |
| Stack in sidebar | Natural scroll behavior |
In-content
| Practice | Why |
|---|---|
| Place after 2-3 paragraphs | Natural reading break |
| Use content-width sizes | 300x250, 336x280 |
| Space evenly | Every 4-6 paragraphs |
| Enable lazy loading | After first placement |
Mobile optimization
Key practices
- Test on real devices — Emulators aren't perfect
- Use mobile-specific sizes — 320x50, 320x100, 300x250
- Check touch targets — Ads shouldn't block navigation
- Verify viewport fit — No horizontal scroll
Mobile-specific settings
| Setting | Recommendation |
|---|---|
| Sticky footer | 320x50, careful with UX |
| In-content | 300x250 works well |
| Interstitials | Use sparingly |
| Refresh | 60+ second intervals |
Performance optimization
Lazy loading
| Slot type | Lazy load? |
|---|---|
| Above-fold header | No |
| First sidebar | No |
| Second+ sidebar | Yes |
| In-content (first) | Maybe |
| In-content (2+) | Yes |
| Below-fold | Yes |
Refresh settings
| Setting | Recommendation |
|---|---|
| Interval | 45-60 seconds |
| Maximum refreshes | 3-5 |
| Require viewability | Always |
| Sticky ads | Longer intervals (90s+) |
Common mistakes
| Mistake | Problem | Solution |
|---|---|---|
| Too many ads | Hurts UX and CWV | Limit to 4-6 per page |
| Wrong sizes | Low fill, poor revenue | Use standard sizes |
| No lazy loading | Slow pages | Enable for below-fold |
| Vague names | Hard to manage | Use naming convention |
| Ignoring mobile | Lost revenue | Test and optimize |
| Never adjusting | Stale performance | Review quarterly |
Testing changes
Before significant changes:
- Use experiments — A/B test variations
- Monitor for a week — Short tests aren't reliable
- Compare key metrics — Revenue, CPM, fill rate, CWV
- Check user metrics — Bounce rate, time on page
- Roll back if negative — Don't force bad changes
Maintenance schedule
Weekly
- Check for slots with zero impressions
- Review any error alerts
Monthly
- Review slot performance (CPM, fill rate)
- Identify underperformers
- Check floor price effectiveness
- Use bulk updates for floor adjustments across slots
Quarterly
- Remove unused slots
- Update sizes based on performance
- Review against industry changes
- Audit naming consistency
Optimization checklist
For each ad slot, verify:
- Name follows convention
- 2-4 appropriate sizes
- Lazy loading set correctly
- Floor price configured
- Added to correct layouts
- Mobile experience tested
- CLS impact minimized