What is lazy loading?
Lazy loading is a feature that enables ads to serve only when users are likely to actually view them as they scroll down a web page. Ads that are above-the-fold and immediately visible to users are rendered straight away because users will view these straight away. Ads that are below-the-fold will not render until they come into the user’s viewport.
Typically, when the browser makes a call to the webserver, the entire page, including all ads, is loaded at once. This happens regardless of whether the user is likely to view the ads at the bottom of the page or not. Lazy loading ads means stopping those that are initially out of view from loading when the page loads. Instead, they are only loaded as the user scrolls to a point where they are needed.
To sum up, lazy loading will fetch ads as the user scrolls and the ads will then display as the ad comes to within a certain distance of their viewport.
Where can you apply lazy loading?
Lazy loading can be applied on a per-unit basis. It is best to apply lazy loading to ads located below-the-fold as this will reduce latency and CPU consumption. Ads that are above-the-fold are already within the users’ viewport and as such, it is not necessary to lazy load these ads.
What are the benefits of lazy loading ads?
Improved user experience
Ads can be resource-heavy, and publishers are all too aware of the impact on speed and performance of running too many ads on the page. Lazy loading can help with this in two ways: Firstly, because ads are only loaded if they are likely to be viewed, the number of ad requests can be reduced. Processing time and bandwidth that would have been used on an unseen impression is saved.
As well as reducing total load, lazy loading can also help with the perception of speed. Because those ads that are “delayed” are not called for on the initial page load, this frees up resources to load and render the main content. This helps the page load faster, with the ads then being called after the content is safely on-page. Fast loading pages are also beneficial in terms of SEO because Google’s ranking algorithm favours pages with shorter load times.
Better Viewability
With lazy loading, ads that are not likely to be seen are not loaded, resulting in fewer unviewed impressions being served. This can drastically improve your viewability scores. Advertisers hate paying for impressions that users do not see, so the higher your viewability score, the more valuable your inventory is to those booking high-paying campaigns.
A 1% Increase in viewability = 2% increase in CPM
Viewable impressions are often used as a campaign KPI for advertisers, indicating more accurately that a user has actually seen an ad – this can also translate into higher click-through rates. Advertisers will often avoid low viewability inventory entirely and some SSPs will only pay for impressions that were viewed.
Improved revenue
The implementation of lazy loading ads will generally lead to improved revenue over time for publishers. This is because lazy loading will only trigger ads to load when a user is actually going to view them. As such, this will improve your overall viewability which, over time, will increase the value of your inventory and lead to more competitive auctions and better rates.
Are there any limitations to lazy loading ads?
Lazy loading sounds like an easy way to improve both the user experience and increase revenue in one hit. Unfortunately, it is not that simple. Available inventory may be negatively affected since lazy loading only renders ads when necessary, which decreases the number of ad requests made to the ad server and reducing the total number of impressions served.
If publishers are paid on a CPM basis, this can initially have an adverse effect on revenues. Even though it will most likely be the lowest CPM impressions that are not served, lazy loading does still reduce the number of impressions. As the effects of higher value inventory are not instant this means that most publishers will see a short term drop in revenue when they implement lazy loading.
Another drawback of lazy loading ads is that it is difficult to split test. This is because ad viewability improves over time and until it does improve, advertisers will not bid higher. Therefore, it is not particularly valuable to carry out such tests as you are unlikely to see any quick improvements in revenue.
Finally, whilst most advertisers do take ad viewability into account when building a campaign, if it is not a KPI then it is unlikely that they will pay only for viewable impressions. In which case, you would be letting your revenue take a hit for impressions that buyers were not dissatisfied with.
How to get the most out of lazy loading ads
By default, lazy loading reduces ad impressions in order to improve viewability. Because of this, there are certain scenarios whereby lazy loading will not be beneficial to publishers, users or advertisers. Reduced ad impressions can often lead to less revenue. If you are implementing lazy loading to improve site performance, then you should go for it. However, if you are planning on implementing lazy loading with the aim of improving viewability and increasing revenue, there are some things you should consider:
- Viewability bucket rank: Advertisers can bid on inventory based on viewability ranking which is usually ranked in increments of 10%. As such, improving your viewability from 61% to 69% would still be within the ‘60% or greater’ rank. If your viewability is already 80% or above, then lazy loading won’t have a significant impact on either viewability or CPM rates.
- Device type: Implementing lazy loading for mobile users will usually lead to a greater increase in CPM rates, despite having less impact on viewability. For desktop users, the opposite is true. Desktop viewability and CPM rates are usually higher than mobile anyway, so if your viewability on desktop is already high, you are unlikely to see a significant improvement in revenue.
- Target GEOs: Implementing lazy loading for users in target GEO markets has a greater CPM uplift than for users in non-targeted GEOs. This is because you will see better viewability with the GEOs that you are targeting because those users are more likely to engage with your content.
Should I implement Google Ad Manager’s lazy loading function?
Ad Manager publishers have the option to use Google’s solution to lazy loading. GAM’s lazy loading leverages Single Request Architecture (SRA) to trigger all ads to render as soon as the first ad is visible to the user. If ads are placed above-the-fold, lazy loading will be less beneficial because the ads below will be triggered to load anyway regardless of how far down the user has scrolled.
Because of this, GAM’s lazy loading is less advantageous than solutions that load ads on a unit-by-unit basis. Publishers and experts, like OKO, have their own custom solutions that trigger each unit individually when it is in-view or close to in-view. We recommend implementing a solution and measuring improvements on a unit-by-unit basis.
Can you implement lazy loading in AdSense?
Currently, there is no native support for lazy loading ads in AdSense, but there are ways to do it. It is important to ensure policy compliance and safety around this behaviour.
Final thoughts
To summarise, lazy loading delays the process of rendering until users are likely to see ads. Usually, this is achieved by triggering ad requests only when a user scrolls to a certain point on a page close to the ad itself.
Publishers that sell inventory via PMPs and direct deals are likely to see the most benefit as buyers tend to cherry-pick high viewability ad units. This allows publishers to package their inventory and sell it for greater prices which mitigates the losses due to reduced impressions.