iOS Systemwide Ad Tracking

With iOS 10 Apple is changing the way that the "Limit Ad Tracking" setting works in Settings > Privacy > Advertising, and it seems to be causing a mini storm in a teacup among the adtech world. 

According to "privacy thought-leader" Alan Chapell: "The net effect is Apple is enabling iOS10 users to effectively opt out of advertising."

Is this the case? Short answer, No. Long answer, lets jump back to 2011...

History

Every iOS device has whats called a UDID (Unique Device Identifier), which is a static string of characters, unique to your device, and cannot be changed. With the UDID, your device could be recognised between different applications, allowing advertisers & analytic services that developers use to build a profile of you to serve you more personalised adverts based on your behaviour and the apps you use.  

In iOS 5, access to the UDID was deprecated. This means while it was still available, Apple was giving advanced warning that this would eventually be revoked.

When iOS 6 got announced, it came with a new API specifically for advertisers to use and give more control to the end-users. This was called IDFA (Identifier for Advertisers). This worked in a similar way to UDID, only instead of having a static ID per device, users could opt to reset the IDFA at any time or "Limit Ad Tracking" where a developer has to agree that their app honours this setting while submitting an app. 

Changes in iOS 10

So in iOS 10, the functionality of "Limit Ad Tracking" is changing. Previously, turning it on would randomise your IDFA to a new string and set a flag that you have requested to limit tracking. As this new string was static until you have requested to reset it or disable "Limit Ad Tracking", it could still be used to track you, but Apple believed that developers & advertisers would follow its rules and ignore it for behavioural purposes. I doubt many app developers checked the code of their advertisers of choice to see if they conformed to "Limit Ad Tracking" when including their SDK, and I have no doubts that many abused this or simply not understood it.

In iOS 10, when you enable "Limit Ad Tracking", it now returns a string of zeroes. So for the estimated 15-20% of people who enable this feature, they will all have the same IDFA instead of unique ones. This makes the IDFA pretty much useless when "Limit Ad Tracking" is on, which is a bonus, as this is what users will expect when they enable the feature. These users will still be served ads, but its more likely they will not be targeted to them based on their behaviour. 

If you want to test the IDFA functionality, I made an example project for iOS which you can test in the iOS 9 & 10 simulators to test the differences, and the Apple API documents for this are hosted here.

Conclusion

I personally think this is a great change for iOS, although personally I would prefer this option to be presented to the user during on boarding, enabled by default, or no longer hidden under several menu layers. My main concern however from the editorial was this quote in particular:

The issues I see with this change is that it breaks legitimate advertising models, forces companies to use more intrusive tracking methods and doesn’t necessarily improve user privacy.
— Mark Chapell

For advertisers, they should notice minimal differences assuming that they are honouring the "Limit Ad Tracking" preference. This quote seems to suggest that some(most?) advertisers are not honouring this option and their business models rely on 100% behavioural tracking. Losing the 15-20% of people who opt-out breaks their advertising model forcing them they try more "intrusive" methods to profile you. This further proves that the advertising industry cannot be trusted to self-regulate itself when it comes to honouring user privacy and is one of the many catalysts that turn people to adblock tools, such as Crystal, for their privacy needs. 

I'll end with this quote from this article on Digital Content Next by Chris Pedigo:

Do consumers have a right to opt out of advertising? – it should be painfully obvious by now that consumers are already opting out of advertising. Instead of throwing stones at groups and companies trying to address the underlying consumer need, perhaps Chapell and the ad tech lobby could work on giving consumers an easier and more robust way to express their preferences.
— Chris Pedigo, DCN

Introducing Crystal for Samsung Internet Browser

What is Crystal?

Crystal is an adblocker that I originally released alongside iOS 9 for iPhone & iPad. It had a strong launch and reached #1 on the App Store in 32 countries worldwide! As of today, it is now it is available on Samsung Android devices running the latest Samsung Internet Browser included in the Marshmallow (v6.0) update.

