
Block Ads in Apps on Android - whalabi
https://unlikekinds.com/article/block-video-ads-android
======
cheald
On Android 9, you can do this even more easily:

Settings -> Network & Internet -> Advanced -> Private DNS -> set provider
hostname to "dns.adguard.com"

Adguard functionally operates similar to a Pihole install - it just maintains
a DNS-based blacklist. You give them your DNS queries, of course, but in
return you get an almost entirely ad-free experience with just one setting.

~~~
proxygeek
I wasted almost an hour trying unsuccessfully to book a cab using Uber
yesterday only to realise it was 1.1.1.1 in my Private DNS which was the
problem.

I had internet access just fine (browsers) but Signal, Google Maps, Uber and
Ola just wouldn't work with 1.1.1.1. Haven't gotten around to think about the
reason

~~~
Zizizizz
instead of 1.1.1.1 use 1dot1dot1dot1.cloudflare-dns.com

~~~
kfwhp
Wait, how are you supposed to use a host name as a DNS server?

~~~
therein
We heard you like to resolve domain names into IP addresses so we put your DNS
provider behind an A record.

This way you can resolve while you resolve.

------
Fnoord
I'm using Pi-Hole on an Ubiquiti router together with WireGuard and DNSSEC. My
Synology NAS is backup (with regards to the DNS-based Pi-Hole blocking) taking
the adblocking load off the router (there's no redundancy for WireGuard
endpoint though). I don't (need) to use a RPi anymore. It works extremely well
for me, and all my clients also get to connect to Nextcloud running on the
Synology.

My setup does far more than just blocking ads, and works transparent as long
as the client is connected through WireGuard (which works seamlessly over LTE
and public WiFi).

That being said, I really like how Blokada and DNS66 are available in F-Droid
[1] [2], and require minimal technical knowledge to set up. The more [ad
blocking], the merrier.

As a backup measure I use Firefox with uBlock. The only machine I don't use
uBlock is on Kali because I want to see the website exactly as it is being
served.

