How Facebook Avoids Ad Blockers
dylanpaulus.com
dylanpaulus.com
I love Facebook, it’s my only remaining connection to some people, and it’s revived many friendships I thought I’d lost.
However, as one gets on in life, People You May Know can be extremely emotionally impactful. It is a little part of the web UI that brings back the dead, ex partners I still miss, exes who have moved on, and toxic people I had tried to move on from.
It’s really put me through the wringer and being able to block that part of the UI forever is something I’m very glad Facebook, in the role I have gladly given it as being an overseer of my (mostly good) emotions, does not and shouldn’t ever stop me from doing. I hope they realize this.
I went through a couple of bad patches and actually don't want to be reminded about that disastrous holiday to vegas I went on with a kinda-sorta-not-really partner, nor do I need reminding of the friendship with a guy who was later convicted of some pretty unpleasant things that none of us (his family included) saw coming.
Interesting, what do you think about the backlash against facebook? I guess there could be arguments in favor of facebook, after all.
That positive sense of connection with the world far outweighs what (with respect) The Internet suggests I shouldn’t like about the business or their products.
https://github.com/gorhill/uBlock/compare/master...jameshill...
or
https://github.com/tiratatp/facebook_adblock/blob/master/src...
which was roughly based off of my rejected uBlock implementation.
Funny enough I haven't even used facebook in years for the most part, I wrote one of those just to try and make them lose money as I believe I'm doing a public service by slowing their expansion/world domination plans.
facebook.com,facebookcorewwwi.onion##div[id^="hyperfeed_story_id_"]:has(div[id^="feed_sub_title_"]:has-visible-text(Sponsored))The extension could be a lot less intrusive as well - just compare it to uBlock Origin for example. There doesn't need to be an onboarding message. I don't need to see "F.B. Purity hid:" prominently in the middle of my feed - just put that at the bottom right of the screen in gray text or in the extension. Etc.
I'm probably going to uninstall it because it makes FB even uglier.
Yep, that's horrific. I'd immediately back out of that if I landed on the page.
Chrome: https://chrome.google.com/webstore/detail/ad-blocker-for-fac...
Firefox: https://addons.mozilla.org/en-US/firefox/addon/fb_ad_block/
No news feed. No passive content consumption. Still got pages, events, groups, messages etc. Can still use the website in an active/socializing way (looking for specific things, seeing relevant friends' notifications and invitations) but without being caught by the feed each time I come to check my notifications. Think I'll do the same with pretty much every social network. Content feeds are the worst.
What do you guys think?
I personally have a 100% no-corporate-propaganda rule. No logos on anything where avoidable, no ads allowed on my network, etc. If ads slip through ad blockers & I notice an ad somewhere I place the advertised product or company on a 'never buy' list.
No-one other than Facebook has any benefit to gain by forcing ads on me, and frankly in the very unlikely circumstance that people do manage to damage Facebook by circumventing its propaganda platform, so much the better. I'd very much like to see it driven out of business (wild fantasy, I know).
Except, evidently, allow users to pay money to not be subjected to ads.
It's impossible to reach a workable compromise with the advertising industry. They don't care about our convenience and would place ads under our eyelids if they could get away with it. The truth is we're way past the point of peaceful negotiation with the advertising industry. Better to unconditionally block everything and hope they go bankrupt.
Besides, making users pay money to avoid ads is just insulting. Blockers exist because of the sheer amount of abuse they perpetrate in order to serve their useless noise. People should not have to pay extortion money in order to avoid the abuse. The abuse should simply not happen in the first place.
Why do we care what advertisers want? Use regulation to force ad-funded companies to allow people to pay the average revenue per user to opt-out of ads and forbid using the fact they’re paying as a signal to raise prices.
Why should the government care what users want? How much money are users going to pay for lobbyists to lobby for this regulation you desire? None, of course. But advertisers will happily pay lots of money to lobby congresspeople to keep the laws advertiser-friendly.
Let me pay for the services I use, with believable guarantees that my data is not used or sold in any way by the service provider. And regulate the cost to be a reasonable margin over production costs of these services. Hosting my hosting my posts and photos should not be that expensive.
If it can be scraped and stored, FB will do it just because. And then apologize if caught, but keep storing it. Because why not? They figure, if it can be stored, someone is doing it. They can take every advantage they can get for their “friends you may know...” and user retention.
Currently they do it because they assume there’s a correlation between the extents to which they violate your privacy and revenue. If the revenue is locked static then this breaks down and the incentives change.
There are no ads in GSuite mail.
So you take the fraction of people who will do that and see if it's worth building. Answer: it's not worth it for practically anyone. It's like building a Bitcoin integration. Everyone "would buy if it would accept Bitcoin" but come on, no one is actually in that narrow space of utility where the difference in buying is adding Bitcoin or not.
If you guys build software maybe you'll see it yourself. Go ahead and try it. Maybe one in five hundred of you will see positive results.
I do not claim that it would be good business from big tech. Vice versa. That's why they would need to be regulated to offer that. To me, it would not even matter if it was pretty much nobody using that paid service. Just having the option would be important.
GSuite is, quite famously, not equivalent to Google's consumer offerings except for ads. It's an enterprise targeted service with some extra enterprise features but delayed, if any, access to lots of features that go to the consumer versions.
Plus, the consumer versions of many of the pieces in GSuite also don't have ads.
So, it's really not a good barometer for how many people would swap out an ad-infested service for an otherwise-equivalent paid ad-free service.
Please back this up with some actual numbers, because they're not as high as you're making people believe they'd be.
I am happily paying for YouTube Premium just because I don't get interrupted by ads. In India, their premium costs less than $2 per month. That price is very justifiable for me (And their ARPU is ~$9/yr btw, so they are making 2 times as much from me than they were before by showing me ads).
According to this site (https://www.statista.com/statistics/234056/facebooks-average...), Facebook had an ARPU of $25 (average, higher per user in US and EU, lower in APAC) per year in 2018. Which is $2 per month. If they promise no ads (and associated tracking), I will pay three times that amount each month.
I think a lot of us on HN would be willing to pay these prices to support the ad-supported services we use if the option was available (and the pricing was reasonable).
It was a pretty great idea and I can't remember what it was called, but it's no longer around as far as I can tell.
Something like that on any ad supported platform would be pretty neat.
I've heard it mentioned here and there, seems like it shut down in 2016 and restarted in 2017.
A quick search claims FB's annualized average ad revenue per user for 2018 was just under $25[0]. If I got value out of FB (I used to be a regular user, but now I just have the account for event invitations and otherwise never check it), I would absolutely pay $25/year to be able to use it without ads.
I suspect FB is near the top end for how much ad revenue they're able to extract from people; I imagine most sites are sub-$1 (certainly sub-$5), and could price subscriptions accordingly.
[0] https://www.statista.com/statistics/234056/facebooks-average...
Only a small subset of users can/would afford to pay $25/yr for Facebook, and these users are arguably the most valuable to advertisers. Therefore by letting them skip ads, FB would lose out on more than $25/yr/user.
It might be profitable at something like $1,000/yr, but who would pay that?
And besides, there's always a number that works out to a break-even point. Maybe it's above $25/yr, but suggesting it's as high as $1000/yr is absurd. Even if it's $100/yr, I'd still bite (not for FB, but for a site I'd actually get use out of to the degree that many people do with FB). Sure, that further reduces the pool of people who could/would pay, but it'd still be an available option for some people.
So you're paying to remove ads but tracking and monetisation is still happening.
There's a reason Instagram Influencer and YouTuber are, despite the sniggering of many people, real jobs that earn tons of money for those skilled in plying the craft.
Every tool available should be used to fight Facebook's world takeover plans, including Ad-blocking aggressively. In cases where it's not practical to entirely avoid Facebook the most ethical option is to aggressively block all their monetization paths so as not to further their dangerous expansion ambitions.
I'm currently in the Philippines and a lot of businesses don't have their own web sites and just have Facebook and Instagram pages.
I just browse Facebook without logging in but it has a huge dialog asking me to log in.
Of course there are exceptions to the rule but most people are not IG Influencers and Youtubers so opting out of these social media services are not as painful.
Treats.
Not just a class of food but a brand for gas stations to sell food.
The only winning move is not to play. But they've created an environment where you pretty much have to.
Maybe I'd have less of a problem with their ads if they actually took responsibility for what they're pushing and cleaned up any eventual mess (like promoting weight loss scams or outright illegal services).
There are plenty of cases where a person believes it's in their best interest to use a product, yet still criticizes it because some aspects of the product are hostile to them. It would be most effective to stop using the product, but sometimes, the criticism alone makes a difference.
I disagree with the parent comment's statement (that a person should agree with the company's practices if the person uses their product). Disagreeing with hostile practices is better than agreeing to them, even if the person continues to use the product.
So, they can do what they want within the law, so far as I care. I only get annoyed when people engage in hostile behaviour on the public internet - resources that we're meant to freely read, share links to, or index, or process in whatever way we choose.
As far as I can tell, facebook do quite a good job of keeping their walled garden well controlled and secure. I barely see anything of their website, but others are willing to jump through hoops just to be in there (e.g. sending in copies of passports). You know, these people will put up with quite a lot of abuse.
I don't use Facebook for this reason.
They trick you - you trick-em back.
They are wasting CPU hours and man hours on obfuscation features rather than real value to the end user. But nothing is really wrong with that, it's just a bit silly. If they think it makes them more profit overall than actually enhancing Facebook, they can take that bet. (I think it's the wrong bet, but they can still take it)
I see the internet as a bunch of servers talking to each other. Some make requests to others, some respond to those requests by sending content.
You can block me, you can choose to not send or respond data to my requests, and you can send your website/content in some form that's better suited to Perl golf or the obfuscated C contest. That's your prerogative.
On my end, I get to decide who I send my requests to, how I spend my time and attention, and what I do on my machine with incoming requests and data.
Make your site bad enough, and I (and others) will stop going, and eventually you'll likely sow the seeds of your own destruction (as people move away and create competition), but fundamentally that's your call to make.
Just like its mine to ignore you or your requests that I talk to your affiliated servers, edit and filter the content once it's on my machine/infrastructure, and not pay attention to the nonsense you send.
In fact, I can think of how this could work on a large scale. A site can sign up to the adblock service to receive a prorated portion of revenues that individual subscribers pay in, and subscribers have a browser button where they can rate the site (thumbs up, neutral, or thumbs down) for usefulness. That rating can then be fed into a trainer for a search engine so that search results are tuned to that user's preferences (along with a user profile that gets automatically built up, or that a user can adjust themselves). For extra bonus points, the user can get a 10% discount on the service for agreeing to allow the adblock service to monetize that data (and agreeing to their data sharing policy) -- otherwise that data is used only to influence search results.
BTW, for years I didn't bother with an ad blocker until I started getting repeatedly hit with malware served up by the ad networks. For that same reason I don't bother with an ad blocker on my phone, because so far I haven't gotten hit with ad-delivered malware on my phone or tablet yet.
If you don't like how a company uses ads (regular, spammy, deceptive), no better way than tell them than by not giving them any traffic at all.
Facebook is free to charge for the service.
No, it's not free. Facebook makes money off data from its users.
""Facebook has chosen to give the content out for free BY SERVING ADS".
The internet/web is not FOR businesses.
Perhaps that's the fundamental difference in perspective about who's responsibility it is to make allowances for who serves/receives content...
This in comparison is fighting against people who just want a bit of peace and less sewage being dumped in their Facebook timeline.
If Facebook were to disappear tomorrow, it would be a net positive for the world.
Otherwise you accept our Terms of Service.
Thank you for trusting us."
QuantumRoar (https://news.ycombinator.com/item?id=12958035)
If screen readers can identify something as an advertisement, then so should ad blockers be able to. If not... then aren't we depriving the blind and the sight challenged from valuable advertising equality?
I'm confused too, then.
If the screen-reader can see the word "sponsored" easily, why can't any other code? What is the difference between how a screen reader finds "sponsored" vs an ad-blocker?
span[data-content="S"]
+ span[data-content="p"]
+ span[data-content="o"]
+ span[data-content="n"]
+ span[data-content="s"]
+ span[data-content="o"]
+ span[data-content="r"]
+ span[data-content="e"]
+ span[data-content="d"] {
display: none;
}
This only hides the "d", right? You generally can't hide a higher-level element based on drill-down selectors, so pure CSS wouldn't be enough. But of course, finding the appropriate parent by scripting would be trivial from here.Apart of that, why can't one just accumulate all visible text by filtering out all `display: none` elements? Of course, this could be attacked again by e.g. shrinking the "noise" characters to width 0.
Of course the downside of userscripts compared to uBlock rules is that they take time to run, so you end up seeing the ads briefly before they are erased, which is annoying. So then I run the scripts prior to page-load to insert CSS rules to hide all elements that might be ads, let the page load, filter it, and then override the older CSS rules. It's quite a hassle, really.
What I'm saying is, :parent selectors in CSS would be greatly appreciated.
Facebook also tracks a variety of metrics related to their ads, and the data collection is implemented through JavaScript or other methods of triggering web requests. These methods do impact performance.
https://www.facebook.com/business/help/735720159834389
https://www.indiatoday.in/technology/news/story/facebook-con...
As I see this, it allows businesses to connect with more people, therefore being more profitable, therefore making economy grow in general.
I just don't understand this hate towards developers who work for companies like FB and Google and whose job is focusing on increasing ad engagement. In my opinion, they definitely provide a hugely positive effect on economy (unless you think capitalism / consumerism is evil / wrong or whatever, which is another topic).
Does working on anti-ad-blocking seem like that to you?
To me, if I was promised "the most meaningful work of my career" then I was assigned to anti-ad-blocking I wouldn't feel my Facebook career was delivering on that promise.
> To me, if I was promised "the most meaningful work of my career" then I was assigned to anti-ad-blocking I wouldn't feel my Facebook career was delivering on that promise.
Then you could easily just quit.
In fact it works so well that pretty much the only time I've noticed ads has been when I look at uMatrix and I see there aren't direct user connections to the ad servers. For those pages, it looks like the site itself is acting as a middle man and pulling the ads and inserting into the HTML via scripting. But that's a lot more work for developers to do, as well as more bandwidth and overhead. I don't know if those sites are able to tailor ads to individual users when they do this - they would need some sort of identification to pass to the ad server so the ads on those sites might be generic, not sure.
But that's my observation, FWIW.
Facebook and Google have a duopoly on the online ad market, with a combined 60.9% market share. Amazon is #3 with just 7.6%.
https://www.emarketer.com/content/facebook-google-duopoly-wo...
www.facebook.com##div[id^="feed_stream_"] > div
Yes, ads are what keeps facebook and other websites running, but there's a blurred line that crosses from offering content for users to offering users as product. To attract readers, they provide content that has value. Then they do everything in their power to distract you from what you came for. When the distraction is too overpowering and irritating many people will complain and leave. It doesn't necessarily mean that we don't understand the money model; it's that we obviously are not going on the internet to see ads that take primacy over our online experience.
The line may be blurred, but facebook users are not facebook's customers; they are the product. Facebook offers this product to the businesses that pay for access. Inasmuch as facebook focuses on an engaging user experience, it's only to ensure that they maintain their product so businesses keep buying it. It's interesting how this product maintenance has evolved: like news or reality shows or contest shows, the aim is to introduce tension, and in the case of news topics, anger, which oddly keeps people coming back for more. The aim of providing an engaging user experience has morphed into providing an addictive user experience. And like most addictions, what started out as an enjoyable pleasure transforms into something that controls and destroys us to varying degrees.
This also renders nil the argument about "don't use the product if you don't like their (ad) practices". Tracking across websites without consent is illegal in most of Europe, yet they do it extensively.
What I am saying is that not only they track you, but they explicitly break the top extensions that fix this. From this point of view, I have no regret for any of their ads being blocked.
More advanced ad blocker can probably use some AI, that could be trained with user's hints about what is an ad. Or it can use some OCR for that purpose. If you can recognize that it's labeled "Sponsored", so can ad blocker potentially.
https://github.com/tiratatp/facebook_adblock/blob/master/src...
Facebook UI is full of dark patterns, but it is possible to withdraw consent through settings: www.facebook.com/ads/preferences/
Given the billions that could be saved by making programs that interpret web sites rather than programmers learning and writing for accessibility I'd hope it's because it's impossibly hard, not because no one will create it.
I'd also help with testing......
Basically forward-shuffling the component tree to produce HTML that will be really hard to match using CSS Selectors usually found in adblockers and other DOM-targeting scripts.
https://2019.jsconf.eu/shwetank-dixit/block-unblock-block-ho...
https://medium.com/hackernoon/how-i-get-rid-of-the-new-spons...
but my approach was to use Javascript instead of CSS
But is not as good anymore as it used to be
Sure, that also kills facebook access, so two birds with one stone!
I should hope I'm preaching to the choir, I'm sure, but... quitting really isn't as hard as you tell yourself it is.
It's not as essential as you think it is.
Edit: Oh and I use it in a Firefox Facebook container so I'm not at all worried about it tracking me online.
I used to think so too, but then I realized that Facebook would let people add me to group chats or something without my knowledge and that these people would then blindly assume that I had read the messages in those chat groups. I find that "I have a Facebook account but I almost never log in" tends to get misunderstood, whereas "I no longer have a Facebook account" gets the message across quite clearly.
You think that once you log in to FB in a container -- Facebook can't track you? Those container details are now appendage to your online fingerprint as far as Facebook are concerned.
Containers only work if you don't actually log in to such services. The only sure way for FB to not track you is to not use FB at all -- even then it requires other steps too as they'll be building a shadow profile on you.
Is that naive?
Facebook wants to be addictive, but it's okay and possible to use it once every two or three months so you can add your great aunt and post holiday photos (so people know you're safe). And by using Facebook less, it takes away some of Mark Zuckerberg's power over you and our society.
I have a hobby which is growing carnivorous plants and last year I started a small side business selling my extra plants. The entire community is now on facebook (before that it was mostly forums) and I had to reopen an account to be part of it.
Sadly it is essential for some people. Not facebook itself, but the fact that it is the main social network makes it essential if you want to be a part of some communities. I hate that I have to use Facebook, but I don't have the choice.
It opened so many more opportunities for me than when I wasn't using it, it has really been surreal and I've never felt more engaged and happy in my life. I wouldn't credit facebook for it because in the end, it's the people on it that brings me happyness, but there's no way I would have interacted with them without it.
Of course if you don't have any hobbies/business that depends on it, deleting Facebook is indeed the way to go, but for a lot of people it's not such a black or white thing
Stop making excuses for sidlining your personal integrity, you are now just another part of the problem.
I quit using Facebook close to 10 years ago, yet I still have a robust social life, communicate regularly with friends and family, participate in hobbies (even ones who unfortunately moved their community to FB) and do all of the above without the unhealthy “like-obsessed” feedback loops. It’s great!
But when you tell people it’s possible to live without Facebook, all you get are lame excuses about why their case is special and they couldn’t possibly do it themselves!
I feel our brains could do much better with a little less of constant bombardment of highlight-reel version of other people's lives. The psychological literature on the negative impacts of social media usage is only ballooning by the day, and there's never been a better time to quit Facebook.
[0] https://www.nytimes.com/2018/09/28/technology/facebook-hack-...
For example, I have good friends in other countries, and sending pictures and short texts is one of the best ways to stay in contact. We do talk over the phone occasionally, but not having a simple way to send pictures or links would pull us much further apart.
Sure, email could be an option, but WhatsApp is just so much more convenient.
I've been trying to get people on Signal but it's a struggle especially for older people used to WhatsApp. For a lot of them WhatsApp → Signal is a big step even though (for us) the apps are pretty much similar.
I was wondering if they found some other strategy to keep in contact with their close ones without using messaging in the first place, not replacing Facebook services with some other service.
Also i dont agree at all that its more geeky. If you don't think about technical backround Signal is ux wise simpler app.
- My martial arts classes post updates there
- So does the community garden I help out at
- Keeping up with family news, and directly talking to family
- Keeping up with what's happening to my friends in the USA or other far flung places
- Access to topical news that matches my political beliefs rather than being heavily centrist-biased and ignoring all the important stuff
- Monitoring political campaigns and issue campaigns
And honestly, good luck finding all that anywhere else.
127.0.0.1 graph.facebook.com
127.0.0.1 staticxx.facebook.com
127.0.0.1 api.facebook.com
127.0.0.1 www.facebook.com
127.0.0.1 an.facebook.com
Put another way, what's the difference between 0 and 127 here? What makes it safer? TIA
From that page:
> We prefer to use 0.0.0.0, which is defined as a non-routable meta-address used to designate an invalid, unknown, or non applicable target.
> Using 0.0.0.0 is empirically faster, possibly because there's no wait for a timeout resolution. It also does not interfere with a web server that may be running on the local PC.
For 0.0.0.0 it won't even try to connect (or fail instantly depending on how you look at it).
Easiest way to quit was to add "facebook.com" to my LAN's pihole blacklist and delete their (tracking) app from my phone. The account is still there to reserve my name but it has no other real data.
It is if you are travelling often, especially in non-western countries.
Rent in local Facebook groups is sometimes 2-3 times cheaper than AirBnB and alike, as well as large expat communities.
They don't realize the impact it's having on their lives. Facebook has become a justification to bring hate into our personal conversations. Their crazy aunt says something on there so they believe this makes it a public conversation, but I have no idea about that.
Their debates are personal conversations had in public. Facebook has made the problems of talking about class, religion, race and politics inescapable.
There's a reason we avoid those topics at holiday gatherings and business functions. They divide us and cause psychological injury.
Fb has capitalized on this fury and drives profit from anger, dispute, hate and all these other emotions we don't want to have. These are the conversations that don't end and people want to win. They're live long disagreements where people won't change their mind and find equally violating people to fuel their rage and others to direct it at.
These didn't use to be everyday conversations. Fb makes it easy to intact with those you disagree with violently and often. People you'd choose to avoid in real life but new can't because fb makes more money of pitting those two divergent personalities together and continually antagonizing them.
It's hurting their mental health to be surrounded constantly by dissenting voices trekking then they are wrong for whatever reason.
You're wrong. You're wrong. You're a bad person because you believe that. You're inconsequential. Someone said this thing about you.
It's ruining people and I don't know how to get that awareness through to them. They're telling me more often they wished they'd just never gone on there and I say don't go back. Fb is like the abusive spouse they are addicted to.
How do we save our friends and family from that abuse? How do we help them escape? I'm so sad for them and I feel helpless to save them from the peril that is so obvious from the outside.
I still have an account but I rarely log in (perhaps couple of times per year and when I do it's with Firefox Containers and with cookies cleared after log out plus I block third-party connections from Facebook and its domains), but Facebook is more than Facebook.
A lot of people I know spend way more time on Instagram, WhatsApp and Facebook Messenger then they do on Facebook itself so it will be difficult for them to not use it.
I'm not able to avoid it. Since I can't make extended family members use something else, it's a source for family news. My family is large, both on my side and my spouse's, so FB isn't trivial to replace.
Something that could scrape and mirror a curated "family news" would be cool. But given the rate of change at FB, it would be hopelessly brittle.
How did your family accomplish this 10 years ago? How valuable is the family news if you need it curated?
I don't see how that matters. I'm not going to be successful convincing 100+ people flung across the country to go back to how we used to do things. They like Facebook, and likely aren't interested in their crazy uncle's rant about Facebook. They post their news there, and not anywhere else.
"How valuable is the family news if you need it curated"
FB is my source for things like "who graduated", "who is pregnant", "who got married", "who got a new job", "how that horse on cousin Fred's ranch is doing" and so on. I like to know these things.
By "curated", I mean something like a scraper that could pull out posts from family people and put it somewhere so I wouldn't need to log into Facebook and get exposed to a bunch of other stuff I don't want to see...and the pervasive tracking. I also mentioned it's probably not practical.
I'm also anticipating applying differential debugging techniques to automatically compile ad blocking filter lists. View the top X sites via multiple personas, diff the content, anything static is more likely not ads.
Although this is fascinating, the amount of attack/defense in our browser just trying to put a block of ad in front of you and the CPU cycles that are wasted, I don't think it apply to my case.
Please don't tell people you don't even know what their lives are like
Fanboy's Annoyance List and Anti-Facebook List: https://www.fanboy.co.nz/
Fanboy's Annoyance List (source): https://easylist-downloads.adblockplus.org/fanboy-annoyance....
Fanboy's Anti-Facebook List (source): https://fanboy.co.nz/fanboy-antifacebook.txt
AdGuard Social Media filter (source): https://filters.adtidy.org/extension/chromium/filters/4.txt
All of these work with uBlock Origin.
Obviously OCR is one of many strategies and as long you kept the code for these adblock strategies open source, it would work on all visual ads.
Train an AI with a billion screenshots of pages with ads marked out. It should be able to handle 90+% of ads easy.
Facebook Ads look like ads, by design. Shift gears to IMAGE RECOGNITION and success will follow.