In the latest version of Samsung Internet Browser, Samsung has built in a Content Blocker extension API which allows 3rd party apps, such as Crystal, to provide a filterlist to the browser to block content online. Such as adverts & user tracking.

By using Crystal to block obtrusive advertising, pages will load faster and consume less data.

Once you try browsing with Crystal, you won't want to switch back! 

What features does Crystal for Samsung Internet have? 

Crystal is able to load many different community supported filter lists for blocking adverts in different international regions, block privacy intrusive trackers, malware domains and social networking annoyances.

Also Crystal includes the ability to support sites that conform to the Acceptable Ads criteria by allowing non-intrusive advertising. For people who want to block all ads, there is a “one tap” button to disable the feature to block all known advertising online.

Finally, Crystal updates its filter lists seamlessly in the background ensuring that it is always up-to-date to give you the  most optimal adblocking experience.

Any update on Crystal for iOS?

Yes! I am working hard for the new 2.0 update which is due out soon and has some great new features that have been requested by the community. Watch this space!

Crystal on Google Play: https://play.google.com/store/apps/details?id=co.crystalapp.crystal
Crystal on Apple App Store: https://itunes.apple.com/app/id1022177308
Press Contact: dean@murphyapps.co

 

 
Get it on Google Play
 




Crystal - FAQ's

I've had a lot of questions about Crystal and Content Blocking in general over the past few weeks. Here's a little post to clear up some info. 

What does Crystal do?

Crystal is a content blocker - It primarily blocks 3rd party adverts and tracking scripts, stuff that runs in the background when you visit sites. It removes irritations such as full screen interstitials with tiny close buttons, popups/popunders, autoplay video, unwanted redirects to the App Store... All the annoyances you have with the modern day web. 

Why would I want Crystal?

A side effect of blocking adverts and tracking is performance. After profiling 10 popular news sites with & without Crystal, I found the pages fully loaded 3.9x times faster on average while using 53% less data. It's tricky to measure, but it's safe to say this has a very positive impact on battery life too! 

Does it work on every website? 

The majority of sites, yes! As I am unable to fully test the whole web, I have built in two great complimentary features. A "Report Site" feature that makes it easy to let me know when a site is showing adverts or not functioning correctly, and a Smart Sync, which allows me to update the blocklist remotely.

What about 3rd Party Apps?

Content blockers only work in Safrai, and any apps that use the new Safari View Controller, such as Twitterrific

Wait, don't websites rely on ad income?! Why are you doing this?

A question I've asked myself on and off the past couple months. Truth is, the mobile web has become a polluted, and this is the first real opportunity to clear it up, for better or worse. There is a lot more going on behind the scenes when you load up websites, this great post by Rob Leathern profiles The New York Post and has some amazing findings. Unfortunately, this practice is quite common within the industry. 

Can Crystal track your browsing habits?

No - Content Blockers on iOS 9 are not able to view this data.

Is Crystal going to be a Universal App? 

Yes - Fully native on iPhone and iPad.

Will there be an OS X Version?

Yes - That is planned. 

What languages will it support? 

English, French, German, Spanish, Danish, Japanese & Chinese (Simplified & Traditional).

When is the release date?

If all goes to plan, it'll release with iOS 9.

Whats your pricing model?

To ensure I can support the app in the long term (I have some great features planned!), and to cover any cloud hosting costs, it will be a premium app. No price is decided yet.

Can I help beta test and/or be notified when its released? 

I've reached the maximum amount of testers I can currently hold until Test Flight is ready for iOS 9 apps. However you can sign up to join the Test Flight beta, I'll be randomly* selecting 1000-2000 people from the list to test when Test Flight is ready. You can also use the form to signup to be notified when Crystal is released. 
*If you were in the first 500 on the list, you're guaranteed a spot!

 

Crystal Benchmarks

Update 25/8: I suck at math - I originally posted that pages loaded 74% faster. They actually load 3.9x faster - and the time to load is reduced by 74%. I've edited the below post to reflect this. 

