At least two percent of the ad inventory we are currently tracking across US display ad exchanges is hidden.
How are Display Ads Hidden?
The traditional approach to hiding display ad impressions involves hiding the impressions (and potentially entire webpages containing display ads) within 0x0px iframes included within pornographic websites.
An alternative approach involves setting the opacity of an ad iframe to zero. myonlinearcade.com/ads/crall/300i.php provides an example of this, where the hidden iframe (of zero opacity) follows your mouse cursor. This is an attempt at clickjacking to inflate click-through rates fraudulently across display ad impressions.
With the recent move toward real-time bidding exchanges, ad impressions may now be hidden on high quality websites as well as long tail websites. This happens via a process of fraudulent arbitrage, whereby fraudulent ad traders buy ad slots through one display ad exchange and then resell each of these ad slots multiple times through other display ad exchanges. Fraudulent ad traders achieve this by stuffing hidden webpages within the ad slots they buy. These stuffed webpages are filled with ad slots, and each of these ad slots is then sold on through some other exchange. This is illustrated below.
In the first illustration we show an ad slot which is sold through one display ad exchange. The host webpage comprising this ad slot is often a high quality webpage and the user visiting the webpage will typically be a legitimate human user. In the second illustration we show the webpage that was stuffed by the ad trader within the ad slot bought on the host webpage. This stuffed webpage includes twelve ad slots, each of which will be sold immediately by the ad trader through some other display ad exchange.
An interesting artefact of ad hiding is that many of the ad impressions served on hidden webpages will often be incorrectly reported as viewable.
Consider the second illustration above. Only the top left hand corner of the stuffed webpage will actually be viewable—because the dimensions of the ad slot on the host webpage dictate what can actually be painted to the user’s display. The top ad impression on the stuffed webpage is appropriately positioned on the top left hand corner of the stuffed webpage, and it is within the browser window, so this ad impression will actually be viewable. Beneath this ad impression there are nine ad impressions coloured amber. These nine ad impressions would not actually be viewable. However, if the viewability of these ads is measured by appealing simply to the geometric position of the ad impressions relative to the browser window, then these nine ads would be incorrectly reported as viewable. This is because the boundary of the browser window fully encloses the boundaries of the nine ad impressions. As these ad impressions will never be painted to the display, they will never actually be seen by a user.
We have tool for detecting the ad impressions marked as amber in the illustration. Two percent of the ad impressions we currently track across US ad exchanges are picked out with this tool. As this tool does not pick out hidden ads like the ones marked red in the illustration, two percent is likely to be a significant underestimation of the scale of the problem.
For an explanation of how geometric position is often used as a proxy measure for ad viewability, please consider this screencast.
An Example of Ad Hiding in Practice
YieldZone.com and Viperial.com provide two examples of ad hiding in practice. YieldZone is perhaps the more interesting because the YieldZone homepage is seldom the host page visited by users. Typically the YieldZone homepage is stuffed within other webpages.
In this section we consider how the YieldZone homepage enables 72 ad impressions to be hidden.
YieldZone is currently selling invisible ad slots to the following premium advertisers:
|Aer Lingus; Allurez; American Apparel; Best Western; BrightRoll; Brita; British Telecom; Charter; Churchill; Crucial; Crunch; eHarmony; Halifax; Hotelopia; JustFab; Kaspersky; Lebara mobile; LifeLock; Microsoft; Moo; Santander; Sketchers; T-Mobile; Toyota; Vodafone; Wonga; Westin; Wynn Resorts.|
Within YieldZone.com there are two iframes that are 728px wide and 0px tall.
Each of these two iframes contains three further iframes:
Each iframe contains a 1250x1218px webpage, which is chezinfo.com/ads/B.php.
Each of the three 1250x1218px webpages contains twelve further iframes:
- 4 times 728x90px
- 4 times 300x250px
- 4 times 160x600px
Each of the leaf iframes contains an ad.
Through this chain of nested iframes, 72 hidden ad impressions will be served each time the YieldZone homepage is served.
If the geometric position of the 72 ad impressions is used as a proxy measure for whether the 72 ad impressions are viewable, then 60 of the 72 ad impressions would be incorrectly reported as viewable (on a 2560 x 1440 display with the browser at full height). This would be a viewability rate of 83.33%.
Below we show a 3D representation of the iframe nesting described above. The representation has been inverted so that the leaf iframes are shown at the top and YieldZone.com is shown at the bottom. Below this respresentation we show the six hidden ad-laden pages, chezinfo.com/ads/B.php, with the ads on these pages positioned relative to the browser window in precisely the positions that the geometric approach to viewability measurement would regard the ads as being positioned.
In this post we have considered an interesting type of fraud taking place across display advertising today. Whilst notably smaller than the botnet problem introduced last month, ad hiding does affect at least 2% of the inventory we are tracking through display ad exchanges and so it is significant. Ad hiding is an interesting type of fraud because the ad impressions are being served to real people (as opposed to bots). Ad hiding is interesting also because of its unexpected impact on reported ad viewability, one of the key metrics being discussed in the industry today.