Wladimir Palant over at Adblock Plus fired an unexpectedly personal shot across our bow yesterday, which included statements like this:
The AdBlock project only pretends to care about user’s privacy. From their actions, it is very obvious that privacy considerations don’t play any role when decisions are being made.
I don’t have any blanket statements to make about the Adblock Plus team’s integrity because I haven’t met them. I have met Till Faida, CEO of Eyeo, the company that owns Adblock Plus. I found him charming and insightful. But even if I thought he was a jerk, I wouldn’t presume to know his or his team’s mind.
So that’s the TL;DR version. If you’re interested in the details, here’s Palant:
The AdBlock project started out as an open project. They used Google Code hosting to make sure people can see their source code and contribute. However, that code repository was abandoned in August 2013. The new project description points people to source code packages that they can download. So you can still see the source code but extracting individual changes requires significant effort.
AdBlock is still an open source, GPLv3 project, with our code publicly available at code.getadblock.com. We moved away from Google Project Hosting because we rarely received patches from the wild, while our millions of less technical users were badly served by a noisy bug tracker doing double duty as a support portal. We moved to Tender for support and a private Github repo to write code. I think this was the right move to best serve our users with a small team. Our code is meant to be readable and is well commented, but I see Wladimir’s point that this move makes it inconvenient to follow individual code changes.
To conclude: AdBlock covertly moved from an open development model towards hiding changes from its users. Users were neither informed about that decision nor the reasons behind it. The source code archives are only left around to keep pretending that AdBlock is still an open source project, these are hard to find and the project owners are clearly hoping that nobody will be able to extract the individual changes from them. What are they hiding?
This is where Palant goes a little off the rails.
It’s no secret that we’ve been surveying our users about new ideas we’ve got, and yes, one possibility would be a partnership with Disconnect. There’s no conspiracy. In fact, this is an actual line of code from the AdBlock source:
Not exactly subtle! And again: right there in the AdBlock source for anyone to see.
Besides that, the folks over at Disconnect are all about privacy. Their anti-tracking extension is used by more than a million people each week, and has been the darling of top tier news outlets doing stories on internet privacy since they launched.
We’re quite happy to be mentioned in the same sentence with them.
AdBlock won’t just send a unique user ID to its server now, it will also transmit user’s setting determining whether Google Search ads are allowed.
User IDs are randomly generated and aren’t retained across different machines, browsers, or reinstallations. The ID is not associated with your personal information (which we don’t want). We use it to get an anonymous, very rough idea of what our user base looks like. How many French users do we have? How long does it take for a majority of users to update to the latest version? How often do users turn on our “I like Google ads” feature? Etc.
All ads are still blocked by default. And so far, AdBlock is still funded entirely by donations. We survey our users so we can learn whether they’d like and approve of other ways we might fund AdBlock. If you have an idea, please feel free to tell us!
Another interesting addition: the unique user ID mentioned above will be sent to getadblock.com every time an AdBlock user visits that website. Or if an AdBlock user visits getadblock.com.malicious.com. Or any other website that has getadblock.comsomewhere in the host name. If I were owning a website relying on ad revenue, I would have inserted a hidden frame into every page and used that bug to track AdBlock users — maybe some websites already had the same idea? And how does the changelog describe these changes? “Beta test for survey” – yes, sure.”
This is so the AdBlock homepage knows if AdBlock is installed, as part of our fight against credit card fraud. It’s true there’s little documentation for that particular function, as the point is to not give the fraudsters ideas. The “getadblock.subdomain.com” bug is valid and has been fixed.
AdBlock 2.6.21-2.6.27: The Disconnect.me functionality is being heavily worked on, it looks like Disconnect developers are changing it themselves. Trial and paid memberships are being implemented, whitelisting of Disconnect search ads tweaked. According to the changelog, all these releases are “Beta tests for survey.”
We surveyed a tiny group of users and asked them if they’d like using Disconnect’s functionality in AdBlock and how they’d like it funded. This of course requires adding the code to let the surveyed users try the feature.
Again, we do this to make sure that any new way we might fund AdBlock has our users’ approval. This is important to us.
The “AdBlock custom filters” (AdBlock-specific filter list that is installed by default and listed as recommended) add a set of filters to whitelist Mixpanel tracking on the AdBlock website.
MixPanel is a tool similar to Google Analytics that we implemented to help us profile credit card fraudsters (see above) and improve the post-installation page.
To conclude: If a project suddenly decides to work behind closed doors, something bad is usually going on. In AdBlock’s case, they started monetizing their users by partnering with Disconnect.me, and they didn’t want anybody to notice. When people noticed and started asking questions, they tried to downplay the impact of this change.
I feel like Palant’s making some effort to be fair in much of his post, but it’s allegations like this that make it clear why it was deemed unsuitable for the official corporate blog.
The phrases “monetizing their users” and “they didn’t want anybody to notice” conjure up a mental picture of AdBlock’s users all being secretly turned into dollar signs. In fact, what we’re doing is straight up asking our users where we should take AdBlock next. So far we only fund AdBlock through donations, and asking our users about other ways to fund our work is unrelated to our move off of Google Project Hosting.
To conclude: The AdBlock project only pretends to care about user’s privacy. From their actions, it is very obvious that privacy considerations don’t play any role when decisions are being made.
I’ve never met Wladimir Palant. I do know he’s an extremely knowledgable developer. And based on the last two paragraphs of his post, he can also be a very thoughtful guy. There’s some good, constructive philosophizing about privacy and user IDs in there, and the resulting Hacker News thread generated lots of interesting commentary.