The Mobile Video Ad Lie

NYPost.com site loads 10Mb on iPhone, with no videos or video ads to be seen

I’ve long been tired of online and mobile video ad shenanigans. I am not looking for it in everyday Internet browsing life, but it pops up everywhere anyway — and I know what to look for in a very complicated puzzle of URLs. If I were looking for it, it would probably be way worse.

I had heard about heavy mobile web pages, and wondering what was loading that took up SO MUCH BANDWIDTH, I turned on Charles Proxy on my desktop and ran my iPhone’s IP traffic through it, and I only visited one mobile website to test it out: NYPost.com — my guess is there are plenty of other similar sites that will exhibit similar behavior.

NYPost.com on iPhone 6, Mobile Safari, 8/27/15 at 7.10am MT
  1. There were exactly two advertisements on the entire website that I saw. One was merely a small banner (“The Next President of the United States?”) that persisted as I scrolled down, and the other was a 300x250 flat image for “Tamara Mellon: New Arrivals”; both of them have an (x / info logo) in the top right corner. Here’s a link to a few mobile phone screenshots of the website on my phone.
  2. There was no auto-play video on the mobile website, which means that no visible video was playing while I was on the site for the 5 minutes during which Charles Proxy recorded what was loading in the background. It’s quite likely that there were unviewable ads fraudulently loading behind the sole 300x250 ad I saw.

Here are the highlights of what happened between 7:09am and 7:14am on 8/27/15 during my visit to NYPost.com:

  • Over 900 HTTP/HTTPS calls
  • Total sum of response body sizes = 10.8 million bytes, or about 10.3 megabytes. A great deal of this appears to be large JPG files like which are frame-by-frame images of ads. These include: Pur Water Filters (example), and Crest Toothpaste (example)
  • My full IP address (changed in the file by me to 50.xxx.xxx.xxx) is being passed around like chips at a Super Bowl party: a total of 291 times — there are hundreds of “pixel sync” calls, where ad networks and companies essentially “compare notes” on who you are. Adap.tv (AOL/Verizon) for example matches to a whole bunch of other companies by name like Audience Science, DataXu, Turn, Yashi, TheTradeDesk etc:
One company’s syncing calls to match my user identifier with theirs

[Download the Excel file and see for yourself.]

Tracking URLs Give Clues

It’s nice to use a simple tool like Ghostery which gives you the name of a company putting ad or pixel code on a site you are visiting, but often to truly understand sketchy traffic you need to look at the tracking or origination URLs (which usually helpfully, because humans often have to troubleshoot them, are human-readable). For example:

One of 179 trk.fusevid.com tracking calls made on the NYPost.com page

The “adv_name” appears to be the advertiser name, AdapTV in this case (owned by AOL-Verizon now). Advertiser IDs are often useful to compare, and I’ve mentioned IP address. It also passes the user agent (browser), and identifies the device as an iPhone. The supplier here appears to be someone called “PocketMath”, and the website is correctly identified as NYPost.com (sometimes tags for other publishers will show up on publisher websites, perhaps when a publisher or ad network is trying to fill an advertiser or other network’s order but doesn’t have the inventory and so puts ad tags where they shouldn’t). The CPM occurs in some as well.

Across the 179 trk.fusevid.com that you can see in the file, several names recur and patterns emerge: Network partner or advertiser names show up in the tracking URLs(each seeming to occur 20 times): 495communications, AdapTV, Branovate, LiveRail, lkqd, Marimedia, outfox, and TinyLove with associated effective CPMs ranging from 2to 60 (these could be dollar numbers or just weights).

This might indicate that multiple networks or advertisers are paying for traffic that just isn’t there.

A big part of whatever this scheme is, appears to be a pretty new company called LKQD, with a serving URL of lkqd.net (their Twitter account has 13 followers at the time I write this). They appear to be serving up tags with three different pid’s (publisher ID?): 16, 49, and 72, which might mean that they or someone else is pretending this site is multiple different sites, but in adtech it’s hard to be quite sure! But 4 of the 8 VAST tags in the serving ‘waterfall’ for fusevid.com come from LKQD. If they are a tech provider caught up in some sketchy scheme, they probably should know better, especially given their CEO’s LinkedIn profile claims patents he files on viewability from when he worked at Vindico.

Similarly, LiveRail, the video ad serving company and network acquired by Facebook last year for over $400 million, is involved if only by loading lots of tags on the same page in a short period of time (see the file).

I don’t know for sure who owns fusevid.com which shows up all over the place here — the domain has a private/anonymous registration, which itself is sometimes a warning sign that something is Rotten in Denmark. But http://cdn.fusevid.com/ appears to point to besttv20.origin.cdn.level3.net. Other similar domains such as besttv56.flashvod.it.best-tv.com indicate that fusevid is hosted with Best-TV, which references tools to “Quickly and easily insert ads into your video content to drive revenue”. Brightcove’s video platform may have indirect involvement.

The large JPG files I referenced earlier make up the majority of the payload of this page — and are coming from the images.fusevid.com domain. Here again are those example1 and example2 of the image files.

Remember, I didn’t see any video content nor any video ads at all. If there is not willful fraud here, loading ads in the background that are impossible to see, then at the very least it is ‘user-hating’ irresponsible behavior to have a 10+mb payload with hundreds of http calls in a mobile browser.

Online advertising has a tragedy of the commons problem

Many publishers simply must have a sense that something nasty is going on — when their users complain about slow page loads on mobile web — but they either don’t have the tech savvy and/or more likely, they won’t ask questions about how their site could possibly be monetizing as well as it is when simple math indicates that their users aren’t watching that many video streams. Many simply turn a blind eye.

Ad industry insiders talk about “improving viewability” — but make no mistake, these are likely not mistakes made by inexperienced workers — just as mobile ads that pop up iTunes Store pages for mobile app installs are not casual errors — this is an industry that persists by helping already-fraught businesses like newspapers and online publishers survive at the expense of the advertisers who supposedly help us users have free content.

Is it any wonder desktop ad blocking has been on the rise, and many iOS users are excited at the prospect of using content blocking in iOS9 to get rid of mobile ads? The industry has only itself to blame.

And if the already-meager mobile ad money coming in the door to these publishers is largely fraud as it might well be, they’ve soon to have a lot more problems at hand.


The Second Time: in 4 minutes I got 32Mb of payload across 1,405 calls!

If you’ve read this far, you’re clearly either interested in this craziness, or a masochist. It gets better or worse, depending on your viewpoint. I did the experiment a second time. This time, I did actually see an ad unit and an ad — the PUR water ad mentioned before. But I saw only a handful of seconds of the ad before it was replaced with a circle spinning and then an animation of a cart of gold bricks and the ad started again, again running for only a few seconds. This video unit was on the 10th iPhone 6 screen as I scrolled down — so highly unlikely to ever be seen anyway.

I stopped it there, after 33.6 million bytes coursing through my poor iPhone this time for the privilege of loading nypost.com — I think it would have gone on forever most likely. Gold bricks indeed.

Show your support

Clapping shows how much you appreciated Rob Leathern’s story.