From c822b4b13b9baf83918cb41900c9d9910ba95669 Mon Sep 17 00:00:00 2001 From: Chris Southern <79725079+southern-growthcode@users.noreply.github.com> Date: Sun, 4 Feb 2024 10:18:33 -0500 Subject: [PATCH 01/26] GrowthCode User ID Module: Updated documentation to reflect changes to the user id module (#5113) * GC-179 Update prebid docs to reflect growthCodeIdSystem updates * Fixed Lint Issues --- .../modules/userid-submodules/growthcode.md | 47 ++++++++++++++----- 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/dev-docs/modules/userid-submodules/growthcode.md b/dev-docs/modules/userid-submodules/growthcode.md index 3aec075d33..8add06f7cf 100644 --- a/dev-docs/modules/userid-submodules/growthcode.md +++ b/dev-docs/modules/userid-submodules/growthcode.md @@ -26,9 +26,7 @@ pbjs.setConfig({ userIds: [{ name: 'growthCodeId', params: { - pid: 'TEST01', // Set your Partner ID here for production (obtained from Growthcode) - publisher_id: '_sharedID', - publisher_id_storage: 'html5' + customerEids: 'customerEids', } }] } @@ -38,11 +36,38 @@ pbjs.setConfig({ The following configuration parameters are available: {: .table .table-bordered .table-striped } -| Param under userSync.userIds[] | Scope | Type | Description | Example | -|--------------------------------|----------|--------| --- |-----------------| -| name | Required | String | The name of this module. | `"growthCodeId"` | -| params | Required | Object | Details of module params. | | -| params.pid | Required | String | This is the Partner ID value obtained from GrowthCode | `"TEST01"` | -| params.url | Optional | String | Custom URL for server | | -| params.publisher_id | Optional | String | Name if the variable that holds your publisher ID | `"_sharedID"` | -| params.publisher_id_storage | Optional | String | Publisher ID storage (cookie, html5) | `"html5"` | +| Param under userSync.userIds[] | Scope | Type | Description | Example | +|--------------------------------|----------|--------|------------------------------------------------------------------------|-----------------| +| name | Required | String | The name of this module. | `"growthCodeId"` | +| params | Required | Object | Details of module params. | | +| params.customerEids | Optional | String | Name of the variable name where the customer EID information is stored | | + +### Sample Eids +Below is an example of the EIDs stored in Local Store (customerEids) + +```json +[ + { + "source":"domain.com", + "uids":[ + { + "id":"8212212191539393121", + "ext":{ + "stype":"ppuid" + } + } + ] + }, + { + "source":"example.com", + "uids":[ + { + "id":"e06e9e5a-273c-46f8-aace-6f62cf13ea71", + "ext":{ + "stype":"ppuid" + } + } + ] + } +] +``` From 9fb933578cbc2e872e1e957b1767fffd13b200b6 Mon Sep 17 00:00:00 2001 From: mcajlakovic <141749900+mcajlakovic@users.noreply.github.com> Date: Mon, 5 Feb 2024 09:36:50 -0500 Subject: [PATCH 02/26] added mediafilterRtdProvider.md documentation (#5022) * added mediafilterRtdProvider.md * markdown linter fixes * fixed description * reviewed after feedback * fixed indent with markdownlint * couple of minor fixes --------- Co-authored-by: bretg --- dev-docs/modules/mediafilterRtdProvider.md | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 dev-docs/modules/mediafilterRtdProvider.md diff --git a/dev-docs/modules/mediafilterRtdProvider.md b/dev-docs/modules/mediafilterRtdProvider.md new file mode 100644 index 0000000000..3020d971f9 --- /dev/null +++ b/dev-docs/modules/mediafilterRtdProvider.md @@ -0,0 +1,49 @@ +--- +layout: page_v2 +title: The Media Trust Real-Time Ad Defense +display_name: The Media Trust Real-Time Ad Defense +description: Stop malware, redirects, scams, offensive ad content, heavy ads, and more from ruining your audience's experience. +page_type: module +module_type: rtd +module_code : mediafilterRtdProvider +enable_download : true +vendor_specific: true +sidebarType : 1 +--- + +# The Media Trust Real-Time Ad Defense + +## Overview + +As malvertising, scams, and controversial and offensive ad content proliferate across the digital media ecosystem, publishers need advanced controls to both shield audiences from malware attacks and ensure quality site experience. Via a speedy script, The Media Trust empowers publisher Ad/Revenue Operations teams to block malware, high-risk ad platforms, heavy ads, ads with sensitive or objectionable content, and custom lists (e.g., competitors)—all in real-time. Customizable replacement code calls for a new ad to ensure impressions are still monetized. + +{: .alert.alert-warning :} +To start using this module, please contact [The Media Trust](https://mediatrust.com/how-we-help/media-filter/) to get a script and configuration hash for module configuration. + +## Integration + +1. Build Prebid bundle with The Media Filter module included. + + ```bash + gulp build --modules=mediafilterRtdProvider + ``` + +2. Include the bundled script in your application. + +## Configuration + +Add configuration entry to `realTimeData.dataProviders` for The Media Filter module. + +```javascript +pbjs.setConfig({ + realTimeData: { + dataProviders: [{ + name: 'mediafilter', + params: { + // Replace with the configuration hash provided by your sales rep + configurationHash: '' + } + }] + } +}); +``` From 3d2b42a4730c8a230780d7bb593ea197451562b9 Mon Sep 17 00:00:00 2001 From: Viktor Chernodub <37013688+chernodub@users.noreply.github.com> Date: Wed, 7 Feb 2024 15:33:04 +0300 Subject: [PATCH 03/26] Update yandex.md (#5136) --- dev-docs/bidders/yandex.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev-docs/bidders/yandex.md b/dev-docs/bidders/yandex.md index 489d2438fd..8ae15868c4 100644 --- a/dev-docs/bidders/yandex.md +++ b/dev-docs/bidders/yandex.md @@ -33,7 +33,7 @@ const adUnits = [{ sizes: [[240, 400]], } }, - bids: [{ + bids: [ { bidder: 'yandex', params: { @@ -41,7 +41,7 @@ const adUnits = [{ cur: 'USD', }, } - }] + ] }]; // Native From 8c68e44a799b1e716a5316df8683e73a1329023e Mon Sep 17 00:00:00 2001 From: ym-prasanth <80693980+ym-prasanth@users.noreply.github.com> Date: Thu, 8 Feb 2024 09:14:43 -0500 Subject: [PATCH 04/26] Added gpp support (#5145) --- dev-docs/bidders/yieldmo.md | 1 + 1 file changed, 1 insertion(+) diff --git a/dev-docs/bidders/yieldmo.md b/dev-docs/bidders/yieldmo.md index 99d4e91a73..3b11512b36 100644 --- a/dev-docs/bidders/yieldmo.md +++ b/dev-docs/bidders/yieldmo.md @@ -9,6 +9,7 @@ gvl_id: 173 tcfeu_supported: true usp_supported: true schain_supported: true +gpp_supported: true prebid_member: true pbjs: true pbs: true From 120d80bf4df38db67860abc36dbdb4c955199966 Mon Sep 17 00:00:00 2001 From: Tiago Peczenyj Date: Thu, 8 Feb 2024 15:16:57 +0100 Subject: [PATCH 05/26] fix small typos (#5134) --- dev-docs/modules/weboramaRtdProvider.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev-docs/modules/weboramaRtdProvider.md b/dev-docs/modules/weboramaRtdProvider.md index 3960cc5aa2..8bab28f872 100644 --- a/dev-docs/modules/weboramaRtdProvider.md +++ b/dev-docs/modules/weboramaRtdProvider.md @@ -135,9 +135,9 @@ On this section we will explain the `params.weboCtxConf` subconfiguration: | setProfileAsBidderKeywords | String or Array | If present, specify one or more bidders to send data also as keywords (`site.content.keywords` or `user.keywords`) | Optional. Default is `appnexus`. | | checkBidderAliasForKeywords | Boolean | Modify `setProfileAsBidderKeywords` to search in the bidder alias registry. | Optional. Default is `true` | -#### WAM User-Centric Configuration +#### User-Centric Configuration -To be possible use the integration with Weborama Audience Manager (WAM) you must be a client with an account id and you lust include the `wamfactory` script in your pages with `wam2gam` feature activated. +To be possible use the integration with Weborama Audience Manager (WAM) you must be a client with an account id and you must include the `wamfactory` script in your pages with `wam2gam` feature activated. Please contact weborama if you don't have it. On this section we will explain the `params.weboUserDataConf` subconfiguration: From 62f4ebd97a1fad6c6e99de6485a597ff72c0ef7c Mon Sep 17 00:00:00 2001 From: Muki Seiler Date: Thu, 8 Feb 2024 15:22:58 +0100 Subject: [PATCH 06/26] List bidders with gpp_sids support (#5146) --- dev-docs/modules/consentManagementGpp.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev-docs/modules/consentManagementGpp.md b/dev-docs/modules/consentManagementGpp.md index c219f74537..bce079720c 100644 --- a/dev-docs/modules/consentManagementGpp.md +++ b/dev-docs/modules/consentManagementGpp.md @@ -186,9 +186,9 @@ var adaptersSupportingGpp=[]; var idx_gdpr=0; {% assign bidder_pages = site.pages | where: "layout", "bidder" %} {% for item in bidder_pages %} - {% if item.gpp_supported == true %} + {% if item.gpp_supported == true or item.gpp_sids %} adaptersSupportingGpp[idx_gdpr]={}; - adaptersSupportingGpp[idx_gdpr].href="/dev-docs/bidders.html#{{item.biddercode}}"; + adaptersSupportingGpp[idx_gdpr].href="/dev-docs/bidders/{{item.biddercode}}"; adaptersSupportingGpp[idx_gdpr].text="{{item.title}}"; idx_gdpr++; {% endif %} From 1c11896c398fff1003172d2aaf0e0df01528e877 Mon Sep 17 00:00:00 2001 From: ccorbo Date: Thu, 8 Feb 2024 12:38:34 -0500 Subject: [PATCH 07/26] add rendererurl documentation into bid meta field (#5122) Co-authored-by: Chris Corbo --- prebid-server/developers/add-new-bidder-go.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/prebid-server/developers/add-new-bidder-go.md b/prebid-server/developers/add-new-bidder-go.md index 450025c37c..ea885575e8 100644 --- a/prebid-server/developers/add-new-bidder-go.md +++ b/prebid-server/developers/add-new-bidder-go.md @@ -951,6 +951,7 @@ Bid metadata may be required in a future Prebid.js release. The AdvertiserDomain | `.RendererVersion` | Version of the desired renderer for the creative. | `.PrimaryCategoryID` | Primary IAB category id. | `.SecondaryCategoryIDs` | Secondary IAB category ids. +| `.RendererUrl` | Dynamic renderer URL for use in outstream rendering

@@ -990,6 +991,7 @@ func getBidMeta(bid *adapters.TypedBid) *openrtb_ext.ExtBidPrebidMeta { NetworkName: "Some Network Name", PrimaryCategoryID: "IAB-1", SecondaryCategoryIDs: []string{"IAB-2", "IAB-3"}, + RendererUrl: "https://example-renderer-url.com/path/render.js" } } ``` From ca623fe6d0cd2448cd843c6c7f7afe73449fde16 Mon Sep 17 00:00:00 2001 From: contentexchange <87769951+contentexchange@users.noreply.github.com> Date: Thu, 8 Feb 2024 20:05:01 +0200 Subject: [PATCH 08/26] Contentexchange Bid Adapter: add gvlid (#5147) * add contentexchange adapter * fix * add tcfeu_supported * add gvl_id --- dev-docs/bidders/contentexchange.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dev-docs/bidders/contentexchange.md b/dev-docs/bidders/contentexchange.md index ff56fd2543..9930f09b62 100644 --- a/dev-docs/bidders/contentexchange.md +++ b/dev-docs/bidders/contentexchange.md @@ -6,7 +6,8 @@ biddercode: contentexchange usp_supported: true schain_supported: true media_types: banner, video, native -tcfeu_supported: false +gvl_id: 864 +tcfeu_supported: true pbjs: true pbs: false pbs_app_supported: false From aaacd8682a2d5fec8b16e966fbc4e9bf2f10eb62 Mon Sep 17 00:00:00 2001 From: Wiem Zine El Abidine Date: Thu, 8 Feb 2024 20:55:39 +0100 Subject: [PATCH 09/26] add doc about the minimal version (#5110) --- .../modules/userid-submodules/liveintent.md | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/dev-docs/modules/userid-submodules/liveintent.md b/dev-docs/modules/userid-submodules/liveintent.md index 3e7a97dfce..027fadfe9a 100644 --- a/dev-docs/modules/userid-submodules/liveintent.md +++ b/dev-docs/modules/userid-submodules/liveintent.md @@ -9,13 +9,25 @@ LiveIntent offers audience resolution by leveraging its next-generation identity The LiveIntent `nonID` is a user identifier tied to an active, encrypted email in the graph and functions in cookie-challenged environments and browsers. Alongside the `nonID`, LiveIntent's user ID sub-module can resolve multiple other user identifiers called _attributes_ - such as `uid2`, `pubmatic`, and others. See the [Multiple user IDs](#multiple-user-ids) section for more details. -To add the functionality of LiveIntent Identity sub-module to your _Prebid.js_ package, use the following command: +There are two ways to add the functionality of LiveIntent Identity sub-module to your _Prebid.js_ package: -```bash -gulp build --modules=userId,liveIntentIdSystem -``` +1. The standard version, which allows publishers to include the module with full functionalities, like hashing email addresses and identity resolution. + + Add the **standard** LiveIntent Identity module to your Prebid.js package with: + + ```bash + gulp build --modules=userId,liveIntentIdSystem + ``` + +2. The minimal version, which allows publishers to deploy a smaller bundle with minimal features, including identity resolution. + + Add the **minimal** LiveIntent Identity module to your Prebid.js package with: + + ```bash + LiveConnectMode=minimal gulp build --modules=liveIntentIdSystem + ``` -This is an example of how the `request.userId.lipb` object which contains the resolution result would look like: +This is an example of how the `request.userId.lipb` object, which contains the resolution result, would look like: ```json { From 604d1b0507ab5ef008c8707ed9c0759d1e07b38a Mon Sep 17 00:00:00 2001 From: aleksandar-rayn <155530509+aleksandar-rayn@users.noreply.github.com> Date: Fri, 9 Feb 2024 13:23:43 +0100 Subject: [PATCH 10/26] rayn rtd provider module (#5132) --- dev-docs/modules/raynRtdProvider.md | 120 ++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 dev-docs/modules/raynRtdProvider.md diff --git a/dev-docs/modules/raynRtdProvider.md b/dev-docs/modules/raynRtdProvider.md new file mode 100644 index 0000000000..81cbcd02bf --- /dev/null +++ b/dev-docs/modules/raynRtdProvider.md @@ -0,0 +1,120 @@ +--- +layout: page_v2 +title: Rayn RTD Provider +display_name: Rayn Real Time Data Module +description: Rayn Real Time Data module appends privacy preserving enhanced contextual categories and audiences. Moments matter. +page_type: module +module_type: rtd +module_code: raynRtdProvider +enable_download: true +vendor_specific: true +sidebarType: 1 +--- + +# Rayn Real-time Data Submodule + +Rayn is a privacy preserving, data platform. We turn content into context, into audiences. For Personalisation, Monetisation and Insights. This module reads contextual categories and audience cohorts from RaynJS (via localStorage) and passes them to the bid-stream. + +For best results, we recommend that you deploy RaynJS on your properties, as instructed in the Rayn implementation guide. RaynJS will ensure that your auctions contain Rayn data. Please reach out to [support@rayn.io](mailto:support@rayn.io) if you have any questions. + +## Integration + +To install the module, follow these instructions: + +Step 1: Prepare the base Prebid file +Compile the Rayn RTD module (`raynRtdProvider`) into your Prebid build along with the parent RTD Module (`rtdModule`). From the command line, run gulp build `gulp build --modules=rtdModule,raynRtdProvider` + +Step 2: Set configuration +Enable Rayn RTD Module using pbjs.setConfig. Example is provided in the Configuration section. See the **Parameter Description** for more detailed information of the configuration parameters. + +### Configuration + +This module is configured as part of the realTimeData.dataProviders object. + +Example format: + +```js +pbjs.setConfig( + // ... + realTimeData: { + auctionDelay: 1000, + dataProviders: [ + { + name: "rayn", + waitForIt: true, + params: { + bidders: ["appnexus", "pubmatic"], + integration: { + iabAudienceCategories: { + v1_1: { + tier: 6, + enabled: true, + }, + }, + iabContentCategories: { + v3_0: { + tier: 4, + enabled: true, + }, + v2_2: { + tier: 4, + enabled: true, + }, + }, + } + } + } + ] + } + // ... +} +``` + +## Parameter Description + +The parameters below provide configurability for general behaviours of the RTD submodule, as well as enabling settings for specific use cases mentioned above (e.g. tiers and bidders). + +### Parameters + +{: .table .table-bordered .table-striped } +| Name | Type | Description | Notes | +| :---------------------------------------------------- | :-------- | :----------------------------------------------------------------------------------- | :---- | +| name | `String` | RTD sub module name | Always "rayn" | +| waitForIt | `Boolean` | Required to ensure that the auction is delayed for the module to respond | Optional. Defaults to false but recommended to true | +| params | `Object` | || +| params.bidders | `Array` | Bidders with which to share context and segment information | Optional. In case no bidder is specified Rayn will append data for all bidders | +| params.integration | `Object` | Controls which IAB taxonomy should be used and up to which category tier | Optional. In case it's not defined, all supported IAB taxonomies and all category tiers will be used | +| params.integration.iabAudienceCategories | `Object` | || +| params.integration.iabAudienceCategories.v1_1 | `Object` | || +| params.integration.iabAudienceCategories.v1_1.enabled | `Boolean` | Controls if IAB Audience Taxonomy v1.1 will be used | Optional. Enabled by default | +| params.integration.iabAudienceCategories.v1_1.tier | `Number` | Controls up to which IAB Audience Taxonomy v1.1 Category tier will be used | Optional. Tier 6 by default | +| params.integration.iabContentCategories | `Object` | || +| params.integration.iabContentCategories.v3_0 | `Object` | || +| params.integration.iabContentCategories.v3_0.enabled | `Boolean` | Controls if IAB Content Taxonomy v3.0 will be used | Optional. Enabled by default | +| params.integration.iabContentCategories.v3_0.tier | `Number` | Controls up to which IAB Content Taxonomy v3.0 Category tier will be used | Optional. Tier 4 by default | +| params.integration.iabContentCategories.v2_2 | `Object` | || +| params.integration.iabContentCategories.v2_2.enabled | `Boolean` | Controls if IAB Content Taxonomy v2.2 will be used | Optional. Enabled by default | +| params.integration.iabContentCategories.v2_2.tier | `Number` | Controls up to which IAB Content Taxonomy v2.2 Category tier will be used | Optional. Tier 4 by default | + +Please note that raynRtdProvider should be integrated into the website along with RaynJS. + +## Testing + +To view an example of the on page setup: + +```bash +gulp serve-fast --modules=rtdModule,raynRtdProvider,appnexusBidAdapter +``` + +Then in your browser access: [http://localhost:9999/integrationExamples/gpt/raynRtdProvider_example.html](http://localhost:9999/integrationExamples/gpt/raynRtdProvider_example.html) + +Run the unit tests, just on the Rayn RTD module test file: + +```bash +gulp test --file "test/spec/modules/raynRtdProvider_spec.js" +``` + +## Support + +If you require further assistance or are interested in discussing the module functionality please reach out to [support@rayn.io](mailto:support@rayn.io). +You are also able to find more examples and other integration routes on the Rayn documentation site. From 095c45595a1293ed441e9ab6639facd589d73955 Mon Sep 17 00:00:00 2001 From: shashidhar-insticator <91495253+shashidhar-insticator@users.noreply.github.com> Date: Fri, 9 Feb 2024 18:04:57 +0530 Subject: [PATCH 11/26] InsticatorBidAdapter docs banner and video params update (#5115) * test * insticatorbidadapter lint fix * insticatoradapter docs update pointing to openrtb 2.5 * insticatorBidAdapter docs params update * insticatorBidAdapter docs newline charecter --------- Co-authored-by: Sergey Derbush Co-authored-by: Rohan Desai <112518464+rohanInsticator@users.noreply.github.com> --- dev-docs/bidders/insticator.md | 99 ++++++++++++++++++++++++++++++++-- 1 file changed, 95 insertions(+), 4 deletions(-) diff --git a/dev-docs/bidders/insticator.md b/dev-docs/bidders/insticator.md index a13fbd8be3..f32d9f7d7c 100644 --- a/dev-docs/bidders/insticator.md +++ b/dev-docs/bidders/insticator.md @@ -24,12 +24,103 @@ sidebarType: 1 | `instl` | optional | 1 = the ad is interstitial or full screen, 0 = not interstitial. | `1` | `number` | | `pos` | optional | ad position as per IAB standards | `1` | `number` | +### Banner Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|---------------------------|----------------------|----------| +| `sizes` | Required | The ad sizes provided by Insticator | `[[300, 250], [300, 600]]` | `array` | +| `pos` | optional | ad position as per IAB standards | `1` | `number` | + +### Example + +```javascript +var adUnitsBannerOnly = [ + { + code: 'insticator-banner-ad-1', + mediaTypes: { + banner: { + sizes: [ + [336, 280], + [300, 250], + [320, 100], + ], + }, + }, + bids: [ + { + bidder: 'insticator', + params: { + adUnitId: 'example_adunit_id', + }, + }, + ], + }, +]; +``` + ### video parameters {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | |------------------------|-------------|-----------------------------------------------------------------|-------------------------------| -| `video.mimes` | required | Video MIME types | `['video/mp4','video/x-flv']` | -| `video.w` | recommended | Width of the video player in device independent pixels (DIPS). | `300` | -| `video.h` | recommended | Height of the video player in device independent pixels (DIPS). | `250` | | -| `video.placement` | recommended | Video placement type | `2` | +| `video.mimes` | required | Video MIME types | `['application/javascript',`
`'video/mp4',`
`'video/ogg',`
`'video/webm',`
`'video/mpeg']` | +| `video.w` | recommended | Width of the video player in device independent pixels (DIPS). | `640` | +| `video.h` | recommended | Height of the video player in device independent pixels (DIPS). | `480` | +| `video.placement` | recommended | Video placement type. (see OpenRTB v2.5 section 5.9 for options) | `3` | +| `video.plcmt` | recommended | Placement type for the impression. (See [OpenRTB v2.6](https://github.com/InteractiveAdvertisingBureau/AdCOM/blob/develop/AdCOM%20v1.0%20FINAL.md) Plcmt Subtypes - Video) | `5` | +| `video.playerSize` | optional | Array of supported sizes of the player. | `[[300, 250], [300, 600]]` | +| `video.playbackmethod` | optional | Playback methods that may be in use.(see OpenRTB v2.5 section 5.10 for options) | `[1, 2, 3, 4]` | +| `video.protocols` | optional | Supported video bid response protocol values are 2, 3, 5, 6, 7, 8. (see OpenRTB v2.5 section 5.8 for options) | `[2, 3, 5, 6, 7, 8]` | +| `video.maxduration` | optional | Maximum video ad duration in seconds | `30` | +| `video.minduration` | optional | Minimum video ad duration in seconds | `1` | +| `video.skip` | optional | Indicates if the player will allow the video to be skipped, where 0 = no, 1 = yes | `0` | +| `video.skipafter` | optional | Number of seconds a video must play before skipping is enabled | `5` | +| `video.startdelay` | optional | Indicates the start delay in seconds for pre-roll, mid-roll, or post-roll ad placements. (see OpenRTB v2.5 section 5.12 for options) | `0` | +| `video.linearity` | optional | Indicates if the impression must be linear, nonlinear, etc. (see OpenRTB v2.5 section 5.7 for options) | `1` | +| `video.skipmin` | optional | Only if the ad is skippable. Videos of total duration greater than this number of seconds can be skippable | `5` | +| `video.sequence` | optional | For multiple ad in the same bid request. This value allow will for the coordinated delivery of multiple ad | `1` | +| `video.battr` | optional | Blocked creative attributes. (see OpenRTB v2.5 section 5.3 for options) | `[1]` | +| `video.maxextended` | optional | Max extended ad duration beyond the maxduration if extension is allowed. Blank or 0 - blocked. -1 - allowed without time limit | `30` | +| `video.minbitrate` | optional | Minimum bit rate in Kbps | `5` | +| `video.maxbitrate` | optional | Maximum bit rate in Kbps | `10000` | +| `video.playbackend` | optional | The event that causes playback to end. (see OpenRTB v2.5 section 5.11 for options) | `1` | +| `video.delivery` | optional | Supported delivery methods (1 = streaming, 2 = progressive, 3 = download). If none specified, assume all are supported. | `[1, 2]` | +| `video.pos` | optional | Ad position on screen. (see OpenRTB v2.5 section 5.4 for options) | `1` | +| `video.api` | optional | List of supported API frameworks for this impression. Supported API frameworks are between 1-7 (See [OpenRTB v2.6](https://github.com/InteractiveAdvertisingBureau/AdCOM/blob/develop/AdCOM%20v1.0%20FINAL.md) List API Frameworks) | `[2, 7]` | + +### Example + +```javascript +var adUnits = [ + { + code: 'insticator-video-ad-2', + mediaTypes: { + video: { + playerSize: [640, 480], + w: 640, + h: 480, + mimes: ['video/mp4', 'video/x-flv'], + protocols: [2, 3, 5, 6, 7, 8], + placement: 3, + startdelay: 0, + api: [2, 7], + skip: 0, + minduration: 1, + maxduration: 30, + playbackmethod: [1, 3], + battr: [13, 14], + linearity: 1, + minbitrate: 10, + maxbitrate: 10000 + } + }, + bids: [{ + bidder: 'insticator', + params: { + adUnitId: 'example_adunit_id' + } + }], + ... + }]; +``` From d27b07b87a6249c70eb32c166590b775e2656684 Mon Sep 17 00:00:00 2001 From: Malkov Mikhail Date: Sun, 11 Feb 2024 16:58:31 +0300 Subject: [PATCH 12/26] NextMillennium - Changed description of supported OpenRTB 2.5 parameters (#5118) * OpenRTB 2.5 supported parameters * Update nextMillennium.md formating * Update nextMillennium.md * added support keywords * added support keywords - code style * added support keywords - code style - 2 --- dev-docs/bidders/nextMillennium.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/dev-docs/bidders/nextMillennium.md b/dev-docs/bidders/nextMillennium.md index 21e73b3956..4aa98ae015 100644 --- a/dev-docs/bidders/nextMillennium.md +++ b/dev-docs/bidders/nextMillennium.md @@ -65,7 +65,17 @@ pbjs.setConfig({ #### OpenRTB 2.5 supported parameters -The adapter for Prebid.js supports the following options: `site.pagecat`, `site.content.cat` and `site.content.language`. You can set these parameters through the Prebid.js configuration setup functions: [pbjs.setConfig](https://docs.prebid.org/dev-docs/publisher-api-reference/setConfig.html) or [pbjs.setBidderConfig](https://docs.prebid.org/dev-docs/publisher-api-reference/setBidderConfig.html). +The adapter for Prebid.js supports the following options: + +* `site.pagecat` +* `site.content.cat` +* `site.content.language` +* `device.sua'` +* `site.keywords'` +* `site.content.keywords'` +* `user.keywords'` + +You can set these parameters through the Prebid.js configuration setup functions: [pbjs.setConfig](https://docs.prebid.org/dev-docs/publisher-api-reference/setConfig.html) or [pbjs.setBidderConfig](https://docs.prebid.org/dev-docs/publisher-api-reference/setBidderConfig.html). An example of setting openrtb parameters for the entire prebid.js script. ```javascript From bf5fdc0402d1801e09f9e480f6c38516e9776f44 Mon Sep 17 00:00:00 2001 From: Yuriy Velichko Date: Sun, 11 Feb 2024 15:59:27 +0200 Subject: [PATCH 13/26] Mobile: FAQ item for Apple Privacy maifest (#5119) * mobile: add a FAQ item for Apple's Privacy Matifest * mobile: format text * mobile: fix build error --- faq/prebid-mobile-faq.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/faq/prebid-mobile-faq.md b/faq/prebid-mobile-faq.md index 41e352736d..95e6a33d77 100644 --- a/faq/prebid-mobile-faq.md +++ b/faq/prebid-mobile-faq.md @@ -156,6 +156,25 @@ Also note that Prebid.org is committed to other privacy initiatives such as the SDK does’t commit any action on managing user data. Only publishers using SDK’s API can provide/store/remove user data. +### Does SDK Provide an Apple Privacy Manifest? + +No, because the Prebid SDK is an open-source SDK, that doesn't have a single domain to send bid requests. + +However, here is the list of items that the app developer can add to the application's privacy manifest to cover Prebid SDK activity and data consumption: + +- `NSPrivacyTracking` - true. Because Prebid SDK collects IDFA. +- `NSPrivacyTrackingDomains` - the tracking domain for the PBS. + +Pay attention - if `NSPrivacyTracking` is true, the tracking domain is provided, and the user doesn't allow the app to track him or her, iOS will block the bid requests. Prebid SDK doesn't support tracking and non-tracking endpoints yet. Follow the [issue](https://github.com/prebid/prebid-mobile-ios/issues/954) for the details. + +- `NSPrivacyCollectedDataTypes` array should contain the following `NSPrivacyCollectedDataType` items: `NSPrivacyCollectedDataTypePreciseLocation`, `NSPrivacyCollectedDataTypeCoarseLocation`,`NSPrivacyCollectedDataTypeDeviceID`, `NSPrivacyCollectedDataTypeProductInteraction`, `NSPrivacyCollectedDataTypeAdvertisingData`. + +The values for `NSPrivacyCollectedDataTypeLinked` and `NSPrivacyCollectedDataTypeTracking` in each entry depend on your demand partners, you should consult with them to provide proper info. Neither SDK nor Server uses these data for tracking or linking. + +The `NSPrivacyCollectedDataTypePurposes` array should contain `NSPrivacyCollectedDataTypePurposeThirdPartyAdvertising` and/or other purposes your demand partners require. + +- `NSPrivacyAccessedAPITypes` array should contain the `NSPrivacyAccessedAPICategoryUserDefaults` item. The `NSPrivacyAccessedAPITypeReasons` for this item should contain `CA92.1` value. + ## Performance ### Does the SDK do any work in the background? If so, what is it? From 0b20746bdf6da5a8ee2728b0356f1099924404df Mon Sep 17 00:00:00 2001 From: jkthomas Date: Sun, 11 Feb 2024 14:01:38 +0000 Subject: [PATCH 14/26] Utiq ID submodule: Update module parameters and contact (#5121) * Utiq ID submodule: Update module parameters and contact * Utiq ID module: Add missing pipe --------- Co-authored-by: Tomasz Januszek --- dev-docs/modules/userid-submodules/utiq.md | 28 ++++------------------ 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/dev-docs/modules/userid-submodules/utiq.md b/dev-docs/modules/userid-submodules/utiq.md index 1706812148..e895f5268a 100644 --- a/dev-docs/modules/userid-submodules/utiq.md +++ b/dev-docs/modules/userid-submodules/utiq.md @@ -1,6 +1,6 @@ --- layout: userid -title: Utiq +title: Utiq ID description: Utiq User ID sub-module useridmodule: utiqSystem --- @@ -9,19 +9,12 @@ Utiq generates unique tokens, enabling improved efficiency in programmatic adver Utiq is also the brand name of the service, which is provided by Utiq SA/NV. -## Utiq configuration +## Utiq ID configuration {: .table .table-bordered .table-striped } | Param under userSync.userIds[] | Scope | Type | Description | Example | | --- | --- | --- | --- | --- | -| name | Required | String | The name of the module | `"utiq"` -| params | Required | Object | Object with configuration parameters for utiq User Id submodule | - | -| params.maxDelayTime | Required | Integer | Max amount of time (in seconds) before looking into storage for data | 2500 | -| bidders | Required | Array of Strings | An array of bidder codes to which this user ID may be sent. Currently required and supporting AdformOpenRTB | `['adf']` | -| storage | Required | Object | Local storage configuration object | - | -| storage.type | Required | String | Type of the storage that would be used to store user ID. Must be `"html5"` to utilise HTML5 local storage. | `"html5"` | -| storage.name | Required | String | The name of the key in local storage where the user ID will be stored. | `"utiq"` | -| storage.expires | Required | Integer | How long (in days) the user ID information will be stored. For safety reasons, this information is required.| `1` | +| name | Required | String | The name of the module | `"utiq"` | Configuration example: @@ -31,23 +24,12 @@ pbjs.setConfig({ userIds: [ { name: "utiq", - params: { - maxDelayTime: 2500, - }, - bidders: ["adf"], - storage: { - type: "html5", - name: "utiq", - expires: 1, - }, }, ], - syncDelay: 3000, - auctionDelay: 3000, }, }) ``` -## Utiq onboarding +## Utiq ID onboarding -If you wish to find out more about Utiq, please contact +If you wish to find out more about Utiq, please contact From 2d5e5950af6a44c4deb9713e3d595db7e20542e3 Mon Sep 17 00:00:00 2001 From: Evgenii Novikov Date: Sun, 11 Feb 2024 15:03:23 +0100 Subject: [PATCH 15/26] Fixed build and improved docs (#5143) --- dev-docs/analytics/yandex.md | 48 ++++++++++++++++++++++-------------- dev-docs/bidders/yandex.md | 5 ++++ 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/dev-docs/analytics/yandex.md b/dev-docs/analytics/yandex.md index 869127cf43..a1d380e372 100644 --- a/dev-docs/analytics/yandex.md +++ b/dev-docs/analytics/yandex.md @@ -2,35 +2,45 @@ layout: analytics title: Yandex Metrica description: Track your Prebid.js in Yandex Metrica -modulecode: yandexAnalytics +modulecode: yandex --- -# Description +## Description -This adapter is designed to work with [Yandex Metrica](https://metrica.yandex.com/about) - a web analytics tool. +This adapter integrates Prebid.js with [Yandex Metrica](https://metrica.yandex.com/about). It offers detailed insights into auction performance and user behavior, enabling publishers to make data-driven decisions to optimize their ad revenue. {: .alert.alert-warning :} -Disclosure: provider use Metrica Tag build based on [github.com/yandex/metrica-tag](https://github.com/yandex/metrica-tag), ~60 kB gzipped. +Disclosure: The adapter utilizes the Metrica Tag build based on [github.com/yandex/metrica-tag](https://github.com/yandex/metrica-tag), approximately 60 kB gzipped. -## How to setup provider +## Setup Instructions -Register your application on [metrica.yandex.com](https://metrica.yandex.com/) and get counter id +1. **Register Your Website:** -Insert counter initialization code obtained from the page [https://metrica.yandex.com/settings?id={counterId}](https://metrica.yandex.com/settings?id={counterId}) into your html code. + Visit [Yandex Metrica](https://metrica.yandex.com/) and register your website to obtain a counter ID. -Init provider like this, where `123` is your counter id. +2. **Insert Counter Initialization Code:** -Note: If you have Single Page Application (SPA), [configure your tag](https://yandex.com/support/metrica/code/counter-spa-setup.html). + Retrieve the counter initialization code from the Yandex Metrica settings page at `https://metrica.yandex.com/settings?id={counterId}`, where `{counterId}` is your counter ID, and embed it into your website's HTML. -```javascript -pbjs.enableAnalytics({ - provider: 'yandexAnalytics', - options: { - counters: [123], - }, -}); -``` +3. **Initialize the Adapter in Prebid.js:** -## Where to find data + Configure the Yandex Analytics Adapter in your Prebid.js setup. For optimal performance and ease of management, it is preferred to use a single counter. Add the following JavaScript snippet, replacing `123` with your actual counter ID: -Go to [metrika.yandex.com/dashboard](https://metrika.yandex.com/dashboard) -> Prebid Analytics + ```javascript + pbjs.enableAnalytics({ + provider: "yandex", + options: { + // Replace 123 with your actual counter ID + // It's preferred to use a single counter for optimal performance and ease of management + counters: [123] + } + }); + ``` + +4. **Special Instructions for Single Page Applications (SPAs):** + + If your website is an SPA, make sure to [configure your Metrica tag accordingly](https://yandex.com/support/metrica/code/counter-spa-setup.html). + +## Accessing Analytics Data + +You can view the collected analytics data in the Yandex Metrica dashboard. Navigate to [metrika.yandex.com/dashboard](https://metrika.yandex.com/dashboard) and look for the Prebid Analytics section to analyze your data. diff --git a/dev-docs/bidders/yandex.md b/dev-docs/bidders/yandex.md index 8ae15868c4..0f284b1d8c 100644 --- a/dev-docs/bidders/yandex.md +++ b/dev-docs/bidders/yandex.md @@ -12,6 +12,11 @@ privacy_sandbox: topics ### Prebid Client +This Adapter integrates with Yandex's ad services. + +{: .alert.alert-info :} +Note: For detailed auction analytics, check out our [Analytics Adapter](https://docs.prebid.org/dev-docs/analytics/yandex.html). + #### Client Bid Params {: .table .table-bordered .table-striped } From 8786618317af3498d1007c94872aab48df978baa Mon Sep 17 00:00:00 2001 From: Olivier Date: Sun, 11 Feb 2024 15:04:39 +0100 Subject: [PATCH 16/26] DSA: update attribute names in ortb2 example (#5148) See https://github.com/InteractiveAdvertisingBureau/openrtb/pull/158/files --- features/firstPartyData.md | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/features/firstPartyData.md b/features/firstPartyData.md index 999031f40d..f6780a75ab 100644 --- a/features/firstPartyData.md +++ b/features/firstPartyData.md @@ -111,18 +111,21 @@ pbjs.setConfig({ gpp: "abc1234", gpp_sid: [7], ext: { - dsa: { - required: 3, - pubrender: 0, - datatoput: 2, - transparency: [{ - domain: 'platform1domain.com', - params: [1] - }, { - domain: 'platform2domain.com', - params: [1, 2] - }] - } + dsa: { + dsarequired: 3, + pubrender: 0, + datatopub: 2, + transparency: [ + { + domain: 'platform1domain.com', + dsaparams: [1] + }, + { + domain: 'platform2domain.com', + dsaparams: [1, 2] + } + ] + } } } } From 61484bf31342c46c02f4612fec3db93ce35afca4 Mon Sep 17 00:00:00 2001 From: bretg Date: Sun, 11 Feb 2024 09:11:58 -0500 Subject: [PATCH 17/26] privacy resources page (#5079) * privacy resources page * linting fixes * Update privacy-resources.md two enable examples * lint * Update privacy-resources.md * Update legal-warning.html * linting update * linting update --- _data/sidebar.yml | 44 +++--- _includes/legal-warning.html | 7 + dev-docs/activity-controls.md | 3 +- dev-docs/cmp-best-practices.md | 6 +- dev-docs/modules/consentManagement.md | 7 +- dev-docs/modules/consentManagementGpp.md | 7 +- dev-docs/modules/consentManagementUsp.md | 8 +- dev-docs/modules/gdprEnforcement.md | 6 +- dev-docs/modules/gppControl_usnat.md | 6 +- dev-docs/modules/gppControl_usstates.md | 6 +- features/ac-quebec.md | 17 +-- features/mspa-usnat.md | 11 +- .../prebid-mobile-privacy-regulation.md | 8 +- .../endpoints/openrtb2/pbs-endpoint-video.md | 9 +- .../features/pbs-activitycontrols.md | 3 +- prebid-server/features/pbs-privacy.md | 3 +- prebid-server/features/pbs-uscustomlogic.md | 3 +- prebid-server/features/pbs-usgen.md | 3 +- support/index.md | 29 ++-- support/privacy-resources.md | 125 ++++++++++++++++++ 20 files changed, 192 insertions(+), 119 deletions(-) create mode 100644 _includes/legal-warning.html create mode 100644 support/privacy-resources.md diff --git a/_data/sidebar.yml b/_data/sidebar.yml index 0d0c6dc7b0..c29ebba40f 100644 --- a/_data/sidebar.yml +++ b/_data/sidebar.yml @@ -130,20 +130,6 @@ isSectionHeader: 0 subgroup: 2 -- sbSecId: 0 - title: Prebid and MSPA - link: /features/mspa-usnat.html - isHeader: 0 - isSectionHeader: 0 - subgroup: 2 - -- sbSecId: 0 - title: Prebid and Quebec Privacy Support - link: /features/ac-quebec.html - isHeader: 0 - isSectionHeader: 0 - subgroup: 2 - #--------------Prebid.js--------------| - sbSecId: 1 @@ -1815,12 +1801,34 @@ subgroup: 0 - sbSecId: 7 - title: Training Videos - link: /videos/ - isHeader: 0 + title: Privacy Resources + link: + isHeader: 1 + headerId: privacy isSectionHeader: 0 sectionTitle: - subgroup: 0 + subgroup: 1 + +- sbSecId: 7 + title: Prebid Privacy Overview + link: /support/privacy-resources.html + isHeader: 0 + isSectionHeader: 0 + subgroup: 1 + +- sbSecId: 7 + title: Prebid and MSPA + link: /features/mspa-usnat.html + isHeader: 0 + isSectionHeader: 0 + subgroup: 1 + +- sbSecId: 7 + title: Prebid and Quebec Privacy Support + link: /features/ac-quebec.html + isHeader: 0 + isSectionHeader: 0 + subgroup: 1 - sbSecId: 7 title: FAQs diff --git a/_includes/legal-warning.html b/_includes/legal-warning.html new file mode 100644 index 0000000000..bb31e735b6 --- /dev/null +++ b/_includes/legal-warning.html @@ -0,0 +1,7 @@ + diff --git a/dev-docs/activity-controls.md b/dev-docs/activity-controls.md index 67b714bea0..ef227c9d9b 100644 --- a/dev-docs/activity-controls.md +++ b/dev-docs/activity-controls.md @@ -26,8 +26,7 @@ Several, but not all, of the popular consent strings have modules (eg [Prebid Ac ### Prebid Is a Toolkit -{: .alert.alert-danger :} -Important: This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company and its collection, use, and storage of personal data is different, you should seek independent legal advice relating to obligations under European and /or US regulations, including the GDPR, the ePrivacy Directive and CCPA. Only a lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. +{% include legal-warning.html %} 1. Get a privacy lawyer. 2. Consider all the privacy regulations your content business is subject to. diff --git a/dev-docs/cmp-best-practices.md b/dev-docs/cmp-best-practices.md index 4b100f5e1a..1a2bd6883f 100644 --- a/dev-docs/cmp-best-practices.md +++ b/dev-docs/cmp-best-practices.md @@ -14,11 +14,7 @@ of Prebid.js and Consent Management Platforms. ## NOT LEGAL ADVICE -{% capture legalNotice %} - This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company and its collection, use, and storage of personal data is different, you should seek independent legal advice relating to obligations under European and/or US regulations, including the GDPR, the ePrivacy Directive and CCPA. Only a lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. - {% endcapture %} - -{% include /alerts/alert_important.html content=legalNotice %} +{% include legal-warning.html %} ## General diff --git a/dev-docs/modules/consentManagement.md b/dev-docs/modules/consentManagement.md index c88feba7f7..518ce48a02 100644 --- a/dev-docs/modules/consentManagement.md +++ b/dev-docs/modules/consentManagement.md @@ -11,17 +11,12 @@ sidebarType : 1 --- # GDPR Consent Management Module - {: .no_toc } - TOC {: toc } -{% capture legalNotice %} - This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company and its collection, use, and storage of personal data is different, you should seek independent legal advice relating to obligations under European and /or US regulations, including the GDPR, the ePrivacy Directive and CCPA. Only a lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. - {% endcapture %} - -{% include /alerts/alert_important.html content=legalNotice %} +{% include legal-warning.html %} ## Overview diff --git a/dev-docs/modules/consentManagementGpp.md b/dev-docs/modules/consentManagementGpp.md index bce079720c..1e8ad5cb19 100644 --- a/dev-docs/modules/consentManagementGpp.md +++ b/dev-docs/modules/consentManagementGpp.md @@ -12,17 +12,12 @@ sidebarType : 1 --- # GPP Consent Management Module - {: .no_toc } - TOC {: toc } -{% capture legalNotice %} - This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company's collection, use, and storage of personal data is different, you should seek independent legal advice relating to obligations under European, Canadian and /or US regulations, including the GDPR, the ePrivacy Directive and CCPA. Only a lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. - {% endcapture %} - -{% include /alerts/alert_important.html content=legalNotice %} +{% include legal-warning.html %} ## Overview diff --git a/dev-docs/modules/consentManagementUsp.md b/dev-docs/modules/consentManagementUsp.md index 26bfaae79b..90aed2ad66 100644 --- a/dev-docs/modules/consentManagementUsp.md +++ b/dev-docs/modules/consentManagementUsp.md @@ -11,18 +11,12 @@ sidebarType : 1 --- # US Privacy Consent Management Module - {: .no_toc } * TOC {: toc } -{% capture legalNotice %} - - This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company and its collection, use, and storage of personal data is different, you should seek independent legal advice relating to obligations under European and /or US regulations, including the GDPR, the ePrivacy Directive and CCPA. Only a lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. - {% endcapture %} - -{% include /alerts/alert_important.html content=legalNotice %} +{% include legal-warning.html %} ## Overview diff --git a/dev-docs/modules/gdprEnforcement.md b/dev-docs/modules/gdprEnforcement.md index 81259ecdda..27906a944b 100644 --- a/dev-docs/modules/gdprEnforcement.md +++ b/dev-docs/modules/gdprEnforcement.md @@ -16,11 +16,7 @@ sidebarType : 1 * TOC {: toc } -{% capture legalNotice %} - This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company and its collection, use, and storage of personal data is different, you should seek independent legal advice relating to obligations under European and /or US regulations, including the GDPR, the ePrivacy Directive and CCPA. Only a lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. - {% endcapture %} - -{% include /alerts/alert_important.html content=legalNotice %} +{% include legal-warning.html %} {: .alert.alert-warning :} This module requires the [EU GDPR consent management module](/dev-docs/modules/consentManagement.html) (the base consent module), which reads consent values from the Consent Management Platform (CMP). The GDPR Enforcement Module diff --git a/dev-docs/modules/gppControl_usnat.md b/dev-docs/modules/gppControl_usnat.md index afa238cac1..b2414c5926 100644 --- a/dev-docs/modules/gppControl_usnat.md +++ b/dev-docs/modules/gppControl_usnat.md @@ -17,11 +17,7 @@ sidebarType : 1 - TOC {: toc } -{% capture legalNotice %} -This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company and its collection, use, and storage of personal data is different, you should seek independent legal advice relating to obligations under European and/or US regulations, including the GDPR, the ePrivacy Directive, CCPA, other state privacy laws, etc, and how you implement the tools outlined in this document. Only your lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. -{% endcapture %} - -{% include /alerts/alert_important.html content=legalNotice %} +{% include legal-warning.html %} ## Overview diff --git a/dev-docs/modules/gppControl_usstates.md b/dev-docs/modules/gppControl_usstates.md index 4864f703ca..e82ba32b91 100644 --- a/dev-docs/modules/gppControl_usstates.md +++ b/dev-docs/modules/gppControl_usstates.md @@ -17,11 +17,7 @@ sidebarType : 1 - TOC {: toc } -{% capture legalNotice %} -This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company and its collection, use, and storage of personal data is different, you should seek independent legal advice relating to obligations under European and/or US regulations, including the GDPR, the ePrivacy Directive, CCPA, other state privacy laws, etc, and how you implement the tools outlined in this document. Only your lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. -{% endcapture %} - -{% include /alerts/alert_important.html content=legalNotice %} +{% include legal-warning.html %} ## Overview diff --git a/features/ac-quebec.md b/features/ac-quebec.md index 6186b95d6f..1f9fa9158c 100644 --- a/features/ac-quebec.md +++ b/features/ac-quebec.md @@ -2,7 +2,7 @@ layout: page_v2 title: Prebid Quebec Privacy Support description: Prebid Quebec Privacy Support -sidebarType: 0 +sidebarType: 7 --- # Prebid Quebec Privacy Support @@ -11,18 +11,15 @@ sidebarType: 0 - TOC {:toc} -{: .alert.alert-warning :} -This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company and its collection, use, and storage of personal data is different, you should seek independent legal advice relating to obligations under Canadian, European and/or US regulations, including the GDPR, the ePrivacy Directive, CCPA, other state privacy laws, etc, and how you implement the tools outlined in this document. Only your lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. +{% include legal-warning.html %} ## Overview -Starting September 23 2023, new privacy regulations will come into effect in Quebec, a province of Canada, governing about a quarter of Canada's population. +Starting September 2023, new privacy regulations came into effect in Quebec, a province of Canada, governing about a quarter of Canada's population. -IAB Canada has offered a modified version of the Transparency and Consent Framework (TCF) as a solution to cover user consent preferences in Quebec. At the time of this writing (August 2023), guidance from regulators, TCF Canada, and major advertising entities in Canada is in flux, even though enforceability of the law is imminent. The Canadian vendor list does not have enough vendors for meaningful adoption of the framework by any publisher, as it does not include the primary publisher ad server nor any large DSP, nor have any of the top five CMPs [registered as CMPs with TCF Canada](https://iabcanada.com/tcf-canada/cmp-list/). +IAB Canada has offered a modified version of the Transparency and Consent Framework (TCF) as a solution to cover user consent preferences in Quebec. However, at the time of this writing (Jan 2024), guidance from regulators, TCF Canada, and major advertising entities in Canada is in flux. The Canadian vendor list does not have enough vendors for meaningful adoption of the framework by any publisher, as it does not include the primary publisher ad server nor many large DSPs, nor many of the top five CMPs [registered as CMPs with TCF Canada](https://iabcanada.com/tcf-canada/cmp-list/). -The full list of CMPs registered on August 11 2023 are: ATOMIOS, Consent Manager AB, Transfon Ltd, Plex GmbH, Ketch Kloud Inc. The [Canadian vendor list](https://vendor-list.consensu.org/v2/ca/vendor-list.json) has 27 vendors. - -Given this context, Prebid has identified publisher concern that many will not be able to transact programmatically in Quebec beginning in September. This document is intended to provide guidance on conveying user notification and consent signals as gathered by the publisher to Prebid software independent of the GPP signals in Section 5 and the lack of a working consent string framework from IAB Canada. +Given this context, Prebid has identified publisher concern that many will not be able to transact programmatically in Quebec until broader adoption of the IAB TCF-Canada spec is achieved. This document is intended to provide guidance on conveying user notification and consent signals as gathered by the publisher to Prebid software independent of the GPP signals in Section 5 and the lack of a working consent string framework from IAB Canada. References: @@ -30,8 +27,6 @@ References: - [IAB Canada TCF Canada policies](https://iabcanada.com/tcf-canada/for-publishers/) - [IABTL's GPP Canada section spec](https://github.com/InteractiveAdvertisingBureau/Global-Privacy-Platform/blob/main/Sections/Canada/GPPExtension%3A%20IAB%20Canada%20TCF.md) -Prebid.org cannot advise publishers on how to conform to privacy laws that affect their business. Instead, publishers should be aware of what privacy-related features Prebid supports so that their legal, product, and engineering teams can define a privacy implementation. - ## TCF Canada and GPP Support in Prebid.js Prebid.js supports a [GPP module](/dev-docs/modules/consentManagementGpp.html), but it does not interpret the strings in Section 5 (Canada). It simply takes the GPP signal from the CMP and includes it in outgoing network requests if those vendors initiating network requests have added support for GPP in their modules. It isn't clear if TCF Purpose 2 (consent to 'basic ad serving') or a vendor list will be critical parts of a Quebec consent framework. Also, it isn't clear if publishers will be required to seek vendor-level consent as for TCF-EU. @@ -102,7 +97,7 @@ bidders are in such alignment. An alternate solution would utilize the Prebid Server version of the [Activity Control system](/prebid-server/features/pbs-activitycontrols.html). {: .alert.alert-info :} -Only the Java version of Prebid Server currently supports the Activity Control system. +Only the Java version of Prebid Server currently supports targeting Activity Controls to geographic regions. Here's an example account configuration that utilizes the user's geographic region to determine whether to allow or deny the named activities. Publishers will need to confirm the details with diff --git a/features/mspa-usnat.md b/features/mspa-usnat.md index 519c8ab740..f488fd3a06 100644 --- a/features/mspa-usnat.md +++ b/features/mspa-usnat.md @@ -2,7 +2,7 @@ layout: page_v2 title: Prebid MSPA Support description: Prebid MSPA Support -sidebarType: 0 +sidebarType: 7 --- # Prebid Multi-State Privacy Agreement Support @@ -11,8 +11,7 @@ sidebarType: 0 - TOC {:toc} -{: .alert.alert-warning :} -This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company and its collection, use, and storage of personal data is different, you should seek independent legal advice relating to obligations under European and/or US regulations, including the GDPR, the ePrivacy Directive, CCPA, other state privacy laws, etc, and how you implement the tools outlined in this document. Only your lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. +{% include legal-warning.html %} ## Overview @@ -70,7 +69,7 @@ Here's a summary of the privacy features in Prebid.js that publishers may use to | ----------------- | ---------------------- | ----- | | before 7.30 | None | If you operate in the US, you should consider upgrading. | | 7.30-7.51 | **GPP module** | The [GPP module](/dev-docs/modules/consentManagementGpp.html) reads the GPP string from a compliant CMP and passes to compliant bid adapters. Not many bid adapters supported GPP in earlier versions. | -| 7.52-8.1 | GPP module
**Activity Controls** | [Activity Controls](/dev-docs/activity-controls.html) provide the ability for publishers to allow or restrict certain privacy-sensitive activities for particular bidders and modules. See examples in that document for supporting CCPA directly. +| 7.52-8.1 | GPP module
**Activity Controls** | [Activity Controls](/dev-docs/activity-controls.html) provide the ability for publishers to allow or restrict certain privacy-sensitive activities for particular bidders and modules. See examples in that document for supporting CCPA directly. | | 8.2-8.x | GPP module
Activity Controls
**USNat module** | The [USNat module](/dev-docs/modules/gppControl_usnat.html) processes SID 7. | | After 8.x | GPP module
Activity Controls
USNat module
**US State module** | The US State module processes SIDs 8 through 12 after normalizing protocol differences. | | After 8.10 | **GPP Module** | The [GPP module](/dev-docs/modules/consentManagementGpp.html) now understands GPP 1.1 which makes it incompatible with GPP 1.0. Publishers **MUST** upgrade for continued GPP support. | @@ -85,10 +84,10 @@ Here's a summary of the privacy features in Prebid Server that publishers may us | PBS-Go before 0.236
PBS-Java before 1.110 | None | If you operate in the US, you should consider upgrading. | | PBS-Go 0.236
PBS-Java 1.110 | **GPP passthrough** | PBS reads the GPP string from the ORTB request and passes to compliant bid adapters. Not many bid adapters supported GPP in earlier versions. | | PBS‑Go 0.248 and later
PBS‑Java 1.113 and later | GPP passthrough
**GPP US Privacy** | PBS will read SID 6 out of the GPP string and process it as if regs.us_privacy were present on the request. | -| PBS-Go TBD
PBS-Java 1.118 | GPP passthrough
GPP US Privacy
**Activity Controls** | [Activity Controls](/prebid-server/features/pbs-activitycontrols.html) grant the ability for publishers to allow or restrict certain privacy-sensitive activities for particular bidders and modules. | +| PBS-Go 2.2
PBS-Java 1.118 | GPP passthrough
GPP US Privacy
**Activity Controls** | [Activity Controls](/prebid-server/features/pbs-activitycontrols.html) grant the ability for publishers to allow or restrict certain privacy-sensitive activities for particular bidders and modules. | | PBS-Go TBD
PBS-Java 1.122 | GPP passthrough
GPP US Privacy
**Enhanced Activity Controls** | Activity controls support additional conditions for defining USNat-related rules: gppSid, geo, and gpc. | | PBS-Go TBD
PBS-Java 1.126 | GPP passthrough
GPP US Privacy
Enhanced Activity Controls
**USGen Module** | The [USGen module](/prebid-server/features/pbs-usgen.html) processes SIDs 7 through 12 after normalizing protocol differences. | -| TBD | GPP passthrough
GPP US Privacy
Enhanced Activity Controls
USNat Module
**US Custom Logic module** | Allows publishers to provide alternate interpretations of the USNat string as it applies to Activity Controls. | +| PBS-Go TBD
PBS-Java 1.130 | GPP passthrough
GPP US Privacy
Enhanced Activity Controls
USNat Module
**US Custom Logic module** | Allows publishers to provide alternate interpretations of the USNat string as it applies to Activity Controls. | ### Prebid SDK diff --git a/prebid-mobile/prebid-mobile-privacy-regulation.md b/prebid-mobile/prebid-mobile-privacy-regulation.md index 517a1e6e46..025f1b4dc5 100644 --- a/prebid-mobile/prebid-mobile-privacy-regulation.md +++ b/prebid-mobile/prebid-mobile-privacy-regulation.md @@ -9,14 +9,9 @@ sidebarType: 2 --- # Prebid Mobile Guide to Privacy Regulation - {:.no_toc} -{% capture legalNotice %} - This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company and its collection, use, and storage of personal data is different, you should seek independent legal advice relating to obligations under European and /or US regulations, including the GDPR, the ePrivacy Directive and CCPA. Only a lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. - {% endcapture %} - -{% include /alerts/alert_important.html content=legalNotice %} +{% include legal-warning.html %} - TOC {:toc} @@ -128,4 +123,3 @@ The job of the Prebid SDK will: - Not strip any user data or signaling of the request regardless of Notice and Opt out signal It is worth noting Prebid Server will be a passthrough as well and will not validate format or correctness of US Privacy signal nor strip any user data from the request either, even if the presence of an opt out. - diff --git a/prebid-server/endpoints/openrtb2/pbs-endpoint-video.md b/prebid-server/endpoints/openrtb2/pbs-endpoint-video.md index f7ea7fe605..c9ab121cf1 100644 --- a/prebid-server/endpoints/openrtb2/pbs-endpoint-video.md +++ b/prebid-server/endpoints/openrtb2/pbs-endpoint-video.md @@ -47,7 +47,7 @@ These key-values are returned to the SSAI server as part of the video response. 10. The stitched stream is returned to the application.
- +architecture diagram
**Parameters** @@ -201,12 +201,7 @@ The `pricegranularity` sub-object `range` describes the maximum price point for ### Regulations -{% capture legalNotice %} - - This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company and its collection, use, and storage of personal data is different, you should also seek independent legal advice relating to obligations under European and /or US regulations, including the General Data Protection Regulations (GDPR), the existing ePrivacy Directive and California Consumer Protection Act (CCPA). Only a lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. - {% endcapture %} - -{% include /alerts/alert_important.html content=legalNotice %} +{% include legal-warning.html %} In order for publishers to meet their transparency, notice and choice/consent requirements under the GDPR and CCPA, Prebid Server supports the [IAB Europe Transparency & Consent Framework](https://www.iab.com/topics/consumer-privacy/gdpr/) and the [CCPA Compliance Framework](https://www.iab.com/guidelines/ccpa-framework/). diff --git a/prebid-server/features/pbs-activitycontrols.md b/prebid-server/features/pbs-activitycontrols.md index 803c0e8894..1ca6f6008c 100644 --- a/prebid-server/features/pbs-activitycontrols.md +++ b/prebid-server/features/pbs-activitycontrols.md @@ -39,8 +39,7 @@ The Activity Control configuration has two components: ### Prebid Server Is a Toolkit -{: .alert.alert-danger :} -Important: This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company and its collection, use, and storage of personal data is different, you should seek independent legal advice relating to obligations under European and /or US regulations, including the GDPR, the ePrivacy Directive and CCPA. Only a lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. +{% include legal-warning.html %} Activity Controls and privacy features within Prebid Server are tools meant to be useful to publishers within their overall privacy strategy. Prebid assumes a larger context around these diff --git a/prebid-server/features/pbs-privacy.md b/prebid-server/features/pbs-privacy.md index add2abb25c..d2935b7947 100644 --- a/prebid-server/features/pbs-privacy.md +++ b/prebid-server/features/pbs-privacy.md @@ -10,8 +10,7 @@ title: Prebid Server | Features | Privacy * TOC {:toc} -{: .alert.alert-danger :} -Important: This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company and its collection, use, and storage of personal data is different, you should seek independent legal advice relating to obligations under European and /or US regulations, including the GDPR, the ePrivacy Directive and individual state laws. Only a lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. +{% include legal-warning.html %} ## Prebid Server Activity Control Infrastructure diff --git a/prebid-server/features/pbs-uscustomlogic.md b/prebid-server/features/pbs-uscustomlogic.md index 44088b108d..3006aa681f 100644 --- a/prebid-server/features/pbs-uscustomlogic.md +++ b/prebid-server/features/pbs-uscustomlogic.md @@ -13,8 +13,7 @@ This feature is currently only available in PBS-Java. - TOC {:toc} -{: .alert.alert-danger :} -Important: This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company and its collection, use, and storage of personal data is different, you should seek independent legal advice relating to obligations under European and /or US regulations, including the GDPR, individual state laws, the ePrivacy Directive and CCPA. Only a lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. +{% include legal-warning.html %} ## Overview diff --git a/prebid-server/features/pbs-usgen.md b/prebid-server/features/pbs-usgen.md index 9b6e8a32a3..254fb5c427 100644 --- a/prebid-server/features/pbs-usgen.md +++ b/prebid-server/features/pbs-usgen.md @@ -13,8 +13,7 @@ This feature is currently only available in PBS-Java. * TOC {:toc} -{: .alert.alert-danger :} -Important: This resource should not be construed as legal advice and Prebid.org makes no guarantees about compliance with any law or regulation. Please note that because every company and its collection, use, and storage of personal data is different, you should seek independent legal advice relating to obligations under European and /or US regulations, including the GDPR, individual state laws, the ePrivacy Directive and CCPA. Only a lawyer can provide you with legal advice specifically tailored to your situation. Nothing in this guide is intended to provide you with, or should be used as a substitute for, legal advice tailored to your business. +{% include legal-warning.html %} ## Overview diff --git a/support/index.md b/support/index.md index c8aa737c73..92b8b091a1 100644 --- a/support/index.md +++ b/support/index.md @@ -17,45 +17,32 @@ There are several ways to ask for help or get involved with Prebid. See below f ## Overview -For technical and feature requests or questions, it's best to use the GitHub or Stack Overflow forums. Prebid is worked on full-time by engineering teams from Xandr and Magnite. There are also many publishers using and contributing to the project. +For technical and feature requests or questions, it's best to use GitHub. Prebid is worked on by engineering teams from Xandr, Magnite, Pubmatic, IndexExchange, and other companies. There are also many publishers using and contributing to the project. For questions about how an adapter works, it's best to reach out to the company directly, or raise an issue on GitHub. Each demand adapter should be maintained by the SSPs or exchange behind that adapter. -For Prebid news or general questions, we recommend the Ad Ops Slack Channel, Quora, or Twitter. - {: .alert.alert-success :} There are serveral Prebid.org members that will install and maintain Prebid on a publisher's behalf. See the list of [Managed Prebid Solutions](https://prebid.org/product-suite/managed-services/). ## GitHub -Sometimes people have already gotten answers on the GitHub forums. See [issues with the 'question' tag on the Prebid.js repo](https://github.com/prebid/Prebid.js/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Aquestion%20) +Sometimes people have already gotten answers on the GitHub forums. Search for [issues in the Prebid.js repo](https://github.com/prebid/Prebid.js/issues) Submit a GitHub issue for [Prebid.js](https://github.com/prebid/Prebid.js/issues), [Prebid SDK iOS](https://github.com/prebid/prebid-mobile-ios/issues), [Prebid Mobile Android](https://github.com/prebid/prebid-mobile-android/issues) or [Prebid Server](https://github.com/prebid/prebid-server/issues) if: - You have a feature request to the code base. - You have found a bug in the code. -For more information about how to contribute, see the *Contribute* section of the site. +For more information about how to contribute, see: -## Stack Overflow +- [Prebid.js](https://github.com/prebid/Prebid.js/blob/master/CONTRIBUTING.md) +- [Prebid Server GoLang](https://github.com/prebid/prebid-server/blob/master/docs/developers/contributing.md) +- [Prebid Server Java](https://github.com/prebid/prebid-server-java/blob/master/docs/developers/contributing.md) -If you ask questions on [Stack Overflow](https://stackoverflow.com/), please use the following tags: +## Web Contact Form -- `prebid` -- `prebid.js` +Another option is to use our [web contact form](https://prebid.org/contact-us/). ## Ad Ops Slack Channel Join the [Ad Ops Reddit Slack](https://redditadops.slack.com/messages/C0HVALS8P/) (specifically the `#HeaderBidding` channel) to connect with other publishers and developers using Prebid. - -## Reddit - -[Post on Reddit](https://www.reddit.com/r/adops/search?q=prebid.js) (Please include the word "Prebid.js" for us to get notified) if: - -- You have ad ops related questions, e.g. setting up line items and creatives. - -## Quora - -[Post on Quora](https://www.quora.com/topic/Prebid-js) (Please tag the question with "Prebid.js") if: - -- You have high level questions, e.g. the best strategy to host unbiased header bidding auctions. diff --git a/support/privacy-resources.md b/support/privacy-resources.md new file mode 100644 index 0000000000..269fa68b28 --- /dev/null +++ b/support/privacy-resources.md @@ -0,0 +1,125 @@ +--- +layout: page_v2 +title: Prebid Privacy Resources +description: Prebid Privacy Resources +sidebarType: 7 +--- + +# Prebid Privacy Resources +{:.no_toc} + +- TOC +{:toc} + +## Overview + +{% include legal-warning.html %} + +Prebid has many tools that can be utilized to help publishers and app developers achieve the data privacy goals defined by their legal teams. +We cannot help you decide _what_ to do, but this page will help you understand the tools that various Prebid products offer in support +of user privacy. + +## Regional Privacy References + +### United States + +The IAB's original "US Privacy" standard was designed for the California rules known as CCPA or CPRA. Prebid support for the original USP +protocol is described: + +- [Prebid.js US Privacy Consent Management Module](/dev-docs/modules/consentManagementUsp.html) +- [Prebid Server and CCPA/USP](/prebid-server/features/pbs-privacy.html#ccpa--us-privacy) + +After more states started making their own privacy regulations, the IAB developed the "Global Privacy Protocol" (GPP) and the +Multi-State Privacy Agreement (MSPA). GPP is just a container that can hold specific regional protocols. + +- [Prebid.js support for GPP](/dev-docs/modules/consentManagementGpp.html) +- [Prebid Support for MSPA](/features/mspa-usnat.html). + +### Europe + +The privacy tools that Prebid has built in support of European rules may help address the requirements of the GDPR and the Digital Services Act. + +The IAB defined the Transparency and Consent Framework (TCF) to address European GDPR rules. Prebid support for TCF is described: + +- [Prebid.js CMP Best Practices](/dev-docs/cmp-best-practices.html) +- [Prebid.js GDPR Consent Management Module](/dev-docs/modules/consentManagement.html) +- [Prebid.js GDPR Enforcement Module](/dev-docs/modules/gdprEnforcement.html) +- [Prebid Server GDPR Support](/prebid-server/features/pbs-privacy.html#gdpr) +- [White paper: Prebid Support for Enforcing TCF 2](https://docs.google.com/document/d/1fBRaodKifv1pYsWY3ia-9K96VHUjd8kKvxZlOsozm8E) + +### Canada + +Please see [Prebid's support for Quebec privacy law 25](/features/ac-quebec.html). + +## Global Privacy References + +### Chrome Privacy Sandbox + +Privacy Sandbox is the name the Chrome browser has given to a series of features aimed at smoothing the transition off the 3rd party cookie. + +#### Topics + +At a high level, the "Topics" feature is Chrome's way of defining a taxonomy of information that can be used for ad targeting. See +[Chrome Topics](https://privacysandbox.com/proposals/topics/) for details. + +There's actually nothing to do to enable Topics in Prebid – bidders will receive their own Topics if they've implemented that feature. +That said, Prebid does have a [Topics FPD Module](/dev-docs/modules/topicsFpdModule.html) that allows bidders to share each other's Topics. + +#### Protected Audience API + +PAAPI is Chrome's solution for ad targeting done in a privacy-friendly way. In short, GAM will kick off an in-browser auction after +the contextual auction. If the in-browser auction wins, it can override the ad chosen by GAM. + +See [Chrome's PAAPI documentation](https://developers.google.com/privacy-sandbox/relevance/protected-audience) for the full background. + +To enable Interest Group bidding in Prebid, you can add the Prebid [Fledge For GPT Module](/dev-docs/modules/fledgeForGpt.html). + +{: .alert.alert-info :} +Note that 'FLEDGE' was the original name of the Protected Audience feature. The name of the Prebid.js module may change in the future. + +##### Test Period + +During the first part of 2024, Chrome and GAM are running a test of PAAPI on a limited subset of traffic. However, the +[Fledge For GPT Module](/dev-docs/modules/fledgeForGpt.html) enables Interest Group auctions 100% of the time. During the test +period, publishers can better align browser and programmatic ad behavior by only enabling Prebid interest group bids for +the relevant Chrome testing labels. + +If you want to gather interest group bids only when IG auctions are very likely to run, you can enable the module like this: + +```javascript +Promise.resolve(navigator.cookieDeprecationLabel?.getValue?.()).then(label => { + pbjs.setConfig({ + fledgeForGpt: { + enabled: !label || label.startsWith("treatment_") || label === 'label_only_5' + } + }); +}); +``` + +If you want to gather interest group bids whenever when IG auctions _might_ run, you can enable the module like this: + +```javascript +Promise.resolve(navigator.cookieDeprecationLabel?.getValue?.()).then(label => { + pbjs.setConfig({ + fledgeForGpt: { + enabled: !label || label.startsWith("treatment_") || label != 'label_only_1' + } + }); +}); +``` + +#### Prebid.js Versions Supporting Privacy Sandbox + +This table may be useful to publishers trying to decide which version of Prebid.js to use to support Privacy Sandbox. + +{: .table .table-bordered .table-striped } +| Prebid.js Version | Notes | +|-------------------|-------| +| 8.22| Makes Prebid FPD available to the PAAPI generateBid, scoreAds, and reportResult functions | +| 8.15| Added floor signal to the fledgeForGpt module | +| 8.9| Initial release of the fledgeForGpt module, Sec-Browsing-Topics header enabled | +| 8.8| The topicsFpd module is released, allowing bidders to share topics | + +## Further Reading + +- [Prebid Server Privacy Support](/prebid-server/features/pbs-privacy.html) From 83eec0227652b90e16e5d940acf41c924e99989b Mon Sep 17 00:00:00 2001 From: Bryan DeLong Date: Sun, 11 Feb 2024 09:27:37 -0500 Subject: [PATCH 18/26] Consumable - Documentation Update (#5074) * Documentation Update for Consumable Server * Update with revisions * fix adaptor -> adapter * Fix linting issues * Fixing more Linting * Fixing more Linting * Make recommended changes * Fix linting --- dev-docs/bidders/consumable-server.md | 359 ++++++++++++++++++++++++++ dev-docs/bidders/consumable.md | 251 +++++++++++++++++- 2 files changed, 603 insertions(+), 7 deletions(-) create mode 100644 dev-docs/bidders/consumable-server.md diff --git a/dev-docs/bidders/consumable-server.md b/dev-docs/bidders/consumable-server.md new file mode 100644 index 0000000000..90f1ed979c --- /dev/null +++ b/dev-docs/bidders/consumable-server.md @@ -0,0 +1,359 @@ +--- +layout: bidder +title: Consumable +description: Prebid Consumable Bidder adapter +userIds: all +pbjs: true +pbs: true +pbs_app_supported: true +schain_supported: true +coppa_supported: true +tcfeu_supported: true +floors_supported: true +usp_supported: true +gpp_supported: true +biddercode: consumable +media_types: banner, video, audio +gvl_id: 591 +deals_supported: true +fpd_supported: true +sidebarType: 1 +multiformat_supported: will-bid-on-one +safeframes_ok: true +--- + +### Note + +The Consumable adapter requires setup and approval from your Consumable account manager, even for existing Consumable publishers. Please reach out to your account manager to enable Prebid for your account. + +### Disclosure + +The Consumable bid adapter may cycle the ad initially shown with a new one at various intervals. This means the advertiser meta-data accompanying the bid response may be incomplete at the time of response. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|-------------|----------|--------------------------------|---------|-----------| +| `siteId` | required | The site ID from Consumable. | `12345` | `integer` | +| `networkId` | required | The network ID from Consumable. | `9969` | `integer` | +| `unitId` | required | The unit ID from Consumable. | `987654` | `integer` | +| `unitName` | required | The unit name from Consumable. | `cnsmbl-unit` | `string` | +| `placementId` | required | the placementid from Consumable. | `0421008445828ceb46f496700a5fa65e` | `string` | + +## Table of contents + +* [Table of contents](#table-of-contents) +* [Introduction](#introduction) +* [Supported media types](#supported-media-types) +* [Setup instructions to call Consumable through Prebid Server](#setup-instructions-to-call-consumable-through-prebid-server) + * [Call Consumable from a web browser](#call-consumable-from-a-web-browser) + * [Call Consumable from Prebid Mobile SDK](#call-consumable-from-prebid-mobile-sdk) + * [Call Consumable from CTV/long-form video environment](#call-consumable-from-ctvlong-form-video-environment) +* [Bid request parameters](#bid-request-parameters) + * [Site](#site-banner-video-audio) + * [App](#app-or-ctv-banner-video-audio) +* [Examples](#examples) + +## Introduction + +Publishers can use Prebid Server in any of the following ways with Consumable. Consumable's adapter supports all of the following methods: + +* If you want to call Consumable from a web environment, you can use Prebid.js to call Prebid Server, and then Prebid Server uses our server-side adapter to call Consumable. This reduces workload on the browser. For set up instructions, see [Call Consumable from a web browser](#call-consumable-from-a-web-browser) section on this page. +* In mobile apps, you can use the Prebid Mobile SDK to call Prebid Server and then Prebid Server uses our server-side adapter to call Consumable. For set up instructions, see [Call Consumable from Prebid Mobile SDK](#call-consumable-from-prebid-mobile-sdk) section on this page. +* In CTV apps and other long-form video environments, you (or the SSAI vendor) can make a call to Prebid Server using OpenRTB, and then Prebid Server uses our server-side adapter to call Consumable. For set up instructions, see [Call Consumable from CTV/long-form video environment](#call-consumable-from-ctvlong-form-video-environment) section on this page. + +## Supported media types + +The following table lists the media types that Consumable supports. For information about the the Time-To-Live (TTL) for each media type, see [How Consumable counts impressions](https://kb.Consumableexchange.com/publishers/billing/how_Consumable_counts_impressions.htm) in our Knowledge Base. + +{: .table .table-bordered .table-striped } +| Type | Prebid Server support | +| ----------- | ----------- | +| banner | Supported | +| video | Supported, including ad pods for OTT | +| audio | Supported | + +## Setup instructions to call Consumable through Prebid Server + +**Note:** If you are hosting your own Prebid Server instance, you must contact your Consumable Exchange Representative to get an endpoint and setup instructions. + +If you are using an existing Prebid Server instance that is already configured to call Consumable, depending on whether you want to call Consumable from the browser, mobile app, CTV, or long-form video, follow any of the below sections to complete the Consumable-specific configuration. + +### Call Consumable from a web browser + +To call Consumable from a web browser using Prebid Server, you must first configure Prebid.js to call Consumable directly from the browser using our client-side adapter. Follow the quick start instructions provided in Prebid's [Getting Started for Developers](/dev-docs/getting-started.html) documentation. Complete the following steps to complete the Consumable-specific configuration: + +1. Build the binary in one of the following ways: + [Download Prebid.js](/download.html) from the Prebid site to use the standard compiled binary that Prebid includes in the download process and select **Consumable Exchange** as an adapter. +2. Define the Consumable-specific parameters at the bidder level which include adding `consumable` as the bidder and the `siteId`. For Consumable's bidder-specific parameters, see the [Bid request parameters](#bid-request-parameters) section below. + + ```javascript + { + bidder: 'consumable', + params: { + "networkId": 11, + "siteId": 32, + "unitId": 42, + "unitName": "cnsmbl-audio-728x90-slider" + } + } + ``` + +3. Define your ad units in the `adUnit` object. This includes the details about the ad slots such as the media types, ad size, and ad code. For more information about this object, see Prebid's [Ad Unit Reference](/dev-docs/adunit-reference.html) documentation. +4. Enable user syncing by adding the following code in the [pbjs.setConfig()](/dev-docs/publisher-api-reference/setConfig.html) function. Consumable strongly recommends enabling user syncing through iFrames, though we do also support image-based syncing. This functionality improves DSP user match rates and increases the Consumable bid rate and bid price. Make sure to call `pbjs.setConfig()` only once. This configuration is optional in Prebid, but required by Consumable. + + ```javascript + pbjs.setConfig({ + userSync: { + iframeEnabled: true, + filterSettings: { + iframe: { + bidders: ['consumable'], + filter: 'include' + } + } + } + }); + ``` + +5. (Optional) Set up First Party Data (FPD). For more information about the data types we support and the instructions for each option, see the [Set up First Party Data (FPD)](/dev-docs/bidders/consumable.html#set-up-first-party-data-fpd) section in our Prebid.js documentation on the Prebid site. +6. (Optional) If you want to monetize instream video, you need to enable a cache endpoint in the [pbjs.setConfig()](/dev-docs/publisher-api-reference/setConfig.html) function as follows:
+ + ```javascript + pbjs.setConfig({ + cache: { + url: 'https://prebid.adnxs.com/pbc/v1/cache' + } + }); + ``` + +### Call Consumable from Prebid Mobile SDK + +**Before you begin:** Contact your Consumable Exchange representative to get your `placementId`. You must provide this placementID to your Prebid Server host company. + +**Note:** To implement Prebid Mobile SDK, follow Prebid's [Getting Started with Prebid Mobile](/prebid-mobile/prebid-mobile-getting-started.html) documentation. + +To add Consumable as a bidder to your mobile app: + +1. Inform your Prebid Server hosting company to add `consumable` as a bidder in the configuration and include the `placementId` that Consumable provides to you at the time of integration. +2. Define the Consumable-specific parameters at the bidder level. For information about these parameters, see the [Bid request parameters](#bid-request-parameters) section below. +3. Include any ad unit level required or optional parameters provided in Prebid's [Prebid Mobile API - iOS](/prebid-mobile/pbm-api/ios/ios-sdk-integration-gam-original-api.html) and [Prebid Mobile API - Android](/prebid-mobile/pbm-api/android/android-sdk-integration-gam-original-api.html) documentation. + +### Call Consumable from CTV/long-form video environment + +**Before you begin:** Contact your Consumable Exchange Representative to get the `placementId`. You must provide this placement ID to your Prebid Server host company. + +**Note:** To implement CTV and long-form video using Prebid Server, follow Prebid's [Long Form Video](/prebid-server/use-cases/pbs-lfv.html) documentation. + +To add Consumable as a bidder: + +1. Inform your Prebid Server hosting company to add `consumable`as a bidder in the configuration and include the `placementId` that Consumable provides to you at the time of integration. +2. Define the Consumable-specific parameters at the bidder level. For information about these parameters, see the [Bid request parameters](#bid-request-parameters) section below. +3. Include any ad unit level required or optional parameters provided in Prebid's [/openrtb2/video](/prebid-server/endpoints/openrtb2/pbs-endpoint-video.html) documentation. + +## Bid request parameters + +For a list of the OpenRTB fields that Consumable supports in bid requests, see [List of supported OpenRTB bid request fields for sellers](https://kb.Consumableexchange.com/publishers/openrtb_integration/list_of_supported_openrtb_bid_request_fields_for_sellers.htm#List_of_supported_OpenRTB_bid_request_fields_for_sellers). The following are the required fields for the various supported media types. +### Site (Banner, Video, Audio) + +You must include these parameters at the bidder level. + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|-------------|----------|--------------------------------|---------|-----------| +| `siteId` | required | The site ID from Consumable. | `12345` | `integer` | +| `networkId` | required | The network ID from Consumable. | `9969` | `integer` | +| `unitId` | required | The unit ID from Consumable. | `987654` | `integer` | +| `unitName` | required | The unit name from Consumable. | `cnsmbl-unit` | `string` | +### App or CTV (Banner, Video, Audio) + +You must include these parameters at the bidder level. + +{: .table .table-bordered .table-striped } +| Key | Scope | Type | Description | +|---|---|---|---| +| `placementId` | Required | String | An Consumable-specific identifier that is associated with this ad unit. It will be associated with the single size, if the size is provided. This is similar to a placement ID or an ad unit ID that some other modules have. For example, `'0421008445828ceb46f496700a5fa65e'`| + +## Examples + +**Banner** + +```json +{ + "id": "cons-banner-id", + "imp": [ + { + "id": "imp-id", + "banner": { + "w": 300, + "h": 250, + "id": "1", + "pos": 0, + "format": [ + { + "w": 300, + "h": 250 + }, + { + "w": 300, + "h": 600 + } + ] + }, + "instl": 0, + "tagid": "5602709", + "bidfloor": 0.02, + "bidfloorcur": "USD", + "secure": 1, + "ext": { + "consumable": { + "placementId": "0421008445828ceb46f496700a5fa65e" + } + } + } + ], + "app": { + "bundle": "555555555", + "storeurl": "https://apps.apple.com/us/app/test-app/id555555555", + "publisher": { + "id": "123456" + }, + "content": { + "title": "Entertainment", + "genre": "IAB9-30,IAB6,IAB9-7,IAB1" + } + }, + "device": { + "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 15_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148", + "ip": "10.20.30.40", + "ifa": "2E2E2E2E-3B3B-4141-8A8A-181818181818" + }, + "at": 1, + "tmax": 200 +} +``` + +**Video** + +```json +{ + "id": "cons-video-example", + "imp": [ + { + "id": "imp-id", + "video": { + "mimes": [ + "video/mp4", + "video/3gpp", + "video/webm" + ], + "minduration": 15, + "maxduration": 60, + "startdelay": -1, + "protocols": [ + 2, + 3, + 5, + 6 + ], + "w": 320, + "h": 480, + "placement": 1, + "linearity": 1, + "minbitrate": 1000, + "api": [ + 1, + 2, + 3, + 5 + ] + }, + "secure": 1, + "ext": { + "consumable": { + "placementId": "0421008445828ceb46f496700a5fa65e" + } + } + } + ], + "app": { + "bundle": "555555555", + "storeurl": "https://apps.apple.com/us/app/test-app/id555555555", + "publisher": { + "id": "123456" + }, + "content": { + "title": "Entertainment", + "genre": "IAB9-30,IAB6,IAB9-7,IAB1" + } + }, + "device": { + "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 15_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E18", + "ip": "10.20.30.40", + "ifa": "2E2E2E2E-3B3B-4141-8A8A-181818181818" + }, + "at": 1, + "tmax": 1000 +} +``` + +**Audio** + +```json +{ + "id": "cons-audio-example", + "imp": [ + { + "id": "imp-id", + "video": { + "mimes": [ + "video/mp3" + ], + "minduration": 15, + "maxduration": 60, + "startdelay": -1, + "protocols": [ + 2, + 3, + 5, + 6 + ], + "placement": 1, + "linearity": 1, + "minbitrate": 1000, + "api": [ + 1, + 2, + 3, + 5 + ] + }, + "secure": 1, + "ext": { + "consumable": { + "placementId": "0421008445828ceb46f496700a5fa65e" + } + } + } + ], + "app": { + "bundle": "555555555", + "storeurl": "https://apps.apple.com/us/app/test-app/id555555555", + "publisher": { + "id": "123456" + }, + "content": { + "title": "Entertainment", + "genre": "IAB9-30,IAB6,IAB9-7,IAB1" + } + }, + "device": { + "ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 15_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E18", + "ip": "10.20.30.40", + "ifa": "2E2E2E2E-3B3B-4141-8A8A-181818181818" + }, + "at": 1, + "tmax": 1000 +} +``` diff --git a/dev-docs/bidders/consumable.md b/dev-docs/bidders/consumable.md index 830f87c45d..768b9a173f 100644 --- a/dev-docs/bidders/consumable.md +++ b/dev-docs/bidders/consumable.md @@ -1,26 +1,30 @@ --- layout: bidder title: Consumable -description: Prebid Consumable Bidder Adaptor +description: Prebid Consumable Bidder adapter userIds: all -usp_supported: true pbjs: true pbs: true pbs_app_supported: true -biddercode: consumable -tcfeu_supported: true schain_supported: true coppa_supported: true +tcfeu_supported: true +floors_supported: true +usp_supported: true gpp_supported: true -media_types: banner, video +biddercode: consumable +media_types: banner, video, audio gvl_id: 591 -floors_supported: true +deals_supported: true +fpd_supported: true sidebarType: 1 +multiformat_supported: will-bid-on-one +safeframes_ok: true --- ### Note -The Consumable adaptor requires setup and approval from your Consumable account manager, even for existing Consumable publishers. Please reach out to your account manager to enable Prebid.js for your account. +The Consumable adapter requires setup and approval from your Consumable account manager, even for existing Consumable publishers. Please reach out to your account manager to enable Prebid.js for your account. ### Disclosure @@ -35,3 +39,236 @@ The Consumable bid adapter may cycle the ad initially shown with a new one at va | `networkId` | required | The network ID from Consumable. | `9969` | `integer` | | `unitId` | required | The unit ID from Consumable. | `987654` | `integer` | | `unitName` | required | The unit name from Consumable. | `cnsmbl-unit` | `string` | + +## Table of contents + +* [Table of contents](#table-of-contents) +* [Introduction](#introduction) +* [Supported media types](#supported-media-types) +* [Set up Prebid.js to call Consumable directly from the browser](#set-up-prebidjs-to-call-consumable-directly-from-the-browser-client-side-adapter) +* [Set up Prebid.js to call Consumable through Prebid Server](#set-up-prebidjs-to-call-consumable-through-prebid-server-server-side-adapter) +* [Set up First Party Data (FPD)](#set-up-first-party-data-fpd) + * [Global data](#set-up-first-party-data-fpd) + * [Consumable bidder-specific data](#consumable-bidder-specific-data) + * [AdUnit-specific data](#adunit-specific-data) +* [Bid request parameters](#bid-request-parameters) + * [Banner](#banner) + * [Video](#video) +* [Examples](#examples) + +## Introduction + +Publishers can use Prebid.js to call Consumable Exchange (Consumable) in any of the following ways: + +* **Call through our client-side adapter:** Prebid.js calls Consumable directly from the browser using our client-side adapter. This option tends to have a better cookie match rate. For configuration instructions, see the [Set up Prebid.js to call Consumable directly from the browser (client-side adapter)](#set-up-prebidjs-to-call-consumable-directly-from-the-browser-client-side-adapter) on this page. +* **Call through our server-side adapter**: Prebid.js makes a call to Prebid Server and then Prebid Server uses our server-side adapter to call Consumable. This reduces workload on the browser. For configuration instructions, see the [Set up Prebid.js to call Consumable through Prebid Server (server-side adapter)](#set-up-prebidjs-to-call-consumable-through-prebid-server-server-side-adapter) on this page. + +**Notes:** + +* **Recommended Global Bidder settings:** For our adapter, Consumable recommends enabling local storage. As of Prebid.js 7.x, local storage access must be explicitly specified. By leveraging local storage, Consumable is able to take advantage of the latest features our exchange has to offer. For instructions on enabling local storage, see Prebid’s [pbjs.bidderSettings](/dev-docs/publisher-api-reference/bidderSettings.html) documentation. + +### Example + +```javascript +pbjs.bidderSettings = { + consumable: { + storageAllowed: true + } +}; +``` + +## Supported media types + +The following table lists the media types that Consumable supports. + +{: .table .table-bordered .table-striped } + +| Type | Prebid Server support | +|--------| ----------- | +| banner | Supported | +| video | Supported | + +## Set up Prebid.js to call Consumable directly from the browser (client-side adapter) + +To call Consumable from a web browser environment using a Prebid Server integration, see the Consumable-specific configuration steps in [Setup instructions to call Consumable through Prebid Server](/dev-docs/bidders/consumable-server.html#setup-instructions-to-call-consumable-through-prebid-server) in our Prebid Server documentation on the Prebid site. + +## Set up Prebid.js to call Consumable through Prebid Server (server-side adapter) + +In this configuration, Prebid.js makes a call to Prebid Server and then Prebid Server uses our server-side adapter to call Consumable. Complete the following steps to configure Consumable as a demand source: + +1. If you are hosting your own Prebid Server instance, see [Setup instructions to call Consumable through Prebid Server](/dev-docs/pbs-bidders.html#setup-instructions-to-call-consumable-through-prebid-server). +2. In the `[pbjs.setConfig()]` function, within the `s2sConfig` property, add `consumable` to the `bidders` attribute. +3. Define the Consumable-specific parameters at the bidder level. For Consumable's bidder-specific parameters, see the [Bid request parameters](#bid-request-parameters) section below. +4. Define your ad units in the `adUnit` object. For more information about this object, see Prebid's [Ad Unit Reference](/dev-docs/adunit-reference.html) documentation. +5. Enable user syncing by adding the following code in the [pbjs.setConfig()](/dev-docs/publisher-api-reference/setConfig.html) function. Consumable strongly recommends enabling user syncing through iFrames, though we do also support image-based syncing. This functionality improves DSP user match rates and increases the Consumable bid rate and bid price. Be sure to call `pbjs.setConfig()` only once. This configuration is optional in Prebid, but required by Consumable.
+ + ```javascript + pbjs.setConfig({ + userSync: { + iframeEnabled: true, + filterSettings: { + iframe: { + bidders: ['consumable'], + filter: 'include' + } + } + } + }); + ``` + +6. (Optional) Set up First Party Data (FPD). For more information about the data types we support and the instructions for each option, see the [Set up First Party Data (FPD)](#set-up-first-party-data-fpd) section below. +7. (Optional) If you want to monetize instream video, you need to enable a cache endpoint in the `[pbjs.setConfig()]` function as follows: + + ```javascript + pbjs.setConfig({ + cache: { + url: 'https://prebid.adnxs.com/pbc/v1/cache' + } + }); + ``` + +## Set up First Party Data (FPD) + +You can set up the Prebid.js FPD module using Global data, Consumable bidder-specific site data, or ad unit-specific data. Consumable supports deal targeting in all the three FPD types. + +### Global data + +Use this data type to allow all bid adapters to have access to first party data that might be useful in ad targeting. This is available from Prebid.js version 4.30 and above. + +To supply data that is accessible to all bidders, use the `[pbjs.setConfig()]` object as illustrated below. Use the `[setBidderConfig()]` function to supply bidder-specific data. For more information about the standard or more detailed examples, see Prebid's [First Party Data Feature](/features/firstPartyData.html) documentation. + +```javascript +pbjs.setConfig({ + ortb2: { + site: { + ... + }, + user: { + ... + } + } +}); +``` + +### Consumable bidder-specific data + +This data type is available from Prebid version 7.49.0 and above. You can use it to specify key-value pairs that will be included in your query string when targeting deals. For example, if a user visits a news page, you can pass that information by submitting a key-value pair for `category = news`. You can then create a deal in the Consumable UI and activate the deal only on pages that contain `category = news` as the key-value pair. + +To include the FPD in a bid request, in the `[pbjs.setConfig()]` object at the `consumable` bidder level, provide the key-values in the `firstPartyData` parameter. Make sure that you set it before the `pbjs.requestBids` configuration. If you want to change the values, you can update the `pbjs.setConfig` once again. The change will be reflected in all future bid requests. + +```javascript +pbjs.setConfig({ + consumable: { + firstPartyData: { + '': '', + '': '', + // ... + } + } +}); +``` + +### AdUnit-specific data + +Use this data type to specify key-value pairs at the ad unit level when targeting deals and apply it to all bidders. This will be available from Prebid.js version 7.46 and above. To include the adUnit-specific data in a bid request, see Prebid's [Supplying AdUnit-Specific Data](/features/firstPartyData.html#supplying-adunit-specific-data) documentation. + +```javascript +ortb2Imp: { + ext: { + data: { + pbadslot: "homepage-top-rect", + adUnitSpecificAttribute: "123" + } + } +} +``` + +## Bid request parameters + +### Banner + +You must include these parameters at the bidder level. + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|-------------|----------|--------------------------------|---------|-----------| +| `siteId` | required | The site ID from Consumable. | `12345` | `integer` | +| `networkId` | required | The network ID from Consumable. | `9969` | `integer` | +| `unitId` | required | The unit ID from Consumable. | `987654` | `integer` | +| `unitName` | required | The unit name from Consumable. | `cnsmbl-unit` | `string` | + +### Video + +You must include these parameters at the bidder level. + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|-------------|----------|--------------------------------|---------|-----------| +| `siteId` | required | The site ID from Consumable. | `12345` | `integer` | +| `networkId` | required | The network ID from Consumable. | `9969` | `integer` | +| `unitId` | required | The unit ID from Consumable. | `987654` | `integer` | +| `unitName` | required | The unit name from Consumable. | `cnsmbl-unit` | `string` | + +## Examples + +**Banner** + +```javascript +var adUnits = [{ + code: 'banner-div-a', + mediaTypes: { + banner: { + sizes: [ + [300, 250], + [300, 600] + ] + } + }, + bids: [{ + bidder: 'consumable', + params: { + "networkId": 11, + "siteId": 32, + "unitId": 42, + "unitName": "the-answer" + } + } + ] +}]; + +``` + +**Video:**
+ +```javascript +var adUnits = [{ + code: 'video-div-a', + mediaTypes: { + video: { + // Preferred location as of version 4.43 + video obj + playerSize: [300, 250], + api: [2], + protocols: [2, 3, 5, 6], + minduration: 5, + maxduration: 30, + mimes: ['video/mp4', 'application/javascript'], + placement: 3 + } + }, + bids: [{ + bidder: 'consumable', + params: { + "networkId": 11, + "siteId": 32, + "unitId": 42, + "unitName": "the-answer" + video: { + // openrtb v2.5 compatible video obj + // If required, use this to override mediaTypes.video.XX properties + } + } + }] +}]; + +``` From 9fdf40831a54dbcbb019c69f0fcb29400a01e381 Mon Sep 17 00:00:00 2001 From: sebastienrufiange <131205907+sebastienrufiange@users.noreply.github.com> Date: Sun, 11 Feb 2024 09:33:40 -0500 Subject: [PATCH 19/26] Contxtful RTD Provider - Documentation (#4901) * feat: added contxtfulRtdProvider doc * doc: updated * Update dev-docs/modules/contxtfulRtdProvider.md fix: table formatting Co-authored-by: Muki Seiler * fix: revised overview text * Update contxtfulRtdProvider.md fix: extra line and wording. --------- Co-authored-by: Muki Seiler --- dev-docs/modules/contxtfulRtdProvider.md | 93 ++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 dev-docs/modules/contxtfulRtdProvider.md diff --git a/dev-docs/modules/contxtfulRtdProvider.md b/dev-docs/modules/contxtfulRtdProvider.md new file mode 100644 index 0000000000..07fc6418a0 --- /dev/null +++ b/dev-docs/modules/contxtfulRtdProvider.md @@ -0,0 +1,93 @@ +--- +layout: page_v2 +title: Contxtful RTD Provider +display_name: Contxtful RTD Provider +description: Activates Receptivity to evaluate ad success in real-time by focusing on attention and context. +page_type: module +module_type: rtd +module_code : contxtfulRtdProvider +enable_download : true +vendor_specific: true +sidebarType : 1 +--- + +# Contxtful Real Time Data Module + +## Overview + +The Contxtful RTD module enhances ad units by adding a Receptivity score to the meta-data. This score quantifies user attention in real time and can be used to guide bidding decisions. + +{% include dev-docs/loads-external-javascript.md %} + +## Integration + +To incorporate this module into your `prebid.js`, compile the module using the following command: + +```sh +gulp build --modules=contxtfulRtdProvider, +``` + +### Configuration + +Configure the `contxtfulRtdProvider` by passing the required settings through the `setConfig` function in `prebid.js`. + +```js +import pbjs from 'prebid.js'; + +pbjs.setConfig({ + "realTimeData": { + "auctionDelay": 1000, + "dataProviders": [ + { + "name": "contxtful", + "waitForIt": true, + "params": { + "version": "", + "customer": "" + } + } + ] + } +}); +``` + +#### Parameters + +{: .table .table-bordered .table-striped } +| Name | Type | Scope | Description | +|------------|----------|----------|-------------------------------------------| +| `version` | `string` | Required | Specifies the API version of Contxtful. | +| `customer` | `string` | Required | Your unique customer identifier. | + +## Usage + +The `contxtfulRtdProvider` module loads an external JavaScript file and authenticates with Contxtful APIs. The `getTargetingData` function then adds a `ReceptivityState` to each ad slot, which can have one of two values: `Receptive` or `NonReceptive`. + +```json +{ + "adUnitCode1": { "ReceptivityState": "Receptive" }, + "adUnitCode2": { "ReceptivityState": "NonReceptive" } +} +``` + +This module also integrates seamlessly with Google Ad Manager, ensuring that the `ReceptivityState` is available as early as possible in the ad serving process. + +### Example + +To view an integration example: + +1. In your CLI run: + + ```bash + gulp serve --modules=appnexusBidAdapter,contxtfulRtdProvider + ``` + +2. In your browser, navigate to: + + ```text + http://localhost:9999/integrationExamples/gpt/contxtfulRtdProvider_example.html + ``` + +## Support + +To utilize this module, you need to register for an account with [Contxtful](https://contxtful.com). For inquiries, please contact [prebid@contxtful.com](mailto:prebid@contxtful.com). From f354742e5a2093b01f45a98ef0fe1f2d7473c2c2 Mon Sep 17 00:00:00 2001 From: abazylewicz-id5 <106807984+abazylewicz-id5@users.noreply.github.com> Date: Thu, 15 Feb 2024 17:46:46 +0100 Subject: [PATCH 20/26] ID5 Analytics - enable download (#5155) --- dev-docs/analytics/id5.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/analytics/id5.md b/dev-docs/analytics/id5.md index 8afb3887db..835b90b6af 100644 --- a/dev-docs/analytics/id5.md +++ b/dev-docs/analytics/id5.md @@ -7,7 +7,7 @@ tcfeu_supported: true usp_supported: true prebid_member: true gvl_id: 131 -enable_download: false +enable_download: true --- #### Registration From 5bc39ba4df53ca92f16798975ccb07b7045da7cc Mon Sep 17 00:00:00 2001 From: rimaburder-index <55195208+rimaburder-index@users.noreply.github.com> Date: Thu, 15 Feb 2024 11:51:10 -0500 Subject: [PATCH 21/26] Update ix.md (#5102) * Update ix.md added instream video section * Update ix.md added new supported user IDs * Update ix.md removed linked as per review comments * Update ix.md fixed lint errors * Update ix.md fixed link errors * Update ix.md added support for merkel user id --- dev-docs/bidders/ix.md | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/dev-docs/bidders/ix.md b/dev-docs/bidders/ix.md index 5eee84c6be..ad63643bb1 100644 --- a/dev-docs/bidders/ix.md +++ b/dev-docs/bidders/ix.md @@ -5,7 +5,7 @@ description: Prebid Index Exchange Bidder Adapter biddercode: ix pbjs: true pbs: false -userIds: identityLink, netId, fabrickId, zeotapIdPlus, uid2, unifiedId, id5Id, lotamePanoramaId, publinkId, hadronId, pubcid, imuid, 33acrossId, nonID +userIds: idl, netId, fabrickId, zeotapIdPlus, uid2, TDID, id5Id, lotamePanoramaId, publinkId, hadronId, pubcid, utiq, criteoID, euid, imuid, 33acrossId, nonID, pairid, MRKL pbs_app_supported: true schain_supported: true coppa_supported: true @@ -37,7 +37,8 @@ privacy_sandbox: paapi, topics * [Global data](#prebid-fpd-module) * [Index bidder-specific data](#index-bidder-specific-fpd-module) * [AdUnit-specific data](#adunit-specific-data) -* [Index's outstream video player](#index-outstream-video-player) +* [Monetize instream video](#monetize-instream-video) +* [Index's outstream ad unit](#indexs-outstream-ad-unit) * [Prebid Native configuration](#prebid-native-configuration) * [Protected Audience API support](#protected-audience-api-support) * [Signal inventory using external IDs](#signal-inventory-using-external-ids) @@ -124,18 +125,9 @@ In this configuration, Prebid.js makes a call to Prebid Server and then Prebid S ``` 6. (Optional) Set up First Party Data (FPD). For more information about the data types we support and the instructions for each option, see the [Set up First Party Data (FPD)](#set-up-first-party-data-fpd) section below. -7. (Optional) If you want to monetize instream video, you need to enable a cache endpoint in the `[pbjs.setConfig()]` function as follows: - - ```javascript - pbjs.setConfig({ - cache: { - url: 'https://prebid.adnxs.com/pbc/v1/cache' - } - }); - ``` - +7. (Optional) If you want to monetize instream video, see the [Monetize instream video](#monetize-instream-video) section below. 8. (Optional) If you want to monetize outstream video, you can choose among the following options: - * Use Index's outstream video player. For more information, see the [Index's outstream video player](#index-outstream-video-player) section below. + * Use Index's outstream video player. For more information, see the [Index's outstream ad unit](#indexs-outstream-ad-unit) section below. * Use your own outstream video player. For more information, see [Prebid’s documentation on how to show video ads.](/dev-docs/show-outstream-video-ads.html) 9. (Optional) Configure Prebid Native with Index. For more information, see the [Prebid Native](#prebid-native-configuration) section below. Prebid Native is available from Prebid.js version 7.4.0 or higher. @@ -222,7 +214,23 @@ ortb2Imp: { } ``` - +## Monetize instream video + +Unlike Outstream Video, instream video does not use the Prebid Universal Creative. Instead, video bids provide VAST that Prebid caches to obtain a cache ID that can be retrieved with a URL. The cache ID is passed as a key value to the ad server. + +To monetize instream video, complete the following steps: + +1. Enable a cache endpoint in the `[pbjs.setConfig()]` function as follows: + + ```javascript + pbjs.setConfig({ + cache: { + url: 'https://prebid.adnxs.com/pbc/v1/cache' + } + }); + ``` + +2. Set up your line items in Google Ad manger by following the instructions in Prebid's [Setting Up Video In GAM](/adops/setting-up-prebid-video-in-dfp.html) documentation. ## Index's outstream ad unit From a7e633099cb75ca7ce1247d651fe926cb35608c3 Mon Sep 17 00:00:00 2001 From: inna Date: Thu, 15 Feb 2024 19:02:41 +0200 Subject: [PATCH 22/26] MinuteMedia bidAdapter: gpp_supported: true (#5133) * gpp_supported: true for rise and minutemedia * only gpp for rise * enable gpp support * minute enable gpp --------- Co-authored-by: Inna Yaretsky <> --- dev-docs/bidders/minutemedia.md | 1 + 1 file changed, 1 insertion(+) diff --git a/dev-docs/bidders/minutemedia.md b/dev-docs/bidders/minutemedia.md index 12c2b0911d..76d6f9c6ce 100644 --- a/dev-docs/bidders/minutemedia.md +++ b/dev-docs/bidders/minutemedia.md @@ -8,6 +8,7 @@ media_types: banner, video multiformat_supported: will-bid-on-any schain_supported: true tcfeu_supported: true +gpp_supported: true usp_supported: true pbs: true floors_supported: true From 725078f53f036d0af6a0157476a0bac7390d4308 Mon Sep 17 00:00:00 2001 From: Bryan DeLong Date: Thu, 15 Feb 2024 12:21:29 -0500 Subject: [PATCH 23/26] Fix for layout issues and for non-server page from showing on the server page. (#5154) --- dev-docs/bidders/consumable-server.md | 3 ++- dev-docs/bidders/consumable.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dev-docs/bidders/consumable-server.md b/dev-docs/bidders/consumable-server.md index 90f1ed979c..5f5119652f 100644 --- a/dev-docs/bidders/consumable-server.md +++ b/dev-docs/bidders/consumable-server.md @@ -3,7 +3,7 @@ layout: bidder title: Consumable description: Prebid Consumable Bidder adapter userIds: all -pbjs: true +pbjs: false pbs: true pbs_app_supported: true schain_supported: true @@ -166,6 +166,7 @@ You must include these parameters at the bidder level. | `networkId` | required | The network ID from Consumable. | `9969` | `integer` | | `unitId` | required | The unit ID from Consumable. | `987654` | `integer` | | `unitName` | required | The unit name from Consumable. | `cnsmbl-unit` | `string` | + ### App or CTV (Banner, Video, Audio) You must include these parameters at the bidder level. diff --git a/dev-docs/bidders/consumable.md b/dev-docs/bidders/consumable.md index 768b9a173f..52009f80cf 100644 --- a/dev-docs/bidders/consumable.md +++ b/dev-docs/bidders/consumable.md @@ -4,7 +4,7 @@ title: Consumable description: Prebid Consumable Bidder adapter userIds: all pbjs: true -pbs: true +pbs: false pbs_app_supported: true schain_supported: true coppa_supported: true From 175f909e2bd8a9a763b772f28b8ea285d9e59996 Mon Sep 17 00:00:00 2001 From: Anton Babak <76536883+AntoxaAntoxic@users.noreply.github.com> Date: Fri, 16 Feb 2024 14:43:08 +0100 Subject: [PATCH 24/26] Add DSA fields documentation (#5100) * Add DSA fields documentation * wordsmithing * linting updates * linting --------- Co-authored-by: bretg Co-authored-by: Muki Seiler --- .../developers/add-new-bidder-java.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/prebid-server/developers/add-new-bidder-java.md b/prebid-server/developers/add-new-bidder-java.md index 8bd9617ca3..baa70d8810 100644 --- a/prebid-server/developers/add-new-bidder-java.md +++ b/prebid-server/developers/add-new-bidder-java.md @@ -604,6 +604,7 @@ There are a several values of a bid request that publishers may supply that your | Test | OpenRTB | `request.test`
The publisher is sending non-production traffic which also enables verbose debugging information from Prebid Server. | Video | OpenRTB | `request.imp[].video`
The publisher is specifying video ad requirements or preferences. | Rewarded inventory | OpenRTB | `request.imp[].ext.prebid.is_rewarded_inventory`
Signal to indicate the inventory is rewarded. +| Digital Services Act (DSA) | OpenRTB | `request.regs.ext.dsa`
The publisher will indicate that a transaction is subject to DSA and whether they will render the required transparency information themselves. ##### Request compression @@ -649,6 +650,7 @@ Please review the entire [OpenRTB 2.5 Bid Response](https://www.iab.com/wp-conte | `.Bids[].Bid.W` | Optional | Width of the creative in pixels. | `.Bids[].Bid.H` | Optional | Height of the creative in pixels. | `.Bids[].Bid.Ext.Prebid.Meta` | Optional | Embedded JSON containing Prebid metadata (see below) or custom information. +| `.Bids[].Bid.Ext.Dsa` | Optional | Embedded JSON containing DSA Transparency information (see below). {: .alert.alert-info :} We recommend resolving creative OpenRTB macros in your adapter. Otherwise, AUCTION_PRICE will eventually get resolved by the [Prebid Universal Creative](https://github.com/prebid/prebid-universal-creative), but by then the bid price will be in the ad server currency and quantized by the price granularity. @@ -674,7 +676,7 @@ In order to share granular bid response data with publishers, analytics, and rep Bid metadata may be required in a future Prebid.js release. The AdvertiserDomains field and the DChain object are particularly useful. We recommend ensuring your adapter sets these fields or Prebid.js may reject your bid. {: .table .table-bordered .table-striped } -| Path | Description | +| Path | Description | - | - | `.AdvertiserDomains` | Domains for the landing page(s) aligning with the OpenRTB `adomain` field. | `.AdvertiserID` | Bidder-specific advertiser id. @@ -694,6 +696,20 @@ Bid metadata may be required in a future Prebid.js release. The AdvertiserDomain | `.PrimaryCategoryID` | Primary IAB category id. | `.SecondaryCategoryIDs` | Secondary IAB category ids. +##### DSA + +See the [IAB's DSA protocol](https://github.com/InteractiveAdvertisingBureau/openrtb/blob/main/extensions/community_extensions/dsa_transparency.md) for background information. + +This response object allows DSPs to provide publishers with requested transparency and render information. Your bid adapter should place it in the standard ORTB location. The Java object is .Bids[].Bid.Ext.Dsa. Fields within this object: + +{: .table .table-bordered .table-striped } +| Path | Description +| - | - +| `.Behalf` | A name of whose behalf the ad is displayed. +| `.Paid` | A name of who paid for the ad. +| `.Adrender` | Flag to indicate that buyer/advertiser will render their own DSA transparency information inside the creative. +| `.Transparency` | The domains of the entities that applied user parameters and the parameters they applied. +

#### Better Analytics From 669c1b70ce328d1613b64c7c6b97989f3007e6f3 Mon Sep 17 00:00:00 2001 From: bretg Date: Fri, 16 Feb 2024 13:27:05 -0500 Subject: [PATCH 25/26] PBS richmedia filter module (#5159) * removing PG support * linting fix * PBS richmedia blocking module * linting * linting --- .../openrtb2/pbs-endpoint-auction.md | 2 +- prebid-server/features/pbs-feature-idx.md | 172 +++++++++--------- prebid-server/pbs-modules/index.md | 9 +- prebid-server/pbs-modules/richmedia.md | 92 ++++++++++ 4 files changed, 184 insertions(+), 91 deletions(-) create mode 100644 prebid-server/pbs-modules/richmedia.md diff --git a/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.md b/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.md index caa995cace..504bb060ff 100644 --- a/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.md +++ b/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.md @@ -1776,7 +1776,7 @@ The Prebid SDK version comes from: | ext.prebid.data.eidpermissions | Allows publishers to define which bidders are allowed to see which extended IDs, see [eid permissions](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#eid-permissions) | object | no | | ext.prebid.debug | Provides debug output in response. | boolean | yes | | ext.prebid.trace | Provides trace output in response. | "verbose" or "basic" | yes | -| ext.prebid.events | Enables VAST impression tracking injection for the request when an empty object is provided. This is an alernative method from using account configuration. | object | no +| ext.prebid.events | Enables VAST impression tracking injection for the request when an empty object is provided. This is an alernative method from using account configuration. | object | no | | ext.prebid.experimentadscert.enabled | Enabled Ads.Cert 2.0 Authenticated Connections on supported outgoing bidder requests. | boolean | no | | ext.prebid.integration | host-dependent integration type passed through to events and analytics.
ex: `"managed"` | string | yes | | ext.prebid.multibid | allows bidders to respond with more than one bid, see [multi-bid](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#multibid) | object | yes, but only their value | diff --git a/prebid-server/features/pbs-feature-idx.md b/prebid-server/features/pbs-feature-idx.md index 9f14b69e85..10856d3bcc 100644 --- a/prebid-server/features/pbs-feature-idx.md +++ b/prebid-server/features/pbs-feature-idx.md @@ -10,92 +10,92 @@ title: Prebid Server | Features {: .table .table-bordered .table-striped } | Feature Set | Feature | Description | PBS-Go | PBS-Java | |-------------+---------+-------------+--------+----------| -| Auction | [Timeouts](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#timeout) | Lower the incoming tmax before sending to bidders in order to account for internal processing time and network delay. | | | -| [Currency](/prebid-server/features/pbs-currency.html) | Core | Loads currency conversions from an outside source, allows non-supported currencies to come in on the OpenRTB2 request, converts bid currencies to the request's prefered currency. | | | -| [Currency](/prebid-server/features/pbs-currency.html) | Request-Defined Rates | Allows the request to define its own currency rates. | | | -| Currency | Convert Currency Method | Allows adapters to convert bid floors to a different currency if needed. | | | -| [Deals](/prebid-server/features/pbs-deals.html) | Core | Basic deal support, creating hb_deal targeting when appropriate. | | | -| Deals | Deal prioritization | Supports the 'preferdeals' [targeting flag](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#targeting) to give deals the priority when PBS returns ad server targeting. | | | -| [AMP](/prebid-server/use-cases/pbs-amp.html) | Core | Reads and responds to the /openrtb2/amp endpoint | | | -| Targeting | Core | Request can specify `includewinners` and `includebidderkeys`. These cause PBS to emit seatbid[].bid[].ext.prebid.targeting values. | | | -| Targeting | Format | Request can specify `includeformat`, which causes PBS to emit hb_format along with other targeting values like hb_pb, etc. | | | -| Targeting | [Custom Targeting](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#custom-targeting) | Request can specify `ext.prebid.adservertargeting`, which causes PBS to emit custom targeting values. | | | -| Request Params | Global Params | Publishers can specify [adapter-specific cross-impression attributes](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#global-bid-adapter-parameters). | | | -| [Price Granularity](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#targeting) | Core | Request can define quantization rules. Bids are quantized before being added to ad server targeting. | | | -| Price Granularity | Mediatype pricegranularity | Request can define different quantization rules for different mediatypes. Bids are quantized before being added to ad server targeting. | | | -| [Bid Adjustments](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#bid-adjustments) | Core | Allows publishers to adjust bid prices to account for gross/net or consistent discrepancies. | | | -| [Bid Adjustments](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#bid-adjustments) | By mediatype | Allows for different bid adjustments by mediatype banner, video, native, audio. | | | -| Price Floors | Core | Support for the [price floors feature](/prebid-server/features/pbs-floors.html). | | | -| GDPR | TCF 2 core | Able to: read the TCF2 global vendor list, parse incoming TCF2 consent strings, and [take appropriate enforcement action](https://docs.google.com/document/d/1fBRaodKifv1pYsWY3ia-9K96VHUjd8kKvxZlOsozm8E/edit). | | | -| GDPR | TCF 2 Account Config | Able to turn on and off TCF2 enforcement per account. | | | -| GDPR | Support for basicEnforcementVendors | Host companies can define bidders that don't require vendor consent but do require Purpose consent. | | | -| GDPR | TCF 2 Geo-Fencing | If the incoming request contains device.geo.country, PBS will enforce the EEA if the request is flagged as being in GDPR scope. | | | -| GDPR | TCF 2 Geo-Lookup | Can use a geographic lookup service to help determine whether the incoming request is in-scope for GDPR. | | | -| GDPR | TCF 2 channel exception | Can be configured to turn off GDPR checks for a specific account and a specific channel. e.g. Account 123 has a different legal basis for AMP. | | | -| [US Privacy](/prebid-server/features/pbs-privacy.html#ccpa--us-privacy) | USP core | Able to: read the US Privacy consent string (CCPA) and [take appropriate enforcement action](https://github.com/prebid/prebid-server/issues/1129). | | | -| US Privacy | USP AMP support | Able to: read the US Privacy consent string from AMP requests and [take appropriate enforcement action](https://github.com/prebid/prebid-server/issues/1176). | | | -| [GPP](/prebid-server/features/pbs-privacy.html#gpp) | GPP Passthrough | Global Privacy Platform parameters are passed through auction and usersync requests. | | | -| [GPP](/prebid-server/features/pbs-privacy.html#gpp) | GPP TCF2/USP Support | PBS reads the Global Privacy Platform string and pulls out TCF2/USP strings when appropriate. | | | -| [GPP](/prebid-server/features/pbs-privacy.html#gpp) | [USGen Privacy Module](/prebid-server/features/pbs-usgen.html) | The Activity Control system calls this module that examines the incoming GPP parameters and determines whether a given Activity should be allowed when the request contains SIDs 7-12. | | | -| [GPP](/prebid-server/features/pbs-privacy.html#gpp) | [US Custom Logic Privacy Module](/prebid-server/features/pbs-uscustomlogic.html) | Similar to the USGen Privacy Module, but accounts specify the interpretation of the GPP string for SIDs 7-12. | | | -| COPPA | Core | Able to read the COPPA flag and [take appropriate enforcement action](https://github.com/prebid/prebid-server/issues/929). | | | -| Global Privacy Control | Core | Passes the Sec-GPC header through to bidders. | | | -| Activity Controls | Core | [Account-level controls](/prebid-server/features/pbs-activitycontrols.html) over privacy sensitive activities. | | | -| Activity Controls | GPP conditions | Support for `gppSid`, `geo`, and `gpc` conditions. | | | -| [Cache](/prebid-server/features/pbs-caching.html) | Bids core | Accepts the ext.prebid.cache.bids parameter, storing bid objects in PBC. | | | -| Cache | VAST core | Accepts the ext.prebid.cache.vastxml parameter, storing VAST responses in PBC. | | | -| Cache | Winning-only flag | Accepts a 'ext.prebid.cache.winningonly' parameter on the request. If true, instead of caching all bids and VAST, only the winning bid or VAST is stored. | | | -| [Stored Requests](/prebid-server/features/pbs-storedreqs.html) | Core | Accepts a stored request ID in the OpenRTB, looks it up against a local data store, and merges with the OpenRTB request record. | | | -| Stored Requests | Unique Per Account | If an account ID is provided, PBS can distinguish between otherwise identical SRIDs. | | | -| Stored Requests | Unique BidRequest IDs | Supports the generate-storedrequest-bidrequest-id setting telling Prebid Server to override the static bidrequest.id in the stored request with a UUID. | | | -| [Stored Responses](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#stored-responses) | Stored Auction Responses | Accepts a stored response ID in the OpenRTB, looks it up against a local data store, and merges with the OpenRTB response record. | | | -| [Stored Responses](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#stored-responses) | Stored Bid Responses | Accepts a stored response ID in the OpenRTB, looks it up against a local data store, and uses that as the bid adapter response. | | | -| First Party Data | Core | Accepts core [first party data](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#first-party-data-support) attributes and supports ext.prebid.data.bidders. | | | -| First Party Data | Bidder-specific data | Accepts bidder-specific first party data attributes. | | | -| First Party Data | AMP first party data | Accepts [first party data attributes on an AMP request](/prebid-server/endpoints/openrtb2/pbs-endpoint-amp.html#first-party-data). | | | -| [Supply Chain](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#supply-chain-support) | Bidder-specific schains | Accepts bidder-specific schain | | | -| Supply Chain | Host SChain | The host company can supply a global schain that's appended to the list of incoming nodes in source.ext.schain. | | | -| Supply Chain | ORTB 2.4 compatibility | If source.ext.schain doesn't exist but ext.schain does, PBS copies the latter to the former. | | | -| Publisher Accounts | Core | Ability to enforce that requests coming in have a valid account ID. | | | -| Publisher Accounts | AMP account parameter | Accept the account parameter on the AMP request. | | | -| Publisher Accounts | Account-specific TTLs | Allow each account ID to have a custom PBC time-to-live for banner and video. | | | -| [Video](/formats/video.html) | Core | Support for basic instream and outstream video: passes video parameters to adapters, stores VAST responses when instructed. | | | +| Auction | [Timeouts](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#timeout) | Lower the incoming tmax before sending to bidders in order to account for internal processing time and network delay. | check | check | +| [Currency](/prebid-server/features/pbs-currency.html) | Core | Loads currency conversions from an outside source, allows non-supported currencies to come in on the OpenRTB2 request, converts bid currencies to the request's prefered currency. | check | check | +| [Currency](/prebid-server/features/pbs-currency.html) | Request-Defined Rates | Allows the request to define its own currency rates. | check | check | +| Currency | Convert Currency Method | Allows adapters to convert bid floors to a different currency if needed. | check | check | +| [Deals](/prebid-server/features/pbs-deals.html) | Core | Basic deal support, creating hb_deal targeting when appropriate. | check | check | +| Deals | Deal prioritization | Supports the 'preferdeals' [targeting flag](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#targeting) to give deals the priority when PBS returns ad server targeting. | check | check | +| [AMP](/prebid-server/use-cases/pbs-amp.html) | Core | Reads and responds to the /openrtb2/amp endpoint | check | check | +| Targeting | Core | Request can specify `includewinners` and `includebidderkeys`. These cause PBS to emit seatbid[].bid[].ext.prebid.targeting values. | check | check | +| Targeting | Format | Request can specify `includeformat`, which causes PBS to emit hb_format along with other targeting values like hb_pb, etc. | check | check | +| Targeting | [Custom Targeting](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#custom-targeting) | Request can specify `ext.prebid.adservertargeting`, which causes PBS to emit custom targeting values. | check | check | +| Request Params | Global Params | Publishers can specify [adapter-specific cross-impression attributes](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#global-bid-adapter-parameters). | check | check | +| [Price Granularity](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#targeting) | Core | Request can define quantization rules. Bids are quantized before being added to ad server targeting. | check | check | +| Price Granularity | Mediatype pricegranularity | Request can define different quantization rules for different mediatypes. Bids are quantized before being added to ad server targeting. | | check | +| [Bid Adjustments](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#bid-adjustments) | Core | Allows publishers to adjust bid prices to account for gross/net or consistent discrepancies. | check | check | +| [Bid Adjustments](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#bid-adjustments) | By mediatype | Allows for different bid adjustments by mediatype banner, video, native, audio. | | check | +| Price Floors | Core | Support for the [price floors feature](/prebid-server/features/pbs-floors.html). | check | check | +| GDPR | TCF 2 core | Able to: read the TCF2 global vendor list, parse incoming TCF2 consent strings, and [take appropriate enforcement action](https://docs.google.com/document/d/1fBRaodKifv1pYsWY3ia-9K96VHUjd8kKvxZlOsozm8E/edit). | check | check | +| GDPR | TCF 2 Account Config | Able to turn on and off TCF2 enforcement per account. | check | check | +| GDPR | Support for basicEnforcementVendors | Host companies can define bidders that don't require vendor consent but do require Purpose consent. | check | check | +| GDPR | TCF 2 Geo-Fencing | If the incoming request contains device.geo.country, PBS will enforce the EEA if the request is flagged as being in GDPR scope. | check | | +| GDPR | TCF 2 Geo-Lookup | Can use a geographic lookup service to help determine whether the incoming request is in-scope for GDPR. | | check | +| GDPR | TCF 2 channel exception | Can be configured to turn off GDPR checks for a specific account and a specific channel. e.g. Account 123 has a different legal basis for AMP. | check | check | +| [US Privacy](/prebid-server/features/pbs-privacy.html#ccpa--us-privacy) | USP core | Able to: read the US Privacy consent string (CCPA) and [take appropriate enforcement action](https://github.com/prebid/prebid-server/issues/1129). | check | check | +| US Privacy | USP AMP support | Able to: read the US Privacy consent string from AMP requests and [take appropriate enforcement action](https://github.com/prebid/prebid-server/issues/1176). | check | check | +| [GPP](/prebid-server/features/pbs-privacy.html#gpp) | GPP Passthrough | Global Privacy Platform parameters are passed through auction and usersync requests. | check | check | +| [GPP](/prebid-server/features/pbs-privacy.html#gpp) | GPP TCF2/USP Support | PBS reads the Global Privacy Platform string and pulls out TCF2/USP strings when appropriate. | check | check | +| [GPP](/prebid-server/features/pbs-privacy.html#gpp) | [USGen Privacy Module](/prebid-server/features/pbs-usgen.html) | The Activity Control system calls this module that examines the incoming GPP parameters and determines whether a given Activity should be allowed when the request contains SIDs 7-12. | | check | +| [GPP](/prebid-server/features/pbs-privacy.html#gpp) | [US Custom Logic Privacy Module](/prebid-server/features/pbs-uscustomlogic.html) | Similar to the USGen Privacy Module, but accounts specify the interpretation of the GPP string for SIDs 7-12. | | check | +| COPPA | Core | Able to read the COPPA flag and [take appropriate enforcement action](https://github.com/prebid/prebid-server/issues/929). | check | check | +| Global Privacy Control | Core | Passes the Sec-GPC header through to bidders. | check | check | +| Activity Controls | Core | [Account-level controls](/prebid-server/features/pbs-activitycontrols.html) over privacy sensitive activities. | check | check | +| Activity Controls | GPP conditions | Support for `gppSid`, `geo`, and `gpc` conditions. | | check | +| [Cache](/prebid-server/features/pbs-caching.html) | Bids core | Accepts the ext.prebid.cache.bids parameter, storing bid objects in PBC. | check | check | +| Cache | VAST core | Accepts the ext.prebid.cache.vastxml parameter, storing VAST responses in PBC. | check | check | +| Cache | Winning-only flag | Accepts a 'ext.prebid.cache.winningonly' parameter on the request. If true, instead of caching all bids and VAST, only the winning bid or VAST is stored. | check | check | +| [Stored Requests](/prebid-server/features/pbs-storedreqs.html) | Core | Accepts a stored request ID in the OpenRTB, looks it up against a local data store, and merges with the OpenRTB request record. | check | check | +| Stored Requests | Unique Per Account | If an account ID is provided, PBS can distinguish between otherwise identical SRIDs. | | check | +| Stored Requests | Unique BidRequest IDs | Supports the generate-storedrequest-bidrequest-id setting telling Prebid Server to override the static bidrequest.id in the stored request with a UUID. | check | check | +| [Stored Responses](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#stored-responses) | Stored Auction Responses | Accepts a stored response ID in the OpenRTB, looks it up against a local data store, and merges with the OpenRTB response record. | check | check | +| [Stored Responses](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#stored-responses) | Stored Bid Responses | Accepts a stored response ID in the OpenRTB, looks it up against a local data store, and uses that as the bid adapter response. | check | check | +| First Party Data | Core | Accepts core [first party data](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#first-party-data-support) attributes and supports ext.prebid.data.bidders. | check | check | +| First Party Data | Bidder-specific data | Accepts bidder-specific first party data attributes. | check | check | +| First Party Data | AMP first party data | Accepts [first party data attributes on an AMP request](/prebid-server/endpoints/openrtb2/pbs-endpoint-amp.html#first-party-data). | check | check | +| [Supply Chain](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#supply-chain-support) | Bidder-specific schains | Accepts bidder-specific schain | check | check | +| Supply Chain | Host SChain | The host company can supply a global schain that's appended to the list of incoming nodes in source.ext.schain. | check | check | +| Supply Chain | ORTB 2.4 compatibility | If source.ext.schain doesn't exist but ext.schain does, PBS copies the latter to the former. | check | | +| Publisher Accounts | Core | Ability to enforce that requests coming in have a valid account ID. | check | check | +| Publisher Accounts | AMP account parameter | Accept the account parameter on the AMP request. | check | check | +| Publisher Accounts | Account-specific TTLs | Allow each account ID to have a custom PBC time-to-live for banner and video. | check | check | +| [Video](/formats/video.html) | Core | Support for basic instream and outstream video: passes video parameters to adapters, stores VAST responses when instructed. | check | check | | Video | Outstream renderers | Support for bidders specifying their own renderers for outstream video. | | | -| Video | Long-form video | Support for the [long-form video endpoint](/prebid-server/endpoints/openrtb2/pbs-endpoint-video.html). | | | -| Video | IAB advertiser category mapping | Able to map IAB advertiser categories to a supplied mapping table. | | | -| Video | [Echo video attributes](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#echo-storedrequest-video-attributes) | To support mobile video, copies stored request video attributes to the response. | | | -| Mobile App | [Request Passthrough](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#request-passthrough) | Apps can pass render-time parameters from the request through to the response. | | | -| [Audio](/prebid-server/features/pbs-audio.html) | Core | Passes the audio mediatype through to bidders that support audio. | | | -| [Native](/prebid-server/features/pbs-native.html) | Core | Passes the native mediatype through to bidders that support native. | | | -| Native | asset type preprocessing | If a native bid response doesn't contain asset.type, PBS will link to the asset in the request by ID and copy the type into the response. | | | -| [Interstitials](/prebid-server/features/pbs-interstitials.html) | Core | Support device.ext.prebid.interstitial.minwidthperc and device.ext.prebid.interstitial.minheightperc parameters, [dynamically updating the impression format object](https://github.com/prebid/prebid-server/issues/755) from a configurable list of sizes filtered by these parameters. | | | -| [Aliases](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#bidder-aliases) | Core | Maps a biddercode on an incoming request to a specific server-side bid adapter named in the request or defined in config. | | | -| Aliases | [GVL ID support](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#bidder-alias-gvl-ids) | Define the IAB GVL ID for an aliased biddercode. | | | -| [User ID Sync](/prebid-server/developers/pbs-cookie-sync.html) | Core | Implements the /cookie_sync and /setuid endpoints. Bidders may choose either redirect or iframe method. | | | -| User ID Sync | Multi-Method | Bidders can supply both pixel redirects as well as iframe syncs. | | | -| User ID Sync | Cooperative sync | Does a pixel sync with more than just the bidders on the page. | | | -| User ID Sync | Account override | Allows accounts to override the cooperative sync feature and bidder limits. | | | -| User ID | [EID Permissions](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#eid-permissions) | The Publisher can define which bidders receive which extended user IDs. | | | -| [Events](https://docs.google.com/document/d/1ry0X4C2EV-R0pMrm1IQk9BstxaT395UCl3KKqTGa5c8/edit#heading=h.7w5yevygp2gz) | Events | Ability to process the /event endpoint, place /event URLs in the OpenRTB response, and place /event URLs in VAST XML. | | | -| Events | Events vasttrack endpoint | Ability to process the /vasttrack endpoint initated by Prebid.js, placing /event URLs in VAST XML. | | | -| Events | Events BidID Generation | Some bidders don't generate unique enough BidIDs to join with auction events. This feature allows the host company to inject a PBS-generated BidID alongside the bidder-generated ID. | | | -| Auction | [MultiBid](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#multibid) | Allow named bidders to supply more than one response. | | | -| Analytics | Analytics module support | Allows developers to plug in a [custom analytics adapter](/prebid-server/developers/pbs-build-an-analytics-adapter.html). | | | -| Bid Response Validation | Validate secure markup | PBS can configurably reject bid responses that don't supply a secure creative when in a secure context. | | | -| Bid Response Validation | Validate bid sizes | PBS can configurably reject bid responses with sizes that are bigger than the request dimensions. | | | -| [Bidder Info Endpoints](/prebid-server/endpoints/info/pbs-endpoint-info.html) | Core | Provides details on which bidders and parameters exist in this Prebid Server. | | | -| [Troubleshooting](/troubleshooting/pbs-troubleshooting.html) | Test flag | Accepts the OpenRTB 'test' flag, emitting additional debug info on responses. | | | -| Troubleshooting | Debug flag | Accepts the ext.prebid.debug flag, emitting additional debug info on responses. | | | -| Troubleshooting | Account-level Debug Control | Allows host companies to turn off debugging by account but allow for request-level overrides. | | | -| Operations | Core metrics | Emits detailed operational metrics to back-end systems: Graphite, Influx, and Prometheus | | | -| Operations | Circuit breaker | Protects system performance during fault scenarios by detecting problems with external and internal endpoints, turning them off temporarily when a problem occurs. | | | -| Operations | [Server default request](/prebid-server/features/pbs-default-request.html) | Support global defaults for incoming requests. | | | -| Operations | IPv6 | Support taking IPv6 addresses and forwarding them to bidders. | | | -| Operations | [Request Logging Admin Endpoints](/troubleshooting/pbs-troubleshooting.html#request-logging) | Log a limited number of requests to understand the raw data clients are sending. | | | -| Metadata | [x-prebid header](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#http-headers) | Put version information in outgoing HTTP headers. | | | -| Modules | [ortb2-blocking](/prebid-server/pbs-modules/ortb2-blocking.html) | Configure per-account OpenRTB blocking details. | | | -| Anti-Fraud | Ads.Cert 2.0 Authenticated Connections | Includes authenticated connection signing header on outgoing bid requests to supported adapters. * | | | -| Request Enrichment | Enhanced tid and request IDs | Fills out id, imp.id, source.tid, and imp.ext.tid | | | -| Auction Response | Bidders can supply [Fledge](https://github.com/google/ads-privacy/tree/master/proposals/fledge-multiple-seller-testing) auction config | If the request contains imp.ext.ae, bid adapters can return ext.prebid.fledge.auctionconfigs | | | +| Video | Long-form video | Support for the [long-form video endpoint](/prebid-server/endpoints/openrtb2/pbs-endpoint-video.html). | check | check | +| Video | IAB advertiser category mapping | Able to map IAB advertiser categories to a supplied mapping table. | check | check | +| Video | [Echo video attributes](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#echo-storedrequest-video-attributes) | To support mobile video, copies stored request video attributes to the response. | check | check | +| Mobile App | [Request Passthrough](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#request-passthrough) | Apps can pass render-time parameters from the request through to the response. | check | check | +| [Audio](/prebid-server/features/pbs-audio.html) | Core | Passes the audio mediatype through to bidders that support audio. | check | check | +| [Native](/prebid-server/features/pbs-native.html) | Core | Passes the native mediatype through to bidders that support native. | check | check | +| Native | asset type preprocessing | If a native bid response doesn't contain asset.type, PBS will link to the asset in the request by ID and copy the type into the response. | check | check | +| [Interstitials](/prebid-server/features/pbs-interstitials.html) | Core | Support device.ext.prebid.interstitial.minwidthperc and device.ext.prebid.interstitial.minheightperc parameters, [dynamically updating the impression format object](https://github.com/prebid/prebid-server/issues/755) from a configurable list of sizes filtered by these parameters. | check | check | +| [Aliases](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#bidder-aliases) | Core | Maps a biddercode on an incoming request to a specific server-side bid adapter named in the request or defined in config. | check | check | +| Aliases | [GVL ID support](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#bidder-alias-gvl-ids) | Define the IAB GVL ID for an aliased biddercode. | check | check | +| [User ID Sync](/prebid-server/developers/pbs-cookie-sync.html) | Core | Implements the /cookie_sync and /setuid endpoints. Bidders may choose either redirect or iframe method. | check | check | +| User ID Sync | Multi-Method | Bidders can supply both pixel redirects as well as iframe syncs. | check | check | +| User ID Sync | Cooperative sync | Does a pixel sync with more than just the bidders on the page. | check | check | +| User ID Sync | Account override | Allows accounts to override the cooperative sync feature and bidder limits. | check | check | +| User ID | [EID Permissions](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#eid-permissions) | The Publisher can define which bidders receive which extended user IDs. | check | check | +| [Events](https://docs.google.com/document/d/1ry0X4C2EV-R0pMrm1IQk9BstxaT395UCl3KKqTGa5c8/edit#heading=h.7w5yevygp2gz) | Events | Ability to process the /event endpoint, place /event URLs in the OpenRTB response, and place /event URLs in VAST XML. | check | check | +| Events | Events vasttrack endpoint | Ability to process the /vasttrack endpoint initated by Prebid.js, placing /event URLs in VAST XML. | check | check | +| Events | Events BidID Generation | Some bidders don't generate unique enough BidIDs to join with auction events. This feature allows the host company to inject a PBS-generated BidID alongside the bidder-generated ID. | check | check | +| Auction | [MultiBid](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#multibid) | Allow named bidders to supply more than one response. | check | check | +| Analytics | Analytics module support | Allows developers to plug in a [custom analytics adapter](/prebid-server/developers/pbs-build-an-analytics-adapter.html). | check | check | +| Bid Response Validation | Validate secure markup | PBS can configurably reject bid responses that don't supply a secure creative when in a secure context. | check | check | +| Bid Response Validation | Validate bid sizes | PBS can configurably reject bid responses with sizes that are bigger than the request dimensions. | check | check | +| [Bidder Info Endpoints](/prebid-server/endpoints/info/pbs-endpoint-info.html) | Core | Provides details on which bidders and parameters exist in this Prebid Server. | check | check | +| [Troubleshooting](/troubleshooting/pbs-troubleshooting.html) | Test flag | Accepts the OpenRTB 'test' flag, emitting additional debug info on responses. | check | check | +| Troubleshooting | Debug flag | Accepts the ext.prebid.debug flag, emitting additional debug info on responses. | check | check | +| Troubleshooting | Account-level Debug Control | Allows host companies to turn off debugging by account but allow for request-level overrides. | check | check | +| Operations | Core metrics | Emits detailed operational metrics to back-end systems: Graphite, Influx, and Prometheus | check | check | +| Operations | Circuit breaker | Protects system performance during fault scenarios by detecting problems with external and internal endpoints, turning them off temporarily when a problem occurs. | | check | +| Operations | [Server default request](/prebid-server/features/pbs-default-request.html) | Support global defaults for incoming requests. | check | check | +| Operations | IPv6 | Support taking IPv6 addresses and forwarding them to bidders. | check | check | +| Operations | [Request Logging Admin Endpoints](/troubleshooting/pbs-troubleshooting.html#request-logging) | Log a limited number of requests to understand the raw data clients are sending. | | check | +| Metadata | [x-prebid header](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#http-headers) | Put version information in outgoing HTTP headers. | check | check | +| Modules | [ortb2-blocking](/prebid-server/pbs-modules/ortb2-blocking.html) | Configure per-account OpenRTB blocking details. | check | check | +| Anti-Fraud | Ads.Cert 2.0 Authenticated Connections | Includes authenticated connection signing header on outgoing bid requests to supported adapters. * | check | | +| Request Enrichment | Enhanced tid and request IDs | Fills out id, imp.id, source.tid, and imp.ext.tid | check | check | +| Auction Response | Bidders can supply [Fledge](https://github.com/google/ads-privacy/tree/master/proposals/fledge-multiple-seller-testing) auction config | If the request contains imp.ext.ae, bid adapters can return ext.prebid.fledge.auctionconfigs | check | check | \* Experimental feature not yet recommended for production. diff --git a/prebid-server/pbs-modules/index.md b/prebid-server/pbs-modules/index.md index 5d7544dc6e..15888fdf0b 100644 --- a/prebid-server/pbs-modules/index.md +++ b/prebid-server/pbs-modules/index.md @@ -27,10 +27,11 @@ The full list of modules: {: .table .table-bordered .table-striped } | Module | Description | Type | PBS-Go | PBS-Java | |---------------------+--------------+------+--------+----------| -| [**ORTB2 Blocking**](/prebid-server/pbs-modules/ortb2-blocking.html) | Support bidders that aren't full-service SSPs. | general | | | -| [**Confiant Ad Quality**](/prebid-server/pbs-modules/confiant-ad-quality.html) | Scans bid responses for security and quality issues. | general | | | -| [**US Gen Privacy**](/prebid-server/features/pbs-usgen.html) | Links with the [Activity Controls](/prebid-server/pbs-activitycontrols.html) to process GPP strings to determine whether an activity should be allowed. | privacy | | | -| [**US Custom Logic Privacy**](/prebid-server/features/pbs-uscustomlogic.html) | Similar to the `US Gen Privacy` module, but publishers define their own interpretation of the GPP string. | privacy | | | +| [**ORTB2 Blocking**](/prebid-server/pbs-modules/ortb2-blocking.html) | Support bidders that aren't full-service SSPs. | general | check | check | +| [**Confiant Ad Quality**](/prebid-server/pbs-modules/confiant-ad-quality.html) | Scans bid responses for security and quality issues. | general | | check | +| [**US Gen Privacy**](/prebid-server/features/pbs-usgen.html) | Links with the [Activity Controls](/prebid-server/pbs-activitycontrols.html) to process GPP strings to determine whether an activity should be allowed. | privacy | | check | +| [**US Custom Logic Privacy**](/prebid-server/features/pbs-uscustomlogic.html) | Similar to the `US Gen Privacy` module, but publishers define their own interpretation of the GPP string. | privacy | | check | +| [**Richmedia Filter**](/prebid-server/pbs-modules/richmedia.html) | Can filter MRAID creatives from the bid stream. | validation | | check | ## Installing a PBS General Module diff --git a/prebid-server/pbs-modules/richmedia.md b/prebid-server/pbs-modules/richmedia.md new file mode 100644 index 0000000000..017ab25e3a --- /dev/null +++ b/prebid-server/pbs-modules/richmedia.md @@ -0,0 +1,92 @@ +--- +layout: page_v2 +page_type: pbs-module +title: Prebid Server Richmedia Filter Module +display_name : Richmedia Filter Module +sidebarType : 5 +--- + +# Richmedia Filter Module +{:.no_toc} + +- TOC +{:toc } + +## Overview + +This module lets Prebid Server accounts define filtering rules for certain types +of richmedia bid responses. + +Currently, it can be configured to block MRAID responses for publishers that +do not want MRAID creatives to run. + +## Configuration + +The parameters to the module are: + +{: .table .table-bordered .table-striped } +| Parameter | Type | Scope | Description | Notes | +| --------- | ---- | ----- | ----------- | ----- | +| enabled | boolean | optional | Enable the module for this account | Defaults to false | +| filter-mraid | boolean | optional | Enable the MRAID filter for this account | Defaults to false | +| mraid-script-pattern | string | optional | Required if filter-mraid is true, defines what pattern is used to identity MRAID creatives. | No default | + +Here's an example of the account config used in PBS-Java: + +```json +{ + "hooks": { + "modules": { + "pb-richmedia-filter": { + "enabled": true, + "filter-mraid": true, + "mraid-script-pattern": "mraid.js" + // future richmedia filtering options go here + } + }, + "execution-plan": { + "endpoints": { + "/openrtb2/amp": { + "stages": { + "all-processed-bid-responses": { + "groups": [ + { + "timeout": 5, + "hook-sequence": [ + { + "module-code": "pb-richmedia-filter", + "hook-impl-code": "pb-richmedia-filter-all-processed-bid-responses-hook" + } + ] + } + ] + } + } + }, + "/openrtb2/auction": { + "stages": { + "all-processed-bid-responses": { + "groups": [ + { + "timeout": 5, + "hook-sequence": [ + { + "module-code": "pb-richmedia-filter", + "hook-impl-code": "pb-richmedia-filter-all-processed-bid-responses-hook" + } + ] + } + ] + } + } + } + } + } + } +} +``` + +## Further Reading + +- [Prebid Server Module List](/prebid-server/pbs-modules/index.html) +- [Building a Prebid Server Module](/prebid-server/developers/add-a-module.html) From 06ff92976b73d432e7e84b962698e6d1b74a1c6d Mon Sep 17 00:00:00 2001 From: bretg Date: Fri, 16 Feb 2024 16:42:40 -0500 Subject: [PATCH 26/26] removing GA adapter (#5160) --- dev-docs/analytics/google.md | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 dev-docs/analytics/google.md diff --git a/dev-docs/analytics/google.md b/dev-docs/analytics/google.md deleted file mode 100644 index 5dc70693d3..0000000000 --- a/dev-docs/analytics/google.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: analytics -title: Google -description: Google Analytics Adapter -modulecode: google ---- - -#### Registration - -Please visit [Prebid Analytics with GA](/overview/ga-analytics.html) for more information.