OpenRTB 2.5 Header Bidding Proposal

787 views
Skip to first unread message

Tony Casson

unread,
Mar 29, 2016, 3:02:54 AM3/29/16
to openrtb-dev

Hi all,


I pulled together some thoughts for the upcoming meeting on how to incorporate header bidding into OpenRTB.


Looking forward to discussing.


-Tony


OpenRTB 2.5 Header Bidding Proposal


Bid Request


As a publisher, I want to be able to maximize the yield from my header bidding implementation.  By signalling OpenRTB buyers that a bid request originated from a header bidding implementation, I can ensure that buyers have the best available information in order to appropriately value the ad opportunity.


Option #1 - Minimal Solution - Update Impression Object


Add a field, imp.hb, integer, 0=non-header, 1=header, where the omission of the field presumes non-header.


Option #2 - Header Object


Create a Header Object as part of the bid request object.  If the Header Object is present, then the bid request originated from a header auction.


header.type, integer, required, 0=unknown, 1=client-side, 2=server-side

header.mediation, integer, recommended/required?, enumerated list of mediation methods 1=container, 2=ad server, 3=other, etc.

header.adserver, string, optional, name of ad server platform

header.container, string, optional, name of container technology

header.timeout, integer, optional, timeout setting for header auction


Note:  The format object introduced in 2.4 solves for one of the more frequent scenarios in header bidding  - soliciting multiple bids for multiple sizes for the same impression.


Bid Response


As a buyer, I want to ensure that I see only the bid requests necessary to meet my campaign goals.  Header auction technology may result in superfluous bid requests.  By signaling the seller with appropriate codes, I can coordinate an appropriate volume of bid requests.


Option #1 - Update NBR Codes


9 - Daily Reader Cap Met

10 - Daily Domain Cap Met

Christopher Gu

unread,
Mar 29, 2016, 3:08:52 PM3/29/16
to openrtb-dev
Hi Tony,

Many of the Prebid.js adapters are sending OpenRTB bid requests out and getting OpenRTB responses.

You may want to check Sovrn's and NginAd's for example. I know that in the case of NginAd, it was implemented as a mock bid to get the $$ before the actual winning ad tag is loaded to perform the real auction against the DSPs.

No additional flags or extensions are necessary to use OpenRTB with Prebid.js or other header bidding tools as far as I know.

- Chris

Sam Tingleff

unread,
Mar 29, 2016, 4:12:26 PM3/29/16
to openr...@googlegroups.com
Hey Tony, thanks for bringing this up.

I like option #2. "Header bidder" seems like a marketing term more than anything and in the protocol we should indicate what it actually means, which is more along the lines of the fields you've listed.

I think we'd also like a unique ID from the publisher which would be consistent across all the exchanges consulted, and would allow the bidder to reconcile the same impression received via n different exchanges.

--
You received this message because you are subscribed to the Google Groups "openrtb-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openrtb-dev...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Christopher Gu

unread,
Mar 29, 2016, 11:11:26 PM3/29/16
to openrtb-dev
Hi Sam/Tony,

Say there was a dedicated header bidding object in the next version of the protocol?

header.type, integer, required, 0=unknown, 1=client-side, 2=server-side


How does "header.type" make sense?

What type of header bid takes place on the server side?


Header bidding generally refers to an auction in the HTML <head> tag via script, meaning in an HTTP response for a web page to a client.


header.mediation, integer, recommended/required?


What is the mediation referring to exactly? Does this refer to an embedded ad tag in an OpenRTB response to the header (waterfall)? Why would this be in the protocol?


header.timeout, integer, optional, timeout setting for header auction


This one sort of makes sense since the publisher often times sets the auction timeout.


Are these parameters from typical header bidding such as Prebid.js, or are they from Sovrn's HeaderSuite.com proprietary implementation?


- Chris

chibuike njoku

unread,
Apr 12, 2016, 1:50:28 AM4/12/16
to openrtb-dev
Hi, i installed the nginad server but it throws error.

It seem to be working now. However, there's some issue with the MySQL Database tables. The system is throwing error with every login attempt, you can try any login info at http://68.233.227.45/auth/authenticate.


Please confirm if the Database Scheme here: https://nginad.atlassian.net/wiki/display/NGIN/Installing+NginAd+MySQL+Database+Server+RDB# is the valid database to use. I am getting the error below: "The supplied parameters to DbTable failed to produce a valid sql statement, please check table and column names for validity." Thanks

Reply all
Reply to author
Forward
Message has been deleted
0 new messages