-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pre-Auction Filters and the Prebid Ad Slot #4149
Comments
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
We discussed this last week and determined that we would add a The proposal is that this event will be fired after conditional adunit processing but before adunits are copied to bidrequests. It will pass in the array of adunits and allow the page function to alter the contents. For example:
|
Proposal is that we limit this to cover just the stated use case. We call the event If there are other use cases in the future that require updating the ad units before conditional logic, that person can figure out the details. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
For the record, this is done in PBJS. PBS doesn't need changes unless an adapter wants to pass the value through their endpoint on a different attribute. |
For the record, just found that the implementation was slightly mismatched from the original spec. Originally the openrtb definition was imp[].ext.context.data.adslot, but it got implemented in pbsBidAdapter as imp[].ext.context.data.pbadslot. Changing the spec and PBS because that's easier than upgrading clients to a patched PBJS. |
Feature Overview
The Prebid AdUnit 'code' is a mixed attribute that can be either the GPT slot name or the div ID. The undecided nature of this value makes the 'code' harder to utilize for reporting and targeting.
This feature proposes a resolution to the long-running issue of the confusing AdUnit
code
value by establishing conventions for passing in something more descriptive and stable. It's optional for publishers to use it, and Bid Adapters and Analytics Adapters will not need to change unless they want to take advantage of the more stable field.Details
Currently, Prebid.js doesn't link the adunit to ad ad server slot until after the auction -- it happens during the call to set the targeting. But since the pbAdSlot may be the ad slot name, we need to know the GPT slot before the auction.
What's proposed is a new Prebid.js hook that gives publishers the option to define and utilize a pbAdSlot. A possible source of the pbAdSlot is a hunt-path like:
However, publishers are likely to want to customize the definition of Prebid Ad Slot in a number of ways, e.g.
So any approach will need to be flexible. Instead of defining a complex module that implements a mini-compiler capable of delivering the necessary flexibility, we propose providing a generic hook in Prebid.js auction processing and reference functions that publishers can modify to work for their scenarios.
Business Case
Prebid has come a long way from its humble beginnings as a set of open-source javascript tools for header bidding. Today, Prebid is a core system within the ad stack, and publishers are asking Prebid to be able to do more: provide robust reporting, centralize common functions like pricing and ad quality controls, and target PMP deals. Power users of Prebid are learning that the wrapper performs best when its configuration can be fine tuned to suit the inventory it serves, and want the wrapper to be able to respond dynamically to the characteristics of each page view.
This set of enhancements require a system for inventory classification and segmentation that resembles what one would find in an ad server or exchange. Publishers, for example, maintain different pricing restrictions for differing segments of inventory, and therefore construct detailed pricing control schemes using inventory targeting. Today, these controls must be duplicated across multiple demand partner interfaces, and publishers are looking to see it be centralized to the wrapper. To provide this feature, the wrapper must also be able to address specific segments of inventory and set unique pricing controls for each.
There are many use cases for Ad Slot; the primary near term use is reporting. The growth of Prebid-centric analytics solutions such as Roxot, Pubwise, Rivr, and many others demonstrates the value that Prebid offers as a home for consolidated reporting on the a publisher’s programmatic business.
Where Prebid falls short today in reporting is its limited ability to provide granular, flexible inventory segmentation. Prebid’s existing inventory object, the adUnit, cannot meet these requirements because it contains a verbose list of required inventory and bidder attributes. Each ad unit created adds a significant amount to Prebid’s overall payload. For publishers with large and complex networks, segmenting inventory with adUnit is not feasible.
Prebid clearly needs a more robust inventory management structure in order to meet the use cases stated above, but developing it and driving its adoption is no small task. For that reason, the initial implementation is highly flexible, allowing publishers to insert any string that they use to identify inventory for inventory segmentation today. For the majority of users, this will be the Google Ad Manager Ad Unit Path. The GAM Ad Unit has the benefit of being easily parseable, allowing reporting and targeting systems to take advantage of its hierarchy to allow publishers to group and subdivide inventory quickly and easily. Over time, the Prebid Ad Slot could evolve into a more robust, stand alone system.
Requirements
a. AdUnit.code
b. AdUnit.context.pbAdSlot
c. div data elements
d. ad server slotname
Proposed Interfaces
The text was updated successfully, but these errors were encountered: