|May 2nd, 2021|
|ads, privacy, tech, work [html]|
"I work on ads at Google"Someone recently asked me why I work on ads, and I wanted to write up something more thorough than my comment. (Despite being a work topic this is a personal post and I'm speaking only for myself.)
"Can I ask why? I honestly can't understand how anyone could."
One answer is that I'm earning to give: I give half of what I earn to the most effective charities I can find, and the more I earn the more I can give. This is not the full answer, however, since when people ask me this they're generally coming from a perspective of viewing ads (or perhaps online ads) as negative, and the question is more like "why do you choose to work on something bad?"
The thing is, I think advertising is positive, and I think my individual contribution is positive. I'm open to being convinced on this: if I'm causing harm through my work I would like to know about it.
So: why is advertising good? I mean, isn't it annoying when sites show you ads instead of whatever it is you want to read? The question is, what is the alternative? I see two main funding models:
- Paywalls. You pay with your money.
- Ads. You pay with your attention.
(I'm using the internet-specific term 'paywall' to refer to the general "pay money for access" concept: buying books, paying admission, subscribing to streaming services, etc.)
Both paywalls and ads have a range of advantages and disadvantages. Some of these vary by medium: books are expensive enough to print that they couldn't be funded by advertising; an analog radio receiver is simple enough that a paywall would require draconian legal force. On the internet, however, I think ads are generally a better fit for two reasons:
Minimal friction. You can follow links from site to site, without barriers. You don't have to decide which sites to subscribe to. If someone sends you a link to an article, you can read it.
Non-regressive. Paywalls, like other fixed costs, are regressive: a newspaper at $220/y is effectively much more expensive for someone earning $10k than $100k.
You can sort of fix friction with bundling: you subscribe to a streaming service then can watch (or listen to, or read) anything in their collection. There are advantages to this approach, but it's a bad fit for articles. Web browsing works best when people can read and share anything without a subscription ("sorry, this article is for Conglomerated Media Group subscribers only"). To meaningfully fix friction with bundling you would need to get down to a small number of subscriptions, which then gives those organizations an enormous (and dangerous!) amount of power.
Micropayments could potentially resolve this friction in a decentralized way, which I would love to see. On the other hand, this is a really hard problem: people have been working on it since at least Digital's Millicent over 25 years ago. There have been many proposals and startups, but nothing has really worked out.
Even if we could resolve payment's friction issues, however, we would still be stuck with the basic problem that some people have much more disposable income than others. Universal basic income would help, and I'm strongly in favor of it, but I don't think that's likely to be politically feasible anytime soon.
And so: ads. Funding the open web.
Or perhaps: better ads than paywalls
I don't want to be too easy on ads, though: there's a lot wrong with internet advertising today. For example, there isn't enough incentive for advertisers to limit their use of bandwidth or publishers to avoid annoying ad experiences. But the biggest issue I see people raising is the privacy impact of targeted ads.
Most products are a much better fit for some people than others. If you tried selling bicycles to fish very few would be interested, and you'd mostly be wasting their attention. This means advertising is worth a lot more when you can put the right ad in front of the right person.
One way to do this is to advertise in places where people who are disproportionately interested are likely to be. Model railroad ads on model railroading forums, sponsored products on Amazon, a booth at a trade show. This works great if you want to write a blog about cool new credit cards, but what about all those sites that don't have a strong commercial tie-in?
A large fraction of ads on the web today are targeted based on past browsing. When I was writing all those posts about cars I visited a lot of car sites, and then I saw a lot of car ads on other sites. I didn't end up buying a car, but advertisers were correct that I was much more likely to buy a car soon then a random person.
Historically, ads like this have been built on top of third-party cookies. When I visited one of those car sites they probably put a little bit of HTML on their page like:
<img src="https://adtech.example/cars">My browser sent a request for that image, and got back an invisible "tracking pixel" with something like:
Set-Cookie: id=6735261The vendor probably stored a record like:
id interests ------- --------- 6735261 carsLater on, perhaps I visited a site about flowers, and was served:
<img src="https://adtech.example/flowers">This time, my browser already had a cookie for
adtech.exampleand so included it on the request:
Cookie: id=6735261This lets the vendor update their record for me:
id interests ------- ------------- 6735261 cars, flowersSometime later I'm reading something unrelated on a site that contracts with
adtech.exampleto show ads. My browser sends a request for ads, and my cookie is included. The vendor runs an auction, bidders are especially interested in paying to show me car ads (more profit than flowers) and I get an ad about cars.
This model has some major drawbacks from a privacy perspective. Typically, the vendor doesn't just get that you are interested in cars, they get the full URL of the page you are on. This lets them build up a pretty thorough picture of all the pages you have visited around the web. Then they can link their database with other vendors databases, and get even more coverage.
This started to change in 2017 when Safari announced "Intelligent Tracking Protection". The first of very many rounds of of iteration, it brought Safari to full third-party cookie blocking about a year ago. Firefox followed, and Chrome announced they would too.
Well, sort of. Chrome's announcement was a bit more nuanced:
After initial dialogue with the web community, we are confident that with continued iteration and feedback, privacy-preserving and open-standard mechanisms like the Privacy Sandbox can sustain a healthy, ad-supported web in a way that will render third-party cookies obsolete. Once these approaches have addressed the needs of users, publishers, and advertisers, and we have developed the tools to mitigate workarounds, we plan to phase out support for third-party cookies in Chrome. Our intention is to do this within two years.
The idea is, build browser APIs that will allow this kind of well-targeted advertising without sending your browsing history to advertisers, and then get rid of third-party cookies.
One of these proposed APIs is TURTLEDOVE. It lets an advertiser tell your browser "remember that I know this user is interested in cars" and then later "show this ad to users I said were interested in cars." Because the browser stores this information, and is very careful in how it handles bidding, reporting, and showing the ad, it doesn't let the advertisers learn what sites you visit or sites learn what ads you see.
I've been figuring out how ads can use TURTLEDOVE, helping build an open-source plain-JS implementation of the API for testing and experimentation, and suggesting ways the API could be better (#119, #146, #149, #158, #161, #164). I think this is a lot of why I've been blogging less lately: writing up these ideas draws from a similar place.
Advertising is how we fund a web where you can freely browse from site to site, and my main work is helping figure out how to move ads onto less-powerful more-private APIs. While I think the vast majority of my altruistic impact is through donations, I don't think my work in advertising is something harmful to offset.