Skip to main content

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

ScenarioRefresh benefit
Long-form articlesHigh — users spend 3-5+ minutes
Infinite scrollHigh — users keep scrolling
Video pagesMedium — depends on video length
Gallery/slideshowMedium — if users progress slowly
News/short contentLow — 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/PlatformCommon rules
Google AdX30+ second minimum, viewable only
Most SSPs30+ second minimum
Direct advertisersOften 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

IntervalUse case
30 secondsMinimum allowed, use carefully
45-60 secondsBalanced approach
90+ secondsConservative, premium feel
Never refresh faster than 30 seconds

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:

SettingRecommendation
Max refreshes3-5 per pageview
Total impressionsCap at 5-6 per slot per session

4. Exclude certain slots

Not all slots should refresh:

RefreshDon't refresh
Sidebar adsSticky/adhesion ads
In-content adsHigh-impact takeovers
Below-fold adsDirect-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

  1. Go to Inventory → Ad Slots and open the slot

  2. Go to the Media tab

  3. Scroll to the Refresh fieldset

  4. Pick the device scope:

    • All devices — one shared set of refresh values
    • Per device — separate values for mobile and desktop
  5. Fill in, for each active device scope:

    FieldWhat it controls
    TriggerWhat triggers a refresh (e.g. time-based, viewability-aware variants)
    IntervalSeconds between consecutive refreshes
    TimesMaximum refreshes per pageview
  6. Save the slot

  7. Ship a release from Wrapper → Releases for the change to take effect

Viewability behavior is in the trigger

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

MetricWhat to watch
Impressions per pageviewShould increase
CPM by impression orderExpect decline after first
Total revenue per pageviewThis is what matters
ViewabilityShould 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:

ContentRefresh 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:

  1. Impressions per pageview (should increase)
  2. Revenue per pageview (should increase)
  3. User engagement (should stay stable)

If #3 drops significantly, refresh may be too aggressive.