Wednesday, 16 September 2015

iOS9 and Ad-Blockers - The Problem is Reflow, Stupid!

There's a lot being written this week about iOS9 ad-blocking and page load times. Even the Sydney Morning Herald - whose six megabyte pages caused me to complain recently - is syndicating someone else's content that explains what Apple is doing.

The stories I have read focus firstly on sheer wastefulness - pointing out that the ratio of crap to content is mind blowingly large. A second theme is user tracking, which is something I also find pretty obscene (and I used to run a company that built and sold a mobile ad platform!) Finally, there is much complaint about the ads themselves - particularly interstitials.

Whereas these are all valid points, I think the real issue here is one of usability, in particular the invidious usability issue of reflow.
We've all been there. We load a page on our iPhone, we see some content displayed, we scroll down to start reading and, a moment later, the content simply vanishes off screen. This is the page reflow issue.
Asynchronous scripts insert ads into web pages. The ad injection scripts execute after page load (the Sydney Morning Herald devs would not make their users wait for 6MB to be downloaded before rendering content). Instead, the site downloads its core assets and then asynchronously loads scripts that modify the DOM, inserting video players, common content like share buttons and also ads.

The problem is that asynchronous modifications to the DOM cause the browser engine to reflow the page often altering the height of the rendered content. Clearly, vertical content heights are most likely to change on narrow width screens; on mobile that is. The issue becomes worse where multiple ads are injected into the page at uncontrolled times. Slower networks - those with limited bandwidth and/or high latencies - exacerbate the problem. Where connections to multiple hosts must be established problems are multiplied. Lower specced devices run JavaScript slowing content injection further. In summary, it's worse on mobile.

The irony in this is that web developers have had it drummed into them that asynchronous loading of assets is a good thing. Not always.

Ad injection all but guarantees an horrific user experience on mobile.

I said reflow was invidious and I mean it.

Being in the business, I understand that free is a very poor business model. When I read The Sydney Morning Herald over my Bran Flakes, I understand that the high quality content costs money to produce and that this funded at least partially through advertising. So my opinion is that advertising on the mobile web is a necessary evil and should not be blocked.

And so to iOS9 and Ad Blockers. Philosophically, I am in favour of Ads but against wholesale tracking of my movements on the web.

Ad blockers stop the reflows, stop the trackers and, given the column space devoted to this new feature, will likely lead to an uptick in usage, destroying the business model of many a web site.

Knowledgeable people say that strategically, Apple wants me to move from my browser to use Apps - including their new News offering. The analysts say that this will redirect money into their coffers instead of Google's. Apple says it's better for my privacy. The thing is though, my tool of choice for content consumption is my web browser and so I will not move to an App.

Hello then, iOS9. It's not about the Ads per se, but about the relentless, awful user experience of reflow. Although I don't want to, I will install an ad blocker.

No comments:

Post a Comment