Why Reddit Built Their Ad Server with Adzerk's APIs

Alex Carl

Since reddit switched from a homemade native ad server to Adzerk's, they've gotten more transparency for their advertisers, better targeting capabilities, and a team of (Adzerk) developers providing 24/7 support. Here's how they did it:

Reddit Ads - Front Page of the Internet

Reddit is no ordinary social networking site. It's a community, a social bookmarking platform, and a hub of user-generated content in a single destination.

What's important to reddit is curated by the votes of redditors themselves, which makes advertising on a subreddit both the perfect opportunity and the perfect quagmire for marketers - they can target campaigns to precise segments, but anything short of a totally authentic message will be a disaster.

Consequently, reddit uses ad units that mesh with the values of the reddit user community: transparency, privacy, and relevance.

Reddit Ads - Upvotable Ads Were Genius

"reddit has two general ad types," explains Jena Donlin, reddit's Senior Product Manager of Advertising, "which are banners and promoted posts (native units)."

Banners on reddit are standard IAB ad sizes - 300x250s in the sidebar, and 300x100s for front page (or subreddit) takeovers.

A link below each banner allows a redditor to discuss the ad in its own reddit post, and mousing over the banner lets a redditor vote it up or down, using Adzerk's adFeedback feature. A downvote removes an ad from the redditor's inventory, and provides feedback to the advertiser and reddit's ad team about ad quality.

The discerning community of redditors are willing to engage in conversations and feedback around a variety of topics (from /r/futurology to /r/movies to /r/showerthoughts) on a daily basis. Through reddit's banners and promoted posts, advertisers can reach self-organized communities across a variety of interests, generate long-lasting discussions, and be shameless and authentic about self-promotion.

To choose which banner appears on which subreddit, reddit uses Adzerk's decision engine to fill and render an ad request.

However, reddit's promoted posts (sponsored links that appear at the top of the front page) are a greater technical challenge.

Reddit Ads & Programmatic Sales

"For the native unit, we had an in-house system that we built," says Jena. "It was a delivery system that was meant to make ad delivery very simple on reddit: an advertiser would place a minimum bid, and then we'd display ads based on the total amount bid in that day, and how much each user spent on impressions."

In theory, this self-serve platform would streamline the process of selling inventory - managing sales programmatically, and ensuring accurate delivery across the site.

But reddit's in-house efforts ended up creating more problems than they solved.

"Advertisers did not know what they were paying for when setting up ads,"

...Jena explains.

"The system worked for some users who were getting good deals, but others found that the targeting didn't scale to the smaller subreddits they wanted to take advantage of. Pricing and delivery fluctuated highly by day, and the system allowed for very little flexibility around ad delivery. On top of that, we needed to find a way to make the ad buying process more transparent."

How Reddit Build Their Ad Platform

reddit was already using Adzerk to serve their banner ads. When they announced their transition in March 2013, the reddit community gave the new vendor their approval, so it was a natural move for reddit to leave their home-built native ads system for Adzerk's scalable and extensible platform.

Adzerk is more than an ad server for banners - it includes a Management API for programmatically creating ad campaigns, and a Decision Engine Ads API for integrating ad content into any platform.

"Adzerk's API allowed us to centralize our ad serving information, and avoid having to reinvent the wheel on creating the ad delivery logic that wasn't available within our earlier house system,

says Jena.

reddit software engineer Brian Simpson explains how the integration works with both APIs:

"We use the Management API to create Adzerk representations of all reddit promoted links and campaigns. Whenever a link or campaign is created or modified, we use the API to update the objects on Adzerk's end."

Creative contents are extremely flexible in the Adzerk system, and users can upload standard banner ad units, ad tags from other platforms, or custom creatives. reddit uses JSON objects for its native ads, which include the unique IDs of the corresponding reddit link and campaign.

"We're also using keyword targeting and targeting by location,"

...says Brian,

"and we use a bunch of Adzerk priority levels, mostly for separating standard self-serve ads from our internal house ads and managed ads."

Then, when a redditor's browser loads the front page and makes an ad request, the Native Ads API comes into play.

"When a client makes a request to a reddit server, the reddit server makes a request to the Native Ads API. The request includes a list of subreddits to target, using Adzerk keywords."

Adzerk's Native Ads API is a RESTful endpoint. When a web client calls the API (which could be a browser or a standalone application), the Adzerk engine chooses a creative, and returns a JSON object containing the contents and all the metadata of that creative.

"The response includes the IP of the reddit link, and campaign to display," says Brian. "We retrieve that link, render the HTML, and send it to the client to be displayed."

The Results of Reddit's Ad Platform

Now that reddit's self-serve platform is running off of Adzerk, the team has noticed some definite improvements.

"The new system has given advertisers a lot more transparency, and we've seen a huge rush of new users. We've seen the number of subreddits being targeted grow, we've seen the number of advertisers grow, and we've seen the number of campaigns running grow."

It's a win for all three parties: redditors view the most relevant ads, advertisers target campaigns with accurate results, and reddit reaps the benefits of both.

At no stage did reddit sacrifice the values of its community for a better relationship with advertising revenue - the Adzerk platform respects individual user's privacy, and is transparent about how user data is used and which cookies are set with a banner ad request. (The Decision API sets no cookies at all.)

The reddit team didn't have to create the integration alone - Adzerk's technical support and developers worked side-by-side to ensure that the complex transition was a smooth as possible.

"Adzerk has been good about working with us to solve our problems," notes Jena. "You guys took a lot of initiative helping us get this system revamp off the ground and solving a hard problem for us. You were able to work with us along the way to iron out and customize solutions to problems as they arose."

"The current system is a new foundation for us to grow and build the advertising options out further. We're looking forward to be able to unlock more of the capabilities of Adzerk's system within our own system."

How Can I Replicate Reddit's Success?

We are more than happy to set up a 15-min consultation to walk through your needs and discuss how you can replicate reddit's success. We wish you the best in your quest to launch an ad server!

Join the Ad.Product community

Sign up for our upcoming newsletter and to be notified of our Ad.Product Slack channel and conference.

Ad.Product is the first community for product managers, engineers, and others to discover and discuss how to build innovative, user-first ad platforms.

Alex Carl

Recommended Articles

best practices
The Hidden Costs of Building Your Own Ad Server
What is an Ad Server? The Definitive Guide for 2020
Adzerk Proves Not All Ad Servers Are Struggling in 2019