Helix Media

Ad Refresh Best Practices: How to Boost Revenue Without Hurting UX

By · January 25, 2026 · Updated on July 7, 2026 · Ad Optimization

Ad refresh means reloading an ad slot while the user is still in the same page session. The setups that actually add incremental US$ do it only when the refreshed impression is viewable, clearly declared, measured at the session level, and tuned by placement instead of forced through one blanket sitewide timer.

Key takeaways

What ad refresh is, and where it actually earns you money

Ad refresh gives you more sellable impressions from the same visit. It only helps, though, if those extra auctions don’t drag down viewability, CPM, latency, or session depth. Treat it as a same-session inventory multiplier, not a way to paper over weak demand.

Operationally, you refresh one specific ad unit after a trigger fires. The user stays on the page. The content doesn’t have to reload. The auction runs again, usually through Google Ad Manager, Google AdX, header bidding demand, or a managed yield stack.

Digital Content Next gets the upside right: refresh can lift revenue per session when it’s used without hurting user experience or ad viewability. That “if” carries the whole business case. Low-quality refreshed impressions can teach buyers to bid less for the same inventory over time Digital Content Next.

Slot refresh is not the same as page refresh

Refreshing one slot gives you much cleaner control. You can require that unit to be in view, enforce a minimum interval, check whether the tab is active, and then refresh only that ad unit.

Refreshing an entire page, or even a group of slots, is much harder to justify. A top leaderboard, a mid-article unit, and a below-the-fold rail unit don’t have the same exposure pattern. Refresh them together and reporting may show more impressions while masking which slot drove revenue and which one weakened the auction.

Feed and gallery refresh need separate treatment

A feed placement doesn’t behave like a static article slot. A native ad between cards may refresh based on scroll behavior or content movement, while a gallery unit may refresh after the user advances to the next image.

Aditude describes the core benefit as creating more impressions from one session without making the user reload the page or click somewhere else. That’s also the limit. Refresh should follow real attention, not create impressions the user never had a fair chance to see Aditude.

Time-based vs. event-based refresh triggers: which one belongs on which placement

Fixed timers are the easiest to run. Event-based triggers usually create cleaner inventory, especially on placements where attention changes with scrolling, tab focus, or content interaction. Match the trigger to the placement’s exposure pattern, not to whatever wrapper setting is most convenient.

Trigger typeBest-fit placementsHow it worksMain failure modeEvidence anchor
Fixed intervalSticky units, high-viewability rails, long-read article slotsRefresh fires after a minimum elapsed time, often with an added in-view requirement.Aggressive timers create impressions that buyers discount, especially if the slot is not actually visible.Clickio notes that Google recommends at least 30 seconds for web refresh setups Clickio.
In-view timeArticle body units and sticky unitsTimer only counts while the ad slot is viewable, then pauses when it leaves view.Bad viewport logic can refresh after the slot has fallen out of view.MRC viewability rules make pre-refresh visibility the gating condition, not a post-refresh cleanup step MRC.
Scroll depth or feed movementInfinite scroll, homepage feeds, recirculation modulesRefresh is tied to user movement through content, such as passing a feed card or reaching a new content segment.Noisy scroll events can fire too often unless debounced and scoped to the specific slot.Publisher Collective calls out correct event listener implementation as a core best practice Publisher Collective.
Tab focus or page visibilityDesktop article pages, utility pages, long sessionsRefresh is blocked while the browser tab is inactive and allowed only after focus returns and visibility checks pass.Duplicate listeners can trigger multiple refresh calls when the user returns to the tab.Google Ad Manager requires refresh behavior to be declared correctly for eligible inventory Google Ad Manager.
Content interactionGalleries, slideshows, interactive pagesRefresh follows a meaningful action, such as moving to another gallery item or expanding content.Refreshing on superficial clicks can look like impression inflation rather than audience exposure.Publisher Collective warns publishers to limit listening events and avoid logging sensitive data Publisher Collective.

MRC viewability standards you have to respect before you refresh

A refreshed display impression should qualify only after the slot meets the practical viewability threshold: at least 50% of pixels in view for one continuous second for standard display, with large display and video handled separately. Build the refresh gate around that exposure, not page time alone.

