Acceptable Ads... I've always been fiercely supportive of Eyeo's Acceptable Ads programme, despite some claiming they're essentially taking bribes to let ads through. It's not a perfect system, but it's the easiest "mainstream" solution supported by every browser (via Adblock Plus).
I run an adblocker, but I also DON'T MIND small ads. But from about 20 years ago, the web became essentially unusable because of the amount of ads. There's also a system security element which I believe makes any adblocker 100% acceptable; the amount of ads pointing you to install malware entirely removes any argument that adblockers are wrong or immoral, especially when setting up systems for vulnerable family members.
I always thought I was being a "Power-User" by combining uBlock Origin (a more efficient adblocker) with the acceptable ads filterlist (which is published by Eyeo and freely available on the filterlists websites), despite uBlock's explicit stance of NOT including any "acceptable ads" programme.
However, after really thinking about it and researching it... It turns out that doing so would give me the worst of all worlds (I'd see ads, but publishers and advertisers would just see a useless broken impression. There are also, currently, no DNS adblockers that explicitly allow all domains supported by or needed for Acceptable Ads to run properly.
I've decided to start a project to act as a two-prong approach... One which is a personal ad blocking DNS server that explicitly whitelists Acceptable Ads, whilst still using the official Adblock Plus extension (which seems sadly to be the only extension that supports the programme). This would mean my entire network is protected from the very worst ad networks (those which absolutely do not support any aspect of the Acceptable Ads programme), whilst leaving higher-level ad blocking to the extensions.
How would one get/build a pi hole? (Very much a self taught computer person trying to branch out, probably not too familiar with all the vocabulary yet.)
Most of what you need to know you can figure out through their site which I'll link but your requirements for this are an always on Linux computer (you may be able to do this on other OSes via Docker but that's not officially supported) and ability to configure the DNS settings on your personal device or even better the DNS on your router so you don't have to set it per device. I also heavily recommend running without logs in anonymous mode so it doesn't create logs which can both be a privacy issue and eat up space. Here's pi-hole's docs:
Country of Origin: Unclear, likely somewhere in the E.U.
Languages Supported: English
License: Free and open source
Download Link: GitHub
Note: this app is different from ones that I've recommended before in that it requires some familiarity with the command line AND is intended to be always running, that way it can automatically connect to your smart TV anytime you launch the YouTube app. Ideally, you would run this on a NAS/server, but any computer that you never/rarely turn off or put to sleep will work.
More details under the readmore, including how it works AND some issues I ran into and how I solved them.
How It Works
Some of you may be familiar with SponsorBlock (completely different app from a different developer) as a browser addon that automatically skips parts of videos that have been identified through crowdsourcing as being paid promotions/filler/otherwise potentially unwanted. iSponsorBlockTV brings that functionality to the YouTube apps on smart TVs, along with automatic ad-muting and skipping features.
You know how the YouTube app on a smart TV can link to your smartphone so you can use it to pause/play things in the TV app, add videos to your queue, etc.? This program runs on your computer and tricks the YT smart tv app into thinking it is your smartphone, which gives it the ability to automatically detect when an ad starts playing and issue commands to the YT app.
Installation
The main issues you might have with this is that it requires at least some familiarity with the command line, AND it really needs to run all the time for it to be seamless. Even I probably wouldn't get up off the couch to wait for a laptop to turn on and Windows to fully boot up and launch this just to watch a video without 2 ads.
If you can get past those requirements though it is HIGHLY worth it imo. The developer has written good installation instructions here, but I did get tripped up by one thing - running the setup command in a docker container that I was managing through my Synology NAS. More on that below.
The setup command walks you through a wizard and then generates a text file (template here) that tells iSponsorBlockTV how to link to your YouTube TV app and what you want it to do once it's linked. If you just installed the program directly using pipx or uv, you can just run:
isponsorblocktv --setup
The tricky part is that if you download the Docker container like I did, it's not intuitive to run the command; you have to log into the running Docker container, figure out the container's directory structure, run the command, and then figure out how to extract the file from the container so it doesn't disappear the next time the container is restarted.
Running the setup wizard from a docker container:
If you have access to the CLI on the OS that is running docker, you can just run this command:
If the resulting wizard looks really weird on your screen, just press q or Ctrl+C to exit it and then try the plain text config wizard by running this instead:
Either of those will walk you through linking one or more YouTube smart TV apps for it to skip ads in. Note that I had to attempt linking a couple of times for each YT app before it worked. This should store your preferences as a file called config.json in the folder location that you passed in the docker command, but definitely double-check that worked before you exit and have to do everything all over again.
Running setup on docker hosted on servers you don't have CLI access to:
However, what happens if you don't have easy access to the CLI on the docker host, like say a NAS, or a cloud environment like Amazon ECS? I was running on a NAS that I hadn't set up SSH access to yet, so I needed to use either Portainer or my NAS's built-in Container Manager UI to run the setup command. Through trial and error, I determined that I needed to log in to the container as the root user using the shell located at /bin/sh, then run this command:
python3 -u main.pyc --setup
And same as above, if the resulting wizard looks really weird on your screen, just press q to exit it and then run the command again but with --setup-cli at the end instead.
Welp. This got away from me again, but I just had to share this program, and I hope the docker idiosyncracies stuff save someone some time 🤷♂️
OH MY GOD CAN COMPANIES JUST KEEP THEIR DIRTY LITTLE HANDS OFF MY DATA FOR TWO FUCKING SECONDS I SWEAR
LIKE APPARENTLY SPECTRUM INTERNET HAS A BUILT IN FUNCTION FOR JUST STRIGHT UP STOPPING ME FROM USING SITES IF THEY DEEM THEM "SUSPICIOUS" ENOUGH?!?!?!?
LIKE 3 SITES STOPPED WORKING FOR ME A WEEK AGO AND I COULDNT FIGURE OUT WHY, I THOUGHT THEY GOT DELETED, AND ANOTHER 2 WHOLE SITES WOULDNT LOAD UP PROPERLY,
IT TOOK ME LEGITEMITELY ALL WEEK TO FIGURE OUT WHAT THE PROBELM WAS BECAUSE I THOUGHT IT WAS MY ADBLOCKERS AT FIRST
like thank god I have a vpn and that works to stop it from messing with my sites, BUT YOUR TELLING ME THAT THATS JUST FUCKING ALLOWED NOW????
I had two years of living in a home with a Raspberry Pi-hole to block ads. I've been here a month and a few days and I am going insane, because the amount of ads that take up my life, are driving me bonkers.