The Adzerk Developer Hub

Welcome to the Adzerk developer hub. You'll find comprehensive guides and documentation to help you start working with Adzerk as quickly as possible, as well as support if you get stuck. Let's jump right in!

Ad Decision Engine Overview


This section reviews the basics behind how Adzerk selects an ad/internal promotion to be shown.

Decision Engine Inputs

Adzerk's ad engine chooses to serve a creative to a placement based on:

  • The Creative's size
  • The Targeting and Goal settings tied to each Ad/Flight/Campaign
  • The Channel's Priority for the Flight

Decision Engine Process

First, the engine receives information about the ad placement via the Decision API request. This includes information like Placement Location, User Agent, Keywords, User Key, Custom Targeting data, Location, and more.

Then, the Engine takes a look at all the ads you've created in the system and filters by the right criteria. It also analyzes the Priorities order and will prioritize ads based on their Priority level, such as showing Sponsorship ads first, then Auction ads, then House Ads.

Finally, it chooses a winner based on your Ad Selection Methods within each Priority. For instance, if you're doing Auctions / eCPM Optimization, the winner will be the ad that'll deliver the highest eCPM.

Ad Balancing & Weights

The balancer is a system that examines a given creative every 5 minutes (or whenever you save a campaign, flight, or creative) to determine how often it should serve. The balancer assigns a weight to the creative. For example:

  • A flight set to 100% percentage delivery would be set to a weight of 100
  • A flight set to 50% percentage delivery would be set to a weight of 50
  • A flight that is set to an impression or click goal is assigned a dynamic weight based on projected impressions, or clicks vs. current delivery

When the Ad Decision Engine goes to pick a winning ad, it'll incorporate each ad's weight when selecting.

Selection Methods

These are used to help decide how an ad gets selected.




This is the default selection method. Based on the weights of the available ads, Adzerk randomly selects which ad to show. Think of a big bingo ball bowl - an ad with a weight of 50 would have 50 balls in the bowl; an ad with a weight of 10 would have 10 balls. The first ad would therefore win ~83% of the time (50/60)


In the auction selection method, each ad has an eCPM value based on past behavior. The winning ad will be the one with the highest eCPM

AdChain Ordered

Useful with networks or RTB. This serves ads in the chain in a waterfall pattern, passing back an impression from the highest rank flight to the next highest rank, etc. You can set the rank of the flights on the flight settings page for any of the flights in the chain

AdChain Optimized

Useful with networks or RTB. While this also passes back impressions in a waterfall pattern, it will optimize the chain based on the flights' eCPM performance. The order of the chain will be set automatically

Outbid with Lottery

Allows RTB bidders to compete against lottery inventory. The RTB bid with the highest eCPM in the priority will compete against the lottery winner in the priority. If the lottery winner has a higher eCPM, it will serve. Otherwise, the RTB ad will serve.


In a lottery priority, ads with percentage goals are selected separately from ads with impression goals, etc. The percentage goal ads will become eligible to serve first, and any remaining requests will be filled by ads with other goal types. To prevent unpredictable serving behavior, it's a best practice to use the same goal types for each priority.

Launching & Pausing


Even or Percentage goal types start serving a few seconds after you save the flight.

Fixed Impression or Conversion goal types can take several minutes to go live, as our ad balancer monitors # of requests to determine how often to show the ad.


If you set impression or click caps for a Flight, our system will pause the Flight once that cap has been hit. However, due to the number of events processed by Adzerk (25K+ requests per second), stopping on a dime is not feasible. Therefore, your total impressions for a flight will likely be slightly over.

This comes into play with click and conversion caps too, but to a lesser extent.

If you pause manually, the ads will also take a few moments to stop.

Updated about a year ago

Ad Decision Engine Overview

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.