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!

Second Price Auctions

Overview

Second price auctions award an impression to the ad with the highest bid, but records the revenue of the impression not as the ad's bid, but as the second highest ad's bid plus one cent.

For instance:

Advertiser #1 - $5.00 CPM bid
Advertiser #2 - $4.00 CPM Bid

With 2nd price auctions, Advertiser #1 would win and pay $4.01.

This is used in situations where advertisers know that their bids are a max bid, but that actual costs may turn out to be lower. This benefits the advertiser, who will pay less for less valuable/competitive inventory.

Second price auctions are needed for building AdWords-type auction systems.

Enabling Second Price Auctions

Follow the steps outlined here, plus:

API

  1. Set IsSecondPricing to true when creating a Priority

UI

  1. Check "Enable Second Pricing" when creating a Priority

Second Price Auction Behavior

Decisions

Adzerk uses the below logic when picking a winner and a revenue price:

**Situation**
**Result**

Single ad competes and is below floor price

Doesn't win

Single ad competes and is above floor price

Will win, with floor price as the winning bid

2+ ads compete and above floor

Highest value ad will win; revenue will be $0.01 more than next highest

2+ ads compete and neither above floor

Neither wins

2+ ads compete, with floor price between the 1st and 2nd highest bidders

Higher value ad wins, with floor price as the winning bid

2+ ads are tied above floor price

Winner is randomly chosen at full price

2+ ads tie at floor price

Winner is randomly chosen at floor price

Same Advertiser Exclusions

We will not second price an advertiser's ad against another ad from the same advertiser. Advertisers will only second price against ads from different advertisers.

Remainder Percentage Behavior

You must set a remainder percentage on the priority between 0% and 99%. A priority with a remainder percentage of 100% will not be able to auction its ads.

Remainder percentage ads will have their revenue recorded at their normal price.

There is one exception to above— an ad that is the only eligible ad in the priority for the request will not serve as part of the remainder percentage. Instead, we will serve an eligible impression from the next highest priority.

Second Pricing in adChain Optimized Priorities

You can also second price the impressions served via an adChain Optimized priority. An ad will first be ordered in the adChain by its effective CPM (eCPM) and then will be second-priced if it serves. For example:

eCPM   | Clear Price
------ | -----------
$5.00  | $4.01
$4.00  | $3.01
$3.00  | $1.01

This example uses a floor price of $1.00 CPM.

Just like with other adChains, the first ad has a chance to serve, and if it can't, the impression will be "passed back" to the next ad in the chain. The only difference is that the served impression will be priced at the second price instead of the eCPM.

CPC Floor Prices

CPC floor prices are available for the Decision API AND UI 2.0 only.

In second-priced auctions, a CPC floor price guarantees that a click from a CPC ad will be priced at a minimum cost-per-click floor that does NOT exceed the CPC price of the ad's flight.

Note that CPM floor prices must be used in addition to CPC floor prices, although the CPM floor price will default to $0.00 CPM if it isn't set on the priority.

When a CPC floor price is set, an ad will not compete in the auction if its price is less than the CPC floor, or its eCPM is less than the CPM floor.

To get started:

  1. Ask your account manager or Adzerk support for the CPC Floor Price feature. They will enable it for your account.
  2. There are two ways to set a CPC floor: through a Decision API request, or as a setting on a second price auction Priority.

Setting a CPC Floor Price Via the Decision API

To set a CPC floor price via the Decision API, add the floorCpc (float) to the placements object in the request:

{  
   "placements":[  
      {  
         "networkId":124,
         "siteId":71727,
         "adTypes":[  
            5
         ],
         "floorCpc":0.50
      }
   ]
}

You can also override the floorPrice but this is optional.

Setting a CPC Floor Price Via an Auction Priority

To set a CPC floor price via an auction priority, create a new second price auction priority or update a priority. Add the "Floor CPC":

Second Price Auctions