Ad Refresh
Increase impressions by automatically refreshing ads for engaged users — without annoying them.
What is ad refresh?
Ad refresh automatically replaces an ad with a new one after a set time interval, while the user is still on the page.
One pageview, multiple impressions.
Why use ad refresh?
The math
Without refresh:
- 1 pageview = 1 impression per slot
- Average time on page: 90 seconds
- Revenue: 1× CPM
With refresh (30-second interval):
- 1 pageview = 3 impressions per slot
- Same 90 seconds
- Revenue: up to 3× CPM
Potential impact: 50-150% more impressions from the same traffic.
Best use cases
| Scenario | Refresh benefit |
|---|---|
| Long-form articles | High — users spend 3-5+ minutes |
| Infinite scroll | High — users keep scrolling |
| Video pages | Medium — depends on video length |
| Gallery/slideshow | Medium — if users progress slowly |
| News/short content | Low — users leave quickly |
The catch: Risks of refresh
Risk 1: Lower CPM on refreshed impressions
Advertisers value the first impression more. Refreshed impressions often have:
- 20-40% lower CPM than initial load
- Lower viewability scores
- Less advertiser interest
Impression #1: $2.00 CPM
Impression #2: $1.40 CPM (30% lower)
Impression #3: $1.20 CPM (40% lower)
Risk 2: Policy violations
Many partners have refresh rules:
| Partner/Platform | Common rules |
|---|---|
| Google AdX | 30+ second minimum, viewable only |
| Most SSPs | 30+ second minimum |
| Direct advertisers | Often prohibit refresh |
Violating policies can get you banned.
Risk 3: User experience
Aggressive refresh = annoying users:
- Distracting while reading
- Layout shift if sizes change
- Perception of "too many ads"
Best practices for refresh
1. Set appropriate intervals
| Interval | Use case |
|---|---|
| 30 seconds | Minimum allowed, use carefully |
| 45-60 seconds | Balanced approach |
| 90+ seconds | Conservative, premium feel |
Most demand partners prohibit it. You risk account suspension.
2. Only refresh viewable ads
An ad that's scrolled off-screen shouldn't refresh. Configure:
Refresh conditions:
✓ Ad is at least 50% in viewport
✓ Tab is active (user not in another tab)
✓ User has been active recently
3. Cap total refreshes
Don't refresh infinitely:
| Setting | Recommendation |
|---|---|
| Max refreshes | 3-5 per pageview |
| Total impressions | Cap at 5-6 per slot per session |
4. Exclude certain slots
Not all slots should refresh:
| Refresh | Don't refresh |
|---|---|
| Sidebar ads | Sticky/adhesion ads |
| In-content ads | High-impact takeovers |
| Below-fold ads | Direct-sold inventory |
5. Monitor the impact
Track:
- CPM by impression number (1st vs. 2nd vs. 3rd)
- Overall revenue (is refresh net-positive?)
- Viewability scores
- User engagement metrics
Configuring refresh in Anima
Enable refresh on a slot
-
Go to Inventory → Ad Slots and open the slot
-
Go to the Media tab
-
Scroll to the Refresh fieldset
-
Pick the device scope:
- All devices — one shared set of refresh values
- Per device — separate values for mobile and desktop
-
Fill in, for each active device scope:
Field What it controls Trigger What triggers a refresh (e.g. time-based, viewability-aware variants) Interval Seconds between consecutive refreshes Times Maximum refreshes per pageview -
Save the slot
-
Ship a release from Wrapper → Releases for the change to take effect
There's no separate "viewability required" checkbox — viewability-aware refresh is selected via the trigger field. Pick the trigger variant whose semantics match your intent.
Global / wrapper-level refresh defaults
Wrapper-wide refresh defaults live in Wrapper → Configs. Per-slot refresh values on the Media tab override the wrapper defaults for that slot.
Measuring refresh performance
Key metrics
| Metric | What to watch |
|---|---|
| Impressions per pageview | Should increase |
| CPM by impression order | Expect decline after first |
| Total revenue per pageview | This is what matters |
| Viewability | Should stay stable |
The test
Run an experiment:
- Control: No refresh
- Variation: Refresh enabled
- Duration: 14 days
- Metric: Total revenue per 1000 pageviews
Only keep refresh if the variation wins on total revenue.
Advanced: Smart refresh strategies
Time-decay floors
Set higher floors for refreshed impressions:
Impression #1: $1.00 floor
Impression #2: $1.50 floor (higher to filter weak demand)
Impression #3: $2.00 floor (only accept quality)
Engagement-based refresh
Only refresh for engaged users:
IF time_on_page > 60 seconds
AND scroll_depth > 50%
AND recent_interaction < 10 seconds
THEN allow refresh
Content-aware refresh
Adjust by content type:
| Content | Refresh strategy |
|---|---|
| Long article (2000+ words) | 45s interval, 5 max |
| Medium article (800-2000) | 60s interval, 3 max |
| Short content (< 800) | Disable or 90s interval |
Common questions
Does refresh hurt my viewability scores?
It can, if not done carefully. Refreshing non-viewable ads tanks viewability. Always require viewability before refresh.
Will advertisers pay less because of refresh?
Yes, refreshed impressions typically earn less. The question is whether 3 impressions at $1.40 beats 1 impression at $2.00. (Answer: $4.20 > $2.00)
Can I refresh sticky/adhesion ads?
Technically yes, but be careful. Sticky ads are always viewable, so they'll refresh aggressively. This can:
- Annoy users (constant movement)
- Violate partner policies
- Hurt advertiser performance
If you refresh sticky ads, use longer intervals (90+ seconds).
How do I know if refresh is working?
Compare these metrics before and after:
- Impressions per pageview (should increase)
- Revenue per pageview (should increase)
- User engagement (should stay stable)
If #3 drops significantly, refresh may be too aggressive.
Related concepts
- Revenue vs. Latency → — Balancing optimization
- Ad Slot Best Practices → — Slot configuration
- Experiments → — Test refresh settings