Prebid products are designed to integrate with the ad ops line item configuration on the publisher’s selected ad server. Whether using Prebid.js, Prebid Server or Prebid Mobile, bid targeting parameters are passed to the ad server. The ad server then attempts to match the targeting parameters to a preset line item. If successful, that line item is compared to other line items and if the Prebid bid wins the auction, the creative is returned to the web page or app for display.
The table below lists ad servers supported by Prebid and provides links to step by step documentation for the configurations those ad servers support.
|DFP||Step by step guide to DFP setup|
|Send all bids to the ad server|
|Setting up Prebid for AMP in DFP|
|Setting up Prebid Video in DFP|
|Setting up Prebid Native in DFP|
|AppNexus||Setting up Prebid with the AppNexus Publisher Ad Server|
|Smart Ad Server||Setting up Prebid.js with Smart Ad Server|
|FreeWheel||FreeWheel Guide for Premium Long-Form Video|
On a publisher’s selected server the ad ops team will need to setup line items. These line items provide targeting information for the ad server, to include the CPM per impression. Prebid will pass in a bid’s targeting parameters via key-values. The ad server will read these incoming targeting parameters and search through the line items for a match.
Prebid.js is going to call your bidders for their price, then pass it into your ad server on the query-string. You want to target this bid price with a line item that earns you the same amount if it serves.
If you had 1-line item for every bid at a penny granularity of $0.01, $0.02, $0.03, …, 1.23, …, $4.56 you’d need 1,000 line items just to represent bids from $0-$10. We call this the “Exact” granularity option.
Creating 1,000 line items can be a hassle, so publishers typically use price buckets to represent price ranges that matter. For example, you could group bids into 10 cent increments, so bids of $1.06 or $1.02 would be rounded down into a single price bucket of $1.00.
Our recommendation is to start with $1 or 10 cent granularity until you’re more comfortable with Prebid.js. At $1, you only need to setup 10-20 line items – easy. When you’re ready, get more granular with the price buckets to improve yield.
One set of line items for all bidders is the recommended way of setting up your line items. Choose this option if you prefer an easier, low-maintenance setup:
||Required||The price bucket. Used by the line item to target.||
||Required||The ad Id. Used by the ad server creative to render ad.||
||Required||The bidder code. Used for logging and reporting to learn which bidder has higher fill rate/CPM.||
Choose one set of line items for each bidder if you:
bidder=bidder_name. To run a report to attribute winning bids to bidders, you will need to rely on your ad server’s keyword reports. DFP supports this, but some ad servers do not. DFP does not support running reports for more than 2 keywords. Therefore, if you have existing reports that already rely on keywords, and you want to add a winning bid by bidder dimension, use one set of line items for each bidder.
hb_adid_longBidderNameis truncated to
meis truncated). Note that the key is case-sensitive. To get the exact key-value keys for each bidder, find them at Bidder Params.
||Required||The price bucket. Used by the line item to target. Case sensitive and truncated to 20 chars. The
||Required||The ad Id. Used by the ad server creative to render ad. Case sensitive and truncated to 20 chars. The
||Optional||This is not required for adops. Case sensitive and truncated to 20 chars.||
Implementing header bidding requires much more collaboration with your dev team than normal Ad Ops setup. For example:
Setting up price granularity requires you and the dev team working together to ensure the price buckets match. We have seen cases when the code on page sends $0.10 increments, while the line item setup expects $0.50 increments. This results in the ad server not catching 80% of the bids.