MRC guidance matters in a refresh setup because the first impression and the refreshed impression are separate monetization events. If the first ad never had a real viewable opportunity, refreshing that same slot doesn’t solve the quality issue. It makes it worse.

Translate viewability into implementation checks

The slot should pass the visibility check before the refresh call fires. Your logic needs to know whether the ad unit is in the viewport, how much of it is visible, whether the tab is active, and whether the minimum elapsed time was counted only during eligible exposure.

Don’t use “the user has been on the page for 60 seconds” as a stand-in for attention. A reader may have scrolled past the unit after 12 seconds, switched tabs, or left the page open while doing something else. A timer that keeps running through those states creates inventory that looks available in reports but weak in the auction.

Policy risk starts with artificial inflation

Google Publisher Policies prohibit invalid activity, and Google AdX buyers expect inventory that is declared and measurable. If your refresh logic creates impressions with no realistic chance of being seen, you’re no longer dealing with only lower CPM. You’re dealing with quality and compliance risk Google Publisher Policies.

The safest operating rule is straightforward: a slot earns the right to refresh only after it has delivered a qualifying exposure window. Then the refreshed creative needs its own real chance to be seen. Anything looser turns viewability reporting into a lagging indicator instead of a control.

How to set safe refresh intervals by ad unit

Safe intervals should start conservative, then move down only after viewability, CPM, and session revenue show the inventory can support more auctions. One universal timer usually misprices attention because sticky, article, feed, and below-the-fold units age differently during a session.

  1. Start above the minimum, not at the floor. Mile Technologies recommends starting with a high refresh rate and reducing it gradually; its example is 90 seconds. That is a useful first test for article body inventory because it lets you see whether refreshed demand clears without immediately stressing viewability Mile Technologies.
  2. Separate high-engagement units from passive units. A sticky footer or sticky rail can justify a shorter test window than a mid-article slot because it stays exposed longer, but it also carries higher UX risk. Treat it as premium screen real estate, not an unlimited impression machine.
  3. Use below-the-fold inventory only after the user creates exposure. A unit that starts outside the viewport should not inherit a timer that began at page load. Start counting after the slot becomes viewable, or you will refresh inventory before the reader reaches it.
  4. Split mobile and desktop tests. Mobile pages have faster scroll behavior, smaller screens, and more accidental obstruction from browser UI or sticky elements. Desktop sessions may support longer dwell, but inactive tabs are more common. Use separate line items, key-values, or experiment labels so the data does not blur.
  5. Lower intervals one placement at a time. If you change sticky, article body, and feed refresh in the same release, you will not know which unit caused a viewability drop or CPM compression. Move one lever, let it collect enough comparable traffic, then decide whether to keep moving.

Common mistakes that trigger policy violations or weak performance

Most refresh problems come from bad eligibility logic, not from refresh as a concept. The pattern is familiar: the setup creates more ad calls than the user’s attention can support, then impression growth gets celebrated while the quality metrics start slipping.

How to measure whether refresh is actually helping RPM

Refresh is working only if session-level revenue improves without unacceptable losses in viewability, CPM, engagement, or ad quality. Impression count is the weakest success metric on its own. Any aggressive configuration can manufacture more ad calls.

Build the test around net RPM and revenue per session. At minimum, compare ad revenue per 1,000 sessions, page RPM, ad request RPM, viewability, fill, CPM, session duration, pages per session, and unfilled impressions. Keep US$ revenue in the same reporting window, and don’t mix direct-sold campaigns with open auction effects unless that’s part of the test design.

Use controlled rollouts, not sitewide switches

Run A/B tests or controlled rollouts by property, template, device class, and placement. If you’re a mid-to-large publisher with multiple properties, don’t enable refresh across the whole network just because one article-template test looked promising.

Google Ad Manager key-values are useful for this because you can label refresh eligibility, interval group, trigger type, and placement type. That lets you compare Google AdX and header bidding outcomes against the same inventory slice instead of reading too much into blended reports.

Look for auction price compression

