Editor’s note: The following was originally posted on Medium by Vamsee Jasti, AMP Product Manager at Google. This post is part of a larger AMP monetization series.

I’m endlessly fascinated that an advertiser would pay for an ad impression that a user never saw. Yet, that’s how most default ad contracts are written. Many brands are changing how they negotiate contracts or redefining what they’d consider viewable. Plus the terminology itself can be confusing.

Balancing page viewability rate with ad served

Viewability rate (also known as viewability %) is defined as (number of ads viewed / total number of ads served) X 100. Depending on the advertisers it works with, a publisher uniquely configures its site for higher viewability rate or for increasing the number of ads served since they are inversely correlated.

In AMP, tweaking your pages to drive higher viewability rate or views is easy for publishers using the ‘data-loading-strategy’ attribute on the `amp-ad` component.

Data Loading Strategy on amp-ad

The data loading strategy attribute takes a float value between [0,3]. The value represents the number of viewports between the user and the ad on the page. The smaller the number, the longer the runtime will wait to make the ad request and vice versa. If you are a publisher that wants to increase viewability rate, then you’d keep this value to be as small as possible and if you set this to a larger value (e.g. 3), you are instructing the runtime to start loading the ad as long as it’s within 3 viewports of the user’s location on the page.

<amp-ad width="300"
  height="250"
  type="a9"
  data-loading-strategy=1
  data-aax_size="300x250"
  data-aax_pubname="test123"
  data-aax_src="302">
</amp-ad>

If a publisher doesn’t configure this value or the value is set to ‘prefer-viewability-over-views’, then the runtime sets the float value to a default value of 1.25, which is the tried and tested value to deliver a high viewability rate without drastically impacting the total ads served.

data-loading-strategy="prefer-viewability-over-views"

Effect of Render on Idle

Last year, the DoubleClick Fast Fetch extension introduced a mechanism called ‘Render on Idle’ where the runtime would start to request ads that were very far below the viewport if the runtime detected that it was done loading all other components on the page and was idle. As a result, this would lead to a drop in viewability rate but would increase the number of ads served improving the chances of an loading in time for the user to view it. Therefore, note that if you configure ‘data-load-strategy’, then render on idle would be disabled on the page.

As the industry makes its shift towards compensating for viewability vs views, publishers can easily configure and test different strategies for ad loading by changing a single line of code on AMP pages.

Publishers can even consider configuration at the CMS level for additional flexibility.

Thanks to Rudy Galfi and Maggie Shiels for this post.