diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 62842de840..a395386038 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -4,6 +4,8 @@ Please give a short description and check the matching checkboxes to help us rev Please make the PR writeable. This allows us to fix typos, grammar and linting errors ourselves, which makes merging and reviewing a lot faster for everybody. + +⚠️ The documentation is merged after the related code changes are merged and release ⚠️ --> ## 🏷 Type of documentation diff --git a/dev-docs/bidders/adport.md b/dev-docs/bidders/adport.md new file mode 100644 index 0000000000..af49d131ab --- /dev/null +++ b/dev-docs/bidders/adport.md @@ -0,0 +1,115 @@ +--- +layout: bidder +title: AdPort +description: Prebid AdPort Bidder Adapter +aliasCode: adverxo +pbjs: true +pbs: false +pbs_app_supported: false +biddercode: adport +userIds: +media_types: banner, native, video +schain_supported: true +dchain_supported: false +ortb_blocking_supported: true +floors_supported: true +multiformat_supported: will-bid-on-any +tcfeu_supported: false +dsa_supported: false +gvl_id: none +usp_supported: false +coppa_supported: false +gpp_sids: none +userId: no +safeframes_ok: false +deals_supported: true +fpd_supported: true +prebid_member: false +privacy_sandbox: no +sidebarType: 1 +--- + +### Note + +The AdPort Bidding adapter requires setup and approval before beginning. Please reach out to for +more details. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------|----------|-----------------------|---------------------------|----------| +| `adUnitId` | required | Unique identifier for the ad unit in AdPort platform. | `1` | `integer` | +| `auth` | required | Authentication token provided by AdPort platform for the AdUnit. |`'61336e75e414c77c367eq5c47c2599ce80a8032b'` | `string` | + +### Setting First Party Data (FPD) + +Publishers should use the `ortb2` method of setting First Party Data. The following fields are supported: + +- ortb2.site.\* +- ortb2.app.\* +- ortb2.user.\* + +Example first party data: + +```javascript +pbjs.setConfig({ + ortb2: { + site: { + keywords: "kw1,kw2", + content: { + title: "title1", + series: "series1" + } + }, + user: { + keywords: "a,b", + gender: "M", + yob: 1984 + } + } +}); +``` + +### ORTB Blocking + +AdPort supports the next blocking parameters: + +- Blocked advertisers list (`badv`) is an array of domains as strings. +- Blocked apps list (`bapp`) is an array of apps names as strings, for mobile apps in Google Play Store, these should be + bundle or package names (e.g. com.foo.mygame). For apps in Apple App Store, these should be a numeric ID. +- Blocked categories list (`bcat`) is an array of IAB categories as strings. +- Blocked attributes list (`battr`) is an array of integers. Refer to section 5.3 of the IAB specification for a list of + attributes. + +#### Globally defined ORTB Blocking + +```javascript +pbjs.setConfig({ + ortb2: { + badv: ["domain1.com", "domain2.com"], + bapp: ["com.foo.mygame", "284708449"], + bcat: ["IAB23-1", "IAB23-5", "IAB25-3", "IAB25-2"] + } +}); +``` + +#### ORTB Blocking specific only to the AdPort bidder + +```javascript +pbjs.setBidderConfig({ + bidders: ['adport'], // Or alias + config: { + ortb2: { + badv: ["domain1.com", "domain2.com"], + bapp: ["com.foo.mygame"], + bcat: ["IAB23-1", "IAB23-5", "IAB25-3", "IAB25-2"] + } + } +}); +``` + +#### Media Type defined ORTB Blocking + +Additionally `battr` ORTB blocking param may be set on media types to specify blocked creative +attributes. Refer to section 5.3 of the IAB specification for a list of attributes. diff --git a/dev-docs/bidders/adverxo.md b/dev-docs/bidders/adverxo.md new file mode 100644 index 0000000000..173531c6df --- /dev/null +++ b/dev-docs/bidders/adverxo.md @@ -0,0 +1,115 @@ +--- +layout: bidder +title: Adverxo +description: Prebid Adverxo Bidder Adapter +pbjs: true +pbs: true +pbs_app_supported: true +biddercode: adverxo +userIds: +media_types: banner, native, video +schain_supported: true +dchain_supported: false +ortb_blocking_supported: true +floors_supported: true +multiformat_supported: will-bid-on-any +tcfeu_supported: false +dsa_supported: false +gvl_id: none +usp_supported: false +coppa_supported: false +gpp_sids: none +userId: no +safeframes_ok: false +deals_supported: true +fpd_supported: true +prebid_member: false +privacy_sandbox: no +sidebarType: 1 +--- + +### Note + +The Adverxo Bidding adapter requires setup and approval before beginning. Please reach out to for +more details. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------|----------|-----------------------|---------------------------|----------| +| `host` | optional | Ad network host | `'js.pbsadverxo.com'` | `string` | +| `adUnitId` | required | Unique identifier for the ad unit in Adverxo platform. | `1` | `integer` | +| `auth` | required | Authentication token provided by Adverxo platform for the AdUnit. | `'61336e75e414c77c367eq5c47c2599ce80a8032b'` | `string` | + +### Setting First Party Data (FPD) + +Publishers should use the `ortb2` method of setting First Party Data. The following fields are supported: + +- ortb2.site.\* +- ortb2.app.\* +- ortb2.user.\* + +Example first party data: + +```javascript +pbjs.setConfig({ + ortb2: { + site: { + keywords: "kw1,kw2", + content: { + title: "title1", + series: "series1" + } + }, + user: { + keywords: "a,b", + gender: "M", + yob: 1984 + } + } +}); +``` + +### ORTB Blocking + +Adverxo supports the next blocking parameters: + +- Blocked advertisers list (`badv`) is an array of domains as strings. +- Blocked apps list (`bapp`) is an array of apps names as strings, for mobile apps in Google Play Store, these should be + bundle or package names (e.g. com.foo.mygame). For apps in Apple App Store, these should be a numeric ID. +- Blocked categories list (`bcat`) is an array of IAB categories as strings. +- Blocked attributes list (`battr`) is an array of integers. Refer to section 5.3 of the IAB specification for a list of + attributes. + +#### Globally defined ORTB Blocking + +```javascript +pbjs.setConfig({ + ortb2: { + badv: ["domain1.com", "domain2.com"], + bapp: ["com.foo.mygame", "284708449"], + bcat: ["IAB23-1", "IAB23-5", "IAB25-3", "IAB25-2"] + } +}); +``` + +#### ORTB Blocking specific only to the Adverxo bidder + +```javascript +pbjs.setBidderConfig({ + bidders: ['adverxo'], // Or alias + config: { + ortb2: { + badv: ["domain1.com", "domain2.com"], + bapp: ["com.foo.mygame"], + bcat: ["IAB23-1", "IAB23-5", "IAB25-3", "IAB25-2"] + } + } +}); +``` + +#### Media Type defined ORTB Blocking + +Additionally `battr` ORTB blocking param may be set on media types to specify blocked creative +attributes. Refer to section 5.3 of the IAB specification for a list of attributes. diff --git a/dev-docs/bidders/bidsmind.md b/dev-docs/bidders/bidsmind.md new file mode 100644 index 0000000000..c230fa19e7 --- /dev/null +++ b/dev-docs/bidders/bidsmind.md @@ -0,0 +1,115 @@ +--- +layout: bidder +title: Bidsmind +description: Prebid Bidsmind Bidder Adapter +aliasCode: adverxo +pbjs: true +pbs: false +pbs_app_supported: false +biddercode: bidsmind +userIds: +media_types: banner, native, video +schain_supported: true +dchain_supported: false +ortb_blocking_supported: true +floors_supported: true +multiformat_supported: will-bid-on-any +tcfeu_supported: false +dsa_supported: false +gvl_id: none +usp_supported: false +coppa_supported: false +gpp_sids: none +userId: no +safeframes_ok: false +deals_supported: true +fpd_supported: true +prebid_member: false +privacy_sandbox: no +sidebarType: 1 +--- + +### Note + +The Bidsmind Bidding adapter requires setup and approval before beginning. Please reach out to for +more details. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------|----------|-----------------------|---------------------------|----------| +| `adUnitId` | required | Unique identifier for the ad unit in Bidsmind platform. | `1` | `integer` | +| `auth` | required | Authentication token provided by Bidsmind platform for the AdUnit. | `'61336e75e414c77c367eq5c47c2599ce80a8032b'` | `string` | + +### Setting First Party Data (FPD) + +Publishers should use the `ortb2` method of setting First Party Data. The following fields are supported: + +- ortb2.site.\* +- ortb2.app.\* +- ortb2.user.\* + +Example first party data: + +```javascript +pbjs.setConfig({ + ortb2: { + site: { + keywords: "kw1,kw2", + content: { + title: "title1", + series: "series1" + } + }, + user: { + keywords: "a,b", + gender: "M", + yob: 1984 + } + } +}); +``` + +### ORTB Blocking + +Bidsmind supports the next blocking parameters: + +- Blocked advertisers list (`badv`) is an array of domains as strings. +- Blocked apps list (`bapp`) is an array of apps names as strings, for mobile apps in Google Play Store, these should be + bundle or package names (e.g. com.foo.mygame). For apps in Apple App Store, these should be a numeric ID. +- Blocked categories list (`bcat`) is an array of IAB categories as strings. +- Blocked attributes list (`battr`) is an array of integers. Refer to section 5.3 of the IAB specification for a list of + attributes. + +#### Globally defined ORTB Blocking + +```javascript +pbjs.setConfig({ + ortb2: { + badv: ["domain1.com", "domain2.com"], + bapp: ["com.foo.mygame", "284708449"], + bcat: ["IAB23-1", "IAB23-5", "IAB25-3", "IAB25-2"] + } +}); +``` + +#### ORTB Blocking specific only to the Bidsmind bidder + +```javascript +pbjs.setBidderConfig({ + bidders: ['bidsmind'], // Or alias + config: { + ortb2: { + badv: ["domain1.com", "domain2.com"], + bapp: ["com.foo.mygame"], + bcat: ["IAB23-1", "IAB23-5", "IAB25-3", "IAB25-2"] + } + } +}); +``` + +#### Media Type defined ORTB Blocking + +Additionally `battr` ORTB blocking param may be set on media types to specify blocked creative +attributes. Refer to section 5.3 of the IAB specification for a list of attributes. diff --git a/dev-docs/bidders/connatix.md b/dev-docs/bidders/connatix.md index 5d313e180b..f72c364cb0 100644 --- a/dev-docs/bidders/connatix.md +++ b/dev-docs/bidders/connatix.md @@ -17,7 +17,7 @@ deals_supported: true floors_supported: true fpd_supported: false pbjs: true -pbs: false +pbs: true prebid_member: false multiformat_supported: will-bid-on-one ortb_blocking_supported: true diff --git a/dev-docs/bidders/epsilon.md b/dev-docs/bidders/epsilon.md index 1c6b3f4645..1970221e85 100644 --- a/dev-docs/bidders/epsilon.md +++ b/dev-docs/bidders/epsilon.md @@ -5,13 +5,14 @@ description: Epsilon Prebid Bidder Adaptor (formerly Conversant) pbjs: true pbs: true biddercode: conversant -media_types: video +media_types: banner, video, audio tcfeu_supported: true userIds: criteo, id5Id, identityLink, liveIntentId, parrableId, pubCommonId, unifiedId, publinkId prebid_member: true schain_supported: true gvl_id: 24 sidebarType: 1 +multiformat_supported: will-not-bid --- @@ -84,7 +85,7 @@ The following values are defined in the [ORTB 2.5 spec](https://www.iab.com/wp-c Publishers should use the `ortb2` method of setting for setting First Party Data. Example first party data configuration that is available to all adUnits -``` +```javascript pbjs.setConfig({ debug: true, cache: { @@ -105,7 +106,7 @@ pbjs.setConfig({ Example AdUnit specific data using the `ortb2Imp` object -``` +```javascript var videoAdUnit = { code: 'video1', mediaTypes: { diff --git a/dev-docs/bidders/mobupps.md b/dev-docs/bidders/mobupps.md new file mode 100644 index 0000000000..c7f114a744 --- /dev/null +++ b/dev-docs/bidders/mobupps.md @@ -0,0 +1,115 @@ +--- +layout: bidder +title: Mobupps +description: Prebid Mobupps Bidder Adapter +aliasCode: adverxo +pbjs: true +pbs: false +pbs_app_supported: false +biddercode: mobupps +userIds: +media_types: banner, native, video +schain_supported: true +dchain_supported: false +ortb_blocking_supported: true +floors_supported: true +multiformat_supported: will-bid-on-any +tcfeu_supported: false +dsa_supported: false +gvl_id: none +usp_supported: false +coppa_supported: false +gpp_sids: none +userId: no +safeframes_ok: false +deals_supported: true +fpd_supported: true +prebid_member: false +privacy_sandbox: no +sidebarType: 1 +--- + +### Note + +The Mobupps Bidding adapter requires setup and approval before beginning. Please reach out to for +more details. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------|----------|-----------------------|---------------------------|----------| +| `adUnitId` | required | Unique identifier for the ad unit in Mobupps platform. | `1` | `integer` | +| `auth` | required | Authentication token provided by Mobupps platform for the AdUnit. | `'61336e75e414c77c367eq5c47c2599ce80a8032b'` | `string` | + +### Setting First Party Data (FPD) + +Publishers should use the `ortb2` method of setting First Party Data. The following fields are supported: + +- ortb2.site.\* +- ortb2.app.\* +- ortb2.user.\* + +Example first party data: + +```javascript +pbjs.setConfig({ + ortb2: { + site: { + keywords: "kw1,kw2", + content: { + title: "title1", + series: "series1" + } + }, + user: { + keywords: "a,b", + gender: "M", + yob: 1984 + } + } +}); +``` + +### ORTB Blocking + +Mobupps supports the next blocking parameters: + +- Blocked advertisers list (`badv`) is an array of domains as strings. +- Blocked apps list (`bapp`) is an array of apps names as strings, for mobile apps in Google Play Store, these should be + bundle or package names (e.g. com.foo.mygame). For apps in Apple App Store, these should be a numeric ID. +- Blocked categories list (`bcat`) is an array of IAB categories as strings. +- Blocked attributes list (`battr`) is an array of integers. Refer to section 5.3 of the IAB specification for a list of + attributes. + +#### Globally defined ORTB Blocking + +```javascript +pbjs.setConfig({ + ortb2: { + badv: ["domain1.com", "domain2.com"], + bapp: ["com.foo.mygame", "284708449"], + bcat: ["IAB23-1", "IAB23-5", "IAB25-3", "IAB25-2"] + } +}); +``` + +#### ORTB Blocking specific only to the Mobupps bidder + +```javascript +pbjs.setBidderConfig({ + bidders: ['mobupps'], // Or alias + config: { + ortb2: { + badv: ["domain1.com", "domain2.com"], + bapp: ["com.foo.mygame"], + bcat: ["IAB23-1", "IAB23-5", "IAB25-3", "IAB25-2"] + } + } +}); +``` + +#### Media Type defined ORTB Blocking + +Additionally `battr` ORTB blocking param may be set on media types to specify blocked creative +attributes. Refer to section 5.3 of the IAB specification for a list of attributes. diff --git a/dev-docs/bidders/nativo.md b/dev-docs/bidders/nativo.md index c330ead57a..f3bf31ecfa 100644 --- a/dev-docs/bidders/nativo.md +++ b/dev-docs/bidders/nativo.md @@ -4,12 +4,16 @@ title: Nativo description: Prebid Nativo Bidder Adapter pbjs: true pbs: true +media_types: banner, native, video +multiformat_supported: will-bid-on-one +floors_supported: true gvl_id: 263 tcfeu_supported: true usp_supported: true userIds: all biddercode: nativo sidebarType: 1 +privacy_sandbox: topics --- ### Note diff --git a/dev-docs/bidders/nextMillennium.md b/dev-docs/bidders/nextMillennium.md index a41280704b..e851765e30 100644 --- a/dev-docs/bidders/nextMillennium.md +++ b/dev-docs/bidders/nextMillennium.md @@ -5,8 +5,8 @@ description: NextMillennium bid adapter gvl_id: dev-docs/bidders/nextMillennium.md tcfeu_supported: true usp_supported: true -coppa_supported: false -schain_supported: false +coppa_supported: true +schain_supported: true dchain_supported: false safeframes_ok: false deals_supported: false diff --git a/dev-docs/bidders/rxnetwork.md b/dev-docs/bidders/rxnetwork.md new file mode 100644 index 0000000000..d9d05fcd76 --- /dev/null +++ b/dev-docs/bidders/rxnetwork.md @@ -0,0 +1,36 @@ +--- +layout: bidder +title: RxNetwork +description: Prebid RxNetwork Bidder Adaptor +pbjs: true +pbs: false +biddercode: rxnetwork +aliasCode: adkernel +media_types: banner, native, video +tcfeu_supported: true +usp_supported: true +coppa_supported: true +gpp_supported: true +pbs_app_supported: false +gvl_id: 14 (adkernel) +schain_supported: true +userIds: all +fpd_supported: true +prebid_member: false +ortb_blocking_supported: true +multiformat_supported: will-bid-on-one +floors_supported: true +sidebarType: 1 +--- + +### Note + +The RxNetwork Bidding adaptor requires setup and approval before beginning. Please reach out to for more details + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------|----------|-----------------------|---------------------------|----------| +| `host` | required | Ad network's RTB host | `'cpm.rxnetwork.net'` | `string` | +| `zoneId` | required | RTB zone id | `30164` | `integer` | diff --git a/prebid-server/developers/add-a-module-java.md b/prebid-server/developers/add-a-module-java.md index 72b43f3b14..cdb00f8815 100644 --- a/prebid-server/developers/add-a-module-java.md +++ b/prebid-server/developers/add-a-module-java.md @@ -93,6 +93,18 @@ The structure of your module source code inside the modules directory must have +- README.md <- documentation ``` +## Module Configuration +There are several places to configure a module: + +- **Host/Bean config** is stored in one of the YAML files (generally application.yaml), primarily used for enabling the module at the server level with `hooks..enabled`. It should only contain static config which applies to initial startup independent from any account. Most modules have no host-level config at all, apart from enabled flag. +- **Default account config** is stored in a YAML file, but only used when account config is available (i.e. it's not seen at the entrypoint stage). It is used to define defaults for all accounts. +- **Account/Runtime config** is stored in the database, YAML file, or whatever other account backend used. It is used to define individual account configuration. + +Important Notes: + +- Host config will be provided to module once on application start. +- Account config will be provided to module on each request. + ## Module Code The quick start is to take a look in two places: diff --git a/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.md b/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.md index 188f4b16a2..c6d3d950f3 100644 --- a/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.md +++ b/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.md @@ -117,7 +117,7 @@ This is a corresponding sample response to a sample bid request: Prebid Server's support for Fledge is a passthrough: -1. If the request contains `imp.ext.ae: 1` +1. If the request contains `imp[].ext.ae: 1` 2. Bid adapters may respond with 'auction config' that's placed in `ext.prebid.fledge.auctionconfigs[]`. The auction config must then be used by the client. See the Prebid.js [PAAPI for GPT](/dev-docs/modules/paapiForGpt.html) module for more information. @@ -140,7 +140,7 @@ Prebid Server accepts all OpenRTB 2.x fields and passes them in the request to a | regs.gdpr | 2.6 | Bidders supporting 2.5 only: downgraded to regs.ext.gdpr | | regs.us_privacy | 2.6 | Bidders supporting 2.5 only: downgraded to regs.ext.us_privacy | | user.consent | 2.6 | Bidders supporting 2.5 only: downgraded to user.ext.consent | -| imp.rwdd | 2.6 | Bidders supporting 2.5 only: downgraded to imp.ext.prebid.is_rewarded_inventory | +| imp.rwdd | 2.6 | Bidders supporting 2.5 only: downgraded to imp[].ext.prebid.is_rewarded_inventory | | user.eids | 2.6 | Bidders supporting 2.5 only: downgraded to user.ext.eids | | source.schain | 2.6 | Bidders supporting 2.5 only: downgraded to source.ext.schain | | wlangb, {content, device}.langb, cattax, {site, app, publisher, content, producer}.cattax, ssai, {app, site}.content.{network, channel}, {app, content, site, user}.kwarray, device.sua | 2.6 | Bidders supporting 2.5 only: these fields are removed | @@ -771,7 +771,7 @@ For example, if the Request defines an alias like this: } ``` -then any `imp.ext.appnexus` params will actually go to the **rubicon** adapter. +then any `imp[].ext.appnexus` params will actually go to the **rubicon** adapter. It will become impossible to fetch bids from AppNexus within that Request. ##### Bidder Alias GVL IDs @@ -1072,14 +1072,14 @@ ext.prebid.data.eidpermissions is an array of objects that can contain these att To be deprecated for `request.imp[].rwdd` introduced in OpenRTB 2.6. Rewarded video is a way to incentivize users to watch ads by giving them 'points' for viewing an ad. A Prebid Server -client can declare a given adunit as eligible for rewards by declaring `imp.ext.prebid.is_rewarded_inventory:1`. +client can declare a given adunit as eligible for rewards by declaring `imp[].ext.prebid.is_rewarded_inventory:1`. ##### Create Transaction ID The request can contain the global `createtids` flag to control the `transmitTid` [Activity Control](/prebid-server/features/pbs-activitycontrols.html). ```text -ext.request.createtids: false +ext.prebid.createtids: false ``` If the value is `false`, the `transmitTid` activity is overridden to "denied", which means bid adapters will not get unique transaction IDs. If not specified, then the value of the transmitTid activity for the account is used. The overall default value it `true`, which translates to "allow" the generation of TIDs. @@ -1119,7 +1119,7 @@ Provides a way to override multiple bidder responses for this impression, retrie When a storedauctionresponse ID is specified: -- the rest of the imp.ext.prebid block is irrelevant and ignored +- the rest of the imp[].ext.prebid block is irrelevant and ignored - nothing is sent to any bidder adapter for that imp - the response retrieved is assumed to be the entire contents of the seatbid object corresponding to that impression. @@ -1227,7 +1227,7 @@ Provides a way to override multiple bidder responses for this impression, with t When storedauctionresponse JSON is specified: -- the rest of the imp.ext.prebid block is irrelevant and ignored +- the rest of the imp[].ext.prebid block is irrelevant and ignored - nothing is sent to any bidder adapter for that imp - the JSON in the request is assumed to be the entire contents of the seatbid object corresponding to that impression. @@ -1302,7 +1302,7 @@ Provides a way to override the entire bid response, with the contents supplied o When storedauctionresponse JSON is specified at the global level: -- all imp.ext.prebid.storedauctionresponse blocks are irrelevant and ignored +- all imp[].ext.prebid.storedauctionresponse blocks are irrelevant and ignored - nothing is sent to any bidder adapter - the JSON in the request is assumed to be the entire contents of the seatbid response @@ -1362,9 +1362,9 @@ Note: the `##PBSIMPID##` macro is only supported in PBS-Java. Please use `"repla In contrast to the stored**auction**responses above, using a stored**bid**response lets real auctions take place while the actual bidder response is overridden in such a way that it still exercises adapter code. -PBS removes imp.ext.prebid.bidder parameters for those +PBS removes imp[].ext.prebid.bidder parameters for those bidders specified in storedbidresponse but if there's a bidder present -in imp.ext.prebid.bidder that's doesn't have a storedbidresponse specified, +in imp[].ext.prebid.bidder that's doesn't have a storedbidresponse specified, the adapter will be called as usual. For example, this request: @@ -1458,7 +1458,7 @@ Prebid defines several types of First Party Data (FPD): 1. Cross-impression contextual information. e.g. the content category of the page. This data goes in the `site.ext.data` object or the `app.ext.data` object. 1. User-level information. e.g. whether the user is a registered user. This data goes in `user.ext.data`. -1. Impression-level information. e.g. the Global Placement ID. This data goes in the `imp.ext.data` object. +1. Impression-level information. e.g. the Global Placement ID. This data goes in the `imp[].ext.data` object. 1. Seller-Defined Audience (SDA) contextual data. This goes in `site.data[]` or `app.data[]` in accordance with the [IAB segment taxonomy conventions](https://github.com/InteractiveAdvertisingBureau/openrtb/blob/main/extensions/community_extensions/segtax.md). 1. SDA user data goes in `user.data[]` with the same [conventions](https://github.com/InteractiveAdvertisingBureau/openrtb/blob/main/extensions/community_extensions/segtax.md) as the contextual data. @@ -1566,10 +1566,10 @@ When Prebid Server sees `imp[].ext.prebid.imp.BIDDER`, the behavior is to: 1. When passing this imp to that bidder, merge the contents of BIDDER into the imp 1. Remove the imp[].ext.prebid.imp object 1. Leave any imp[].ext.prebid.storedrequest object -1. The imp.ext.prebid.imp.BIDDER object name is case insensitive and supports aliases -1. If imp.ext.prebid.imp.BIDDER does not resolve to an actual bidder or alias in a case-insensitive way, it is ignored with a warning when in debug mode. -1. No validation is done on imp.ext.prebid.imp.BIDDER.ext except that imp.ext.prebid.imp.BIDDER.ext.prebid.BIDDER is removed. -1. The contents of imp.ext.prebid.imp.BIDDER takes precedence in the merge if the field already exists in the request. +1. The imp[].ext.prebid.imp.BIDDER object name is case insensitive and supports aliases +1. If imp[].ext.prebid.imp.BIDDER does not resolve to an actual bidder or alias in a case-insensitive way, it is ignored with a warning when in debug mode. +1. No validation is done on imp[].ext.prebid.imp.BIDDER.ext except that imp[].ext.prebid.imp.BIDDER.ext.prebid.BIDDER is removed. +1. The contents of imp[].ext.prebid.imp.BIDDER takes precedence in the merge if the field already exists in the request. 1. The resulting imp object must be valid OpenRTB per the system schema. Here's an example showing a scenario showing a storedrequest-based scenario: @@ -2133,7 +2133,9 @@ The Prebid SDK version comes from: | imp[].ext.prebid.storedrequest.id | Look up the defined stored request and merge the DB contents with this imp, see [stored requests](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#stored-requests). | object | no (yes with [issue 2292](https://github.com/prebid/prebid-server/issues/2292) | | imp[].ext.prebid.is_rewarded_inventory | (deprecated) Passed through to bid adapters, see [rewarded video](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#rewarded-video). (use imp.rwdd in ORTB 2.6) | integer | yes | | imp[].ext.prebid.passthrough | Copied to the response in seatbid.bid.ext.prebid.passthrough. Allows an application to pass a value through to the response, see [request passthrough](#request-passthrough). | object | no | -| imp.ext.prebid.adunitcode | Prebid.js adunit code | string | yes | +| imp[].ext.prebid.adunitcode | Prebid.js adunit code | string | yes | +| imp[].ext.igs.ae | If 1, signals bid adapters that Protected Audience config is accepted on the response. Note: 'ae' stands for 'auction environment'. | integer | yes | +| imp[].ext.ae | If 1, signals bid adapters that Fledge auction config is accepted on the response. Note: this parameter has been replaced with imp[].ext.igs.ae | integer | yes | | device.ext.prebid.interstitial | PBS-core will adjust the sizes on a request for interstitials,see [interstitial support](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#interstitial-support). | object | yes | | user.ext.prebid.buyeruids | An alternate to [/cookie_sync](/prebid-server/endpoints/pbs-endpoint-cookieSync.html), the request can supply bidder ID values, see [buyer uid](#buyer-uid). | object | no | | ext.prebid.adservertargeting | advanced targeting value rules, see [custom targeting](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#custom-targeting). | object | no | @@ -2164,7 +2166,6 @@ The Prebid SDK version comes from: | ext.prebid.returnallbidstatus | If true, PBS returns [ext.seatnonbid](#seat-non-bid) with details about bidders that didn't bid. | boolean | no | | ext.prebid.analytics | Arguments that can be passed through to individual analytics adapters | object | no | | ext.prebid.analytics.options.enableclientdetails | Requests that [aTags](/prebid-server/developers/module-atags.html) be sent to the client-side for analytics. | boolean | no | -| imp.ext.ae | If 1, signals bid adapters that Fledge auction config is accepted on the response. (ae stands for auction environment) | integer | yes | | app.ext.prebid.source | The client that created this ORTB. Normally "prebid-mobile" | string | yes | | app.ext.prebid.version | The version of the client that created this ORTB. e.g. "1.1" | string | yes | | ext.prebid.biddercontrols.BIDDERCODE.prefmtype | Override the mediatype sent to the named bidder if they don't support multiformat. | string | no | diff --git a/prebid-server/pbs-modules/greenbids-real-time-data.md b/prebid-server/pbs-modules/greenbids-real-time-data.md index 5c6a25c4fa..ae8811da4a 100644 --- a/prebid-server/pbs-modules/greenbids-real-time-data.md +++ b/prebid-server/pbs-modules/greenbids-real-time-data.md @@ -145,22 +145,39 @@ per bid requests and is not filtered by the RTD module. Here's an example analytics tag that might be produced for use in an analytics adapter: ```json -[{ - "pub_banniere_haute": { - "greenbids": { - "fingerprint": "ad63524e-b13f-4359-a975-dba9b5dc08f4", - "keptInAuction": { - "improvedigital": false, - "appnexus": true, - "pubmatic": false, - "rubicon": true, - "teads": false - }, - "isExploration": false - }, - "tid": "2c445309-06b2-47b2-a724-4aeef15faeb8" +{ + "activities": [ + { + "name": "greenbids-filter", + "status": "success", + "results": [ + { + "status": "success", + "values": { + "pub_banniere_haute": { + "greenbids": { + "fingerprint": "ad63524e-b13f-4359-a975-dba9b5dc08f4", + "keptInAuction": { + "improvedigital": false, + "appnexus": true, + "pubmatic": false, + "rubicon": true, + "teads": false + }, + "isExploration": false + }, + "tid": "2c445309-06b2-47b2-a724-4aeef15faeb8" + } + }, + "appliedTo": { + "bidders": "bidderA", + "impIds": "impId1" + } + } + ] } -}] + ] +} ``` ## Maintainer contacts diff --git a/prebid-server/pbs-modules/index.md b/prebid-server/pbs-modules/index.md index c07d1de507..bae04a3aa3 100644 --- a/prebid-server/pbs-modules/index.md +++ b/prebid-server/pbs-modules/index.md @@ -132,9 +132,11 @@ hooks: } ``` -{: .alert.alert-info : -Execution plans can be placed in account configuration, but depending on how modules are enabled in your environment, it can be inconvenient to provide instructions to place the highly technical execution plan into the account config. Some organizations have -chosen to keep all execution plans in host-level config, then enabling the `require-config-to-invoke` option as described in the next section. +{: .alert.alert-info :} +Execution plans may be placed in account configuration, but depending on how modules are enabled in your environment, it can be inconvenient to provide instructions to place the highly technical execution plan into the account config. Some organizations have chosen to keep all execution plans in host-level config, then enabling the `require-config-to-invoke` option as described in the next section. + +{: .alert.alert-warning :} +Note that if there is more than one execution plan (e.g. one the host level and one the account level) all of them will be triggered and the module invoked processed several times. ### 3. Supply the module with configuration