Ad Refresh Without the Penalties: A Policy-First Playbook
Refresh can lift revenue on long sessions, from gaming guides to live scores. Done carelessly, it inflates impressions buyers don't value and breaks ad server policy. Here is how to do it right.
Why refresh is back on the agenda
Sites with long sessions, such as gaming guides and wikis, live score pages, forums, tools and calculators, have a structural problem: a reader may stay on one page for ten minutes while the ads load once. Ad refresh, requesting a new ad in the same slot during the page view, lets those sessions produce revenue that matches the attention they hold. With the NCAA tournament starting this week, sports sites are about to see exactly those long, live-updating sessions.
But refresh has a mixed reputation for good reason. Poorly implemented, it produces a flood of impressions that are barely seen, hurts viewability and trains buyers to bid less on your inventory. It can also put you out of compliance with your ad server's policies.
Start with the policy
If you use Google Ad Manager, refresh is allowed, but it must be declared. Google's guidance on declaring inventory that refreshes distinguishes three triggers:
- User action refreshes, triggered by the user, such as clicking to the next slide or tab. On web there is no minimum interval.
- Event-driven refreshes, triggered by the publisher in response to an event such as a score update.
- Time-based refreshes, which happen at a set interval.
For event-driven and time-based refreshes on desktop and mobile web, Google sets a 30-second minimum between refreshes; for apps it recommends 60 seconds. Publishers must declare which inventory refreshes, the triggers and the minimum interval. Google notes that the declaration does not control behavior: your code must actually match what you declare. Failing to declare, or declaring inaccurately, is a policy violation.
Other SSPs and exchanges have their own rules, and some require refreshed impressions to be flagged or treat them differently. Check each partner's terms before enabling refresh on inventory they buy.
Rules that protect your inventory's value
1. Refresh only what is being seen
The single most important rule: do not refresh a slot unless it is in view. Use the Intersection Observer API or your ad server's viewability events to track whether a slot is at least half visible, and count time toward the refresh interval only while it is. A slot that scrolled out of view two minutes ago should not keep cycling ads nobody sees.
2. Pause when the tab is hidden
Use the Page Visibility API to stop refresh timers when the user switches tabs or minimizes the window. Refreshing hidden tabs creates impressions with zero chance of being seen, and verification vendors notice.
3. Cap refreshes per slot and per page
Set a maximum number of refreshes per slot, for example a handful per page view, and consider requiring user activity (a scroll, click or keypress) within the last minute before any further refresh. This keeps idle, forgotten tabs from generating inventory.
4. Tell buyers what they're getting
Pass a key-value or signal indicating whether an impression is a refresh and how many times the slot has refreshed. It lets you report on refresh performance separately, apply different floors, and exclude refreshed impressions from line items that should not receive them.
5. Protect direct-sold campaigns
Sponsors and guaranteed campaigns usually expect first-impression placements. Exclude them from refreshed impressions unless the contract explicitly allows it, and never let refresh count toward delivery goals the buyer did not agree to.
6. Keep the page stable
A refresh that changes the creative size can shift content. Reserve slot dimensions in CSS and prefer sizes that match what the slot already holds. Layout shifts caused by refresh count against your Core Web Vitals just like those on page load.
Event-driven refresh done well
Some of the best refresh opportunities are tied to meaningful events rather than timers: a new score posted, a user moving to the next step in a walkthrough, a new batch of forum replies loading. These moments align a new ad with new content the user is actively looking at. Declare them correctly as event-driven, respect the minimum interval, and they tend to perform better than blind timers.
Where refresh fits by content type
- Gaming guides and wikis: readers keep a walkthrough open while they play. Visibility and activity rules matter most here, because a tab can sit open but unattended for a long time.
- Live scores and live blogs: event-driven refresh tied to real updates aligns ads with fresh content.
- Tools and calculators: refresh on meaningful user actions, such as running a new calculation, rather than on a timer.
- Standard articles: most readers leave within a few minutes, so refresh adds little. Focus on recirculation instead.
How to tell if it's working
Judge refresh by its effect on the whole session, not on impression counts. Run a controlled test with refresh on and off, or with two intervals, and compare:
- Revenue per session, including both first and refreshed impressions.
- CPM of first impressions. If they fall after enabling refresh, buyers may be discounting your inventory overall.
- Viewability of refreshed impressions compared with initial ones.
- Bounce rate, session length and page speed metrics.
If refreshed impressions show low viewability or first-impression CPMs slip, tighten the rules: longer intervals, stricter visibility requirements or lower caps.
Refresh should follow attention, not a clock. When ads refresh only for people who are actually there, buyers pay for them.
Refresh is one of the few levers that adds inventory without adding page views, which makes it valuable on engaged, long-session content. Declared honestly and implemented with visibility and activity rules, it earns its place. A managed setup should be able to show you refreshed impression viewability and CPM separately at any time.
Related Articles
Q4 Starts in 10 Days: A Yield Checklist for Lifestyle, Retail and Travel Sites
The fourth quarter is when ad budgets peak and mistakes cost the most. A practical checklist for code freezes, floors, supply chain hygiene, direct deals and monitoring before October 1.
Amazon DSP Can Now Buy Publisher-Hosted PG Deals in GAM. Get Your Setup Ready
Amazon DSP self-service buyers can now run Google Ad Manager programmatic guaranteed deals with creatives hosted by the publisher. Here is how to package and traffic those deals before Q4.
Google Now Uses IP Addresses for Ads in Europe. Check Your TCF Strings
Since August 3, Google uses IP addresses for ad measurement and personalization in the EEA, UK and Switzerland. Publishers need their consent setup to disclose it correctly.