Advertising budgets are under pressure. More than half of global advertisers are expected to trim spend this year as economic uncertainty, geopolitical tensions, and changing consumer behaviour force brands to scrutinise every pound they invest in media. For news brands and digital publishers – many of which rely on advertising to fund quality journalism – this means every impression must work harder.
The key is ad viewability. Measuring whether an ad is actually seen by users, rather than just served in the background, has become one of the most powerful levers for protecting and growing revenue in 2025 and beyond. For publishers looking to stay competitive, this guide breaks down how ad viewability works, why it has such a direct impact on ROI, and the practical steps that can turn more served impressions into viewable, monetisable ones.
Turning ad viewability into value
Rather than buying ads that just load on a page, advertisers are increasingly paying for impressions that can be proven to appear on a user’s screen, and programmatic platforms also often prioritise inventory with stronger viewability scores. A banner that never enters the viewport, or a video hidden below the fold, represents lost income no matter how many times it’s technically served.
As a result, ramping up ad inventory is no longer an effective path to growth for news and media brands as it doesn’t just harm user experience, but can also dilute performance if ad placements rarely become visible. Instead, the focus must be on ensuring that the ads you already serve are genuinely seen. Every incremental percentage point of viewability can translate into higher earnings per thousand impressions (CPMs), better fill rates, and stronger demand from premium advertisers.


Hitting the right numbers
Not every ad served is automatically considered viewable. The Media Rating Council (MRC) sets the industry standards for when an impression can be counted:
- Display ads (standard): At least 50% of pixels visible for 1 second
- Large display ads (242,500+ pixels): At least 30% visible for 1 second
- Video ads: At least 50% visible for 2 consecutive seconds
This is why an ad that technically loads but sits below the fold, or appears too late, won’t generate value. With these standards in mind, publishers can calculate and track their own viewability rates to identify underperforming inventory:
Viewable Impressions ÷ Served Impressions × 100 = Viewability %
For example, if 1,000 ads are served and 500 meet the criteria, this would result in a viewability rate of 50%.
According to industry standards, most publishers should target 60–70% viewability, with anything below that signalling potential issues.
Optimising for impact
Strengthening ad viewability begins with understanding which factors determine whether an impression is seen. Two key considerations are how quickly your web pages load, and where ads appear on the page.
Site speed is often the hidden driver of performance. Slow-loading pages give users time to scroll past ad slots before they fully render, leaving impressions counted but unseen. Optimising for speed through image compression, lighter scripts, and smart lazy loading not only improves UX, but also increases the odds that ads are on-screen when users are actively engaging.
Placement is just as critical. Ads tucked below the page fold or in low-engagement areas rarely achieve strong viewability scores. Positioning units in zones that attract attention, and timing their load to match real user behaviour, ensures more impressions are actually viewable.
By focusing on general speed and placement first, publishers can capture more value from the inventory they already have, paving the way for an uplift in CPMs, fill rates, and revenue without adding new slots.
Leveraging Google Ad Manager
The next step is making sure improvements in speed and placement translate into revenue, which is where GAM becomes essential. As the platform serving and tracking most display ads, GAM offers both viewability measurement and delivery optimisation, helping more impressions register as seen.
A key starting point is Active View reporting, which shows the percentage of impressions that meet the industry’s definition of viewable depending on the ad type. This data highlights underperforming placements, making it easier to improve results over time.
From there, viewability targeting allows you to package and surface your best-performing inventory to advertisers who prioritise quality over quantity. These high-viewability segments often attract stronger bids, boost CPMs, and maintain healthier fill rates.
Technical tweaks to boost ad viewability
Once the basics are covered, publishers can achieve further gains by fine-tuning how and when ads are requested and displayed. Even small adjustments in Google Publisher Tag (GPT) setup can lift both viewability and revenue:
Improve ad load timing
In addition to using lighter creatives and reducing page weight, preloading and prefetching the GPT script where feasible can ensure ads appear when they’re most likely to be seen. For example:
<link rel="preload" href="https://securepubads.g.doubleclick.net/tag/js/gpt.js" as="script" crossorigin="anonymous">
<link rel='dns-prefetch' href='//securepubads.g.doubleclick.net' />
Specifically on WordPress sites, this can be implemented via enqueuing filters or by adding the preload and prefetch tags to your theme’s header.php, ensuring the GPT script loads with higher priority.
Use smart lazy loading
Fetching ads only as they approach the viewport prevents wasted impressions and reduces strain on page performance. GPT offers the googletag.pubads().enableLazyLoad() method, which accepts parameters like fetchMarginPercent, renderMarginPercent, and mobileScaling for top-level tuning.
If your page contains a large number of ad slots or is particularly long, relying solely on googletag.pubads().enableSingleRequest() can create bottlenecks and hurt viewability – ads may technically load but never be seen. Lazy loading mitigates this risk, and for even finer control, publishers can implement a custom IntersectionObserver to define exactly when ad slots are requested and rendered.
Refresh with intent
Refreshing slots with googletag.pubads().refresh() can increase monetisation, but it’s crucial to only refresh ad slots that have already met viewable criteria. Refreshing ads too early, before they are seen, can drag down overall viewability scores and harm revenue in the long term. By waiting until an impression is confirmed as viewable, you keep Active View scores strong while still generating incremental income from additional impressions.
By implementing these small but impactful optimisations, publishers can turn more of their served impressions into measurable revenue, while creating a faster, more engaging experience for users. Over time, these incremental gains compound-boosting CPMs, strengthening advertiser trust, and helping your publishing platform deliver consistent results even without the luxury of larger budgets.
Ready to invest in a publishing platform that performs? Big Bite builds custom WordPress ecosystems that deliver speed, scale, and measurable results. Learn how we improved publishing workflow management for The Times or contact our team today.



