Both AdBlock and Facebook consider each other a thorn in their side. Their dispute has led to an unofficial sort of coding competition with millions of spectators wondering whether AdBlock will be able to keep up with Facebook’s advertising code. But what do Facebook engineers do that frustrates AdBlock developers so much?
What’s Happening?
An article on TechCrunch published on 11 August 2016 has shown a spat between AdBlock and Facebook in its full glory with vigorous coding on both sides. The two sides have engaged in a war, with AdBlock trying hard to work around Facebook’s own workarounds. AdBlock aims to block all sponsored and advertised content on Facebook, and Facebook aims to bypass these mechanisms to continue to get browsers to display sponsored content. In the end Facebook came out on top for at least a month, but AdBlock says that the fight isn’t over. Its team has called upon its entire community to work on the issue. Up to the date of this article’s publishing, Facebook has continued to remain on top. For those of you who use AdBlock regularly, you may notice that your sidebar is completely clean of advertisements, so you might be wondering what I’m talking about. The issue here is in relation to sponsored posts which appear on your news feed once in awhile. They look something like the following image.
I pinky-swear that I was using AdBlock when browsing around to make that screenshot.
How Facebook Gets Around AdBlock
As expected, Facebook’s method of getting around AdBlock is very similar to something I described in a piece I wrote roughly a year ago right here. For those of you who are a bit less inclined to read through walls of text and would rather get to the point, I described a couple of methods that could be used to either bypass AdBlock with simple HTML output (as opposed to JavaScript-based syndication) that disguises the ad as part of the rest of the site or adopts other methods of product promotion to achieve the same thing. Facebook chose the former. Just like in the image above, the sponsored content looks like an ordinary “wall post” that you would see on your news feed on Facebook. Instead of using syndicated relays to display advertised content, Facebook chose to use their own backend engine to generate the ad content through the same HTML output that a normal news feed post would go through. This simple touch of code allows the company to continue to display ads to everyone, even those using AdBlock. Additionally, some of AdBlock’s attempts to get rid of this advertising has led to the elimination of legitimate posts from friends, taking away from the experience of Facebook users. Of course, the ad posts still bear the “Sponsored” label, so you can easily spot them. Now, the reason this unnerves some people is because they believe this is an encroachment on their ability to choose the content they want to see. You can choose not to see a person’s content on Facebook by “unfriending” or blocking them. You cannot do the same with an advertisement (unless you take into account the fact that you can hide specific types of ads like in the image below).
Still, the choice to hide an advertisement means that you’re just choosing what kinds of ads you see, not opting out of them entirely.
Conclusion
Facebook is a company. For companies to survive they have to make revenue, and they will do this in any manner they can. At the same time, they are to some extent accountable to their users, giving them a strong incentive to produce advertisements that are relevant and as non-invasive as possible. This delicate balance provides the reasoning behind their workarounds to AdBlock. Of course, we see the same dynamic with AdBlock. Its users make up a demographic that generally do not want to see advertisements, thereby pushing developers to keep finding new ways to block them rigorously. Somewhere between these two forces at work is a user who doesn’t really mind the sponsored posts but enjoys the work that AdBlock does against the most egregious offenders. Where do you sit on this issue? Tell us in a comment and add to the discussion!