Hacker News new | ask | show | jobs
by ladberg 1107 days ago
The straight answer is that ads are embedded in the "HTTP API" and the vast majority of browser users don't have adblock, and Reddit can't force ads on any API users (except through the official app).
2 comments

> Reddit can't force ads on any API users (except through the official app).

They absolutely could make ads part of the API that third party applications have to display.

There's a hundred things they could do if you assume they care about third-party applications, and don't specifically want to kill them.

I do think they want to kill them, actively, but even beyond that it's really clear they don't care.

The exact same point applies to Twitter's 3rdparty API getting killed off, and both moves are still a mystery.

It'd be easy to say "as a condition of getting this API key, you agree to display ad elements as they are served in the feed, and on click, open their associated URL in the system browser". All the ad-targeting is done server-side anyways, and attribution via unique links is easy.

> and Reddit can't force ads on any API users

Why not though? Seems really straightforward to serve ads over the API and enforce any display guidelines on third-party apps, since there are only a handful of significant apps anyway.

It would require some very careful system design and lots of trust of the third-party apps.

(It's been a while since I was in the middle of this, so stuff may have changed a bit. But in general...)

Ads are usually not served up by the application provider (Reddit). Instead, they embed URLs given to them by their customers (ad agencies). If the app is browser-based they'll wrap them in some javascript that also calls app provider endpoints and manages clicks on the ads. They do this for a few reasons: 1) There's a huge amount of overhead to the app provider if they try to manage and serve the customer's ad creatives. 2) There's a lot of hassle for the customer; they have to go through the app provider to make any changes to the ad media. 3) Nobody trusts anybody else; this way the customer knows exactly how many times their ad was shown (and if video possibly how long it rolled), and the app provider still knows how many times the ad was displayed vs. just offered to the end user's device, and what the click-throughs were.

The app provider could pass the customer URLs and the provider's wrapping endpoints to third-party apps. But they'd need to think good and hard about all possible fraud games, and would need to trust the third-party app to perform the complex dance properly. Examples:

1) what if the third-party messes up and doesn't call the click-through endpoint? Or sometimes does? Or calls it when they shouldn't? Click-through accounting is a huge deal with very large financial ramifications.

2) How do you enforce that the proper ads are shown in the proper context? If you control the app then you can sell above-the-fold vs. below-the-fold spots etc.

3) How do you control that the ads are actually shown when they should be? Not every link given will result in an impression (below-the-fold again).

4) Even if you completely trust the third-party app's motives, how do you monitor and debug the end-to-end flow?

5) How do you convince your advertisers that's everything is under control? A customer is probably going to have fewer warm-and-fuzzies with third-party impressions, and very well might discount their value.

> Ads are usually not served up by the application provider (Reddit) ...

This is the case for most sites, but not Reddit. Reddit rolled their own system, and if you look at their ads you'll see it's all coming through Reddit.