2 months ago I wrote about what I accomplished in an hour with Safari Content Blocker. What started off as a one page experiment has since evolved into a full product I've worked non-stop on over the past 60 days. I thought it would be a good idea to revisit my original post with Crystal, to show how different the mobile web will be with content blockers. 

10 Websites

For this experiment, I have picked 10 pages from different news websites - Some I use regularly, some I don't. The metrics I'm monitoring is page size (in MB) and load time (in Seconds). 10 pages is far from a good sample size for the web, I know, but the web is a big place, and my time to benchmark is limited. 

Websites tested: New York Times, Business Insider, Macworld, Wired, The Verge, PC Gamer, iMore, Kotaku, Huffington Post, Vice.

Method: All sites tested on an iPhone 6+, connected to wifi (154Mb Fiber). All metrics are taken from Safari Web Inspector after doing an Ignored Cache Reload (CMD+Shift+R).

Results

On average, pages loaded 3.9x faster with Crystal and used 53% less bandwidth. Just by having Crystal installed, I saved a total of 70 seconds and 35MB of data on these 10 pages.

See charts below with the raw data.

Page Load Time in Seconds

Page Size in MB

When can I get Crystal? 

Short answer - When iOS 9 is released.

I've already got iOS 9 - Can I get it sooner?

Crystal is currently in a closed public beta, with access rolling out to more people every few days. To sign up for the beta or get notifications when its released, click here for more details. 

I've also made a little Crystal splash page and Twitter account @_CrystalApp to keep you all updated with progress. 

An hour with Safari Content Blocker in iOS 9

I took a little time out today to watch WWDC Session 511 to learn about how Safari Content Blocking will work in iOS 9 and OS X El Capitan. After an hour, I had a little concept app running. I wont really explain the technical details of how the extensions work or how to create them, that is better done by watching the WWDC Session video directly, but I will say its frightfully easy and the code I used for the blocker detailed below is at the bottom of this page. 

Ok, so the website I decided to try "fixing", is one that I see linked often, iMore. Let me start this by saying I really like the content that iMore provide and enjoy the personas of their staff on their many podcasts (Debug is one of my favourites!), but I hate the experience of their mobile website as it has several ad's by many different providers, all tracking me across all different sites. They have super tiny 'close' buttons that are near impossible to hit, they follow you as you scroll and there is a slow loading full page interstitial that loads on every page refresh. Urgh! Anyway...
 

Looks

Here is a screenshot of before & after the content blocker has run.

Space Grey @3x + IMG_8111.png
Space Grey @3x + IMG_8111 + IMG_8114.png

I don't know about you, but I think this website looks a lot more better now. The content I want to see is there in front of me, uninterrupted and free of clutter.  (note: I dismissed the App Store banner at the top and couldn't get it to reappear for the second screenshot). 

 

Performance

With no content blocked, there are 38 3rd party scripts  (scripts not hosted on the host domain) running when the homepage is opened, which takes a total of 11 seconds. Some of these scripts are hosted by companies I know, Google, Amazon, Twitter and lots from companies I don't know. Most of which I assume are used to display adverts or track my activity, as the network activity was still active after a minute of leaving the page dormant. I decided to turn them all off all 3rd party scripts and see what would happen. 

After turning off all 3rd party scripts, the homepage took 2 seconds to load, down from 11 seconds. Also, the network activity stopped as soon as the page loaded so it should be less strain on the battery. 

I later blocked the CSS div's reserved for ad space and for the rotating carousel at the top as one of the scripts i blocked broke the functionality and I didn't really like it enough to fix it, for details, see the copy of my JSON below. 

Would I block content? 

Now, this was fun little project to mess around with, but it does give me a moral dilemma. Do I care more about my privacy, time, device battery life & data usage or do I care more about the content creators of sites I visit to be able to monetise effectively and ultimately keep creating content?  

Tough question. At the moment, I don't know. 

If anyone wants to play around with my (very limited) Safari Content Blocker Extension, here is a copy of my JSON