How to Ensure and Improve Programmatic Ad Viewability

Rasheed Ahamed
Rasheed Ahamed
How to Ensure and Improve Programmatic Ad Viewability

Ad viewability has always been an important part of programmatic media transactions.

For the past few years, media buyers such as GroupM have been pushing publishers to go beyond the minimum 50% in-view viewability standard, and last year the Media Ratings Council (MRC) proposed video ads should have a 100% in-view standard using the vCPM metric, regardless of distribution platform.

Some premium media publishers began offering viewability-focused products, knowing some advertisers will pay a premium for highly-viewable impressions. For instance, The Economist has ‘ViewGuarantee and TimeGuarantee’ products for advertisers who want to buy ads that are in-view for specific time periods.

But most publishers don’t have the scale or the engineering resources to offer in-house products, so they focus on increasing the ad viewability of the impressions sold via open marketplaces and Private Marketplaces (PMPs) — and keep viewability top-of-mind as they negotiate deals and analyze performance.

In this post, we’ll show how you can increase ad viewability by taking a holistic approach towards optimization. As a publisher, you can influence the viewability of the ads by controlling what happens before and during a page load.

Before a page load

Before a user loads a page, you can:

  • Identify the best placements to ensure you’re serving viewable ads once the page loads
  • Ensure only the best demand partners compete for impressions, thereby improving response time. This, in turn, increases the likelihood of ads being seen
Identify the best ad placements
The first and most important step when it comes to increasing viewability is to determine the right placements for the ads. You want ads to be seen and offer a better user experience.

Here’s how to determine which placements will result in better user experiences and higher viewability:

1. Use what you already know

Unless your page layouts are completely different and unique from the rest of the site, you can rely on best practices. A study from Google concluded that median viewability for ATF (above the fold) ads is 68% and approximately 40% for BTF (below the fold) ads.

Google data on above- and below-the-fold ad viewability

(Source: Google)

While the study isn’t new, it still holds true — but that doesn’t mean you should try to squeeze in more ads above the fold; it means you can utilize space more efficiently. For instance, horizontal ads can go ATF while vertical ads can be on the sidebar.

Page scroll depth is another factor to consider. Some publishers aim to engage users by making them scroll to read their content. If your pages have better page scroll depth, ATF/BTF placements may not have a considerable impact on viewability.

Google data on ad viewability by page scroll depth

So, with the help of average scroll depth data, user engagement, and placement-level viewability scores, you can devise a set of ad placements to start with and then optimize based on the change in % viewability, CTR, and eCPM.

2. Utilize the data from high-viewability refresh

Ad refresh is on the rise and publishers are experimenting with different types of triggers. But if you are also considering viewability to reload ads, it’s an opportunity to determine your best placements. As you are only refreshing ads seen by your users, you can identify the placements where ads are refreshed often — i.e., placements with more refreshed impressions.

Ideally, they should be the right placements for you to target.

3. Consider sticky ads

Sticky ads are common, yet publishers tend to use them incorrectly. Sticky ads don’t have to be adhesive all the time, nor do have to be placed solely at the top or bottom of the page.

You can make certain units adhesive for a specific period of time (say, x seconds), experiment with sidebar placements and different vertical ad sizes, keep an ad in-view from one point to another (using div ids), and more. Most importantly, try different rules for different layouts.

Google examples of sticky ads on desktop and mobile

(Source: Google)

Again, understanding your users’ behavior can help you determine the best set of rules.

Optimize for demand latency

Thanks to header bidding, publishers across the verticals have seen better eCPM because of the intensified competition among demand partners. But you don’t need to connect to tens of demand partners when only a handful will bid for the impressions.

Unnecessarily sending bid requests and waiting for responses increases latency. While setting a universal wrapper timeout is always an option, there are other ways to reduce the latency in this process.
"With 1 s of added delay, viewability rate decreased by 3.6% for mobile traffic and 2.9% for desktop traffic."

1. Bidder throttling

Bid duplication is a problem that demand-side platforms (DSPs) actively try to solve. Header bidding led to increased duplicated bids and this, in turn, eventually led to Supply Path Optimization (SPO). Demand-side platforms are actively trying to find the optimal route to get the impression and are cutting down the unnecessary supply paths in the process.

Supply-side platforms (SSPs) have a compelling reason to cut down the duplicated bids (and Queries Per Second) and deliver better results to DSPs to strengthen the partnership. For instance, PubMatic, OpenX, and others use their bid throttling algorithms to send the selected bid requests to DSPs — requests that are likely to win.