The failure case can be easy to miss: total revenue goes up because impressions go up, but CPM drops, viewability drops, and users consume fewer pages. Gross lift can hide a weaker session if you’re not measuring the tradeoff.

Use a holdout group with no refresh, then compare revenue per session and page depth before you scale. Publisher Collective recommends A/B testing refresh setups, and that advice matters most when the first readout looks positive while demand quality signals are moving the wrong way Publisher Collective.

A practical refresh tuning matrix for common placements

The strongest refresh setup is specific to the placement: conservative for article body units, stricter for sticky UX, behavior-led for feeds, and interaction-led for galleries. Use the matrix as a starting point, then tune against your own GAM, AdX, and wrapper data.

Infographic matrix mapping ad placement types to best-fit refresh triggers and conservative intervals.
Use a placement-specific matrix so refresh behavior matches attention, not a single site-wide timer.
Placement typeBest-fit triggerConservative starting intervalViewability sensitivityUX or policy riskMeasurement priority
Article body unitIn-view time plus minimum elapsed time90 seconds for the first test; reduce only if CPM and viewability holdHigh, because the reader may scroll past the slot quicklyMedium: poor logic refreshes a unit the reader already leftCompare revenue per session, slot viewability, and CPM; Mile Technologies supports starting high and stepping down Mile Technologies.
Sticky footer or sticky railFixed interval gated by viewport and tab focus60 seconds, with extra caution on mobileVery high, because the unit is persistently exposedHigh: clutter, accidental taps, and user annoyance can offset revenueTrack session depth, close interactions if available, Core Web Vitals impact, and refreshed CPM; Clickio cites Google’s 30-second-or-more recommendation as a lower boundary, not a target Clickio.
Feed or native placementScroll depth, feed movement, or card exposureAfter the ad card has had a qualifying in-view window, not from page loadVariable, because exposure depends on scroll speedMedium: noisy scroll events can overcount eligibilityMeasure feed engagement, viewability by card position, and revenue per 1,000 feed sessions; Aditude specifically notes native refresh in content feeds based on user behavior Aditude.
Gallery or slideshow unitUser action tied to meaningful content changeAfter a slide change plus a minimum exposure gateHigh, because repeated interactions can tempt over-refreshingHigh: superficial clicks should not become ad-call triggersSeparate gallery pageviews, slide depth, ad viewability, and session revenue; Digital Content Next ties proper refresh to session revenue without compromising viewability Digital Content Next.

Use this checklist before taking a refresh test beyond one template or one property:

Frequently asked questions

What is the safest ad refresh interval?

There isn’t a single safe number for every placement, but the conservative starting point most vendors reference is 30 seconds or more on web. The safer interval is the longest one your slot can tolerate while still generating incremental revenue, because a tighter timer can dilute auction quality and ad viewability. In practice, set it by placement instead of forcing one sitewide cadence.

Do refreshed impressions have to be viewable?

Yes, if you want the setup to hold up under scrutiny. The refreshed impression should only fire after the slot has a real viewable opportunity, not just because the page clock kept running. That means gating refresh on actual in-view exposure and the rules you’re following, especially for Google AdX and publisher policy compliance.

Should I use time-based or scroll-based refresh?

Use the trigger that matches the slot’s exposure pattern. Time-based refresh is easier for stable placements, but scroll-based or other event-driven triggers usually make more sense for units whose attention changes with user behavior, like feed placements or content-driven modules. The article’s point is simple: match the refresh logic to the placement, not to whichever wrapper setting is easiest.

Can ad refresh hurt CPM?

Yes. If you refresh too aggressively or before the ad is truly viewable, you can flood the auction with low-quality impressions and pressure CPM downward. The risk isn’t just lower short-term value; buyers may also learn that the inventory is weak, which can hurt bidding quality over time.

How do I know if refresh is worth it?

Test it at the session level and look at net RPM, not just raw impression growth. Refresh is worth keeping only if it raises revenue per session without dragging down viewability, latency, or user experience. If the lift comes from more impressions but the session quality gets worse, the setup is costing you more than it adds.

How we researched this

Sources consulted for this article: