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 — and each refresh typically earns a little less than the one before, not a flat rate. The question is whether the stack beats a single impression. A realistic run might be $2.00 for the first impression, then $1.40 and $1.20 on two refreshes: $4.60 total versus $2.00 for one impression. As long as each refresh clears against real, viewable demand, the total comes out ahead.

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.