With other browsers showing varying degrees of interest in declarative content blocking, it's worth looking at Safari as a warning of what declarative content blocking, if unmaintained, will do to cripple ad blocking for users.
So there has always been a detente between adblockers and publishers, presuming the former hit a small enough set of users that it was just ignored. It seems that is no longer the case.
It was a frustrating experience, I've tried Safari multiple times over the years since it is so much better on battery life, but Chrome always wins in usability and adblocking.
I switched back to Chrome + uBlock Origin and could use those sites ad-free again. Well, except for Twitch, since they found a workaround for adblockers last year.
You can already see what that’s like with podcasts where local ads are spliced right into the audio file. You’re not stopping that short of doing something like buffering the content and running it through an AI, and if that became widespread we’d just see more embedded placement (“Hey, protagonist, why are you so irresistibly sexy?” “It’s these new briefs from My Undies”).
Adtech is a multi billion dollar industry and the people making the content you want are enthusiastically supporting them. This is not a problem which technical tricks can solve – as soon as you do something effective, Google can deploy hundreds of engineers with huge resource budgets to foil you. That won’t change without something like regulatory changes to lower the financial pressure.
Which is completely desirable. The problem isn't "ads", it's "targeted, personalized ads that rely on thoroughly destroying the the privacy of everyone on the internet in order to function". If a show/podcast wants to vet its own advertisers and endorse a specific product, that's great; it establishes a concrete relationship with the advertisers that has more value to both users and content creators than the anonymous, unvettable system of opaque middlemen currently peddled by targeted ad networks.
This can be solved by crowdsourcing it: https://sponsor.ajay.app/
Content blockers are limited by design to ensure privacy and speed, but they may work together with other kinds of Safari extension. So, when AdGuard guys say that the only debugging tool you can use is Console, know that this isn’t true. There’s SFSafariExtensionHandler API which you can use with blockers as another extension with higher privileges to track who blocked what. Very handy in debugging (and informative for the user).
Should I say that converting something like EasyList to Safari content blocker json is trivial? It is. Granted, ABP has more capabilities in its extended syntax, so you won’t be able to convert everything. There's also some rules that don’t match 1 to 1, but it isn’t something that can’t be solved.
Compiling speed, for the process that happens once the blocker rules json is changed, is irrelevant for the users, unlike battery life. Thanks to the compilation, content blockers have less overhead.
The number of rules limit is a non-issue. As explained in the original, EasyList has lot of mergeable rules. I may add that it has some overlapping rules too. And if for whatever reason you hit 50k limit, you can add another content blocker extension to your app.
And the most important thing. It seems that AdGuard guys don’t get why content blockers in Safari don’t run scripts. It’s privacy. But Safari itself doesn’t prevent you from doing that, only not as a part of content blocker extension that is privacy-safe.
Speaking of YouTube ads, yeah, it’s a pain point. By blocking resources you can get to the point where an ad will be a white screen or a video loading delay. To get around those you have to get beyond what content blockers are offering. I’m thinking about adding that capability into my blocker, but it isn’t a priority.
Google Docs doesn't have to run on Google servers. It could run on any operating system and work from anywhere provided that you and whoever you want to work with have public IP addresses. But because everyone and everything is behind a corporate or residential router, this avenue is not available unless you are willing to work for it -- and in the case of a corporate network, you literally can't do anything except connect to a third party proxy (or a first party server) in order to be able to talk to your friends' computers. There's also no good way to handle the mobile phone problem, in which your IP address changes every so often as you pass between cell towers.
Ultimately, having each client connect to a centralized server and shuttling data between them server-side ended up being the much better solution instead of the far more attractive option (to users anyways) of connecting to each other directly.
Not saying it’s best for users, but just smarter and more practical from dev perspective.
To get most of the battery advantages of Macs you're forced to use Safari. But when it comes down to having to see YouTube ads I'm willing to make the tradeoff and switch to Chrome.
This leads to excessive memory use and performance slowdowns and is one of the reasons why there is a 50,000 rule limit in the Safari Content Blocking API.
As a developer of an alternate ad blocker[1] for the iPhone, iPad and Mac you can deliver a full featured, quality ad blocker with less than 5,000 core rules. This provides a faster and more efficient ad blocking experience.
As they note however, YouTube ad blocking is a more difficult problem to solve, but can be done cleanly on macOS. At least at the moment it can't be done 100% on iOS without Apple rolling out some additional features to Safari on that platform.
I guess that depends on how far you stray from the top [x] sites of alexa?
A friend sent me a youtube link, I opened it on Firefox for Android (with the latest ublock lists), it immediately served me an ad.
This had never happened to me before, I actually assumed I opened it by mistake on Android's youtube app.
The only way I found that I could block it was using the older embedded videos url (www.youtube.com/embed/<video-id>)
Anyone has more info on what are they doing exactly? I found a reddit post with similar complaints but everyone was equally clueless. Seems like they decided to point artillery at ublock.
0: https://blog.youtube/inside-youtube/new-era-video-infrastruc...
And if you have a Mac, you can build and install apps on your own device with Xcode. No Apple developer paid account required.
AltStore does something similar by signing IPA files with your personal key: https://altstore.io/.
I am keeping an old android device around just for using NewPipe.
How do Firefox and Brave compare to Adguard or 1BlockerX?
Any other browsers out there that do a better job?
There’s an important difference, these browsers can also run additional JS on web pages and partly compensate for missing content blocking capabilities. This could help to an extent, but I am not sure if the said browsers do that.
Unfortunately, JS can't solve everything... the WKWebView restrictions are definitely a huge frustration. Brave for Android and desktop both build from a single codebase, but everything has to be reimplemented to work on iOS too.
Ok, maybe you can contribute to a patreon outside of YouTube, but you’re not going to do that for everyone and those videos are not served for free (even if Google is not short on cash)
It's easy to forget that ads pay for YouTube content, they pay for web content. Google gets an overwhelming cut, sadly. Ads fund the creators that make the content. This revenue is not much and is often barely enough to survive.
It’s not supported on iOS, though.
I realize of course, though, that DNS level blocking is mostly a non-starter with regards to YouTube since the ads are served up from the same domains as the videos (mostly? generally? not certain here).
Pi-hole can be fine but it isn't effective if you want it to block not only the lowest hanging fruits which a browser adblocker could easily block too but also stuff that doesn't follow the rules and might use hardcoded DNS IPs if they can't get the reply they want from the DNS server. With some Windows PC's, Apple devices, Chromecasts and Androids I quickly saw Pi-hole hang because of tens of thousands of requests if I tried to force all DNS through it. Because I'm a geek I turned to my homelab instead of the RPI4 and ended up with two nginx load balancers with two Pi-holes behind each (yes, 4 Pi-holes). Even though they were now running in virtual machines on a dual Xeon HP Proliant they still died when they got flooded. The hardware could easily take the hammering of requests but the software not so much (often the counter skyrocketed to 40000 requests before it died). Now I just block 100% of DNS requests at the gateway/firewall (OPNsense) instead and oh boy does it catch and log a lot of stuff the Pi-hole didn't. The amount of software that use hardcoded DNS, make example.com requests and try to reach RFC TEST-NET IPs is just staggering.
Sorry about the rant but just in case you didn't know that Pi-hole is only effective against good network citizens like, well, now you know.
The declarativeWebRequest YouTube adblocker I threw together in half an hour a few months ago recently stopped working on my end too.
Opting out of targeted ads serves you the bottom of the barrel, which was enough motivation to waste a day of JS spelunking (YouTube's changes "conveniently" make declarative blocking nonviable).
Here's what works for me... and here's hoping it still works tomorrow :)
▶ manifest.json:
{
"name": "ytadblock",
"description": "(license: CC0)",
"version": "2.0",
"manifest_version": 2,
"declarative_net_request": {
"rule_resources": [{
"id": "1", "enabled": true, "path": "ytadblock.json"
}]
},
"permissions": [
"declarativeNetRequest",
"*://youtube.com/*",
"*://www.youtube.com/*"
],
"content_scripts": [
{
"matches": ["https://*.youtube.com/*"],
"js": ["contentscript.js"],
"run_at": "document_start"
}
],
"web_accessible_resources": ["inject.js"]
}
▶ ytadblock.json:
[{
"id": 1,
"priority": 1,
"action": { "type": "block" },
"condition": {
"regexFilter": ".*\\.googlevideo\\.com/.*ctier=",
"resourceTypes": [
"main_frame", "sub_frame", "script", "image", "xmlhttprequest", "media", "other"
]
}
}]
▶ contentscript.js:
console.log('hi from contentscript');
var s = document.createElement('script');
s.src = chrome.runtime.getURL('inject.js');
s.onload = function() { this.remove(); }
document.documentElement.prepend(s);
▶ inject.js:
'use strict';
(function() {
var parse = JSON.parse;
JSON.parse = function(input) {
var data = parse(input);
if (typeof data['playerResponse'] !== 'undefined') {
data.playerResponse.adPlacements = [];
data.playerResponse.playerAds = [];
}
return data;
}
var fetch_ = fetch;
fetch = async function(...args) {
let response = await fetch_(...args);
let text = await response.text();
if (response.url.match(/\/player\?/)) {
try {
var json = JSON.parse(text);
if (typeof json['playerAds'] !== 'undefined') {
json.adPlacements = [];
json.playerAds = [];
}
text = JSON.stringify(json);
} catch (e) {}
}
return new Response(text, {
status: response.status,
statusText: response.statusText,
headers: response.headers
});
};
var trap = {
get(target, key) {
if (key == 'create' || key == 'createAlternate') {
return function(...args) {
args[1].args.raw_player_response.adPlacements = [];
args[1].args.raw_player_response.playerAds = [];
return target[key](...args);
}
} else if (typeof target[key] === 'object' && (key == 'player' || key == 'Application')) {
return new Proxy(target[key], trap);
} else {
return target[key];
}
}
};
var yt = new Proxy({}, trap);
})();
Notes:- Ad video requests can actually be distinguished by the "ctier" parameter in the xxx.googlevideo.com URL. (I presume "c" is related to the "CSI" that seems to be everywhere on Google properties.) The sole declarative block is intended as a fallback in case the JavaScript hooks fail; you'll know if you hit these, because ad videos will spin for 5 seconds before they fail - and there might be MoRe ThAn OnE - and this may drive you very, very crazy. :)
- Initial page loads now contain a JavaScript blob with content and ad video info. After a lot of stumbling around I got the idea to turn the `yt` object into a Proxy and intercept the yt.player.Application.createAlternate() function, which said blob is passed into as an argument.
- YouTube seems to be using a mixture of requests to ".../player?" via Fetch and XHR POSTed requests to ".../watch?.*pbj=1" to fetch next-video-info when you click video links. Hooking XHR proved... depressingly tricky (...wow...), so I got the idea from https://greasyfork.org/en/scripts/32626-disable-youtube-vide... to hook JSON.parse instead (koooool). Hooking Fetch, or at least YouTube's use of Fetch, was thankfully not that hard.
The above is quite brittle, depends on how YouTube works now, and may get caught in the crossfire of unrelated site changes. ¯\_(ツ)_/¯*
The big controversy some time back when Chrome wanted to implement a limit just like this with Manifest v3 says otherwise. This was both from users and adblock developers and it is exactly as bad as people said it would be. Saying it is a good idea because of privacy risks is completely off the rails. Sure you might run a tiny risk but without a proper adblocker like uBlock you do run a risk on every single webpage you open and unlike a good adblokcer you have no idea if you can trust a webpage until after they have already harvested everything they can about you. You cannot uninstall yourself from the thousands of databases you get added to to so it is in a totally other ballpark.
Having a third party monitor and inject code into every page I visit on the internet or intranet means you are trusting the browser extension as much as you are trusting the browser manufacturer themselves.
The popularity of content blocking means the evaluation of lists of hundreds of thousands of rules on every page request becomes a significant source of slower page load speed. It is not surprising that the browser makers would try to add highly optimized, native code to execute these lists.
> There’s SFSafariExtensionHandler API which you can use with blockers as another extension with higher privileges to track who blocked what.
I am not sure what you mean here. This API (available only on macOS) does allow injecting scripts and stylesheets, it does not provide any feasible debugging tools. Granted, you may inject a script that will get some information about what's blocked, but it's far from what's required.
Just compare what Safari provides with AdGuard's filtering log on any other platform or with uBlock Origin's log. The lack of such tool is the main reason filters maintainers avoid dealing with Safari.
> Compiling speed, for the process that happens once the blocker rules json is changed, is irrelevant for the users
Compiling speed is the reason for the rules limitation.
> There's also some rules that don’t match 1 to 1, but it isn’t something that can’t be solved.
Unfortunately, there is something that cannot be solved, and YT is a great example of that something.
> The number of rules limit is a non-issue
I have to disagree here.
We're not dealing with EasyList alone, there're many other lists (regional lists for instance). You may say - okay, let's split them all to different content blockers. There's a serious problem with that, though. Different content blockers are completely independent. However, that's not how those lists are being developed - there're lists that are supposed to influence each other.
Let's take the simple example - unblocking something. For instance, here is the most obvious example that happens all the time. There may be a regional list that unblocks something blocked by EasyList (or EasyPrivacy) because this "something" breaks an important website in that region. Putting EasyList into one content blocker and the regional list into another breaks the regional list.
> And the most important thing. It seems that AdGuard guys don’t get why content blockers in Safari don’t run scripts. It’s privacy. But Safari itself doesn’t prevent you from doing that, only not as a part of content blocker extension that is privacy-safe.
We accept that argument despite me being literally sick of hearing it (so there's privacy on iOS, but no privacy on macOS since scripts are allowed to extensions there, okaay).
What's important is that we do not propose allowing running arbitrary scripts. We propose extending the declarative API in a controlled manner and it does not conflict with Safari vision.
Also, that's just one of the feature requests (and bug reports) reported over the years.
edit: typos
SFSafariExtensionHandler implements SFSafariExtensionHandling protocol, which has this function:
optional func contentBlocker(withIdentifier contentBlockerIdentifier: String, blockedResourcesWith urls: [URL], on page: SFSafariPage)
So, this is used in statistics extension that prevents me ever looking into the console. Helps to shorten the time it takes to add a new rule and see if it works.
> Let's take the simple example - unblocking something. For instance, here is the most obvious example that happens all the time. There may be a regional list that unblocks something blocked by EasyList (or EasyPrivacy) because this "something" breaks an important website in that region. Putting EasyList into one content blocker and the regional list into another breaks the regional list.
I totally agree! This is one of the reasons I don't use those lists as is. Thankfully, many unblock rules can be merged into the corresponding block rules in the form of "unless-domain" specifier.
> We accept that argument despite me being literally sick of hearing it (so there's privacy on iOS, but no privacy on macOS since scripts are allowed to extensions there, okaay).
The statement that there's no privacy on macOS is incorrect. The user can see what privileges different extensions require, and can enable only those they are okay with, like content blockers. Due to their design, content blocker extensions can guarantee privacy, unlike the ones that can run JS code.
As a Safari user and someone that wants a better browser blocker I really want to know what ad blocker you develop. May I suggest you add it to your HN profile
Serving content over the web assumes that the content will be downloaded by a browser for rendering. Control over what and how that content gets rendered is controlled by the user. I think this aspect made, and still does make in the present tense, the web what it is. That's why the browser is called a user-agent--an agent that acts on behalf of the user.
YouTube could also move to another protocol, or develop a proprietary one to protect its interests. Otherwise it feels like they want to have their cake and eat it too.
That's hard to believe, from my POV. Way before the Viacom lawsuit, and even before it got bought out, YouTube (the startup) was notorious for its sky-high burn-rate: serving video is not cheap. I don't think any reasonable person thought Google spent billions on YouTube without intending to recoup the costs (Google was already serving ads by then).
But what about the creator's expectation to get paid for their hard-earned views, to then pay for the gear purchased and the production of the entire video, including team members?
If you're really anti ads, don't take the content for free, find another piece of content that answers your ad-free philosophy.
0: https://www.comscore.com/Insights/Press-Releases/2009/3/YouT...
1: https://www.theatlantic.com/technology/archive/2011/08/infog....
Also Premium views are worth more to content creators than ad supported views, so it does help the people you love to watch. Not as much as through something like Patreon obviously, but it's a bit unreasonable to support every creator that way.
One channel I really like I have the youtube membership and pateron subscriptions. It's a UK true crime podcast that does every recording with professional camera and audio in a recording studio. Seems like it's expensive to do and I get a lot of entertainment out of them so seems fair to help them out a bit more, especially since most of their videos probably get demonetized.
* I don't want a music subscription service, and I don't want to pay for it. * That price is the same as an actual full video streaming service like Netflix, but I get no new video content for my money. * Premium does remove the user-hostile block on background audio playback on iOS, but does not remove other user-hostile behaviour like blocking the iOS system wide Picture in picture from working.
I am extremely skeptical of the revenue sharing with creators that I like, and would rather give money to them in some direct way than trust google not to give my money to random music artists / their pockets.
The price is a joke, at least 4x what is reasonable. I shall continue using Firefox and uBlock Origin to get 100% of the features I want for free.
If I log into YouTube, that requires me to be logged into Google everywhere and I do not want that at all. The only solution is to use Firefox containerization or use separate browsers or separate browser profiles for things and I'm not going to do any of those because all of those options are annoying to me.
If my ad blocker stops working on YouTube and/or if they require me to login, I'll simply stop visiting YouTube. There's plenty of other things to do!
You can also see the YouTube creators who have BAT accounts set-up.
I do pay for YT premium family as well as I don’t want other family members to see ads.
Regarding FF profiles - if using more than one at a time, you need to set the others to -no-remote, and then opening links only ever opens up in the main windows. In chromium browsers when opening outside links whatever browser profile that had focus last opens the links).
It's closed down now due to internal politics.
You can use Firefox Containers to sandbox Google logins.
Alternatively, you can use a different browser when accessing Google-owned websites.
1. I feel a 45% cut to YouTube is too big. Compare that to Patreon, which takes 5%. Granted YouTube offers a lot more for their cut, but the difference feels too big, especially given point 2 below.
2. YouTube is extremely untransparent about revenue sharing, so it feels like I'm paying Google, not the creators.
So give me more transparency and take a smaller cut, and I'll be happy to disable my ad blocker and start paying membership.
YouTube is offering up the tech behind streaming the videos, the storage, the bandwidth, the development work on both the client and server ends, and the ongoing payment processing. As well as the audience install-base. And this isn't a situation where the end users are paying for the software via buying hardware from Google (Pixels being the exception) like it would be with just an app store. YouTube provides far more than anyone else. And they make the money to do so via advertising. You're paying the money in place of YouTube's revenue stream in addition to the money going to the creators.
Patreon is mostly a payment processor and gatekeeper. They don't host videos or provide any of the other services mentioned above. To host videos, the creator pays another provider like Vimeo $84 a year for 5GB/week in uploads to $600 for unlimited video uploads. Live streaming is $900 a year.
Considering how much more complex and expensive video hosting is, and everything else YouTube offers, I don't think a 45% cut is unreasonable. In fact YouTube does have direct paid channel memberships (which is a much closer business model to Patreon), and for that they take 30%.
So, regardless of YouTube's cut, it's much more valuable to the creator, and valuable to you (no embedded ads). Win win, at least until an alternative arises.
You can't be serious with this comparison. Patreon's bandwidth, storage, and processing needs are a rounding error compared to youtube, even after adjusting for the number of users.
Agreed. If we look at the Bandcamp model, they only take 10% to 15%, and that's still high compared to Patreon.
I would rather pay them nothing and complain how much someone else is takin as well.
My right to decide what my purchased computer does trumps YouTube's right to make a few cents by showing me ads.
Please don't; this gives money to (and thus rewards and encourages) advertisers; use something like http://youtube-dl.org/ instead.
And also, stop user-hostile behaviour on iOS to block OS level features (PiP, background audio) from working, even if you pay up.
I would rather block ads and use Firefox exclusively than pay that much for a still-compromised experience.
Even if you pay for premium, you'll still get sponsored ads in the content.
Sure, you can do it (piracy is okay too) but let the creators support themselves somehow.
if (typeof data['adPlacements'] !== 'undefined') {
data.adPlacements = [];
data.playerAds = [];
}It may be easier for devs to use the server model, but it's also more expensive - standing up centralized servers that can scale to millions of users is $$$. I think there would be a lot more P2P software competing with server-based software if NAT wasn't a thing, because software companies would be able to build extremely scalable software without having to pay for the hosting costs themselves. While Google Docs has to handle millions of users, if I were to "host" my own document I would only care about handling my friends - maybe two or three or up to a few dozen, but it would be very rare that I would host a document for 1000+ people. Developing an application that can handle a few dozen connections would be much simpler than one that handles millions, I believe.
In the UK, for TV we have limits on the number and total minutes of ads per hour, youtube needs to look at these.
If you install an extension that shares your browsing habits then that is on you of course but good ad-blocking extensions doesn't do that and if the data doesn't leave the extension it isn't really monitoring you. I would personally trust the author of uBlock Origin and the in-built uBO made lists over Safari and Chrome any day. Both Apple and Google are running advertisement services so I don't see any reason to ever put any trust in them doing what is best for the user in blocking ads. I wouldn't really trust Mozilla that much either come to think of it.
>hundreds of thousands of rules on every page request becomes a significant source of slower page load speed
This is a myth really. Almost all websites the average user visit have some form of advertisement and/or tracking. Such sites load much faster with any good and modern ad-blocker installed. Besides, it is not like any developer worth his salt would run through hundreds of thousands of URLs looking for a match. The only time it does add any overhead is on a site with nothing to block at all and the amount is tiny compared to the time wasted on all the other sites.
And the fact that even with premium, PiP on iOS is still deliberately broken on web & in their app.
I know Cobra Kai started out that way, but has now been solved off to Youtube as they abandoned that model.
They certainly don't mention exclusive content as a region to pay for Premium.
If Google did try to automate it, you can be sure that people would just move to integrating the sponsorship into the content. Those are the worst kind of videos and I don't want to encourage more of them.
First of all, shame on me for missing this, and thank you for pointing this out.
Unfortunately, this still does not solve the issue in question - we cannot figure out which rule was triggered. But it is definitely better than nothing, at least knowing what's blocked we can try creating something resembling a debugging tool.
> Thankfully, many unblock rules can be merged into the corresponding block rules in the form of "unless-domain" specifier.
Some of them can be handled this way, some of them cannot. Trying to handle all possible issues automatically right on the device is not at all as trivial as simply converting EasyList. And we need to do it that way (real-time, on device) because our goal is not to just convert a few lists, but also to provide maintainers with a tool they can use to develop their lists and test&fix them for Safari.
> Due to their design, content blocker extensions can guarantee privacy, unlike the ones that can run JS code.
Content blockers that can run JS code can guarantee privacy better by doing their work better than the others.
Anyways, let's not go further on this, we won't change each others view on this and we've already stated our positions.
My point was that we want to extend the declarative API, it has nothing to do with running JS.
Yes, such a tool should exist - but I am not surprised it isn't in the API, since the input list has been compiled down at that point.
The podcasts I mentioned aren’t running their own ad network, they’re using a service which injects audio segments into your download. I’d expect things like that to become more common as ad revenues decline, with an endgame something like CDNs inserting tailored content directly to avoid any other hostnames or paths which easy to block.
Historically ads were served by the site owner at their own discretion. Prior to that ads were served by TV and radio channels. None of those approaches were easy to block.
Dedicated ad networks on separate domains are relatively recent fad (since ~15 years ago). A lot websites still ship first-party ads, many have never stopped to.
AdGuard and uBO for example use the content blocking API to inject blocking "scriptlets" on sites where this kind of thing is required. That kind of usage is made much more inconvenient with Manifest v3.
It's very easy to inject JS. I don't know whether you're talking from your own experience, but I wrote my little extension to replace uBlock (with my own list of rules and blocks) and to inject JS or CSS you just have to add a line in manifest.json which have nothing to do with blocking API.
I know it is easy to inject JS and that you can do it with the manifest file. But without the old content blocking API you can't dynamically inject different snippets on different pages based on filter lists for example (unless you inject something on every page).
I wouldn't be surprised if in the future, content blocking extensions won't be allowed in the store if they use such broad permissions for example.
To be completely honest, Manifest V3 technically is not THAT bad and it's capabilities at the current moment are really close to what major ad blockers can do.
There're still some things that bother me:
1. Debugging a content blocker is really inconvenient (not as bad as Safari though) 2. The future. What if its development stalls after it's released? 3. Google's goal (probably, for Manifest V4) is to make content blocking completely declarative, i.e. get rid of any host permissions and content scripts.
About Premium generally, if you can afford it and you are considering it, there is no reason to hesitate. I say that both as a channel owner and as someone who pays for Premium every month. You never see an AdSense ad again, and you make that happen while still supporting the channels you enjoy. Pretty win-win, IMO.
Two things that most people don't know about Premium:
1. On a per-view basis, Premium views are actually 'worth more' than ad-watching views. We're talking tiny fractions of a cent, but they add up.
2. Most so-called "demonetized" views remain eligible for Premium revenue.
if the creators only get 1c/month from my premium and google get the lion's share I'll continue to block ads and support via patreon/merch instead
It sounds like the answer to that is “very little” since you mentioned fractions of a cent per view. So if I watch a few dozen videos from a single creator in a month, can I safely assume they’ll get a couple cents that month from me?
I get that it adds up, otherwise the creators wouldn’t bother creating for the platform, but I’m not sure that helps me justify paying Google another $11.96 a month.
The kind of people with disposable income to give for paid subscriptions are far better targets for nearly all adverts, since they are far more likely to buy the premium products that have a far larger and budget, and therefore give the creator more per impression.
I don't think YouTube reveals to creators enough information about which audience members generated which revenue for them to make that connection.
A simple google search revealed the following topical article.
https://www.dailydot.com/upstream/totalbiscuit-youtube-red-p...
The relevant quote: “... a Red view is on average worth 20x that of a normal ad view.”
Another youtuber i follow recently said that this is still true today.
That, or they could pay content creators fairly so that they don't have to shill for NordVPN in every video they release.
> pay content creators fairly so that they don't have to shill for NordVPN in every video they release.
I'm with you on that.
SponsorBlock does it, and Google could make it part of their policy for content creators to mark sponsored ad segments in their videos so that they can be skipped.
The premium cost of 11.99 GBP per month gets you: * No ads. * Additional music service I don't want. * No additional made-for-youtube video content that I'm aware of. * The app removes one user-hostile non-feature: it no longer refuses to play audio while in the background (iOS). * The app gains no new features, The iOS system wide Picture-in-picture that every other video service supports is still blocked, including from the Safari browser.
Considering that I get the only features I want in desktop Firefox for free, it's incredibly poor value and badly marketed. They could get perhaps 2 GBP a month for no ads, but their other user hostile behaviour on iOS and that price makes it a joke.
The ads are so intrusive, frequent and low quality that I just stopped using youtube on iOS completely. Good job.
At least developers can do that. But most of the people who maintain filter lists are not developers and cannot afford enjoying compiling WebKit for the sake of finding what exact rule has blocked this or hidden that.
I love supporting creators via Patreon. I hate feeding a giant that will any day turn against both creaters and viewers.
Not sure if I'm rationalising or defending creators.
If a service wants to ensure viewers pay, it would be easy enough for any organisation with the resources to offer large-scale video hosting in the first place to put the content behind a paywall and earn revenue actively from giving access to that content. That way, access without paying would be more difficult and, in most places, probably illegal.
But these services typically don't do that. Why? Presumably they have made a decision that offering the content openly is in their interests, even if they then have to rely on passive revenue channels such as ads, affiliate/referral payments, or promoting associated brands.
In that case, I don't think they have much right to complain when a lot of people access the content they make freely available in legal ways but without contributing to indirect revenue streams when they have no obligation to do so.
YouTube has every right to create a proprietary YouTube client (which they do on mobile devices) and prevent browsers from accessing it. Don't serve files to my browser if you don't want me to use them.
Creators, for better or worse, are putting themselves at the mercy of YouTube, as serfs to feudal lords. I'm sympathetic, and happy to pay (and do) for your goods directly, but don't complain to me if your lord mismanages your affairs.
Even TV users had VCRs to save content "offline".
Definitely not illegal to do so, so do as you please, but don't turn yourself into a white knight by some mental gymnastics with the sementics behind what a user agent is. You want to enjoy the video without ads, regardless of the consequences on the creator who made that video — and accessorily, the service hosting it and streaming it to you!
Google is in the process of breaking this deal themselves - they're now adding ads to videos which users did not opt to monetize, and they're keeping 100% of the revenue. Taking the content for free, if you will.
Remember, forcing you to watch ads means it's not free - it's you trading irreplaceable moments of your life for something. Unless your time is worth absolutely nothing, ads are extremely expensive to you.
How much of that money is just paying for music licensing I don't want or need?
* Any outbound DNS and DNS-over-TLS requests coming from anything other than my Pi-Hole * Any outbound HTTPS requests to DNS-over-HTTPS providers that I know of
It's surprising how many hits I got to those block rules. Makes me very worried about the adoption of DoH: all its privacy and anti-tampering advantages also apply to devices that violate privacy, like smartphones and smart TVs. I want to keep those under control.
I'm curious about your setup: how many devices do you have in your network that you need a load-balanced Pi-Hole setup!? My RPi4 has been rock-solid, but it sounds it doesn't have to handle nearly as much load as yours. Makes me wonder if my next hardware purchase should be a small server to host a hypervisor instead of a single RPi.
Yes, this is what made me look closer at what happens at my LAN and got me into this mess. It is a loosing battle but I try to block things like DoH and DNS IPs via blocklists[1]. Pfsense add-on pfBlockerNG does this pretty well. I then strictly only allow DNS over TLS from the DNS server out on WAN.
>how many devices do you have in your network that you need a load-balanced Pi-Hole setup!?
I can see it wasn't very clear in my comment but it wasn't the amount of devices that caused the problem. It only takes one or two misbehaving devices that hammers pi-hole to make it hang. Pi-hole worked wonderfully until I forced all DNS requests to be redirected to it. I then got many many requests a second from some devices (Edit: because they didn't like the NXDOMAIN reply they got). Try refusing access to Google DNS if you have some Cromecasts. As far as I can remember they really don't like this. Any Android phone with only one DNS IP set will also default to Google DNS as a secondary DNS IP...
1: Blocking DNS servers really isn't easy. Not only do some devices use other ports but they aren't all well known. I had requests to 216.239.32.10 for example and had no idea this is yet another Google DNS IP (ns1.google.com?).
My home LAN is a total overkill setup because I like tinkering with this stuff. If you want more control then my advice would be to look at enterprise hardware as often used enterprise hardware can be found cheaper than way worse equipment made for home users. Just make sure it doesn't have loud fans or that they can be disabled (which they mostly can outside hot server rooms). I swapped out my switches with some cheap HP 1910-24G managed switches and connected them with fiber. I got 3 of those cheaper than the one crappy Linksys I had before which last had a firmware update months before I bought it! But if I had to recommend a single easy solution I would buy a ready to go OPNsense device. I only know this shop in Sweden though: https://teklager.se/en/products/routers/
Basically what I did after I stopped using pi-hole was to setup pfsense (later switched to OPNsense when I found out that pfsense isn't actually open source) and broke up my LAN (via VLANs, which is where the HP 1910's came into the picture) into three pieces:
-DMZ that is totally open for Playstation etc. No access from or to this to/from anything on LANs
-LAN1 where only whitelisted things have WAN access. This is where all normal traffic is at.
-LAN2 where anything that need access from WAN are connected (this also have its own WAN IP)
Geeky!
Switched a few years ago and it's great!
The networks will still be able to track you, but ads will be blockable until pages discard the DOM and switch to canvas rendering the whole page
It _does_ potentially allow performance gains, insofar as you're then able to send a single bundle containing both first and third party content, but it isn't a gain from the point-of-view of avoiding adblockers (aside from the most primitive DNS/IP level ones).
(Yes, I classify advertising as spam.)
This is exactly the reason why I'm building a web browser with a statistical representation of both the DOM/CSS Layout _and_ the network traffic, so that neural networks can be trained on classifying ads and malicious actors.
There's a lot of requirements in regards of networking for such a peer-to-peer system to work, like a consensus on DNS/CNAME/PTR or consensus on TLS cert validity.
But I honestly believe that this is inavoidable in the near future, given that most Browsers these days are just a Chrome/Chromium shim where obviously Google's business model conflicts with the idea of blocking ads.
Try running a hosting platform yourself and you'll quickly see just how crazy expensive bandwidth is. It's just ridiculous to expect that someone will 100% subsidize your video bandwidth for free.
This is begging the question that hosting non-monetized content is actually a net loss for YT. I'm saying it's actually not, instead the aggregate volume of free content keeps viewers on the site longer, and the higher viewership numbers result in a significant net profit.
More likely, YT decided that this arrangement, while profitable, wasn't making enough money for them, and because they must show their investors ever-increasing profit margins they decided to mildly poison their user experience in exchange for higher profits.
The ads have long ago started evolving away from a simple "here's an ad neatly placed into its own semantic container so that blockers can target it".
you probably wont ever read this, but you actually can.
the pre/post video ads have always been blockable with ublock origin, and the mid-stream adverts, inserted by the content creators themselves can be skipped using SponsorBlock.
Note that CNAME uncloaking only works on Firefox; chromium-based browsers do not support the required API.
I've spent hours debating moving to ipad instead of android tablet and it ends to 1. lightning instead of usb-c (can't afford the ipad pro) but ok I can live with it and 2. firefox which is just a blocker
... which in return is a static list of domains which needs to be regularly updated, and therefore is not really failsafe. uBlock0 uses Adguard's scraped dataset [1] as a fallback source to do this, as Chrome Extensions cannot make DNS requests without a DNS-via-HTTPS endpoint.
Firefox, however, has provided the `dns` API [2] to do requests via the native OS resolver (which in return is also not failsafe due to being unencrypted plain-old-manipulateable DNS UDP requests)
[1] https://github.com/AdguardTeam/cname-trackers
[2] https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...