iOS adblocking options (August 2018)

After getting into a deep dive with Android adblockers I started wondering whether anything changed on iOS (my daily platform of choice) since the last time I researched this topic.

Adblock-ios

iOS adblockers were first approached by Apple with the release of iOS 9 when they introduced an adblocking API for Mobile Safari. The API was so simple and limiting at the same time that few developers pushed out a couple of adblockers literally within days after the iOS 9 worldwide rollout. And the reason was that anyone could build an adblocker for iOS in a matter of few days - it was (and is) that simple. The differentiating part is just the list of hosts (filters) to block was slightly different between the adblockers but the main idea was the same: the user had to open Settings.app -> Safari -> Content blockers and enable his adblocker of choice, thus allowing the system block the hosts included in that app. So in order to launch an adblocking app you could just scrape few filters, maybe some opensource ones and you're done 🙂

The problem was with the limited amount of filters per one app. Even though 50 000 hosts sounds like a lot, in practice it wasn't enough to block ads efficiently. I started my journey of finding the best iOS adblocker right after the new iOS release with Purify, then with Peace (which was live only for two days), Crystal and ended up using 1Blocker (which is now 'Legacy'). I decided on 1Blocker since it has a Mac app with iCloud sync of your custom filters, whitelists, settings etc.

After a year of using 1Blocker I started noticing more and more ads in Safari. It felt like the developer abandoned the app which later was proven by him releasing 1Blocker X - an updated version of the adblocker the developer supposedly was working on. Not willing to support the developer's new version which might be abandoned someday with his next work, I started searching Reddit in order to find a replacement. Some people suggested using AdGuard, others replied not to trust an adblocker made in Russia with your browsing info which made sense. People were recommending many adblockers I already tried, including 1Blocker, mostly because of its strong word of mouth. Then in the end I saw few comments recommending Wipr and seeing it's 4.8 star rating helped me to decide in its favor.

Adblock-ios2

Wipr goes around the limitation of 50k hosts by setting itself up as three content blockers all of which you should enable in the Settings.app which is quite clever. But the most important thing besides the app's clean simple interface is that it actually does the job - now I'm seeing less ads, pages are loading fast again.

Even though I now had a new working adblocker I was still unsatisfied. I couldn't believe that having only an adblocker only in Safari is the only option in fighting ads and tracking on iOS. But then I recalled that in addition to an adblocker on macOS I'm using custom DNS servers, two of them to be exact.

So if you want basic working adblocking on iOS - you now have few choices. As for additional protection you can read my followup on custom DNS servers on iOS and in general.

And if you're into complete and best possible privacy options, you can read my take on using VPNs on your devices with some specifics about iOS.

Adblocker privacy

Adblocker-privacy

After scratching the surface with my best Android adblocker review and the tl;dr version of the results I wanted to share a deeper take on the privacy aspect of using adblockers.

The Adblocker Results #2 and deeper insights (longer, recommended version)
Let's get back for a second to the apps that didn't make the cut as the adblocker options I've tested:

  • Free Adblocker Browser - was crashing after start not giving the option to test it at all
  • AppBrain Ad Detector - detects apps on your device which might send your data. Marked Facebook app as highly malicious 🙃
  • AdAway - requires root, so it's not an option for everyone
  • TrustGo Ad Detector - asks all possible permissions upfront (how reading my messages or call info would help me stop seeing ads on the web?) which you never should allow unless you're completely sure what you're doing. The irony with the 'TrustGo' name is actually really funny. Trust them all with your data and go away 😃 Uninstalled.

The last app actually brings up an important topic with adblockers - privacy. The thing is, when you allow any adblocker to work on any of your platforms, what you essentially are allowing it is getting access to all your browsing information, so the adblocker can see it and cut out ads and/or trackers. That's why if you don't want your adblocker instead of blocking ads actually use your browsing data for serving you even more personalized ads, make sure you install a trusted one.