This isn’t new but publishers don’t have to rely on SSPs to throttle bids. They can throttle at the wrapper-level and send the request to selected SSPs, further improving the auction speed and efficiency. You can send bids to SSPs when it makes sense. Let’s say if you have an SSP to sell impressions from specific geolocation, then only send requests if the user is from that geo. If you partner with SSP for a particular format, send requests only when you need to fill in the format.

"One German sales house we spoke with recently, mentioned that a buyer might only see 70% of their supply if they were only accessing it via one SSP."
Cadi Jones, commercial director EMEA, Beeswax (Source: The Drum)

These are just simple examples. You can experiment and cut down the request when possible.

2. Go with the best bidders

As previously noted, header bidding increases the eCPM because of the better bids from demand, not because of the presence of the partners. Not all partners are going to bid for every impression and most of them aren’t going to win.

Analyze bids, bid rate, win rate, etc. for the demand partners in your stack and ensure to send bids only to the top header bidding partners.

During a page load

When a user loads a page, you can improve the viewability score by:

  • Loading ads faster and only when they’re likely to be viewed
  • Ensuring pages are loaded with ads as the user scrolls
Ad loading

1. Front loading decisions

A publisher can acquire bids and creatives (not just bids) from the header auctions before sending the bids to ad server auction. If a header bidding partner wins, the creative can be delivered instantly to the user without needing to send a second request to get the creative — but it’s better to keep an eye on discrepancies between the SSPs and the ad server.

Besides, if Google Ad Exchange (AdX) is winning most of the auctions, then it’s not going to have much impact on the ad loading speed. So, measure the results and then decide what’s right for your setup.

2. Lazy loading

Regular pages: Lazy loading can boost your viewability score substantially based on the implementation. Rather than lazy loading ads across the site the same way, create rules, as users tend to be more engaged on some pages while skimming others.

For instance, if you know users are engaged across a certain category of articles, send ad requests when the ad is 500–600 px from the browser view-port. You can change the ‘px’ value based on how engaged the user is. If they are skimming certain pages, it’s better to have a higher value.

AMP pages: Similar to regular web pages, AMP pages allow you to lazy load ads. You can use the ‘data-loading-strategy’ attribute and set its value between 0 and 3. The higher the value, the longer the runtime will wait for the ads. If you want to increase viewability, you have to keep it at 1 or 2. If you set it at 3, you are making the requests and rendering the ads when the ad slot is 3 viewports away from the user’s current position on the page.

Google examples of regular and amp page ad landing page lazy load speeds

(Source: Google)

3. Viewability-based refresh

When done right, ad refresh can increase viewability substantially. We studied over 150 websites using our advanced ad refresh technology to see the impact on viewability. Over a course of three months, average ad viewability increased by 48% and viewability of the recreated (refreshed) impressions is 50% higher than that of first impressions.

Several publishers have seen their ad viewability jump when they use viewability or time-in-view to deliver additional impressions rather than just refreshing based on a standard timer.

Page loading

1. Asynchronous loading

Asynchronous loading ensures that the header bidding or any ad script on the page doesn’t block the rest of the content from loading. While it’s a known practice, publishers often fail to match the loading speed with universal timeouts. For instance, loading the content instantly but not rendering the ads on time (before a user scrolls down the page) can be a problem.

Asynchronous ad loading speeds


The advertiser may have won the auction and sent the creative but you should ensure the creative is rendered. That is, keep an eye on ad load rate. Rendering ads that aren’t seen by the user can negatively impact viewability. That’s why it’s recommended to adjust the timeout for the auctions and ensure ads are rendered as expected.

2. Connections and delivery

It’s important to understand browser limitations to determine how you can increase page speed, and thus ad viewability. Browsers like Chrome can only handle 10 concurrent connections at best, which means you need to minimize the number of HTTP requests by combining the CSS files, removing/delaying other scripts (for example, a chatbot/pop-up can be loaded after 5 seconds), etc.

Browser limitations can impact ad viewability

(Source: Google Developers)

Most importantly, leverage a Content Delivery Network (CDN) to deliver both ads and content faster without any delay. Using HTTP/2 Protocol is another way to combine HTTP requests to reduce server load. You can also reduce passbacks while using Google Publisher Tags (GPT) and set creative-size limits on RTB calls.


To sum up, try to take a broader view to understand and include all the factors impacting viewability and start optimizing them. Though coming up with the best placements and increasing ad load speed can have a substantial impact, improving page load speed and response times from bidders can take your domain viewability further. Small improvements can add up to a big uplift.

Rasheed Ahamed
Rasheed Ahamed

Rasheed Ahamed works as Organic Growth Lead at Automatad, Inc., a digital media products company that provides a suite of programmatic monetization solutions that drives efficiency and superior monetization at scale. Automatad's platform allows digital publishers to create, monetize, and optimize for the best ad experiences.