You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As part of a publisher's monetization strategy, they can optionally pass First Party Data (FPD), either about the inventory or about the user, the application which is reserved for Private MarketPlace (PMP) deals. A number of adapters support taking key/value pairs as arguments, but they're all different. e.g.
Rubicon takes keywords, inventory and visitor parameters
AppNexustakes keywords and user
OpenX takes customParams
Index takes firstPartyData
etc
Goals
Provide a standard method in the SDK to pass FPD to adapters
Provide an Access Control List for publishers to authorize which adapters have access to FPD
Proposal
The proposal has two main components:
Publisher facing API in the SDK to pass FPD
Method to pass FPD to prebid server
SDK interface
Define an SDK interface to allow passing of the following data points:
-- An arbitrary set of inventory (app data) key / values pairs at the request and impression grain
-- An arbitrary set of visitor (user data) key / values pairs at the request grain only
-- Ability to pass a free from list (Access Control List) to authorize who has access to global FPD
OpenRTB interface
The PBJS and SDK values would be copied to these OpenRTB locations:
global set of bidders allowed to receive global ext.data (Access Control List) - ext.prebid.data.bidders[]
global context.data - app.ext.data
global user.ATTRIBUTE - user.ATTRIBUTE (keywords, gender, yob, geo)
Access Control List (ext.prebid.data)
-- If no bidders were set in the ACL input, include bidders object but leave array empty if any globally set data objects are set
-- bidder values, if set, should be an array of strings
Global Inventory (app.ext.data) and Visitor (user.ext.data) data
-- Any number of data keys can be set
-- Values for each key must be an array of strings if set
-- Values can be an empty array
Example OpenRTB data request
{
"ext": {
"prebid": {
"data": { "bidders": [ 'rubicon', 'appnexus' ] } // applies to only global configuration
}
},
"app": {
"ext": {
"data": {
"level": ["1"],
"categories": ["game", "rpg", "violence"]
} // only seen in PBS by bidders named in ext.prebid.data.bidders[]
}
},
"user": {
"keywords": [],
"gender": "",
"yob": 1999,
"geo": {},
"ext": {
"data": {
"interests": ["games", "sports", "travel"],
"income": ["80k"]
} // only seen by bidders named in ext.prebid.data.bidders[]
}
},
"imp": [
"ext": {
"context": {
"keywords": [],
"data": {
"viewable":["true"],
"interstitial":["true"]
} //not set with ACL
}
}
]
}
Type of issue
Feature
[This is the Prebid SDK implementation of https://github.com/prebid/Prebid.js/issues/3687]
Background
As part of a publisher's monetization strategy, they can optionally pass First Party Data (FPD), either about the inventory or about the user, the application which is reserved for Private MarketPlace (PMP) deals. A number of adapters support taking key/value pairs as arguments, but they're all different. e.g.
keywords
,inventory
andvisitor
parameterskeywords
anduser
customParams
firstPartyData
Goals
Proposal
The proposal has two main components:
SDK interface
-- An arbitrary set of inventory (app data) key / values pairs at the request and impression grain
-- An arbitrary set of visitor (user data) key / values pairs at the request grain only
-- Ability to pass a free from list (Access Control List) to authorize who has access to global FPD
OpenRTB interface
The PBJS and SDK values would be copied to these OpenRTB locations:
OpenRTB translation behavior:
-- If no bidders were set in the ACL input, include bidders object but leave array empty if any globally set data objects are set
-- bidder values, if set, should be an array of strings
-- Any number of data keys can be set
-- Values for each key must be an array of strings if set
-- Values can be an empty array
Example OpenRTB data request
Other information
The original proposal was in the prebid.js issue: prebid/Prebid.js#3687
Prebid Server proposal: prebid/prebid-server#879
The text was updated successfully, but these errors were encountered: