Content Blockers and You

October 17, 2015 6 minute read

iOS 9 came out almost 24 hours ago. Content blockers, a new extension feature in iOS 9 that allows for blocking of web requests, cookies, and HTML elements, are already at the top of the App Store charts with tens of thousands of downloads.

This has a potentially large impact on the future of the Web. The mobile web used to be a relatively safe zone for ads – to block ads/trackers on iOS, you had to be savvy enough to know how to (or accept the security compromise of) jailbreaking your device, or use a VPN, or be on a corporate network that blocks such things. Now, it’s as easy as updating to iOS 9 (which the majority will do within a few weeks, as always), finding and installing an app, and turning it on in the Safari settings.

This is not the first time a browser has shipped with content blocking built in. Internet Explorer has had InPrivate Filtering since IE8 in 2009 (although it was rather limited until IE9). The feature was there, but you had to install your own filter list. Mozilla also recently added a new experimental feature called Tracking Protection to Firefox, which uses a list they maintain.

The difference is that these filtering features are for desktop browsers, are rather obscure and unknown, and require effort to set up. On desktop, the most popular browser extension has always been one of the various well-known ad blockers – we all know that. A significant portion of browsing is now done on mobile devices. With iOS 9, ad/tracker blocking is no longer something you just have to know exists because a friend told you; it’s a feature actively being advertised by Apple with download buttons right where people will look for them. Take a look at PageFair and Adobe’s slides on the cost of ad blocking. It’s being projected that in 2016, a total of $41.4 billion will not be earned due to ads being blocked.

So, what now?

Sometimes we come across sites that are so filled with third-party code the website owner has no control over; sometimes things are just slow because the owner doesn’t know what can be done to solve it. The latter is forgiveable, and typically not a significant problem. Third-party code, however, is most likely produced by companies that employ people to do this job. These companies are now, hopefully, under pressure to work out how to either play cat-and-mouse by hacking around content blockers and then doing it again every time they get added to a block list, or finding how to optimise their code to reduce the problem as much as possible.

Web platform evangelists have been discussing #perfmatters at large this year. After all – you’d rather get to what you want as quickly as possible and with minimal bandwidth used so you can squeeze more pages into your monthly data cap, right? The web we want is fast and with few bandwidth and privacy worries.

If you’re a website owner with ads or trackers on your site, please consider looking for ad networks that track less, are not obtrusive to the user, and have a small bandwidth and memory footprint. More points if you take the plunge and reduce the total number of ads or pick a smaller ad size, but don’t make a significant impact on your income if you can’t afford it.

Gruber had this to say about The Deck, one of a few examples of a great and user-friendly ad network:

Whether he’s biased because Daring Fireball uses The Deck ads is up to you, but I think it’s pretty fair in general for all ad networks like it. In fact, Marco Arment’s own Peace content blocker app blocks the Deck ads on marco.org.

This is not just about ads. There are other sources of bloat on the web too. One such example is web fonts, which Peace can block.

Only a few weeks ago, I switched this site from using Font Awesome, a font containing a plethora of vector icons, to using an SVG (Scalable Vector Graphics) sprite of only the icons I actually use. As it turns out, there was a lot of bandwidth wasted there. I only needed 11 icons out of its total 585! Two days ago, I replaced the logo at the top of the page with a vector image too, allowing me to remove two web fonts from the page (two web fonts still remain, which even still is a lot). I obsess about this a lot; bytes saved is a win for me (I can pay less for bandwidth), and an even bigger win for the user (faster page loads and less bytes consumed).

If you’re an ad or tracker network, please review the code you send to browsers. Is there anything you could sacrifice? Have you forgotten to enable DEFLATE compression on your servers, or haven’t been minifying your code, or has your code been blocking the page from rendering for a noticeable amount of time? Or is it just a really big file? Is it worth dropping IE8 support and removing Old IE-specific code? Dropping jQuery in favor of Zepto.js? Fight back by giving people what they want – faster page loads.

If you’re a user, please consider what you’re doing when you install a content blocker. What is your objective – to block all ads, or to only block obtrusive ads, malware, and trackers? If you’re looking to block all ads, just be aware that you’re misunderstanding the point of content blockers. If your content blocker app of choice has an option to whitelist websites you trust, please be sure to use it. Support the sites you visit most. Additionally, if it has a setting to allow only unobtrusive advertising, consider using that too. Don’t forget a smaller block list means Safari has to do less work with every web request to check if it should allow it or not.

If you’re looking for a faster browser, you might want to look into Opera Mini. It works differently from your standard browser. Web pages and all their assets are downloaded to an Opera server, which then applies techniques to optimise and compress the page for delivery to your device, with noticeable savings of up to 90%. It can handle the majority of websites well, while still allowing their ads to be served. The highly optimised mode I’m describing (there are two other less optimised modes) won’t work for every website, particularly ones with heavy JavaScript, but do give it a try.

Finally, if you’re the author of a content blocker. If your default rules go by the view that they should annihilate all ads, please help to fix the misconception that this is what content blockers are for. Make your default settings to block bad things only, not ads from people that try to do the right thing.

Things are going to get worse before they get better. We just have to stick together and remember it’s all in the hopes of a new web where the user’s privacy and speed are valued above all else. This is the web we all want; let’s work together to make it so.

I’ll end with this great talk from DEFCON 23, I Want These Bugs off My Internet presented by Dan Kaminsky, which explains the whole issue of slow third-party code on web pages.