[1]
[https://f-droid.org/packages/org.blokada.alarm/](https://f-droid.org/packages/org.blokada.alarm/)

[2]
[https://f-droid.org/en/packages/org.jak_linux.dns66/](https://f-droid.org/en/packages/org.jak_linux.dns66/)

~~~
alias_neo
It's interesting you've found the WireGuard experience to be "seamless".

I have a WireGuard VPN at home and experimented with always-on, on my Android
phone. Unfortunately, my provider (EE, UK) throttles UDP traffic something
rotten, and my normally great experience with 50/50Mb+ is severly limited to
between 0 and 10 Mb making my phone almost unusable by normal standards.

Does your LTE provider not throttle this way, or have you found a way around
this?

~~~
Fnoord
On the 2 SIM cards I have (Vodafone NL and KPN NL) they don't throttle, as
that's illegal, but the plans have data limits (after the limit they just
disable 4G for you) and perhaps they do some QoS though. Public WiFi I mainly
use Dutch railways (NS) in trains which uses T-Mobile NL. You (or well,
anyone, AFAIK) cannot use that to watch on-demand movies though. But I just
have that kind of material synced up locally. Same with audio (albeit through
Spotify Premium). So with most of my video and audio synced up locally (and
the same's true with regards to recent Nextcloud pictures) I end up with
mainly traditional websites or apps or an OS/application update or so.

That being said, have you attempted to discuss the issue with them? Have you
considered a non-default UDP port? Also, did you compare the usage with
OpenVPN? I ran OpenVPN before, the roaming, network speed, and latency is
quite terrible.

~~~
jeroenhd
In my experience, there are actually networks that throttle certain kinds of
traffic. For example, on the WiFi on Blauwnet trains I can connect to my
OpenVPN server but WireGuard just doesn't seem to make it through. I assume
this is because of a combination of unknown ports + UDP + uncommon protocols.

I think the trick to bypass this kind of nonsense is to use port 443/1194/53
so QoS + firewall rules will still allow the VPN to pass through.

Haven't tested it yet, but in my experience non-default ports only make the
problem worse. Most filtering/QoS services are pretty dumb and will just match
source and destination ports; most firewalls will just plain ignore everything
targeted at port 443 because the moment you start messing with HTTPS, you're
in for a world of pain. Because WireGuard uses UDP, it's possible to listen on
port 443 even if you're already hosting an HTTPS website. Sadly, you won't be
able to use QUIC or HTTP3 if you do, but I don't think that's much of an issue
these days.

~~~
Fnoord
> Sadly, you won't be able to use QUIC or HTTP3 if you do, but I don't think
> that's much of an issue these days.

Should still be possible. Xs4all had port 80 set up so that if you'd SSH to
it, you'd get connected to their shell while with a browser (the normal modus
operandi) you'd end up on their website. It worked very well in some of the
more oppressive regimes where traffic to port 22 was blocked.

I also don't serve HTTP(S) content on my home connection. I only host
WireGuard, that's part of the point.

~~~
alias_neo
Indeed this, I only host WireGuard and now you mention it, it'd only take me a
second to switch the WireGuard port to 443 or something to test the port
theory.

------
orliesaurus
Dns666 is great and doesn't require your phone to be roolted. It basically
acts as a local VPN client/server combo on your phone to handle the blocking.
Only downside is that sometimes you have to reboot the app when it shutdown
automatically for unknown reason to me.

Pro-tip if you have difficulties in getting the latest updates for one or more
of the inbuilt blacklist host files, try to edit manually their URL to be
httpS. It worked for me!

~~~
michaelcampbell
Only issue is I need to use a company VPN (and when I choose to, a personal
one), pretty often and they can't co-exist with DNS66, so it has to be
restarted whenever I log off of either.

------
tobib
> This is a free, open source app. Open source is important here because all
> your network requests will go through this app, and we need to make sure we
> can trust it. Because the app is open source, if it was doing anything
> shady, it would be found out.

That's the statement that always bothers me because it's only true if you
build the app yourself. This is giving people a simplistic view and a false
sense of security.

~~~
Forbo
If it's available on F-Droid, it can support reproducible builds, so that's at
least one defense against it.
[https://f-droid.org/en/docs/Reproducible_Builds/](https://f-droid.org/en/docs/Reproducible_Builds/)

~~~
pieter_mj
Yes it's available on F-Droid (see comment#
[https://news.ycombinator.com/item?id=19208623](https://news.ycombinator.com/item?id=19208623)),
but currently I have a slight preference for Blokada.

~~~
e40
I use Blokada, and I have less problems using it than I did Dns66. Lots of
things stopped working with the latter, but I have yet to find anything that
doesn't work with Blokada.

However, Blokada has lately been crashing or stopping or being killed. I'm on
Android 9. I have to start it manually when the notification disappears.

------
gattilorenz
Another alternative, on a rooted phone, is AdAway, which can be obtained on
F-Droid ( [https://f-droid.org/en/](https://f-droid.org/en/) ). I'm more than
satisfied with it.

~~~
trishmapow2
Which filter lists do you use? I find a few ads still get through on the
default settings.

~~~
gattilorenz
[https://pastebin.com/raw/L0011N6C](https://pastebin.com/raw/L0011N6C)

Although to be honest I also use the Brave browser,so that might explain why I
have so few ads when browsing. Yeah, I really hate them...

------
phkahler
I wish the play store would just let me filter based on app intrusiveness. Let
me find things that don't use ads, don't have in-app purchases, and don't
collect data. Looking at "paid" apps is NOT equivalent. Then I can maybe read
reviews and get what I want. Once the quality bar has been raised I don't have
any problem paying a few bucks (or more) for an app that behaves the way I
want.

~~~
thisisweirdok
Hell, some paid apps have ads which drives me insane.

~~~
derimagia
It's been a while since I've seen that but would drive me crazy too. I would
immediately get a refund for it and review it appropriately.

------
d2p
> Because the app is open source, if it was doing anything shady, it would be
> found out

This is a little misleading... Just because there is source code on GitHub
does not mean the random APK you're downloading from the internet and side-
loading is safe.

If you're paranoid (and you probably should be - if I was a bad person and
wanted to get malware onto your machines, I'd be making some useful "open
source" app and publishing "its source code" on GitHub too), you'd want to
build the app yourself! :)

~~~
sandov
To be honest, most people wouldn't even bother to know if it was open source,
they would install it anyway. Actually most people probably don't know what
"open source" means.

It would work against the HN crowd though.

------
gwbas1c
Honestly, I want something that blocks spam notifications.

Specifically, things like "you have a free credit" notification from Lyft, or
Amazon's "Check out our new sale" notification.

My phone should not ding for nonsense like that. That is SPAM, and that is not
something that I need to know immediately.

The problem is that apps like Lyft and Amazon have rather important
notifications, so blocking all notifications from those apps is not possible.

~~~
whalabi
Oh boy I'm with you 100%

Especially when it's an app I want or need, and it has notifications I need,
but still sends out spammy ones too.

I think this is possible on Android as you can give apps access to
notifications, so it could filter them.

~~~
xur17
I want this for chrome on desktop as well. A large portion of websites are now
asking for 'notification' permissions, when it most cases it makes no sense
(think news websites).

~~~
whalabi
Yeah this bugs me too

Also (although I'm going on a tangent now) there's mobile news sites that
require 3 or 4 clicks before I can read the article: close the app download
prompt, the gpdr prompt, the subscribe prompt, the video hovering over half
the screen.... It's maddening.

------
jandeboevrie
Even at night when you don't use your phone, you are tracked and served ads. I
use blokada and it blocks over 5000 ads and trackers in three days, 12 hours
of effective usage, meaning 400+ ads/h:
[https://raymii.org/s/blog/My_phone_serves_me_400_ads_per_hou...](https://raymii.org/s/blog/My_phone_serves_me_400_ads_per_hour_blokada_blocks_beats_them_all.html)

Blokada is easier to use that dns66, just one big button and you're done. It
doesn't require root, but just like this app uses a local vpn (on the device
itself, no servers involved).

For me it even blocks ads inside the YouTube app, which Adguard on iOS
couldn't do...

~~~
kayone
which filters do you use? I tried for so long to get youtube ads to block and
at the end, I just gave up.

~~~
hivacruz
Youtube ads are hard to block. Use NewPipe to watch videos there

------
fulafel
So this is a userspace app that reconstitutes the VPN encapsulated datagrams
into outgoing networking socket API calls, a bit like slirp in ye olde days? I
can't imagine this process is very lossless, does it really properly handle
multicast, ipv6, protocols other than tcp and udp, etc?

edit: apparently, the Android VPN is flexible enough that they can direct only
DNS traffic through this process, which mitigates it quite a bit. This issue
has some tech details: [https://github.com/julian-
klode/dns66/issues/193](https://github.com/julian-klode/dns66/issues/193)

------
hivacruz
How does it compare with Blockada?

[https://blokada.org](https://blokada.org)

~~~
gamesbrainiac
I've used both and Blockada is better mainly because it has a couple of killer
features. One example is that it will keep the app alive, so that the power
saving features of your phone does not kick in and turn it off.

~~~
Forbo
Any experience with NetGuard? It has similar functionality and walks you
through preventing the battery optimization from killing it.

~~~
gamesbrainiac
I haven't really tried. Blockada never gave me a reason to.

------
Marsymars
I'm all-in for blocking ads, but I've found full-OS ad-blockers to be entirely
unnecessary - I simply don't use apps with ads.

The few apps with ads that I sometimes can't avoid aren't fixable by ad-
blockers. (e.g. ads in Google Maps)

~~~
turtlebits
I use Blokada and it blocks a lot of telemetry data. Saves my data usage as
well.

I don't use any apps with ads, but Blokada has reported blocking ~100k
requests a week on my phone.

~~~
Marsymars
Does it have an effective breakdown of number and destination of requests per
app?

I prefer to generally leave telemetry enabled, and simply not use apps from
publishers whom I don't trust to use it responsibly.

------
sebsauvage
I also did this: [https://sebsauvage.net/wiki/doku.php?id=dns-blocklist-
en](https://sebsauvage.net/wiki/doku.php?id=dns-blocklist-en)

------
kyriakos
Been using [https://blokada.org/](https://blokada.org/) Which works the same
way with good results. Helps a lot to save on mobile data.

------
ywecur
None of these DNS blockers have ever worked on YouTube for me, nor any of my
other streaming apps.

Honestly the only real solution I've found is to use Ublock Origin in Firefox
for Android.

------
sizzle
I've been using blokada on Android and it's been a joy honestly, life without
obtrusive ads taking up precious mobile screen real estate is hard to live
without. When I use my partners phone it's like a carnival with all the flashy
ads trying to get my attention. Good riddance.

[https://blokada.org](https://blokada.org)

------
ignoramous
I posted a comment on how to do this (without requiring root or installing 3p
apps for Android 4 and above) here on a HN thread on AdGuard DNS.

Copy-paste from
[https://news.ycombinator.com/item?id=18788410](https://news.ycombinator.com/item?id=18788410)

For anyone running on Android 9 or later, navigate to

Settings -> WiFi and Internet -> Private DNS

Select Private DNS provider hostname

Add dns.adguard.com (DNS over TLS)

Click save.

Visit [https://segment.com](https://segment.com) and you should see browser's
'Server not found' (disable existing ad-blockers or they might jump in and
block the website anyway).

\---

For anyone on Android 4.0 or later, consider using Intra [0] to use AdGuard
DNS over HTTPS, if you prefer it over cloudflare's or google's.

Install Intra.

Open the app, click on Settings.

Choose customer URL and paste: [https://dns.adguard.com/dns-
query](https://dns.adguard.com/dns-query)

Be sure to 'lock the app' to prevent it from being killed in the background,
and enable 'Auto Start' for the app from installed apps settings page if on
newer android versions that support it.

[0] [https://getintra.org](https://getintra.org)

------
mlrtime
For Samsung owners I've heard good things about SABS:
[https://www.androidsage.com/2018/03/29/download-install-
sabs...](https://www.androidsage.com/2018/03/29/download-install-sabs-simple-
ad-blocker-for-samsung/)

------
AdmiralAsshat
Has anyone done testing to see what having an always-on VPN for adblocking
does to battery usage?

Also, I have an _actual_ VPN for my Android phone that I turn on whenever I'm
on coffee shop wifi, so it seems like it would be impossible to have both
running at once.

~~~
michaelcampbell
> so it seems like it would be impossible to have both running at once.

It is. You need to restart the adblocker VPN when done (at least DNS66
operates this way).

That said, I haven't found a measurable difference in battery when using one.

------
Forbo
What does DNS66 offer over NetGuard? Near as I can tell, they both use the VPN
functionality to work, both don't require root, and both are available on
F-Droid.

Edit: I guess Blokada is another to consider, just heard of it from this
thread.

------
8bithero
[https://adguard.com](https://adguard.com) has a similar approach using VPN.
Would be interested to know if anyone has compared battery drain of the
various apps

~~~
ameshkov
Well, it is not that similar. DNS66 is just a DNS changer/filter, AdGuard is a
full-scale traffic filter and firewall: [https://adguard.com/en/blog/adguard-
vs-adaway-dns66/](https://adguard.com/en/blog/adguard-vs-adaway-dns66/)

------
mesaframe
A more actively worked on app which serves the same purpose would be
[https://blokada.org/](https://blokada.org/)

------
towb
When it's between 10+ ads per hour or very expensive monthly premium for a
pretty bad but addictive game, this is at least a battery saver.

------
on_and_off
>It's important that free apps continue to be made, and app developers need
money to go on doing what they do. So if you can't stand ads in your apps, try
to support them in another way, by making a donation or paying a few bucks for
the full version of their app.

It feels more than a little disingenuous to post that at the end of a post
explaining how to cut the revenue source of devs.

If you don't want ads, how about you pay for the premium tier of the app ?

~~~
Forbo
Because paying for something doesn't necessarily mean that they won't continue
to use your information in the surveillance economy. You might not see ads
anymore, but that doesn't mean that they're respecting your privacy.

~~~
deogeo
Smart TVs are a good example of this. And most Android phones. And some US
ISPs. And Windows 10. And the Sidewalk Labs projects. I'm sure there are many
other examples. You cannot expect what are effectively hostile entities to
treat you well, just because you give them money.

------
rohan1024
The way Google is dealing with AdBlockers at the moment soon all these VPN
based apps will be taken off Play Store.

~~~
Tsubasachan
DNS66 isn't on the Play Store- you have to sideload it from F-droid or github.

------
chewz
Since Android Pie uses DNS-over-TLS it is very easy to setup DNS-based ad-
blocking yourself. It requires only dnscrypt-proxy and nginx.

[1] - [https://github.com/jedisct1/dnscrypt-
proxy/wiki/Connecting-t...](https://github.com/jedisct1/dnscrypt-
proxy/wiki/Connecting-to-a-remote-dnscrypt-proxy-client-from-Android-Pie-
using-DNS-over-TLS)

------
Timothycquinn
Great idea but what if you want to use a separate VPN service which is
disabled by this app? Does this VPN just cover DNS or does it secure all
traffic? When on public wifi, I want to have PIA VPN enabled.

Does this secure all DNS traffic like Cloudflare 1.1.1.1 app? If it does, I
may use it with the exception of public wifi.

~~~
Forbo
Near as I can tell, there's no way to run an actual VPN alongside something
like this. I've been wanting to figure something out myself. Thinking more and
more that I just want to set up a DNS tunnel to my home network and set up a
PiHole there for similar functionality.

------
fs111
I run unbound DNS + openvpn on a raspberry pi to do the same. Works pretty
well.

------
gesman
Anything like possible on iPhone?

~~~
lotsofpulp
I use 1Blocker X and don't see any ads.

~~~
eugeniub
1Blocker X only blocks ads in Safari. It doesn't block in-app ads, such as the
ads in the YouTube app.

------
baybal2
Too bad, a truckload of app these days intentionally hardcode ad server IPs
and check for blocking.

------
scarejunba
Can’t remember the last ad I saw on Android or iOS in an app. On the web,
sure. In an app?

------
ddstvsucks
su root + adaway + afwall.

Accept no imitations.

------
mlevental
doesn't work for YouTube

------
gammateam
_reads article to see anything has changed since 2014_

VPN and host file?

In my apps I would just check the host file or ping a certain address to
detect if a user was doing this

I would then serve a different kind of ad, shrug emoji

------
richdougherty
For those struggling to keep their VPN app alive on Android Pie, you can
disable the "Battery Optimisation" feature on a per-app basis.

The setting lives under Apps & notifications / Special app access / Battery
optimisation / <App name e.g. Blokada> / Don't optimise.

I still think this is a battery win because of all the ads I'm not downloading
and displaying.

------
jonwinstanley
So you're sending ALL your internet traffic through a VPN, that you know
nothing about? Sounds like the craziest idea I've ever heard.

Who owns the VPN? What are they doing with your data?

~~~
r3bl
...no?

You create a virtual "VPN" that filters out traffic based on hostnames. DNS
requests that are not on the blacklist get forwarded to your DNS of choice.

Other adblockers for non-rooted Android (like NetGuard) work in the same way.