As you probably know by now, there are few ways of blocking ads: by using adblocker extensions for Yandex Browser and Samsung Internet browser (and maybe others that didn't cross my eyes), or using a standalone browser like the AdBlock Browser with adblocking already built in. Both ways do their job in a reasonable manner, but what if you're using Google Chrome as your default browser and you don't want to give up bookmarks, passwords and history sync with your Google Account? For that case there is a third option which enables you not only block ads in Google Chrome but block them overall, through your whole system. And it's done by installing a sideloaded apk which creates a local VPN server on the device itself and sends and receives all the Internet traffic through it, filtering it on the fly. How insane is that? Setting a local VPN server on your cellphone - Android never stops impressing me with its crazy hacks.

When you (or in our case the app on your behalf) setup a local VPN, except being able to filter ads and trackers on a much wider scale, throughout the whole system and in all of your apps you'll get two additional advantages if you compare such solution to connecting to the Internet via a traditional remote VPN:

  1. Unlinke remote ones, local VPNs don't consume almost no additional battery power for the same filtering operations
  2. Local VPNs don't add that painful additional delay of your phone transferring all the data through a remote server. As the result you get ad filtering without sacrificing your Internet connection speed.
    But there are few disadvantages as well:
  3. Local VPNs usually don't encrypt your traffic like remote VPNs do, so you don't get that additional layer of security
  4. Your device IP address will still be the same, so you won't be able to go around IP-based resource blocking, Great Firewalls, access restricted websites unlike while using remote VPNs.

That said, when you're using VPNs on Android you have to choose between fast and efficient adblocking or slow but secure Internet browsing. If you know any way that combines the two - please hit me up 🙂

Since usually no one usually would setup a local VPN for blocking ads on their own, that means we'll have to rely on someone's solutions. And by rely I mean trust some company not to use our browsing data in malicious ways. We already have issues trusting big companies like Google, Facebook or Apple which have something meaningful to loose if it turns out they are in fact using our data for their own advantages and without our consent. But what about smaller companies? On one hand for them loosing trust often means just getting out of business, since small companies usually are barely profitable and can't afford loosing any substantial part of their userbase by being involved in privacy scandals. On another hand such companies have more incentive to get those few additional bucks by selling your data in order to survive. And frankly after the latest news of Facebook beating their all time high stock prices even after privacy controversies, it sends a wrong signal to companies which collect any kinds of data that it's okay to leak or sell it - people won't care anyway and investors would still love you.

That being said it means that nobody except you won't really care about your privacy. And even though as mentioned in the first part of the research AdGuard's local VPN does the best job filtering ads not only in Google Chrome that doesn't support adblockers, but in other apps and throughg the whole system in general, people are legitimately concerned about the safety of using any AdGuard's products since their team is actually based in Russia and registered on the non-neutral law-enforcement Cyprus. Even though the openness of the developer and opensourcing their products help a bit, they still don't overcome the overall fear of using any kinds of tools (especially those ones that potentially can snoop your traffic) coming from Russia and that those tools and their developers are considering privacy like they should. Because of that on Android as the adblocker browser extention I would recommend using Adblock Plus which was build as a non-profit organization from the ground up and uses donations to keep developing their product. Having AdGuard's local VPN set to high filtering mode and enablihg https filtering is your best bet against ads but you may risk with your privacy instead. But if you still looking forward to a local VPN you can trust, I highly recommend you another free open-source project Blokada built by a few guys in their spare time that don't have a big company behind them with big expenses that need to be covered by potentially selling end user's data or whitelisting ad companies which usually is another form of income for adblocking companies. Granted AdGuard has a paid Pro iOS app and a subscription business model, but I doubt their earnings from those on a market with generally free adblocking solutions (including their own) is enough for you to trust them with your data.

Best Android ad blocker (July 2018)

Best-android-ad-blocker-july-2018

Recently I had interesting and boring at the same time thing to do: find out which ad blocking options on Android are worth considering.

Starting with a disclaimer: even though all my testings were meant to be objective, some of the results might be inaccurate or non-repeatable. This is mostly due to the nature of the adblocker tests themselves: depending on your Android version, adblocker version and the filter databases state you can and you will get different results than me. In fact your results may vary each time on the same website, like mine did sometimes. Your results may even depend on other apps installed on your device and your device's performance in general. Also I didn't research traffic savings and how secure each adblocking option is - both are separate big topics to discuss on their own and weren't my concerns at the time.

Having that out of the way, here's my setup, testing methodology and short summary of the research.

The Setup
All my tests I ran on a Xiaomi Mi A1 powered by Android One and running Android 8.0 with May security updates. I don't have many apps installed except few messengers and few utility apps (Dropbox, 1Password). I'm not running any VPNs on the device and was using my home private wifi for the consistency of tests.

The Methodology
I used this list of websites to test adblockers. Pi-hole.net in general is a very nice resource that knows and tells how to avoid ads and trackers on the Internet - I highly recommend checking them and their free opensource project.

Not all the websites from the list were even loading, so you will find a shorter list of them in my raw data spreadsheet.

The idea was to go through this selection of websites and each time use a different adblocker or browser. That's what I did and that's what I consider the boring part - opening 12 websites 11 times is not very amuzing 🙂 But what was interesting were the results and what I learned in the process.

The Results (short version)

  • If you're okay with Yandex Browser - free AdGuard Content Browser is probably your only viable option, since there is nothing much else that works with Yandex Browser and also keeps the ads out.
  • If you're rocking Samsung Internet Browser - both free AdGuard Content Blocker and Adblock Plus are good choices, even though I would recommend sticking with Adblock Plus, because of my personal privacy standpoint against AdGuard, on which you can read in the end of this post.
  • Google Chrome users don't have much choice except sideloading (outside of the Play Store) AdGuard for Android or Blokada since Google Chrome doesn't support adblockers. Actually it's a very nice option for everyone, but use it with caution, and read more info on local VPNs. I personally use Blokada out of the two.
  • No good adblocker news to third-party browser lovers out there. Opera Browser has some filtering built in which in my tests are clearly not standing ground against ads like the other solutions. And although Adblocker Browser is doing its job well on par with their own browser extension, their browser experience part is less compelling than Google Chrome or Samsung Internet Browser bring.
  • Nice adblockers remove the ad but leave the frame. Good adblockers remove blank spaces as well. AdGuard and Adblock do the latter.

If you're interested in the privacy concerns of using an adblocker, I highly recommend reading part #2 of my research that focuses on the deeper level of how adblocker function and what you should be aware of while using one.

Added:
For best iOS adblockers look here.