1000 x 10 x 5 = 50,000 line items and creatives for header bidding!
Prebid.js helps you use 1 set of line items for all bidders and all creatives.
By removing the size and bidder dimension, the number of line items now becomes:
1000 x 1 x 1 = 1000 line items! 50 times less!
In this section, we’ll learn how to remove the creative size dimension for header bidding. Before, a publisher would have to create different set of line items for different creative sizes. With Prebid.js, a publisher only need to create 1 set of line items for all creative sizes.
Let’s first clarify what “different set of line items for different creative sizes” means. In this scenario, a line item’s creative is only of one size. In Google Ad Manager, this looks like:
Because a site would have many creative sizes, with this setup you need X number of line item sets for X number of creative sizes.
There’s a reason bidders recommend different set of line items for different creative sizes. If we simply attach all creative sizes to a line item, the line item wouldn’t know which size of creative to choose. Consider this case:
Prebid.js can dynamically resize the returned creative to the right size. Here’s the setup:
There you go!
In this section, we’ll learn how to remove the bidder dimension for header bidding. Before, a publisher would have to create different set of line items for different bidders. For example, 3 different set of line items for AppNexus, Pubmatic, and Rubicon. With Prebid.js, a publisher only need to create 1 set of line items for all bidders.
There’re a few reasons why previously you’d need different set of line items for bidders.
Assume we have 1 set of line items for ALL bidders. Consider the below key-value pairs came in: (AppNexus bid $1.60, Rubicon bid $1.20. Ad IDs are used for rendering the right creative):
appnexus_cpm
: 1.60appnexus_adId
: 65432rubicon_cpm
: 1.20rubicon_adId
: 23456The line item for $1.60 is chosen because it has the highest price. However, the creative attached to this line item will be given both appnexus_ad_id
: 65432 and rubicon_ad_id
: 23456. There’s not an easy way for the right creative (in this case the AppNexus creative) to render.
Prebid.js only picks the highest price bid and sends its key-value pairs to the ad server. Given the above example, Prebid.js will send:
hb_pb
: 1.60hb_adId
: 65432hb_bidder
: appnexusThis simplifies the setup and the right creative (with adId 65432) will get displayed.
It’s important to understand the fill rates and CPM from different bidders. Prebid.js therefore passes in hb_bidder
: bidderCode. This enables Google Ad Manager to report on query strings. You can run queries like:
Note that because Prebid.js only sends in the highest price bid, Google Ad Manager does not see the rest of the lost bids. However, from working with publishers, we conclude that the rest of the bids do NOT matter that much. Let’s say one bidder always fills at 1 penny and bids 100% of the time. Is that information helpful? Not really, only the winning bids count. We belive the above 2 queries well serve the reporting and analytics needs.
Enjoy the much more simplified line items, creatives, and targeting setup!