diff --git a/.gitignore b/.gitignore index c300c925e6..79e892f73a 100755 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,6 @@ Gemfile.lock .jekyll-metadata *ads.txt.bkp* .sass-cache + +# Files generated by `npm install` +node_modules/ diff --git a/.sass-cache/a8ae1fbf8fe3cf0ae44282e4f927a25624204c54/main.scssc b/.sass-cache/a8ae1fbf8fe3cf0ae44282e4f927a25624204c54/main.scssc new file mode 100644 index 0000000000..6db4f74c3a Binary files /dev/null and b/.sass-cache/a8ae1fbf8fe3cf0ae44282e4f927a25624204c54/main.scssc differ diff --git a/Gemfile b/Gemfile index a0483f2507..cdaf1cdfe5 100755 --- a/Gemfile +++ b/Gemfile @@ -1,2 +1,2 @@ source 'https://rubygems.org' -gem 'github-pages', '>= 30' \ No newline at end of file +gem 'github-pages', '>= 30' diff --git a/README.md b/README.md index 8bf538b48f..b63ccaf775 100755 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ The site uses [Jekyll](https://jekyllrb.com/), which is written in the [Ruby](ht For CSS, the site uses Laravel Mix to build CSS from Sass (scss-flavored) source files. Under the hood Laravel Mix uses Webpack. 1. follow the instructions at https://nodejs.dev to install Node.js for your OS -1. `npm install` to install packages for building assets +1. `npm ci` to install packages for building assets 1. build assets as described below diff --git a/_assets/sass/components/_autocomplete-filter.scss b/_assets/sass/components/_autocomplete-filter.scss new file mode 100644 index 0000000000..71eb86a31e --- /dev/null +++ b/_assets/sass/components/_autocomplete-filter.scss @@ -0,0 +1,12 @@ +.pb-content { + .autocomplete-filter { + padding: 10px 15px; + border: 1px solid #b3c1cc; + background-color: rgba(236, 243, 245, 0.35); + + &:focus { + outline: none; + } + } +} + diff --git a/_assets/sass/components/_bidder-list.scss b/_assets/sass/components/_bidder-list.scss index 55db573e20..53abc427a8 100644 --- a/_assets/sass/components/_bidder-list.scss +++ b/_assets/sass/components/_bidder-list.scss @@ -1,14 +1,4 @@ .pb-content { - .bidder-filter { - padding: 10px 15px; - border: 1px solid #b3c1cc; - background-color: rgba(236, 243, 245, 0.35); - - &:focus { - outline: none; - } - } - .c-bidder-list-group { h4 { color: #797f90; diff --git a/_assets/sass/main.scss b/_assets/sass/main.scss index 29af1a2147..ad4090dbd6 100644 --- a/_assets/sass/main.scss +++ b/_assets/sass/main.scss @@ -34,6 +34,7 @@ @import 'components/social-media'; @import 'components/table'; @import 'components/download-form'; +@import 'components/autocomplete-filter'; @import 'components/bidder-list'; @import 'components/search'; diff --git a/_data/dropdown_v2.yml b/_data/dropdown_v2.yml index a2e3139ba7..268f618bad 100644 --- a/_data/dropdown_v2.yml +++ b/_data/dropdown_v2.yml @@ -349,7 +349,7 @@ sectionId: 4 sectionName: Resources title: Prebid.org - link: http://www.prebid.org + link: https://www.prebid.org needsDivider: 1 isHeader: 0 isSubSectionStart: 1 @@ -358,7 +358,7 @@ sectionId: 4 sectionName: Resources title: Blog - link: http://www.prebid.org/blog + link: https://www.prebid.org/blog needsDivider: 0 isHeader: 0 isSubSectionStart: 1 diff --git a/_data/message.yml b/_data/message.yml deleted file mode 100644 index 987d4697f4..0000000000 --- a/_data/message.yml +++ /dev/null @@ -1,4 +0,0 @@ -#-------------Message---------------- -- messageId: 1 - messageText: Register for our webinar on Aug 27, 2020: How to Make Prebid the Supply Path Buyers Choose - messageCreateDt: 08_04_2020 diff --git a/_data/sidebar.yml b/_data/sidebar.yml index 8219b1f587..27cea0a38e 100644 --- a/_data/sidebar.yml +++ b/_data/sidebar.yml @@ -180,7 +180,7 @@ - sbSecId: 1 title: Native Ads - link: /dev-docs/examples/native-ad-example.html + link: /formats/native.html isHeader: 0 isSectionHeader: 0 sectionTitle: @@ -234,6 +234,15 @@ isSectionHeader: 0 sectionTitle: subgroup: 1 + +- sbSecId: 1 + title: Meta Bid Filtering + link: /dev-docs/examples/meta-bid-filtering.html + Item: 1 + isHeader: 0 + isSectionHeader: 0 + sectionTitle: + subgroup: 1 - sbSecId: 1 title: Troubleshooting @@ -1326,21 +1335,13 @@ subgroup: 1 - sbSecId: 4 - title: 'JW Player (Hosted)' + title: 'JW Player (Self-Hosted)' link: /examples/video/instream/jwplayer/pb-ve-jwplayer-hosted.html isHeader: 0 isSectionHeader: 0 sectionTitle: subgroup: 1 -- sbSecId: 4 - title: 'JW Player (Playlist)' - link: /examples/video/instream/jwplayer/pb-ve-jwplayer-playlist.html - isHeader: 0 - isSectionHeader: 0 - sectionTitle: - subgroup: 1 - - sbSecId: 4 title: 'Kaltura' link: /examples/video/instream/kaltura/pb-ve-kaltura.html @@ -1399,29 +1400,13 @@ subgroup: 1 - sbSecId: 4 - title: 'JW Player (Hosted)' + title: 'JW Player (Self-Hosted)' link: /examples/video/server/jwplayer/pbs-ve-jwplayer-hosted.html isHeader: 0 isSectionHeader: 0 sectionTitle: subgroup: 1 -- sbSecId: 4 - title: 'JW Player (Playlist)' - link: /examples/video/server/jwplayer/pbs-ve-jwplayer-playlist.html - isHeader: 0 - isSectionHeader: 0 - sectionTitle: - subgroup: 1 - -- sbSecId: 4 - title: 'JW Player (Player 7)' - link: /examples/video/server/jwplayer/pbs-ve-jwplayer-jwplayer7.html - isHeader: 0 - isSectionHeader: 0 - sectionTitle: - subgroup: 1 - - sbSecId: 4 title: 'Kaltura' link: /examples/video/server/kaltura/pbs-ve-kaltura.html @@ -1737,6 +1722,14 @@ sectionTitle: subgroup: 3 +- sbSecId: 5 + title: Programmatic Guaranteed + link: /prebid-server/features/pg/pbs-pg-idx.html + isHeader: 0 + isSectionHeader: 0 + sectionTitle: + subgroup: 3 + - sbSecId: 5 title: Developers link: @@ -1934,7 +1927,7 @@ - sbSecId: 6 title: Native - link: /dev-docs/show-native-ads.html + link: /prebid/native-implementation.html isHeader: 0 isSectionHeader: 0 sectionTitle: @@ -2046,3 +2039,41 @@ isSectionHeader: 0 sectionTitle: subgroup: 0 + +#-------------- Prebid Identity --------------| + +- sbSecId: 9 + title: + link: + isHeader: 0 + isSectionHeader: 1 + sectionTitle: Prebid Identity + sectionId: prebid-identity + subgroup: 1000 + sbCollapseId: prebid-identity + +- sbSecId: 9 + title: invis + link: + isHeader: 1 + headerId: invis + isSectionHeader: 0 + sectionTitle: + subgroup: 0 + +- sbSecId: 9 + title: Identity Overview + link: /identity/prebid-identity.html + isHeader: 0 + isSectionHeader: 0 + sectionTitle: + subgroup: 0 + +- sbSecId: 9 + title: SharedID + link: /identity/sharedid.html + isHeader: 0 + isSectionHeader: 0 + sectionTitle: + subgroup: 0 + diff --git a/_includes/adops/adops-gam-video-setup.html b/_includes/adops/adops-gam-video-setup.html index 4583b57ea4..1825186ccd 100644 --- a/_includes/adops/adops-gam-video-setup.html +++ b/_includes/adops/adops-gam-video-setup.html @@ -29,7 +29,7 @@

Line Item Setup

  • In the New line item dialog, choose "Video".
  • Select the appropriate Line Item Type, etc.
  • In the Expected creatives section, choose your video size, e.g., 640x480v.
  • -
  • Set the dates, rate, limit, and targeting as desired. For example, for SendAllBids include targeting for "hb_bidder_rubicon=rubicon" as well as the hb_pb_rubicon targeting. This isn't needed if only creating one set of orders for all bidders.
  • +
  • Set the dates, rate, limit, and targeting as desired. For example, for SendAllBids include targeting for "hb_bidder_rubicon=rubicon" as well as the hb_pb_rubicon targeting. This isn't needed if only creating one set of orders for all bidders.
  • Remember to set the hb_pb=BUCKET targeting for each line item, or hb_pb_BIDDER=BUCKET if using separate line items for each bidder.
  • Save the line item.
  • @@ -39,16 +39,11 @@

    Line Item Setup

    Creative Setup

    When setting up video creatives, it's important to understand where the VAST XML is stored for each of your bidders. The most common place to store VAST XML is AppNexus' cache, but some bidders (such as RubiconProject and SpotX) use their own cache services. To support such -bidders, you will need to choose one of the following approaches: - +bidders, see the Multiple Cache Locations instructions below.

    Single Cache Location

    -If you only use bidders that provide full VAST responses, no special setup is needed. Otherwise, do the following: +If you only use bidders that provide full VAST responses, do the following:

    1. For each line item you create, click on the Creatives tab, click the ADD CREATIVE button, and choose the size you're entering.

    @@ -75,18 +70,21 @@

    Single Cache Location

    URL failed. This is expected, since the creative URL above points to a server-side asset cache hosted by Prebid Server.

    -

    4. Set the Duration to 1.

    +

    4. Set the Duration to the max length of video ads you serve. If you don't know what the max length is, set it to 30.

    + +

    In the past Prebid used to recommend setting duration to 0 or 1, but GAM now requires that this field reflect the actual video ad length. Since ads flowing through header bidding are going to differ in length, choose a value that matches a common ad length like 15 or 30.

    The resulting creative should look something like the following:

    Google Ad Manager Video Creative Setup

    +

    Multiple Cache Locations

    If you're utilizing any bidders that cache their own VAST, you have two options:

    -

    - On the JSFiddle example below, click Result to see the result. -

    - -

    - Click Edit in JSFiddle to open the example in a new tab. -

    -

    For tips and troubleshooting info, see:

    @@ -52,7 +52,7 @@ var BidderList = [{% for page in bidder_pages %}{ label: '{{ page.title }}', val {% assign firstletter = page.title | slice:0 | downcase %} {% unless firstletter == "b" or firstletter == "c" %}{% continue %}{% endunless %}
  • - {{ page.title }} + {{ page.title }}
  • {% endfor %} @@ -63,7 +63,7 @@ var BidderList = [{% for page in bidder_pages %}{ label: '{{ page.title }}', val {% assign firstletter = page.title | slice:0 | downcase %} {% unless firstletter == "d" or firstletter == "e" or firstletter == "f" or firstletter == "g" %}{% continue %}{% endunless %}
  • - {{ page.title }} + {{ page.title }}
  • {% endfor %} @@ -74,7 +74,7 @@ var BidderList = [{% for page in bidder_pages %}{ label: '{{ page.title }}', val {% assign firstletter = page.title | slice:0 | downcase %} {% unless firstletter == "h" or firstletter == "i" or firstletter == "j" or firstletter == "k" or firstletter == "l" %}{% continue %}{% endunless %}
  • - {{ page.title }} + {{ page.title }}
  • {% endfor %} @@ -85,7 +85,7 @@ var BidderList = [{% for page in bidder_pages %}{ label: '{{ page.title }}', val {% assign firstletter = page.title | slice:0 | downcase %} {% unless firstletter == "m" or firstletter == "n" or firstletter == "o" %}{% continue %}{% endunless %}
  • - {{ page.title }} + {{ page.title }}
  • {% endfor %} @@ -96,7 +96,7 @@ var BidderList = [{% for page in bidder_pages %}{ label: '{{ page.title }}', val {% assign firstletter = page.title | slice:0 | downcase %} {% unless firstletter == "p" or firstletter == "q" or firstletter == "r" %}{% continue %}{% endunless %}
  • - {{ page.title }} + {{ page.title }}
  • {% endfor %} @@ -107,7 +107,7 @@ var BidderList = [{% for page in bidder_pages %}{ label: '{{ page.title }}', val {% assign firstletter = page.title | slice:0 | downcase %} {% unless firstletter == "s" or firstletter == "t" %}{% continue %}{% endunless %}
  • - {{ page.title }} + {{ page.title }}
  • {% endfor %} @@ -118,7 +118,7 @@ var BidderList = [{% for page in bidder_pages %}{ label: '{{ page.title }}', val {% assign firstletter = page.title | slice:0 | downcase %} {% unless firstletter == "u" or firstletter == "v" or firstletter == "w" or firstletter == "x" or firstletter == "y" or firstletter == "z" %}{% continue %}{% endunless %}
  • - {{ page.title }} + {{ page.title }}
  • {% endfor %} diff --git a/dev-docs/bidders/1ad4good.md b/dev-docs/bidders/1ad4good.md index fdfc47a99b..eb05910d97 100644 --- a/dev-docs/bidders/1ad4good.md +++ b/dev-docs/bidders/1ad4good.md @@ -4,6 +4,7 @@ title: 1ad4good description: Prebid One Ad for Good(1ad4good.org) Bidder Adaptor pbjs: true biddercode: 1ad4good +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/33across.md b/dev-docs/bidders/33across.md index 9b02159de9..cc457b8713 100644 --- a/dev-docs/bidders/33across.md +++ b/dev-docs/bidders/33across.md @@ -7,9 +7,10 @@ pbs: true biddercode: 33across media_types: banner, video gdpr_supported: true -getFloor: true +floors_supported: true schain_supported: true usp_supported: true +userIds: all gvl_id: 58 --- diff --git a/dev-docs/bidders/7xbid.md b/dev-docs/bidders/7xbid.md index b2ad7fa519..64e6abf1f4 100644 --- a/dev-docs/bidders/7xbid.md +++ b/dev-docs/bidders/7xbid.md @@ -5,6 +5,7 @@ description: Prebid 7xbid Bidder Adaptor pbjs: true biddercode: 7xbid media_types: banner, native +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/SafeReach.md b/dev-docs/bidders/SafeReach.md deleted file mode 100644 index 1c2ff90c6b..0000000000 --- a/dev-docs/bidders/SafeReach.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: bidder -title: SafeReach -description: Prebid Safe Reach Bidder Adaptor -pbjs: true -biddercode: safereach -aliasCode : aardvark ---- - -### bid params - -{: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|------|----------|--------------------|----------|----------| -| `ai` | required | The auction ID | `'XBC1'` | `string` | -| `sc` | required | The adshortcode | `'AF2g'` | `string` | diff --git a/dev-docs/bidders/aardvark.md b/dev-docs/bidders/aardvark.md index dd9c8429db..685014b350 100644 --- a/dev-docs/bidders/aardvark.md +++ b/dev-docs/bidders/aardvark.md @@ -9,6 +9,7 @@ usp_supported: true schain_supported: true userIds: unifiedId gvl_id: 52 +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/aceex.md b/dev-docs/bidders/aceex.md new file mode 100644 index 0000000000..e380d3aa54 --- /dev/null +++ b/dev-docs/bidders/aceex.md @@ -0,0 +1,27 @@ +--- +layout: bidder +title: Aceex +description: Prebid Aceex Bidder Adaptor +biddercode: aceex +gdpr_supported: true +usp_supported: true +coppa_supported: true +schain_supported: true +userId: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, unifiedId +media_types: banner, video, native +safeframes_ok: true +deals_supported: true +pbjs: false +pbs: true +--- + +### Note: + +The Example Bidding adapter requires setup before beginning. Please contact us at tech@aceex.com + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-----------------------|-----------|-----------| +| `accountid` | required | Endpoint id | `'hash'` | `string` | diff --git a/dev-docs/bidders/acuityads.md b/dev-docs/bidders/acuityads.md index a6f10c6e20..95d4784821 100644 --- a/dev-docs/bidders/acuityads.md +++ b/dev-docs/bidders/acuityads.md @@ -10,7 +10,7 @@ schain_supported: true userId: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, unifiedId media_types: banner, video, native safeframes_ok: true -bidder_supports_deals: true +deals_supported: true pbjs: false pbs: true --- diff --git a/dev-docs/bidders/adagio.md b/dev-docs/bidders/adagio.md index 4476a3bf4e..8c311afc1a 100644 --- a/dev-docs/bidders/adagio.md +++ b/dev-docs/bidders/adagio.md @@ -6,12 +6,15 @@ pbjs: true biddercode: adagio media_types: banner, native, video userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, pubProvidedId, sharedId, unifiedId +floors_supported: true gdpr_supported: true usp_supported: true coppa_supported: true schain_supported: true gvl_id: 617 -prebid_member: true, +prebid_member: true +pbs: true +fpd_supported: true --- ### Note diff --git a/dev-docs/bidders/adblender.md b/dev-docs/bidders/adblender.md index 94830f05fe..6f3edddf6a 100644 --- a/dev-docs/bidders/adblender.md +++ b/dev-docs/bidders/adblender.md @@ -13,6 +13,7 @@ usp_supported: true ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|--------|----------|-------------|---------|----------| -| `zone` | required | | | `string` | +| Name | Scope | Description | Example | Type | +|---------------|----------|------------------------------------------------------------------------------------------------------------------|----------------------------------------|----------| +| `zone` | required | The unique identifier of the ad placement. Could be obtained from the AdBlender UI or from your account manager. | "e5ff8e48-4bd0-4a2c-9236-55530ab8981d" | `string` | +| `kvTargeting` | optional | Key/Value - a pair of the unique values that will be used for the custom targeting option. | {key1: value2, key2: value2} | `object` | diff --git a/dev-docs/bidders/adbookpsp.md b/dev-docs/bidders/adbookpsp.md new file mode 100644 index 0000000000..333c258630 --- /dev/null +++ b/dev-docs/bidders/adbookpsp.md @@ -0,0 +1,200 @@ +--- +layout: bidder +title: AdBookPSP +description: Prebid AdBookPSP Bidder Adapter +biddercode: adbookpsp +media_types: banner, video +gdpr_supported: true +prebid_member: false +schain_supported: true +coppa_supported: true +usp_supported: true +pbjs: true +pbs: false +--- + +*NOTE*: The AdBookPSP Bidder Adapter requires setup and approval before use. The adapter uses custom targeting keys that require a dedicated Google Ad Manager setup to work. Please reach out to your AdbookPSP representative for more details. + +### Bid Params + +{: .table .table-bordered .table-striped } +|Name|Scope|Description|Example|Type| +|----|-----|-----------|-------|----| +|`orgId`|optional|Org ID listed in the Deal File|`abc123`|`string`| +|`placementId`|optional|Placement ID listed in the Deal File|`abc123`|`string`| + +Each adUnit with `adbookpsp` adapter has to have either `placementId` or `orgId` set. + +```js +var adUnits = [ + { + bids: [ + { + bidder: 'adbookpsp', + params: { + placementId: 'example-placement-id', + orgId: 'example-org-id', + }, + }, + ], + }, +]; +``` + +Alternatively, `orgId` can be set globally while configuring prebid.js: + +```js +pbjs.setConfig({ + adbookpsp: { + orgId: 'example-org-id', + }, +}); +``` + +*NOTE*: adUnit orgId will take precedence over the globally set orgId. + +#### Banner parameters + +Required: + +- sizes + +Example configuration: + +```js +var adUnits = [ + { + code: 'div-1', + mediaTypes: { + banner: { + sizes: [[300, 250]], + }, + } + }, +]; +``` + +#### Video parameters + +Required: + +- context +- mimes +- playerSize + +Additionaly, all `Video` object parameters described in chapter `3.2.7` of the [OpenRTB 2.5 specification](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf) can be passed as bidder params. + +Example configuration: + +```js +var adUnits = [ + { + code: 'div-1', + mediaTypes: { + video: { + context: 'outstream', + mimes: ['video/mp4', 'video/x-flv'], + playerSize: [400, 300], + protocols: [2, 3], + }, + }, + bids: [ + { + bidder: 'adbookpsp', + params: { + placementId: 'example-placement-id', + video: { + placement: 2, + }, + }, + }, + ], + }, +]; +``` + +*NOTE*: Supporting outstream video requires the publisher to set up a renderer as described [in the Prebid docs](https://docs.prebid.org/dev-docs/show-outstream-video-ads.html). + +#### Testing params + +To test the adapter, either `placementId: 'example-placement-id'` or `orgId: 'example-org-id'` can be used. + +*NOTE*: If any adUnit uses the testing params, all adUnits will receive testing responses. + +Example adUnit configuration: + +```js +var adUnits = [ + { + code: 'div-1', + mediaTypes: { + banner: { + sizes: [[300, 250]], + }, + }, + bids: [ + { + bidder: 'adbookpsp', + params: { + placementId: 'example-placement-id', + }, + }, + ], + }, +]; +``` + +Example google publisher tag configuration: + +```js +googletag + .defineSlot('/22094606581/example-adbookPSP', sizes, 'div-1') + .addService(googletag.pubads()); +``` + +### Configuration + +Setting of the `orgId` can be done in the `pbjs.setConfig()` call. If this is the case, both `orgId` and `placementId` become optional. Remember to only call `pbjs.setConfig()` once as each call overwrites anything set in previous calls. + +Enabling iframe based user syncs is also encouraged. + +```javascript +pbjs.setConfig({ + adbookpsp: { + orgId: 'example-org-id', + winTrackingEnabled: true, + }, + userSync: { + filterSettings: { + iframe: { + bidders: '*', + filter: 'include', + }, + }, + }, +}); +``` + +### Privacy + +GDPR and US Privacy are both supported by default. + +#### Event tracking + +This adapter tracks win events for it’s bids. This functionality can be disabled by adding `winTrackingEnabled: false` to the adapter configuration: + +```js +pbjs.setConfig({ + adbookpsp: { + winTrackingEnabled: false, + }, +}); +``` + +#### COPPA support + +COPPA support can be enabled for all the visitors by changing the config value: + +```js +config.setConfig({ coppa: true }); +``` diff --git a/dev-docs/bidders/adbutler.md b/dev-docs/bidders/adbutler.md index 950a1258c6..2eab4bbadd 100644 --- a/dev-docs/bidders/adbutler.md +++ b/dev-docs/bidders/adbutler.md @@ -4,6 +4,7 @@ title: AdButler description: Prebid AdButler Bidder Adaptor pbjs: true biddercode: adbutler +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/addefend.md b/dev-docs/bidders/addefend.md new file mode 100644 index 0000000000..7f44121a4f --- /dev/null +++ b/dev-docs/bidders/addefend.md @@ -0,0 +1,23 @@ +--- +layout: bidder +title: AdDefend +description: AdDefend Prebid Adapter +biddercode: addefend +pbjs: true +media_types: banner +gdpr_supported: true +gvl_id: 539 +--- + +### Note: + +The bidder requires setup before usage. Please get in touch with our publisher team at publisher@addefend.com to get started. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-------------------------|--------------------|----------| +| `pageId` | required | Page Id | "887" | `string` | +| `placementId` | required | Placement Id | "9398" | `string` | +| `trafficTypes`| optional | Impression Traffic Type | "ADBLOCK" | `string` | diff --git a/dev-docs/bidders/adf.md b/dev-docs/bidders/adf.md new file mode 100644 index 0000000000..6854ef685e --- /dev/null +++ b/dev-docs/bidders/adf.md @@ -0,0 +1,45 @@ +--- +layout: bidder +title: AdformOpenRTB +description: Prebid Adform Bidder Adaptor +biddercode: adf +media_types: banner, native, video +gdpr_supported: true +usp_supported: true +prebid_member: true +pbjs: true +pbs: true +schain_supported: true +userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, sharedId, unifiedId +gvl_id: 50 +prevBiddercode: adformOpenRTB +floors_supported: true +fpd_supported: true +--- + +### Bid params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|-------------|----------------------------|----------------------|--------------------|-----------| +| `mid` | required, if `inv` and `nmane` not set | Placement ID | `12345` | `integer` | +| `inv` | required, if `mid` not set | Inventory source ID | `1234` | `integer` | +| `mname` | required, if `mid` not set | Placement name | `"Leaderboard"` | `string` | +| `adxDomain` | optional, Prebid.js only | The Adform domain | `"adx.adform.net"` | `string` | +| `priceType` | optional, Prebid.js only | Price type | `"gross"` | `string` | + +Note: Bid placement should be defined using the `mid` parameter or `inv` and `mname` parameters (dynamic master tag) but not both. + +### OpenRTB request config + +OpenRTB bid request `app`, `site`, `device` properties configured using prebid config. + +``` javascript +pbjs.setConfig({ + ortb2: { + app: { + name: 'My APP' + } + } +}); +``` diff --git a/dev-docs/bidders/adfinity.md b/dev-docs/bidders/adfinity.md index 733b0a7c76..4d80018fb9 100644 --- a/dev-docs/bidders/adfinity.md +++ b/dev-docs/bidders/adfinity.md @@ -6,6 +6,7 @@ pbjs: true biddercode: adfinity media_types: banner, video, native gdpr_supported: true +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/adform.md b/dev-docs/bidders/adform.md index 51bc8f5ac0..1f796f0876 100644 --- a/dev-docs/bidders/adform.md +++ b/dev-docs/bidders/adform.md @@ -11,8 +11,10 @@ pbjs: true pbs: true userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, sharedId, unifiedId gvl_id: 50 +pbjs_version_notes: not in 5.x --- +**Adform bid adapter is deprecated since Prebid 5.0. Please refer to [AdformOpenRTB adapter](#adf) documentation to fetch bids from Adform demand sources.** ### Bid Params diff --git a/dev-docs/bidders/adformOpenRTB.md b/dev-docs/bidders/adformOpenRTB.md deleted file mode 100644 index 2dbdb902a7..0000000000 --- a/dev-docs/bidders/adformOpenRTB.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: bidder -title: AdformOpenRTB -description: Prebid AdformOpenRTB Bidder Adaptor -biddercode: adformOpenRTB -media_types: no-display, native -gdpr_supported: true -usp_supported: true -prebid_member: true -pbjs: true -userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, sharedId, unifiedId -gvl_id: 50 ---- - -### Bid params - -{: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|-------------|----------|----------------------|--------------------|-----------| -| `mid` | required | | `12345` | `integer` | -| `adxDomain` | optional | The Adform domain | `'adx.adform.net'` | `string` | -| `site` | optional | Site id | `'123123'` | `string` | -| `priceType` | optional | Price type | `'gross'` | `string` | -| `publisher` | optional | Info about publisher | `{"id": "2706", "name": "name", "domain": "dom"}` | `object` | diff --git a/dev-docs/bidders/adglare.md b/dev-docs/bidders/adglare.md index 0824b74adb..b938a28ca3 100644 --- a/dev-docs/bidders/adglare.md +++ b/dev-docs/bidders/adglare.md @@ -5,6 +5,7 @@ description: Prebid Adapter for AdGlare Ad Server pbjs: true biddercode: adglare media_types: banner +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/adhash.md b/dev-docs/bidders/adhash.md index 8d76c088b1..f341d3e6de 100644 --- a/dev-docs/bidders/adhash.md +++ b/dev-docs/bidders/adhash.md @@ -5,6 +5,7 @@ description: Prebid AdHash Bidder Adapter pbjs: true biddercode: adhash safeframes_ok: false +gdpr_supported: true --- ### Note @@ -26,4 +27,4 @@ Please note that a number of AdHash functionalities are not supported in the Pre | Name | Scope | Description | Example | Type | |---------------|----------|--------------|------------------------------------------------|----------| | `publisherId` | required | Publisher ID | `'0x1234567890123456789012345678901234567890'` | `string` | -| `platformURL` | required | Platform URL | `'https://adhash.org/p/struma/'` | `string` | +| `platformURL` | required | Platform URL | `'https://adhash.org/p/example/'` | `string` | diff --git a/dev-docs/bidders/adkernel.md b/dev-docs/bidders/adkernel.md index 28fe5e095f..83dc8256c2 100644 --- a/dev-docs/bidders/adkernel.md +++ b/dev-docs/bidders/adkernel.md @@ -8,8 +8,11 @@ biddercode: adkernel media_types: banner, native, video gdpr_supported: true usp_supported: true +coppa_supported: true pbs_app_supported: true gvl_id: 14 +schain_supported: true +userIds: all --- ### Note: diff --git a/dev-docs/bidders/adkernelAdn.md b/dev-docs/bidders/adkernelAdn.md index 09fc650ce3..0971133f06 100644 --- a/dev-docs/bidders/adkernelAdn.md +++ b/dev-docs/bidders/adkernelAdn.md @@ -8,6 +8,7 @@ biddercode: adkernelAdn media_types: banner, video gdpr_supported: true usp_supported: true +coppa_supported: true pbs_app_supported: true gvl_id: 14 --- diff --git a/dev-docs/bidders/adlive.md b/dev-docs/bidders/adlive.md index a9c20c6834..d67f6791b0 100644 --- a/dev-docs/bidders/adlive.md +++ b/dev-docs/bidders/adlive.md @@ -4,6 +4,7 @@ title: Adlive description: adlive bid adapter pbjs: true biddercode: adlive +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/adman.md b/dev-docs/bidders/adman.md index f89a9ee3fd..04077daf73 100644 --- a/dev-docs/bidders/adman.md +++ b/dev-docs/bidders/adman.md @@ -7,7 +7,8 @@ pbs: true biddercode: adman gdpr_supported: true usp_supported: true -media_types: banner, video +media_types: banner, video, native +userIds: uid2 --- ### Note: diff --git a/dev-docs/bidders/admedia.md b/dev-docs/bidders/admedia.md index 6a43c8b45d..2253e4eed2 100644 --- a/dev-docs/bidders/admedia.md +++ b/dev-docs/bidders/admedia.md @@ -6,6 +6,7 @@ pbjs: true biddercode: admedia media_types: banner gdpr_supported: false +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/admixer.md b/dev-docs/bidders/admixer.md index 6f7477d1f7..67ebf06294 100644 --- a/dev-docs/bidders/admixer.md +++ b/dev-docs/bidders/admixer.md @@ -8,12 +8,15 @@ biddercode: admixer media_types: video gdpr_supported: true usp_supported: true +schain_supported: true +fpd_supported: true gvl_id: 511 --- ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|--------|----------|-------------|---------|----------| -| `zone` | required | | | `string` | +| Name | Scope | Description | Example | Type | +|---------------|----------|----------------------------------------------------------------------------------------------------------------|----------------------------------------|----------| +| `zone` | required | The unique identifier of the ad placement. Could be obtained from the Admixer UI or from your account manager. | "e5ff8e48-4bd0-4a2c-9236-55530ab8981d" | `string` | +| `kvTargeting` | optional | Key/Value - a pair of the unique values that will be used for the custom targeting option. | {key1: value2, key2: value2} | `object` | diff --git a/dev-docs/bidders/adnuntius.md b/dev-docs/bidders/adnuntius.md index 20278812e0..08603cfcbe 100644 --- a/dev-docs/bidders/adnuntius.md +++ b/dev-docs/bidders/adnuntius.md @@ -3,31 +3,31 @@ layout: bidder title: Adnuntius description: Prebid Adnuntius Bidder Adaptor pbjs: true +pbs: true biddercode: adnuntius media_types: banner -gdpr_supported: false +gdpr_supported: true +fpd_supported: true +gvl_id: 855 --- - ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | +| Name | Scope | Description | Example | Type | |-------------|----------|----------------------------------------------------------------------|----------|----------| -| `auId` | required | The ad unit ID `'0000000000072345'` leading zeros can be omitted. | `string` | | -| `network` | optional | Used if you want to make requests to multiple networks in adnuntius. | `string` | | -| `targeting` | optional | Targeting to be sent through to adnuntius with the request. | `string` | | - - +| `auId` | required | The ad unit ID `'0000000000072345'` leading zeros can be omitted. | `'0000000000072345'` | `string` | +| `network` | optional | Used if you want to make requests to multiple networks in adnuntius. | `'adnuntius'` | `string`| +| `targeting` | optional | Targeting to be sent through to adnuntius with the request. | `{ c: ['prebids'] }` | `string`| #### Targeting The [Adnuntius Documentation](https://docs.adnuntius.com/adnuntius-advertising/requesting-ads/intro) provides detailed information on sending targeting data to the Adnuntius adserver. - #### Example Here's an example of sending targeting information about categories to adnuntius via the bid request: + ``` { code: "0000000000072345", @@ -50,3 +50,50 @@ Here's an example of sending targeting information about categories to adnuntius ] } ``` + +### Sending segments to the ad server + +There's an option to send segment id in the bidder config that will be picked up and sent to the ad server. Below is an example on how to do this: + +``` +pbjs.setBidderConfig({ + bidders: ['adnuntius', 'bidderB'], + config: { + ortb2: { + user: { + data: [{ + name: "adnuntius", + segment: [ + { id: "1" }, + { id: "2" } + ] + }] + } + } + } +}); +``` + +### Prebid Server Test Request + +The following test parameters can be used to verify that Prebid Server is working properly with the server-side Adnuntius adapter. the `auId` below will not return a creative. Please substitute it with your own. + +``` +"imp": [{ + "id": "impression-id", + "banner": { + "format": [{ + "w": 980, + "h": 240 + }, { + "w": 980, + "h": 360 + }] + }, + "ext": { + "adnuntius": { + "auId": "abc123" + } + } +}] +``` diff --git a/dev-docs/bidders/adomega.md b/dev-docs/bidders/adomega.md new file mode 100644 index 0000000000..96d8301c51 --- /dev/null +++ b/dev-docs/bidders/adomega.md @@ -0,0 +1,27 @@ +--- +layout: bidder +title: adOmega +description: adOmega Bidder Adaptor +pbjs: true +pbs: true +biddercode: adomega +media_types: banner, native, video +gdpr_supported: true +usp_supported: true +coppa_supported: true +pbs_app_supported: true +schain_supported: true +aliasCode : adkernel +--- + +### Note: + +The adOmega bidding adapter requires setup and approval before implementation. Please reach out to for more details. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------|----------|-----------------------|---------------------------|----------| +| `host` | required | Host Name | `'cpm.adomega.tech'` | `string` | +| `zoneId` | required | Zone Id | 30164 | `integer` | diff --git a/dev-docs/bidders/adot.md b/dev-docs/bidders/adot.md index bd35a96cff..a7aa51a606 100644 --- a/dev-docs/bidders/adot.md +++ b/dev-docs/bidders/adot.md @@ -33,6 +33,42 @@ pbs: true | `container` | optional | Selector used for finding the element in which the video player will be displayed, e.g., `#div-1`. The `ad unit code` will be used if no `container` is provided. | `string` | | `instreamContext` | required if `video.context` is `instream` | String used to define the type of instream video. Allowed values: Pre-roll: `pre-roll`; Mid-roll: `mid-roll` ; Post-roll: `post-roll`. | `string` | +#### Bid Config +#### PublisherId + +You can set a publisherId using `pbjs.setBidderConfig` for the bidder `adot` + +#### Example + +```javascript +pbjs.setBidderConfig({ + bidders: ['adot'], + config: { + adot: { + publisherId: '__MY_PUBLISHER_ID__' + } + } +}); +``` + +#### Specific publisher path + +You can set a specific publisher path using `pbjs.setBidderConfig` for the bidder `adot` +The bidrequest will add this path to the bidder endpoint + +#### Example + +```javascript +pbjs.setBidderConfig({ + bidders: ['adot'], + config: { + adot: { + publisherPath: '__MY_PUBLISHER_PATH__' + } + } +}); +``` + ### Prebid server diff --git a/dev-docs/bidders/adpartner.md b/dev-docs/bidders/adpartner.md index 76e28e3fb1..ead43860ca 100644 --- a/dev-docs/bidders/adpartner.md +++ b/dev-docs/bidders/adpartner.md @@ -5,12 +5,11 @@ description: Prebid AdPartner Bidder Adaptor pbjs: true biddercode: adpartner media_types: banner - --- ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|----------|----------|-------------|----------------------|-----------| -| `unitId` | required | Unit ID. | `5809` | `integer` | +| Name | Scope | Description | Example | Type | +|-------------|----------|-------------|----------------------|-----------| +| `partnerId` | required | Partner ID. | `5809` | `integer` | diff --git a/dev-docs/bidders/adpone.md b/dev-docs/bidders/adpone.md index 608b228ff1..c2da708ebd 100644 --- a/dev-docs/bidders/adpone.md +++ b/dev-docs/bidders/adpone.md @@ -5,7 +5,7 @@ description: Prebid Adpone Bidder Adaptor pbjs: true pbs: true biddercode: adpone -bidder_supports_deals: false +deals_supported: false media_types: banner gvl_id: 799 --- diff --git a/dev-docs/bidders/adprime.md b/dev-docs/bidders/adprime.md index 0b4025bee7..4452ddfc97 100644 --- a/dev-docs/bidders/adprime.md +++ b/dev-docs/bidders/adprime.md @@ -5,7 +5,8 @@ description: Prebid Adprime Bidder Adapter biddercode: adprime gdpr_supported: true usp_supported: true -media_types: banner, video +media_types: banner, video, native +tcf2_supported: true pbjs: true pbs: true pbs_app_supported: true @@ -22,4 +23,5 @@ The Adprime Bidding adapter requires setup before beginning. Please contact us a |---------------|----------|-----------------------|-----------|-----------| | `placementId` | required | Adprime placement id | `'1234asdf'` | `string` | | `keywords` | optional | page context keywords | ['car','sport'] | `array` | +| `audiences` | optional | publisher audiences | ['aud1','aud2'] | `array` | diff --git a/dev-docs/bidders/adquery.md b/dev-docs/bidders/adquery.md new file mode 100644 index 0000000000..8ab327d42b --- /dev/null +++ b/dev-docs/bidders/adquery.md @@ -0,0 +1,19 @@ +--- +layout: bidder +title: Adquery +description: Prebid Adquery Bidder Adaptor +pbjs: true +biddercode: adquery +gdpr_supported: true +usp_supported: true +schain_supported: true +gvl_id: 902 +--- + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|---------------|-------------------------------------------|-----------| +| `placementId` | required | Placement ID | `6d93f2a0e5f0fe2cc3a6e9e3ade964b43b07f897`| `string` | +| `type` | required | Ad Type | `banner300x250` | `string` | diff --git a/dev-docs/bidders/adrelevantis.md b/dev-docs/bidders/adrelevantis.md index d291678721..1d132f2b03 100644 --- a/dev-docs/bidders/adrelevantis.md +++ b/dev-docs/bidders/adrelevantis.md @@ -4,6 +4,7 @@ title: Adrelevantis description: Prebid Adrelevantis (adrelevantis.xyz) Bidder Adaptor biddercode: adrelevantis media_types: banner, video, native +fpd_supported: true pbjs: true --- @@ -25,12 +26,10 @@ Page content is analyzed at DOMContentLoaded event. The results (keywords and ca pbjs.setBidderConfig({ bidders: ['adrelevantis'], config: { - fpd: { + ortb2: { context: { keywords: keywords, - data: { - category: categories - } + category: categories } } } diff --git a/dev-docs/bidders/adriver.md b/dev-docs/bidders/adriver.md new file mode 100644 index 0000000000..1a69fb4108 --- /dev/null +++ b/dev-docs/bidders/adriver.md @@ -0,0 +1,20 @@ +--- +layout: bidder +title: adriver +description: Adriver adapter +biddercode: adriver +pbjs: true +deals_supported: true +userIds: sharedId, id5Id, uid2Id +floors_supported: true +--- + + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|--------------------------------------------|-----------------------|-----------| +| `siteid` | required | The publisher site ID | `216200` | `integer` | +| `placementId` | required | Your placement ID (provided by undertone) | `'55:test_placement'` | `string` | +| `dealid` | optional | Deal ID | `'dealidTest'` | `string` | diff --git a/dev-docs/bidders/adspend.md b/dev-docs/bidders/adspend.md index f12eb9cf21..b238b57606 100644 --- a/dev-docs/bidders/adspend.md +++ b/dev-docs/bidders/adspend.md @@ -6,6 +6,7 @@ pbjs: true biddercode: adspend media_types: banner gdpr_supported: false +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/adsyield.md b/dev-docs/bidders/adsyield.md new file mode 100644 index 0000000000..f8e7b1b758 --- /dev/null +++ b/dev-docs/bidders/adsyield.md @@ -0,0 +1,18 @@ +--- +layout: bidder +title: AdsYield +description: Prebid AdsYield Bidder Adaptor +pbjs: true +biddercode: adsyield +aliasCode: admixer +media_types: video +gdpr_supported: true +usp_supported: true +--- + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|------------------------------------------------------------------------------------------------------------------|----------------------------------------|----------| +| `zone` | required | The unique identifier of the ad placement. Could be obtained from the AdsYield UI or from your account manager. | "e5ff8e48-4bd0-4a2c-9236-55530ab8981d" | `string` | diff --git a/dev-docs/bidders/aduptech.md b/dev-docs/bidders/aduptech.md index 00cc4aa5a3..2e1a092b21 100644 --- a/dev-docs/bidders/aduptech.md +++ b/dev-docs/bidders/aduptech.md @@ -2,23 +2,24 @@ layout: bidder title: AdUp Technology description: Prebid Bidder Adapter for AdUp Technology -pbjs: true biddercode: aduptech -media_types: banner gdpr_supported: true +gvl_id: 647 +media_types: banner, native +pbjs: true --- -### Note: +### Registration + +To use, our bidding adapter requires proper setup, including an existing publisher account, as well as approval from AdUp Technology.
    For more information visit [www.adup-tech.com](https://www.adup-tech.com/en) or contact [info@adup-tech.com](mailto:info@adup-tech.com). -The AdUp Technology bidding adapter requires setup and approval before beginning. -For more information visit [www.adup-tech.com](https://www.adup-tech.com/) or contact [info@adup-tech.com](mailto:info@adup-tech.com). ### Bid params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | -| :--- | :---- | :---------- | :------ | -| `publisher` | required | Unique publisher id | `'1234'` | -| `placement` | required | Unique placement id per publisher | `'5678'` | -| `query` | optional | Semicolon separated list of keywords | `'urlaub;ibiza;mallorca'` | -| `adtest` | optional | Impressions and clicks will not be tracked if enabled | `true` | +| Name | Scope | Description | Example | Type | +| :--- | :---- | :---------- | :------ | :------ | +| `publisher` | required | Unique publisher identifier. | `'prebid'` | `string` | +| `placement` | required | Unique placement identifier per publisher. | `'1234'` | `string` | +| `query` | optional | Semicolon separated list of keywords. | `'urlaub;ibiza;mallorca'` | `string` | +| `adtest` | optional | Deactivates tracking of impressions and clicks.
    **Should only be used for testing purposes!** | `true` | `boolean` | diff --git a/dev-docs/bidders/advenue.md b/dev-docs/bidders/advenue.md index bb804ab89a..f2760d45b9 100644 --- a/dev-docs/bidders/advenue.md +++ b/dev-docs/bidders/advenue.md @@ -4,6 +4,7 @@ title: Advenue description: Prebid Advenue Bidder Adaptor pbjs: true biddercode: advenue +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/advertly.md b/dev-docs/bidders/advertly.md index 02b989c7d8..2b3fc7d339 100644 --- a/dev-docs/bidders/advertly.md +++ b/dev-docs/bidders/advertly.md @@ -4,6 +4,7 @@ title: advertly description: Prebid ADVERTLY Bidder Adapter pbjs: true biddercode: advertly +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/adxcg.md b/dev-docs/bidders/adxcg.md index 94eeafa93f..f7803f0ac5 100644 --- a/dev-docs/bidders/adxcg.md +++ b/dev-docs/bidders/adxcg.md @@ -2,13 +2,20 @@ layout: bidder title: adxcg description: Prebid adxcg bidder adaptor +deals_supported: true pbjs: true +pbs: true +pbs_app_supported: true biddercode: adxcg media_types: native, video gdpr_supported: true userIds: id5Id, identityLink, pubCommonId, unifiedId --- +### Note +Prebid-server activation requires setup and approval before beginning. Please reach out to your account manager or info@adxcg.com for more details. + + ### Bid Params {: .table .table-bordered .table-striped } diff --git a/dev-docs/bidders/adyoulike.md b/dev-docs/bidders/adyoulike.md index 8a09cdbedc..a8f6b5a454 100644 --- a/dev-docs/bidders/adyoulike.md +++ b/dev-docs/bidders/adyoulike.md @@ -4,10 +4,11 @@ title: Adyoulike description: Prebid Adyoulike Bidder Adaptor pbjs: true pbs: true -media_types: banner, native +media_types: banner, video, native biddercode: adyoulike gdpr_supported: true usp_supported: true +floors_supported: true --- ### Note: diff --git a/dev-docs/bidders/afp.md b/dev-docs/bidders/afp.md new file mode 100644 index 0000000000..07e3d197ea --- /dev/null +++ b/dev-docs/bidders/afp.md @@ -0,0 +1,201 @@ +--- +layout: bidder +title: AFP +description: Prebid AFP Bidder Adapter +pbjs: true +media_types: banner, video +biddercode: afp +safeframes_ok: false +--- + +### Note + +You can use this adapter to get a bid from AFP. +Please reach out to your AFP account team before using this plugin to get placeId. +The code below returns a demo ad. + + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------------|---------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------| +| `placeId` | required | Place id. | '5af45ad34d506ee7acad0c26' | `string` | +| `placeType` | required | Place type. | 'In-image', 'In-image Max', 'In-content Banner', 'In-content Video', 'Out-content Video', 'In-content Stories', 'Action Scroller', 'Action Scroller Light', 'Just Banner' | `string` | +| `placeContainer` | required (if the frame is not safe) | The container of the place where the ad will be displayed. The css selector is specified as the value. | '#container' | `string` | +| `imageUrl` | required (for 'In-image', 'In-image Max' placeType) | URL of the image on which the banner will be displayed. | 'https://creative.astraone.io/files/default_image-1-600x400.jpg' | `string` | +| `imageWidth` | required (for 'In-image', 'In-image Max' placeType) | Image width. | 600 | `integer` | +| `imageHeight` | required (for 'In-image', 'In-image Max' placeType) | Image height. | 400 | `integer` | + + +### InImage Example page + + +```html + + + + + Prebid.js In-image Example + + + + +

    In-image

    +
    +
    + +
    + +
    + +

    Just Banner

    +
    +
    + +
    + + +``` +### InImage Example page with GPT + +```html + + + + + Prebid.js In-image Example + + + + + +

    In-image

    +
    +
    + +
    +
    + +
    +
    + + +``` diff --git a/dev-docs/bidders/aja.md b/dev-docs/bidders/aja.md index 1fb854532f..11233433ec 100644 --- a/dev-docs/bidders/aja.md +++ b/dev-docs/bidders/aja.md @@ -2,22 +2,23 @@ layout: bidder title: AJA description: Prebid AJA Bidder Adaptor +userIds: criteo, unifiedId, imuid pbjs: true pbs: true biddercode: aja media_types: video, native --- -### Note: +### Note The AJA Bidding adaptor requires setup and approval before beginning. Please reach out to for more details ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | +| Name | Scope | Description | Example | Type | |-------|----------|---------------------|------------|----------| -| `asi` | required | ad spot hash code | `'123abc'` | `string` | +| `asi` | required | ad spot hash code | `'123abc'` | `string` | ### Configuration @@ -30,11 +31,11 @@ pbjs.setConfig({ userSync: { filterSettings: { iframe: { - bidders: '*', // '*' represents all bidders - filter: 'include' - } - } - } + bidders: "*", // '*' represents all bidders + filter: "include", + }, + }, + }, }); ``` @@ -44,8 +45,7 @@ For Prebid.js v1.14.0 and before: pbjs.setConfig({ userSync: { iframeEnabled: true, - enabledBidders: ['aja'] - } + enabledBidders: ["aja"], + }, }); ``` - diff --git a/dev-docs/bidders/algorix.md b/dev-docs/bidders/algorix.md new file mode 100644 index 0000000000..48ab5b9694 --- /dev/null +++ b/dev-docs/bidders/algorix.md @@ -0,0 +1,34 @@ +--- +layout: bidder +title: AlgoriX +description: Prebid AlgoriX Bidder Adapter +biddercode: algorix +gdpr_supported: false +gvl_id: +usp_supported: true +coppa_supported: true +schain_supported: true +media_types: banner, video, native +pbjs: false +pbs: true +pbs_app_supported: true +prebid_member: true +--- + +### Note: + +AlgoriX adapter requires setup and approval from the AlgoriX team, even for existing in-app developers and publishers. Please reach out to your account team or email to prebid@algorix.co for more information. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|---------------|--------------------------------------|----------| +| `sid` | required | Sid | `'30014'` | `string` | +| `token` | required | Token | `'028bca2d3b5c4f0ba155fa34864b0c4d'` | `string` | +| `placementId` | optional | Placement Id | `'123456'` | `string` | +| `appId` | optional | App Id | `'asdasdasd'` | `string` | + +Note: +* Prebid Server adapter only checks for and uses first imp bid params. All other imp bid params are ignored. +* placementId and appId will be generated on AlgoriX Platform. diff --git a/dev-docs/bidders/amx.md b/dev-docs/bidders/amx.md index 15343ea274..f8f3ff6574 100644 --- a/dev-docs/bidders/amx.md +++ b/dev-docs/bidders/amx.md @@ -7,13 +7,14 @@ schain_supported: true gdpr_supported: true usp_supported: true coppa_supported: true -userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, unifiedId +userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, unifiedId, amxId biddercode: amx safeframes_ok: true media_types: banner, video pbjs: true pbs: true pbs_app_supported: true +fpd_supported: true gvl_id: 737 --- @@ -22,8 +23,8 @@ gvl_id: 737 {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |-------------|----------|-----------------------------------------------------------------|---------------------------------|----------| +| `tagId` | required | Tag ID | `'cHJlYmlkLm9yZw'` | `string` | | `testMode` | optional | Activate 100% fill ads | `true` | `boolean`| -| `tagId` | optional | Tag ID | `'cHJlYmlkLm9yZw'` | `string` | | `adUnitId` | optional | Ad Unit ID used in reporting. Will default to `bid.adUnitCode` | `'sticky_banner'` | `string` | ### Test Parameters @@ -37,4 +38,6 @@ To enable 100% fill test ads, you can use the following `params`: } ``` -Note that the `tagId` is case-sensitive. This will produce a bid at $10 with a test creative. +This will produce a bid at $10 with a test creative. + +Note that the `tagId` is case-sensitive. Do not use `cHJlYmlkLm9yZw` in production environments: this ID is for testing only. diff --git a/dev-docs/bidders/aniview.md b/dev-docs/bidders/aniview.md index 4ae7c6ce14..a51cc6f840 100644 --- a/dev-docs/bidders/aniview.md +++ b/dev-docs/bidders/aniview.md @@ -1,16 +1,19 @@ --- layout: bidder title: ANIVIEW -description: Prebid ANIVIEW Bidder Adaptor +description: Prebid ANIVIEW Bidder Adapter pbjs: true biddercode: aniview -media_types: video +media_types: banner, video gdpr_supported: true usp_supported: true +schain_supported: true +safeframes_ok: true +gvl_id: 780 --- ### Note: -For more information about [Aniview Ad Server](http://www.aniview.com/), please contact info@aniview.com. +For more information about [Aniview Ad Server](https://www.aniview.com/), please contact info@aniview.com. ### Bid Params @@ -19,3 +22,24 @@ For more information about [Aniview Ad Server](http://www.aniview.com/), please |------------------|----------|------------------|------------------------------|----------| | `AV_PUBLISHERID` | required | Publisher/Netid | `'55b88d4a181f465b3e8b4567'` | `string` | | `AV_CHANNELID` | required | Channel id | `'5a5f17a728a06102d14c2718'` | `string` | + +### Test Parameters +``` +videoAdUnit = [ +{ + code: 'video1', + mediaTypes: { + video: { + playerSize: [[640, 480]], + context: 'outstream' + }, + }, + bids: [{ + bidder: 'aniview', + params: { + AV_PUBLISHERID: '55b78633181f4603178b4568', + AV_CHANNELID: '5d19dfca4b6236688c0a2fc4' + } + }] +}]; +``` diff --git a/dev-docs/bidders/aol.md b/dev-docs/bidders/aol.md index eb43847f24..6e162546aa 100644 --- a/dev-docs/bidders/aol.md +++ b/dev-docs/bidders/aol.md @@ -7,9 +7,22 @@ biddercode: aol gdpr_supported: true usp_supported: true gvl_id: 25 -userIds: verizonMediaId +userIds: connectId --- +### IMPORTANT NOTICE! +**TL;DR** +1. The `aol` adapter is scheduled to be depreciated. +2. Our New `yahoossp` is available for early adoption. +3. Please contact your Account Manager/Executive for migration details. + +Dear Publishers & Partners, +As part of our platform consolidation process to simplify your integrations moving forward +We invite you to switch from the `oneVideo` Adapter to our NEW `yahoossp` bid adapter for both Display & Video inventory. +FYI - The oneVideo adapter is scheduled for depreciation in the upcoming months. + +Thanks in advance, +Yahoo SSP ### Note: This adapter allows use of both ONE by AOL: Display and ONE by AOL: Mobile platforms. In order to differentiate these sources of demand in your ad server and reporting, you may use the optional `onedisplay` and `onemobile` adapter aliases instead. @@ -25,7 +38,6 @@ This adapter allows use of both ONE by AOL: Display and ONE by AOL: Mobile platf | `network` | required | The network ID from AOL. | `'5071.1'` | `string` | | `alias` | optional | The placement alias from AOL. | `'desktop_articlepage_something_box_300_250'` | `string` | | `server` | optional | The server domain name. Default is adserver-us.adtech.advertising.com. EU customers must use adserver-eu.adtech.advertising.com, and Asia customers adserver-as.adtech.advertising.com. | `'adserver-eu.adtech.advertising.com'` | `string` | -| `bidFloor` | optional | Dynamic bid floor (added in Prebid 0.8.1) | `'0.80'` | `string` | #### ONE by AOL: Mobile diff --git a/dev-docs/bidders/apacdex.md b/dev-docs/bidders/apacdex.md index 82abae394b..a7a7da140b 100644 --- a/dev-docs/bidders/apacdex.md +++ b/dev-docs/bidders/apacdex.md @@ -8,12 +8,168 @@ media_types: banner, video gdpr_supported: true schain_supported: true usp_supported: true +userIds: all +floors_supported: true --- +### Table of Contents + +- [Bid Params](#apacdex-bid-params) +- [Geo Object](#apacdex-geo-object) +- [Video Ad Unit](#apacdex-video-ad-unit) +- [Sample Banner Ad Unit](#apacdex-sample-banner-ad-unit) +- [Sample Video Ad Unit: Instream](#apacdex-sample-instream-ad-unit) +- [Sample Video Ad Unit: Outstream](#apacdex-sample-outstream-ad-unit) + + ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|-------------|----------|--------------------------------------------------------------------------------------------------------------------------------|------------|----------| -| `siteId` | required | Publisher site ID from Apacdex | `'apacdex1234'` | `string` | +| Name | Scope | Description | Example | Type | +|---------------|----------|-------------------------------------------------------------------------------------|---------------------------------------------------|----------| +| `placementId`*| required | Placement ID provided by Apacdex | `'plc100000'` | `string` | +| `siteId`* | required | Publisher site ID from Apacdex | `'apacdex1234'` | `string` | +| `floorPrice` | optional | CPM bidfloor in USD | `0.03` | `float` | +| `geo` | optional | GEO data of device. See [Geo Object](#apacdex-geo-object) for details. | `{"lat":17.98928,"lon":99.7741712,"accuracy":20}` | `object` | + +(*) Please do not use `placementId` and `siteId` at the same time. + + + +### Geo Object + +If the publisher has GEO data of the user's device. Make it available through the geo audience so we can improve ad targeting, which means improving bids. The list of fields can be referenced in Section 3.2.19 from the [OpenRTB 2.5](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf) document. + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|--------------|----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|-----------| +| `lat` | required | Latitude from -90.0 to +90.0, where negative is south. | `17.98928` | `float` | +| `lon` | required | Longitude from -180.0 to +180.0, where negative is west. | `99.7741712` | `float` | +| `accuracy` | required | Estimated location accuracy in meters; recommended when lat/lon are specified and derived from a device’s location services (i.e., type = 1). Note that this is the accuracy as reported from the device. Consult OS specific documentation (e.g., Android, iOS) for exact interpretation. | `20` | `integer` | +| `lastfix` | optional | Number of seconds since this geolocation fix was established. Note that devices may cache location data across multiple fetches. Ideally, this value should be from the time the actual fix was taken. | `30` | `integer` | +| `utcoffset` | optional | Local time as the number +/- of minutes from UTC. | `-420` | `integer` | + + + +### Video Ad Unit + +Publishers declare video inventory by passing the following parameters via mediaTypes.video + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------------|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|-----------| +| `context` | required | instream or outstream |`"outstream"` | `string` | +| `playerSize`| required | width, height of the player in pixels | `[640,360]` - will be translated to w and h in bid request | `array` | +| `mimes` | recommended | List of content MIME types supported by the player (see openRTB v2.5 for options) | `["video/mp4"]`| `array`| +| `protocols` | recommended | Supported video bid response protocol values
    1: VAST 1.0
    2: VAST 2.0
    3: VAST 3.0
    4: VAST 1.0 Wrapper
    5: VAST 2.0 Wrapper
    6: VAST 3.0 Wrapper
    7: VAST 4.0
    8: VAST 4.0 Wrapper | `[2,3,5,6]` | `array`| +| `api` | recommended | Supported API framework values:
    1: VPAID 1.0
    2: VPAID 2.0
    3: MRAID-1
    4: ORMMA
    5: MRAID-2 | `[2]` | `array` | +| `maxduration` | recommended | Maximum video ad duration in seconds. | `30` | `integer` | +| `minduration` | recommended | Minimum video ad duration in seconds | `6` | `integer` | +| `playbackmethod` | recommended | Playback methods that may be in use. Only one method is typically used in practice. (see openRTB v2.5 section 5.10 for options)| `[2]`| `array` | +| `skip` | optional | Indicates if the player will allow the video to be skipped, where 0 = no, 1 = yes. | `1` | `integer` | +| `skipafter`| optional | Number of seconds a video must play before skipping is enabled; only applicable if the ad is skippable. | `6` | `integer`| +| `minbitrate` | optional | Minimum bit rate in Kbps. | `300` | `integer` | +| `maxbitrate` | optional | Maximum bit rate in Kbps. | `9600` | `integer` | +| `startdelay`* | recommended | Indicates the start delay in seconds for pre-roll, mid-roll, or post-roll ad placements.
    >0: Mid-Roll (value indicates start delay in second)
    0: Pre-Roll
    -1: Generic Mid-Roll
    -2: Generic Post-Roll | `0` | `integer` | +| `placement`* | recommended | Placement type for the impression. (see openRTB v2.5 section 5.9 for options) | `1` | `integer` | + +Lists of values are in the [OpenRTB 2.5](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf) documentation as referenced above. + +
    + +### Sample Banner Ad Unit +``` +var adUnits = [ + { + code: 'test-div', + mediaTypes: { + banner: { + sizes: [[300, 250], [300,600]] + } + }, + bids: [ + { + bidder: 'apacdex', + params: { + siteId: 'apacdex1234', // siteId provided by Apacdex + floorPrice: 0.01, // default is 0.01 if not declared + } + } + ] + } +]; +``` + + + +### Sample Video Ad Unit: Instream +``` +var instreamAdUnit = { + code: 'test-div', + sizes: [[640, 480]], + mediaTypes: { + video: { + playerSize: [[640, 480]], + context: "instream" + api: [2], + placement: 1, + skip: 1, + linearity: 1, + minduration: 1, + maxduration: 120, + mimes: ["video/mp4", "video/x-flv", "video/x-ms-wmv", "application/vnd.apple.mpegurl", "application/x-mpegurl", "video/3gpp", "video/mpeg", "video/ogg", "video/quicktime", "video/webm", "video/x-m4v", "video/ms-asf", video/x-msvideo"], + playbackmethod: [6], + startdelay: 0, + protocols: [1, 2, 3, 4, 5, 6] + }, + }, + bids: [ + { + bidder: 'apacdex', + params: { + siteId: 'apacdex1234', // siteId provided by Apacdex + floorPrice: 0.01, // default is 0.01 if not declared + } + } + ] +}; +``` +mediaTypes.video object reference to section 3.2.7 Object: Video in the OpenRTB 2.5 document +You must review all video parameters to ensure validity for your player and DSPs + + + +### Sample Video Ad Unit: Outstream +``` +var outstreamAdUnit = { + code: 'test-div', + sizes: [[410, 231]], + mediaTypes: { + video: { + playerSize: [[410, 231]], + context: "outstream" + api: [2], + placement: 5, + linearity: 1, + minduration: 1, + maxduration: 120, + mimes: ["video/mp4", "video/x-flv", "video/x-ms-wmv", "application/vnd.apple.mpegurl", "application/x-mpegurl", "video/3gpp", "video/mpeg", "video/ogg", "video/quicktime", "video/webm", "video/x-m4v", "video/ms-asf", video/x-msvideo"], + playbackmethod: [6], + startdelay: 0, + protocols: [1, 2, 3, 4, 5, 6] + }, + }, + bids: [ + { + bidder: 'apacdex', + params: { + siteId: 'apacdex1234', // siteId provided by Apacdex + floorPrice: 0.01, // default is 0.01 if not declared + } + } + ] +}; +``` +mediaTypes.video object reference to section 3.2.7 Object: Video in the OpenRTB 2.5 document +You must review all video parameters to ensure validity for your player and DSPs diff --git a/dev-docs/bidders/appnexus.md b/dev-docs/bidders/appnexus.md index 8cae9709e8..0d9360bb28 100644 --- a/dev-docs/bidders/appnexus.md +++ b/dev-docs/bidders/appnexus.md @@ -6,10 +6,12 @@ biddercode: appnexus media_types: banner, video, native gdpr_supported: true prebid_member: true -userIds: criteo, unifiedId, netId, identityLink +userIds: criteo, unifiedId, netId, identityLink, flocId, uid2 schain_supported: true coppa_supported: true usp_supported: true +floors_supported: true +fpd_supported: true pbjs: true pbs: true gvl_id: 32 @@ -29,8 +31,8 @@ gvl_id: 32 {: .alert.alert-danger :} -All AppNexus placements included in a single call to `requestBids` must belong to the same parent Publisher. If placements from two different publishers are included in the call, the AppNexus bidder will not return any demand for those placements.
    -*Note: This requirement does not apply to adapters that are [aliasing]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.aliasBidder) the AppNexus adapter.* +All AppNexus (Xandr) placements included in a single call to `requestBids` must belong to the same parent Publisher. If placements from two different publishers are included in the call, the AppNexus bidder will not return any demand for those placements.
    +*Note: This requirement does not apply to adapters that are [aliasing](/dev-docs/publisher-api-reference/aliasBidder.html) the AppNexus adapter.* #### Bid Params @@ -48,7 +50,7 @@ All AppNexus placements included in a single call to `requestBids` must belong t | `keywords` | optional | A set of key-value pairs applied to all ad slots on the page. Mapped to [buy-side segment targeting](https://monetize.xandr.com/docs/segment-targeting) (login required). Values can be empty. See [Passing Keys Without Values](#appnexus-no-value) below for examples. Note that to use keyword with the Prebid Server adapter, that feature must be enabled for your account by an AppNexus account manager. | `keywords: { genre: ['rock', 'pop'] }` | `object` | | `video` | optional | Object containing video targeting parameters. See [Video Object](#appnexus-video-object) for details. | `video: { playback_method: ['auto_play_sound_off'] }` | `object` | | `app` | optional | Object containing mobile app parameters. See the [App Object](#appnexus-app-object) for details. | `app : { id: 'app-id'}` | `object` | -| `reserve` | optional | Sets a floor price for the bid that is returned. If floors have been configured in the AppNexus Console, those settings will override what is configured here. | `0.90` | `float` | +| `reserve` | optional | Sets a floor price for the bid that is returned. If floors have been configured in the AppNexus Console, those settings will override what is configured here unless 'Reserve Price Override' is checked. See [Xandr docs](https://docs.xandr.com/bundle/monetize_monetize-standard/page/topics/create-a-floor-rule.html) | `0.90` | `float` | | `position` | optional | Identify the placement as above or below the fold. Allowed values: Unknown: `unknown`; Above the fold: `above`; Below the fold: `below` | `'above'` | `string` | | `trafficSourceCode` | optional | Specifies the third-party source of this impression. | `'my_traffic_source'` | `string` | | `supplyType` | optional | Indicates the type of supply for this placement. Possible values are `web`, `mobile_web`, `mobile_app` | `'web'` | `string` | @@ -56,6 +58,7 @@ All AppNexus placements included in a single call to `requestBids` must belong t | `pubClick` | optional | Specifies a publisher-supplied URL for third-party click tracking. This is just a placeholder into which the publisher can insert their own click tracker. This parameter should be used for an unencoded tracker. This parameter is expected to be the last parameter in the URL. Please note that the click tracker placed in this parameter will only fire if the creative winning the auction is using AppNexus click tracking properly. | `'http://click.adserver.com/'` | `string` | | `extInvCode` | optional | Specifies predefined value passed on the query string that can be used in reporting. The value must be entered into the system before it is logged. | `'10039'` | `string` | | `externalImpId` | optional | Specifies the unique identifier of an externally generated auction. | `'bacbab02626452b097f6030b3c89ac05'` | `string` | +| `generate_ad_pod_id`| optional | Signal to AppNexus to split impressions by ad pod and add unique ad pod id to each request. Specific to long form video endpoint only. Supported by Prebid Server, not Prebid JS. | `true` | `boolean` |
    @@ -198,7 +201,7 @@ To view the results of the debug auction, add the `pbjs_debug=true` query string #### Prebid Server Test Request -The following test parameters can be used to verify that Prebid Server is working properly with the +The following test parameters can be used to verify that Prebid Server is working properly with the server-side Appnexus adapter. This example includes an `imp` object with an Appnexus test placement ID and sizes that would match with the test creative. diff --git a/dev-docs/bidders/aso.md b/dev-docs/bidders/aso.md new file mode 100644 index 0000000000..8e4fae6934 --- /dev/null +++ b/dev-docs/bidders/aso.md @@ -0,0 +1,58 @@ +--- +layout: bidder +title: Adserver.Online +description: Prebid Adserver.Online Bidder Adapter +biddercode: aso +gdpr_supported: true +usp_supported: true +media_types: video +safeframes_ok: true +deals_supported: false +pbjs: true +pbs: false +floors_supported: true +--- +### Note: + +For more information about [Adserver.Online](https://adserver.online), please contact support@adsrv.org. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-----------------------|-----------|-----------| +| `zone` | required | Zone ID | `73815` | `integer` | + +### Test Parameters + +```js + var adUnit = { + code: 'unit1', + mediaTypes: { + banner: { + sizes: [[300, 250]] + } + }, + bids: [ + { + bidder: 'aso', + params: { + zone: 73815, + } + } + ] +} +``` + +#### Video Caching + +Note that the Adserver.Online adapter expects a client-side Prebid Cache to be enabled for video bidding. + +```js +pbjs.setConfig({ + usePrebidCache: true, + cache: { + url: 'https://prebid.adnxs.com/pbc/v1/cache' + } +}); +``` diff --git a/dev-docs/bidders/atomx.md b/dev-docs/bidders/atomx.md index 65f2d28c39..378c2b37b0 100644 --- a/dev-docs/bidders/atomx.md +++ b/dev-docs/bidders/atomx.md @@ -4,6 +4,7 @@ title: Atomx description: Prebid Atomx Bidder Adaptor pbjs: true biddercode: atomx +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/automatad.md b/dev-docs/bidders/automatad.md index cd1c2045b4..27714c6d15 100644 --- a/dev-docs/bidders/automatad.md +++ b/dev-docs/bidders/automatad.md @@ -5,6 +5,7 @@ description: Automatad OpenRTB Bid Adapter biddercode: automatad pbjs: true media_types: banner +fpd_supported: true --- #### Bid Params diff --git a/dev-docs/bidders/avantisvideo.md b/dev-docs/bidders/avantisvideo.md index 2f1d2e72ee..bdc5ae4dd9 100644 --- a/dev-docs/bidders/avantisvideo.md +++ b/dev-docs/bidders/avantisvideo.md @@ -5,13 +5,15 @@ description: Avantis Video Bidder Adapter pbjs: true biddercode: avantisvideo aliasCode: aniview -media_types: video +media_types: banner, video gdpr_supported: true usp_supported: true +schain_supported: true +safeframes_ok: true --- ### Note: -For more information about [Avantis Video](https://www.avantisvideo.com/). +For more information about [Avantis Video](https://www.avantisvideo.com/), please contact contact@avantisvideo.com. ### Bid Params diff --git a/dev-docs/bidders/axonix.md b/dev-docs/bidders/axonix.md index 005c900d20..84ffe5dcd6 100644 --- a/dev-docs/bidders/axonix.md +++ b/dev-docs/bidders/axonix.md @@ -5,10 +5,12 @@ description: Axonix Prebid Adaptor biddercode: axonix media_types: banner, video pbjs: true +pbs: true +gvl_id: 678 --- ### Prebid Server Note: -The Axonix Bidding adapter requires setup before beginning. Please contact us at support+prebid@axonix.com. +The Axonix Bidding adapter requires setup before beginning. Please contact us at support.axonix@emodoinc.com. ### Bid Params diff --git a/dev-docs/bidders/beachfront.md b/dev-docs/bidders/beachfront.md index cd4e802264..aa28971a92 100644 --- a/dev-docs/bidders/beachfront.md +++ b/dev-docs/bidders/beachfront.md @@ -4,9 +4,11 @@ title: Beachfront description: Prebid Beachfront Bidder Adapter biddercode: beachfront media_types: video +floors_supported: true gdpr_supported: true usp_supported: true -userIds: unifiedId, identityLink +userIds: unifiedId, identityLink, uid2, haloId +schain_supported: true prebid_member: true pbjs: true pbs: true diff --git a/dev-docs/bidders/beop.md b/dev-docs/bidders/beop.md new file mode 100644 index 0000000000..3f7786d8b7 --- /dev/null +++ b/dev-docs/bidders/beop.md @@ -0,0 +1,16 @@ +--- +layout: bidder +title: BeOp +description: BeOp Bidder Adaptor +pbjs: true +biddercode: beop +fpd_supported: true +--- + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-------------|---------|----------| +| `accountId` or `networkId` | required | Your BeOp account ID | `'5a8af500c9e77c00017e4cad'` | `string` | +| `currency` | optional | Your currency | `'EUR'` (default) or `'USD'` | `string` | diff --git a/dev-docs/bidders/between.md b/dev-docs/bidders/between.md index 2f00312f67..b37304b1b5 100644 --- a/dev-docs/bidders/between.md +++ b/dev-docs/bidders/between.md @@ -8,6 +8,10 @@ biddercode: between schain_supported: true gdpr_supported: true pbs_app_supported: true +userIds: all +gvl_id: 724 +usp_supported: true +safeframes_ok: false --- ### Prebid.js Bid Params @@ -16,8 +20,6 @@ pbs_app_supported: true | Name | Scope | Description | Example | Type | |---------------|----------|-------------|---------|----------| | `s` | required | Section ID from Between SSP control panel | 999999 | `integer` | -| `w` | required | width of placement(Number) | 240 | -| `h` | required | height of placement(Number) | 400 | ### Prebid-Server Bid Params @@ -26,7 +28,4 @@ pbs_app_supported: true |---------------|----------|-------------|---------|----------| | `host` | required | Between SSP host url prefix. Defines data center where requests will be sent. Choose the closest one to the prebid-server you are using. Allowed values: `lbs-eu1.ads`, `lbs-ru1.ads`, `lbs-asia1.ads`, `lbs-us-east1.ads` | `'lbs-eu1.ads'` | `string` | | `publisher_id` | required | Publisher ID from Between SSP control panel | `'123'` | `string` | -| `bid_floor` | optional | Minimum price acceptable for a bid. `0.00001` by default | `0.05` | `float` | -| `bid_floor_cur` | optional | Bid floor currency. Allowed values: `USD`, `EUR`, `RUB` | `'USD'` | `string` | - diff --git a/dev-docs/bidders/bidfluence.md b/dev-docs/bidders/bidfluence.md index ae114a5864..5f4a4e1de7 100644 --- a/dev-docs/bidders/bidfluence.md +++ b/dev-docs/bidders/bidfluence.md @@ -5,6 +5,7 @@ description: Bidfluence Adaptor for Prebidjs pbjs: true biddercode: bidfluence gdpr_supported: true +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/bidlab.md b/dev-docs/bidders/bidlab.md index 7bb90cf1bf..3607f72f38 100644 --- a/dev-docs/bidders/bidlab.md +++ b/dev-docs/bidders/bidlab.md @@ -6,6 +6,7 @@ pbjs: true biddercode: bidlab gdpr_supported: true media_types: banner, video +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/bidmachine.md b/dev-docs/bidders/bidmachine.md new file mode 100644 index 0000000000..82f1dd997e --- /dev/null +++ b/dev-docs/bidders/bidmachine.md @@ -0,0 +1,31 @@ +--- +layout: bidder +title: Bidmachine +description: Prebid Bidmachine Bidder Adapter +biddercode: bidmachine +gdpr_supported: true +gvl_id: 736 +usp_supported: true +coppa_supported: true +schain_supported: true +dchain_supported: false +media_types: banner, video +safeframes_ok: true +deals_supported: false +pbjs: false +pbs: true +pbs_app_supported: true +prebid_member: false +--- + +### Prebid Server Note: +The Bidmachine Bidding adapter requires setup before beginning. Please contact us at hi@bidmachine.io . + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +| :------------ | :------- | :---------------------------------------------- | :------------------------------------- |----------| +| `host` | required | DC region | `"api-eu"` | `string` | +| `path` | required | URL path, will be provided by manager | `"auction/rtb/v2"` | `string` | +| `seller_id` | required | Your ID in Bidmachine system | `"1"` | `string` | diff --git a/dev-docs/bidders/bidphysics.md b/dev-docs/bidders/bidphysics.md index 08fcb5bab5..1e322a3afe 100644 --- a/dev-docs/bidders/bidphysics.md +++ b/dev-docs/bidders/bidphysics.md @@ -5,6 +5,7 @@ description: Prebid BidPhysics Bidder Adaptor pbjs: true biddercode: bidphysics gdpr_supported: true +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/bidscube.md b/dev-docs/bidders/bidscube.md new file mode 100644 index 0000000000..594f454522 --- /dev/null +++ b/dev-docs/bidders/bidscube.md @@ -0,0 +1,22 @@ +--- +layout: bidder +title: BidsCube +description: Prebid BidsCube Bidder Adaptor +pbs: true +pbjs: true +biddercode: bidscube +media_types: banner, video, native +gdpr_supported: true +pbs_app_supported: true +--- + +### Note: + +The BidsCube Bidding adapter requires setup before beginning. Please contact us at support@bidscube.com + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|--------------|-----------|----------| +| `placementId` | required | Placement ID | `'12345'` | `string` | diff --git a/dev-docs/bidders/bidsxchange.md b/dev-docs/bidders/bidsxchange.md new file mode 100644 index 0000000000..2c8484db9b --- /dev/null +++ b/dev-docs/bidders/bidsxchange.md @@ -0,0 +1,121 @@ +--- +layout: bidder +title: Bidsxchange +description: Prebid Bidsxchange Bidder Adapter +biddercode: bidsxchange +aliasCode: adtelligent +media_types: video,banner +gdpr_supported: true +userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, unifiedId +schain_supported: true +coppa_supported: true +usp_supported: true +safeframes_ok: true +prebid_member: true +pbjs: true +pbs: false +--- + +### Bid params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|-------|----------|---------------------------------|----------|-----------| +| `aid` | required | The source ID from bidsxchange. | `529814` | `integer` | + +### Description +Get access to multiple demand partners across Bidsxchange AdExchange and maximize your yield with Bidsxchange header bidding adapter. + +Bidsxchange header bidding adapter connects with Bidsxchange demand sources in order to fetch bids. +This adapter provides a solution for accessing Video demand and display demand. + +Bidsxchange now supports adpod. + +### Test Parameters +``` + var adUnits = [ + + // Video instream adUnit + { + code: 'test-div', + mediaTypes: { + video: { + context: 'instream', + playerSize: [640, 480] + } + }, + bids: [{ + bidder: 'bidsxchange', + params: { + aid: 472386 + } + }] + }, + + // Video outstream adUnit + { + code: 'test-div', + mediaTypes: { + video: { + context: 'outstream', + playerSize: [640, 480] + } + }, + bids: [{ + bidder: 'bidsxchange', + params: { + aid: 472386 + } + }] + }, + + // Video ADPOD adUnit + { + code: 'test-div', + sizes: [[640, 480]], + mediaTypes: { + video: { + context: 'adpod', + playerSize: [640, 480] + } + }, + bids: [{ + bidder: 'bidsxchange', + params: { + aid: 472386 + } + }] + }, + + // Banner adUnit + { + code: 'test-div', + mediaTypes:{ + banner:{ + sizes: [[300, 250]] + } + } + bids: [{ + bidder: 'bidsxchange', + params: { + aid: 529814 + } + }] + } + ]; +``` + +### Additional Configuration + +It is possible to configure requests to be split into chunks so as to have fewer bid requests in a single http request +(default value is 10). + +``` + pbjs.setBidderConfig({ + config: { + bidsxchange: { + chunkSize: 1 // makes 1 http request per 1 adunit configured + } + } + }); +``` diff --git a/dev-docs/bidders/bizzclick.md b/dev-docs/bidders/bizzclick.md index ca37393154..57846d529e 100644 --- a/dev-docs/bidders/bizzclick.md +++ b/dev-docs/bidders/bizzclick.md @@ -9,7 +9,7 @@ coppa_supported: true schain_supported: true media_types: banner, video, native safeframes_ok: true -bidder_supports_deals: true +deals_supported: true pbjs: true --- diff --git a/dev-docs/bidders/bliink.md b/dev-docs/bidders/bliink.md new file mode 100644 index 0000000000..5344187d2b --- /dev/null +++ b/dev-docs/bidders/bliink.md @@ -0,0 +1,25 @@ +--- +layout: bidder +title: BLIINK +description: Prebid BLIINK Bidder Adaptor +pbjs: true +pbs: false +media_types: video, banner +biddercode: bliink +gdpr_supported: true +usp_supported: false +--- + +### Note: +The BLIINK Header Bidding adaptor requires setup and approval from the BLIINK team. Please reach out to your account manager for more informations. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|-------------|----------|----------------------------------|--------------------------------------|----------| +| `tagId` | required | The TagID from BLIINK. | `'32'` | `string` | +| `placement` | required | The placement from BLIINK. | `'video'` | `string` | + + +Same 'placement' parameter can be used from either prebid JS or prebid server. diff --git a/dev-docs/bidders/bluebillywig.md b/dev-docs/bidders/bluebillywig.md index 753ed5cd49..de7698da89 100644 --- a/dev-docs/bidders/bluebillywig.md +++ b/dev-docs/bidders/bluebillywig.md @@ -23,3 +23,4 @@ userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrable | `rendererCode` | required | The name of the renderer to use in your Blue Billywig publication | `"renderer"` | `string` | | `connections` | required | Back-ends to connect with. For every value in this a param matching the back-end should exist too. | `["bluebillywig"]` | `array` | | `video` | optional | Any OpenRTB 2.5 video params to additionally send along to the SSPs. | `{"maxduration": 30}` | `object` | +| `rendererSettings` | optional | Any playout property for the renderer you wish to override. | `{"autoPlay": "false", "interactivity_inView":"Play"}` | `object` | diff --git a/dev-docs/bidders/brightmountainmedia.md b/dev-docs/bidders/bmtm.md similarity index 58% rename from dev-docs/bidders/brightmountainmedia.md rename to dev-docs/bidders/bmtm.md index b29eaf51aa..3d99a82779 100644 --- a/dev-docs/bidders/brightmountainmedia.md +++ b/dev-docs/bidders/bmtm.md @@ -2,9 +2,13 @@ layout: bidder title: Bright Mountain Media description: Prebid Bright Mountain Media Bidder Adapter +biddercode: bmtm +media_types: banner, video +floors_supported: true +schain_supported: true pbjs: true -biddercode: brightmountainmedia -media_types: banner +pbs: true +userIds: id5Id, sharedId --- ### Bid Params @@ -12,5 +16,4 @@ media_types: banner {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | | -------------- | -------- | ----------------------------------------------------------------- | -------------------------- | -------- | -| `placement_id` | required | Placement Id will be generated on Bright Mountain Media Platform. | `'5f21784949be81002079d08c'` | `string` | -| `traffic` | required | Type traffic | `'banner'` | `string` | +| `placement_id` | required | Placement ID will be generated on Bright Mountain Media Platform | `1` | `integer` | diff --git a/dev-docs/bidders/boldwin.md b/dev-docs/bidders/boldwin.md index 0e3132282e..084e923814 100644 --- a/dev-docs/bidders/boldwin.md +++ b/dev-docs/bidders/boldwin.md @@ -5,7 +5,7 @@ description: Prebid Boldwin Bidder Adapter pbjs: true biddercode: boldwin gdpr_supported: true -media_types: banner, video +media_types: banner, video, native --- ### Note: @@ -17,4 +17,4 @@ The Boldwin Bidding adapter requires setup before beginning. Please contact us a {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |---------------|----------|-----------------------|-----------|-----------| -| `placementId` | required | Adprime placement id | `'1234asdf'` | `'string'` | +| `placementId` | required | Boldwin placement id | `'1234asdf'` | `'string'` | diff --git a/dev-docs/bidders/brave.md b/dev-docs/bidders/brave.md new file mode 100644 index 0000000000..e26f0f7249 --- /dev/null +++ b/dev-docs/bidders/brave.md @@ -0,0 +1,26 @@ +--- +layout: bidder +title: Brave +description: Prebid Brave Bidder Adapter +biddercode: brave +gdpr_supported: true +usp_supported: true +coppa_supported: true +schain_supported: true +media_types: banner, video, native +safeframes_ok: true +deals_supported: true +pbjs: true +pbs: false +--- + +### Note: + +The Brave Header Bidding adapter requires setup and approval from the Brave team. Please reach out to your account manager or support@thebrave.io for more information + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-------------------------------|-------------------------------------|-----------| +| `placementId` | required | Brave's platform placement id | `'to0QI2aPgkbBZq6vgf0oHitouZduz0qw'` | `string` | diff --git a/dev-docs/bidders/bridgewell.md b/dev-docs/bidders/bridgewell.md index 73800508ce..4ee73587de 100644 --- a/dev-docs/bidders/bridgewell.md +++ b/dev-docs/bidders/bridgewell.md @@ -5,6 +5,7 @@ description: Prebid Bridgewell Bidder Adaptor pbjs: true biddercode: bridgewell media_types: display, native +userIds: all --- ### Bid Params diff --git a/dev-docs/bidders/buzzoola.md b/dev-docs/bidders/buzzoola.md index b74b0735f7..fa1107c611 100644 --- a/dev-docs/bidders/buzzoola.md +++ b/dev-docs/bidders/buzzoola.md @@ -4,7 +4,7 @@ title: Buzzoola description: Prebid Buzzoola Bidder Adaptor pbjs: true biddercode: buzzoola -media_types: banner, video +media_types: banner, video, native gdpr_supported: false --- diff --git a/dev-docs/bidders/byplay.md b/dev-docs/bidders/byplay.md index 46feefa623..3247ebd3b8 100644 --- a/dev-docs/bidders/byplay.md +++ b/dev-docs/bidders/byplay.md @@ -5,6 +5,7 @@ description: Prebid ByPlay Bidder Adaptor pbjs: true biddercode: byplay media_types: video +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/c1x.md b/dev-docs/bidders/c1x.md index 31912dd16b..c24b70318b 100644 --- a/dev-docs/bidders/c1x.md +++ b/dev-docs/bidders/c1x.md @@ -5,6 +5,7 @@ description: Prebid C1X Bidder Adaptor pbjs: true biddercode: c1x gdpr_supported: true +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/cedato.md b/dev-docs/bidders/cedato.md index 51c96b26a4..fe25e346a0 100644 --- a/dev-docs/bidders/cedato.md +++ b/dev-docs/bidders/cedato.md @@ -9,6 +9,7 @@ usp_supported: true nav_section: reference pbjs: true biddercode: cedato +pbjs_version_notes: not in 5.x --- ### Bid params diff --git a/dev-docs/bidders/clicktripz.md b/dev-docs/bidders/clicktripz.md index e710721b3b..dabc6ef6d0 100644 --- a/dev-docs/bidders/clicktripz.md +++ b/dev-docs/bidders/clicktripz.md @@ -5,6 +5,7 @@ description: Prebid Clicktripz Bidder Adaptor pbjs: true biddercode: clicktripz media_types: banner +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/codefuel.md b/dev-docs/bidders/codefuel.md new file mode 100644 index 0000000000..f2b9b20833 --- /dev/null +++ b/dev-docs/bidders/codefuel.md @@ -0,0 +1,35 @@ +--- +layout: bidder +title: CodeFuel +description: CodeFuel Prebid Bidder Adapter +pbjs: true +pbs: true +media_types: banner +biddercode: CodeFuel +gdpr_supported: false +usp_supported: false +floors_supported: false +--- + +### Description + +Module that connects to Codefuel bidder to fetch bids. +Display format is supported but not native format. Using OpenRTB standard. + +### Bid Params +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-------------------------------------|------------------------------------------|----------| +| `placementId` | required | Placement-Id defined by the caller | `'0111f8ac-2d40-4613-8557-b47dbf622fff'` | `string` | + + +### Configuration + + +```javascript + pbjs.setConfig({ + codefuel: { + bidderUrl: 'https://prebidtest.zemanta.com/api/bidder/prebidtest/bid/' + } +}); +``` diff --git a/dev-docs/bidders/collectcent.md b/dev-docs/bidders/collectcent.md index 66c810f185..d48aefb665 100644 --- a/dev-docs/bidders/collectcent.md +++ b/dev-docs/bidders/collectcent.md @@ -4,6 +4,7 @@ title: Collectcent description: Prebid Collectcent Bidder Adaptor pbjs: true biddercode: collectcent +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/colombia.md b/dev-docs/bidders/colombia.md index 2af270b8ce..8500c375ee 100644 --- a/dev-docs/bidders/colombia.md +++ b/dev-docs/bidders/colombia.md @@ -4,6 +4,7 @@ title: COLOMBIA description: Prebid COLOMBIA Bidder Adaptor pbjs: true biddercode: colombia +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/colossus.md b/dev-docs/bidders/colossus.md index a01899d0af..e7b322df75 100644 --- a/dev-docs/bidders/colossus.md +++ b/dev-docs/bidders/colossus.md @@ -6,7 +6,7 @@ biddercode: colossus usp_supported: true schain_supported: true media_types: banner, video, native -userIds: britepoolid, identityLink, unifiedId, id5Id +userIds: britepoolid, identityLink, unifiedId, id5Id, uid2 gdpr: true pbjs: false pbs: true diff --git a/dev-docs/bidders/colossusssp.md b/dev-docs/bidders/colossusssp.md index e64677b05d..50931a7c99 100644 --- a/dev-docs/bidders/colossusssp.md +++ b/dev-docs/bidders/colossusssp.md @@ -6,8 +6,9 @@ biddercode: colossusssp usp_supported: true schain_supported: true media_types: banner, video, native -userIds: britepoolid, identityLink, unifiedId, id5Id +userIds: britepoolid, identityLink, unifiedId, id5Id, uid2 gdpr: true +fpd_supported: true pbjs: true pbs: false --- diff --git a/dev-docs/bidders/connectad.md b/dev-docs/bidders/connectad.md index 2a8c0e1558..b5f67acab3 100644 --- a/dev-docs/bidders/connectad.md +++ b/dev-docs/bidders/connectad.md @@ -11,7 +11,7 @@ schain_supported: true userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, unifiedId prebid_member: true safeframes_ok: true -getFloor: true +floors_supported: true pbjs: true pbs: true gvl_id: 138 diff --git a/dev-docs/bidders/contentexchange.md b/dev-docs/bidders/contentexchange.md new file mode 100644 index 0000000000..364ee93d6f --- /dev/null +++ b/dev-docs/bidders/contentexchange.md @@ -0,0 +1,21 @@ +--- +layout: bidder +title: ContentExchange +description: Prebid Contentexchange Bidder Adapter +biddercode: contentexchange +usp_supported: true +schain_supported: true +media_types: banner, video, native +gdpr_supported: true +pbjs: true +pbs: false +pbs_app_supported: false +--- + +### Prebid.JS Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------------|----------|----------------------------------------------------------|------------|-----------| +| `placementId` | required | Placement Id will be generated on ContentExchange Platform. | `'1234'` | `string` | +| `adFormat` | required | `[banner, video, native]` | `'banner'` | `string` | diff --git a/dev-docs/bidders/converge.md b/dev-docs/bidders/converge.md index f7288f4ebd..fe7843d9b1 100644 --- a/dev-docs/bidders/converge.md +++ b/dev-docs/bidders/converge.md @@ -1,20 +1,28 @@ --- layout: bidder -title: Converge -description: Prebid Converge Bidder Adaptor +title: Converge-Digital +description: Converge-Digital Bidder Adaptor pbjs: true +pbs: true biddercode: converge -media_types: banner, video +aliasCode : adkernel +media_types: banner, native, video gdpr_supported: true usp_supported: true +coppa_supported: true +pbs_app_supported: true +gvl_id: 248 +schain_supported: true --- +### Note: + +The Converge-Digital Bidding adapter requires setup and approval before implementation. Please reach out to for more details. ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|-------------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------|-----------| -| `uid` | required | Represents the Converge bidder system Ad Slot ID associated with the respective div id from the site page. | `59` | `integer` | -| `priceType` | optional | Can take the values `gross` or `net`, default value is `net`. Net represents the header bid price with the Converge header bidder margin already extracted. Gross price does contain the Converge bidder margin within. | `'gross'` | `string` | -| `keywords` | optional | A set of key-value pairs applied to all ad slots on the page. Values can be empty. | `keywords: { topic: ['stress', 'fear'] }` | `object` | +| Name | Scope | Description | Example | Type | +|----------|----------|-----------------------|---------------------------|----------| +| `host` | required | ConvergeDigital RTB host | `'cpm.convergeselect.net'` | `string` | +| `zoneId` | required | Zone Id | `30164` | `integer` | diff --git a/dev-docs/bidders/conversant.md b/dev-docs/bidders/conversant.md index 21b7c071ce..d8c76b9d2b 100644 --- a/dev-docs/bidders/conversant.md +++ b/dev-docs/bidders/conversant.md @@ -7,7 +7,7 @@ pbs: true biddercode: conversant media_types: video gdpr_supported: true -userIds: criteo, id5Id, identityLink, liveIntentId, parrableId, pubCommonId, unifiedId +userIds: criteo, id5Id, identityLink, liveIntentId, parrableId, pubCommonId, unifiedId, publinkId prebid_member: true gvl_id: 24 --- @@ -24,15 +24,24 @@ gvl_id: 24 | `secure` | required (for secure pages) | If impression requires secure HTTPS URL creative assets and markup. 0 for non-secure, 1 for secure. Default is non-secure | `1` | `integer` | | `bidfloor` | optional | Bid floor | `0.50` | `float` | | `tag_id` | optional | Identifies specific ad placement. | `'cnvr-test-tag'` | `string` | -| `position` | optional | Ad position on screen. See details below. | `1` | `integer` | +| `white_label_url`| optional | Override the destination URL the request is sent to. | `'https://mydomain.com/hbendpoint'` | `string` | +| `pubcid_name` | optional | Name of the pub common id. Conversant adapter can read the id directly if the UserID module is absent. Default is _pubcid.| `'_pubcid'` | `string` | + +### Video Params + +{: .table .table-bordered .table-striped } + +| Name | Scope | Description | Example | Type | +|---------------|-----------------------------|---------------------------------------------------------------------------------------------------------------------------|-------------------|------------------| +| `position` | optional | Ad position on screen. See details below. Only supported in bids.params. | `1` | `integer` | | `mimes` | optional | Array of content MIME types supported. Required for video | `['video/mp4']` | `Array` | | `maxduration` | optional | Maximum duration in seconds for this video as an integer. | `30` | `integer` | | `api` | optional | Array of supported API frameworks. See details below. | `[2]` | `Array` | | `protocols` | optional | Array of supported video protocols. See details below. | `[2]` | `Array` | -| `white_label_url`| optional | Override the destination URL the request is sent to. | `'https://mydomain.com/hbendpoint'` | `string` | -| `pubcid_name` | optional | Name of the pub common id. Conversant adapter can read the id directly if the UserID module is absent. Default is _pubcid.| `_pubcid` | `string` | +Video parameters can be included in either `mediaTypes.video` or `bids.params` except where noted. + The following values are defined in the [ORTB 2.5 spec](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf). ### position diff --git a/dev-docs/bidders/cosmos.md b/dev-docs/bidders/cosmos.md index addbee7046..d8d35a9b42 100644 --- a/dev-docs/bidders/cosmos.md +++ b/dev-docs/bidders/cosmos.md @@ -4,6 +4,7 @@ title: COSMOS description: Prebid COSMOS Bidder Adapter pbjs: true biddercode: cosmos +pbjs_version_notes: not in 5.x --- ### Integration Note: diff --git a/dev-docs/bidders/criteo.md b/dev-docs/bidders/criteo.md index ed2c3df49d..37bdc717a4 100644 --- a/dev-docs/bidders/criteo.md +++ b/dev-docs/bidders/criteo.md @@ -3,23 +3,29 @@ layout: bidder title: Criteo description: Prebid Criteo Bidder Adaptor pbjs: true +pbs: true biddercode: criteo media_types: display, native, video gdpr_supported: true usp_supported: true userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, pubProvidedId, sharedId, unifiedId prebid_member: true -getFloor: false* +floors_supported: false +fpd_supported: true gvl_id: 91 --- -### Note +### Notes {: .alert.alert-warning :} -For Native Ads, in order to avoid further decoding issues of special characters, the assets need to be sent as placeholders. -That means, `sendId: true` becomes mandatory for all fields receiving URLs, notably: `icon`, `image`, `clickUrl`, `privacyLink`, `privacyIcon`. +*Criteo currently only supports getFloor if floors are in USD and if the publisher is enabling the Criteo Publisher Tag external js call. -*Criteo currently only supports getFloor if floors are in Euros and if the publisher is enabling the Criteo Publisher Tag external js call. -See [Sending Asset Placeholders]({{site.baseurl}}/dev-docs/show-native-ads.html#sending-asset-placeholders). +{: .alert.alert-warning :} +Prebid-Server support is on alpha test and is currently a non-finished product. Activation requires setup and approval before beginning. Please reach out to your account manager or publishers@criteo.com for more details. + +### Disclosure + +This bidder sets `adId` on the bid response and hasn't responded to the Prebid.js team to confirm uniqueness +of this value. See [Issue 6381](https://github.com/prebid/Prebid.js/issues/6381). ### Bid Params @@ -28,8 +34,8 @@ See [Sending Asset Placeholders]({{site.baseurl}}/dev-docs/show-native-ads.html# |-------------------|----------|----------------------------------------------------------------------------------------------------------------------|-----------------------------------------------|------------| | `zoneId` | required | (deprecated) The zone ID from Criteo. Should be replaced by `networkId` when using zone matching. | `234234` | `integer` | | `networkId` | required | The network ID from Criteo. Please reach out your Criteo representative for more details. | `456456` | `integer` | -| `nativeCallback` | optional | Callback to perform render in native integrations. Please reach out your Criteo representative for more details. | `function(payload) { console.log(payload); }` | `function` | -| `integrationMode` | optional | Integration mode to use for ad render (none or 'AMP'). Please reach out your Criteo representative for more details. | `'AMP'` | `string` | +| `nativeCallback` | optional | (Prebid.js only) Callback to perform render in native integrations. Please reach out your Criteo representative for more details. | `function(payload) { console.log(payload); }` | `function` | +| `integrationMode` | optional | (Prebid.js only) Integration mode to use for ad render (none or 'AMP'). Please reach out your Criteo representative for more details. | `'AMP'` | `string` | ### Video Object @@ -67,18 +73,16 @@ var adUnits = [ maxduration: 30, api: [1, 2], playerSize: [640,480], - protocols: [2, 3] + protocols: [2, 3], + skip: 0, + playbackmethod: 1, + placement: 1 } }, bids: [{ bidder: 'criteo', params: { - zoneId: 1455580, - video: { - skip: 0, - playbackmethod: 1, - placement: 1, - } + zoneId: 1455580 } }] }]; diff --git a/dev-docs/bidders/dailyhunt.md b/dev-docs/bidders/dailyhunt.md index a63c647350..cbb7440034 100644 --- a/dev-docs/bidders/dailyhunt.md +++ b/dev-docs/bidders/dailyhunt.md @@ -6,6 +6,7 @@ pbjs: true biddercode: dailyhunt media_types: display, native, video gdpr_supported: true +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/datablocks.md b/dev-docs/bidders/datablocks.md index dd13b388e1..58aea81085 100644 --- a/dev-docs/bidders/datablocks.md +++ b/dev-docs/bidders/datablocks.md @@ -2,10 +2,17 @@ layout: bidder title: DataBlocks pbs: true -media_types: video +pbjs: true +description: Prebid Datablocks Bidder Adaptor +media_types: banner,native biddercode: datablocks prebid_member: true gdpr_supported: true +pbs_app_supported: true +schain_supported: true +usp_supported: true +userIds: criteo,unifiedId,netId,pubcid +fpd_supported: true --- ### Bid Params @@ -14,4 +21,6 @@ gdpr_supported: true | Name | Scope | Description | Example | Type | |------------|----------|------------------------|---------|----------| | sourceId | required | Website Source Id | 111 | integer | -| host | requird | Network Host to request from | 'host1' | string | +| host | optional | Network Host to request from | 'prebid.datablocks.bet' | string | +| tagid | optional | Placement ID | 'leaderboard_1' | string | +| vis_optout | optional | Opt out of visibility metric | true | boolean | diff --git a/dev-docs/bidders/decenterads.md b/dev-docs/bidders/decenterads.md index e8c9733479..1e496566f2 100644 --- a/dev-docs/bidders/decenterads.md +++ b/dev-docs/bidders/decenterads.md @@ -8,6 +8,7 @@ biddercode: decenterads media_types: banner, video, native gdpr_supported: true pbs_app_supported: true +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/denakop.md b/dev-docs/bidders/denakop.md new file mode 100644 index 0000000000..0b390e05e4 --- /dev/null +++ b/dev-docs/bidders/denakop.md @@ -0,0 +1,27 @@ +--- +layout: bidder +title: Denakop +description: Denakop Bidder Adaptor +pbjs: true +pbs: true +biddercode: denakop +media_types: banner, native, video +gdpr_supported: true +usp_supported: true +coppa_supported: true +pbs_app_supported: true +schain_supported: true +aliasCode : adkernel +--- + +### Note: + +The Denakop bidding adapter requires setup and approval before implementation. Please reach out to for more details. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------|----------|-----------------------|---------------------------|----------| +| `host` | required | Host Name | `'cpm.denakop.com'` | `string` | +| `zoneId` | required | Zone Id | 30164 | `integer` | diff --git a/dev-docs/bidders/dgads.md b/dev-docs/bidders/dgads.md index 924537c381..73bd6f02ca 100644 --- a/dev-docs/bidders/dgads.md +++ b/dev-docs/bidders/dgads.md @@ -5,6 +5,7 @@ description: Prebid dgads Bidder Adapter pbjs: true biddercode: dgads media_types: native +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/districtmDMX.md b/dev-docs/bidders/districtmDMX.md deleted file mode 100644 index 6af35635eb..0000000000 --- a/dev-docs/bidders/districtmDMX.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -layout: bidder -title: DistrictmDMX -description: Prebid DistrictmDMX Bidder Adaptor -pbjs: true -biddercode: districtmDMX -gdpr_supported: true -schain_supported: true -getFloor: true -usp_supported: true -coppa_supported: true -userIds: britepoolId, criteo, id5Id, identityLink, intentiq, liveIntentId, netId, parrableId, pubCommonId, unifiedId ---- - - - -### Bid Params - -##### Prebid version 1.0 and above. - -{: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|------------|----------|---------------------|------------------|-----------| -| `dmxid` | required | Placement Id | `100001` | `integer` | -| `memberid` | required | Account id | `100003` | `integer` | - -##### Prebid 0.34~ legacy - -{: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|------------|----------|-------------------------|------------------|-----------| -| `id` | required | Placement ID | `123456789` | `integer` | -| `floor` | optional | Bid floor price | `"1.00"` | `string` | -| `revShare` | optional | Publisher Revenue Share | `"0.85"` | `string` | -| `currency` | optional | Currency code | `"usd"` | `string` | - diff --git a/dev-docs/bidders/districtmdmx.md b/dev-docs/bidders/districtmdmx.md index 6af35635eb..fef2443cc5 100644 --- a/dev-docs/bidders/districtmdmx.md +++ b/dev-docs/bidders/districtmdmx.md @@ -6,7 +6,7 @@ pbjs: true biddercode: districtmDMX gdpr_supported: true schain_supported: true -getFloor: true +floors_supported: true usp_supported: true coppa_supported: true userIds: britepoolId, criteo, id5Id, identityLink, intentiq, liveIntentId, netId, parrableId, pubCommonId, unifiedId @@ -33,4 +33,3 @@ userIds: britepoolId, criteo, id5Id, identityLink, intentiq, liveIntentId, netId | `floor` | optional | Bid floor price | `"1.00"` | `string` | | `revShare` | optional | Publisher Revenue Share | `"0.85"` | `string` | | `currency` | optional | Currency code | `"usd"` | `string` | - diff --git a/dev-docs/bidders/djax.md b/dev-docs/bidders/djax.md index b3d0a1f7da..6c9c8200ed 100644 --- a/dev-docs/bidders/djax.md +++ b/dev-docs/bidders/djax.md @@ -4,6 +4,7 @@ title: DJAX description: Prebid djax Bidder Adapter pbjs: true biddercode: djax +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/dmx.md b/dev-docs/bidders/dmx.md index d7647a7c5e..7c34908359 100644 --- a/dev-docs/bidders/dmx.md +++ b/dev-docs/bidders/dmx.md @@ -13,8 +13,11 @@ gdpr_supported: true {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |------------|----------|------------------------|---------|----------| -| memberid | required | Represent boost MemberId from DistrictM UI | 'member1' | string | -| tagid | optional | Represent the placement ID | '123abc' | string | +| seller_id | required | The DMX Partner ID provided upon onboarding, this is for specific setup BURL, NURL or ADM support | 'seller_id' | string | +| publisher_id | required | Boost MemberId from DistrictM UI | 'member1' | string | +| tagid | required | Represent the placement ID from DistrictM or your own | '123abc' | string | | bidfloor | optional | The minimum price acceptable for a bid | '1.0' | string | +| memberid | optional | MemberId from DistrictM UI (legacy: replaced by publisher_id) | 'member1' | string | +| dmxid | optional | Placement ID from DistrictM (legacy: replaced by tagid) | '123abc' | string | (See [districtmDMX](/dev-docs/bidders.html#districtmDMX) for Prebid.js) diff --git a/dev-docs/bidders/doceree.md b/dev-docs/bidders/doceree.md index a8dcee72b3..92075772c6 100644 --- a/dev-docs/bidders/doceree.md +++ b/dev-docs/bidders/doceree.md @@ -4,16 +4,13 @@ title: Doceree description: Prebid DivReach Bidder Adapter pbjs: true biddercode: doceree -aliasCode: adbutler media_types: banner --- ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|-------------|----------|----------------|---------------------------|----------| -| `accountID` | required | Account ID | `'167283'` | `string` | -| `zoneID` | required | Zone ID | `'445501'` | `string` | -| `domain` | required | Serving Domain | `'adbserver.doceree.com'` | `string` | -| `extra` | optional | Extra Params | `{tuid: "abcd-1234"}` | `object` | +| Name | Scope | Description | Example | Type | +|-------------------|----------|----------------|---------------------------|----------| +| `placementId` | required | Placement Id | `'DOC_7jm9j5eqkl0xvc5w'` | `string` | +| `publisherUrl` | optional | Current url | `https://doceree.com` | `string` | diff --git a/dev-docs/bidders/dspx.md b/dev-docs/bidders/dspx.md index c0147c487d..9b9133e49d 100644 --- a/dev-docs/bidders/dspx.md +++ b/dev-docs/bidders/dspx.md @@ -6,6 +6,7 @@ pbjs: true biddercode: dspx media_types: banner, video gdpr_supported: true +userIds: uid2, netId --- ### Note: diff --git a/dev-docs/bidders/duration.md b/dev-docs/bidders/duration.md new file mode 100644 index 0000000000..2c2e61cb9a --- /dev/null +++ b/dev-docs/bidders/duration.md @@ -0,0 +1,86 @@ +--- +layout: bidder +title: Duration Media +description: Prebid Duration Media Bidder Adapter +biddercode: duration +aliasCode: nobid +pbjs: true +pbs: true +media_types: banner, video +gdpr_supported: true +gvl_id: 816 +usp_supported: true +schain_supported: true +coppa_supported: true +userId: criteo, unifiedId, id5Id +safeframes_ok: true +--- + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-------------|---------|----------| +| `siteId` | required | siteId is provided by your Duration Media account manager(s) | | `integer` | +| `placementId` | optional | placementId is provided by your Duration Media account manager(s). This parameter allows to report on a specific ad unit | | `integer` | +| `video`| optional | Object containing video targeting parameters. Note that this parameter is not used in Prebid Server. See [Video Object](#duration-video-object) for details. | `video: { playback_method: ['auto_play_sound_off'] }` | `object`| + + +### Note +If you are using Google Ad Manager (GAM), it is highly recommended to make sure the “Serve in Safeframe” box in creative settings is unchecked. +If you absolutely want to run Duration Media in a Saferame creative, please contact your Duration Media repsentative to coordinate this setup. + + +# Test Parameters +``` + var adUnits = [ + { + code: 'test-div1', + mediaTypes: { + banner: { + sizes: [[300, 250]], // a display size + } + }, + bids: [ + { + bidder: "duration", + params: { + siteId: 2, + placementId: 3 + } + } + ] + },{ + code: 'test-div2', + mediaTypes: { + banner: { + sizes: [[320, 50]], // a mobile size + } + }, + bids: [ + { + bidder: "duration", + params: { + siteId: 2 + } + } + ] + } + ]; +``` + + + +#### Video Object + +{: .table .table-bordered .table-striped } +| Name | Description | Type | +|-------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------| +| `skippable` | Boolean which, if `true`, means the user can click a button to skip the video ad. Defaults to `false`. | `boolean` | +| `playback_method` | Array of strings listing playback methods supported by the publisher. Allowed values: `"auto_play_sound_on"`; `"auto_play_sound_off"`; `"click_to_play"`; `"mouseover"`; `"auto_play_sound_unknown"`; `"viewport_sound_on"`, `"viewport_sound_off"`. | `Array` | +| `position` | Array of strings listing video player position supported by the publisher. Allowed values: `"na"`, `"atf"`, `"btf"`, `"head"`, `"foot"`, `"sidebar"`, `"full"`. | `Array` | +| `mimes` | Array of strings listing the content MIME types supported, e.g., `["video/x-flv", "video/x-ms-wmv"]`. | `Array` | +| `minduration` | Integer that defines the minimum video ad duration in seconds. | `integer` | +| `maxduration` | Integer that defines the maximum video ad duration in seconds. | `integer` | +| `frameworks` | Array of integers listing API frameworks supported by the publisher. Allowed values: None: `0`; VPAID 1.0: `1`; VPAID 2.0: `2`; MRAID 1.0: `3`; ORMMA: `4`; MRAID 2.0: `5`. | `Array` | + diff --git a/dev-docs/bidders/e_volution.md b/dev-docs/bidders/e_volution.md index 21a46dc926..867093350f 100644 --- a/dev-docs/bidders/e_volution.md +++ b/dev-docs/bidders/e_volution.md @@ -5,16 +5,29 @@ description: Prebid E-volution tech Bidder Adapter pbjs: true biddercode: e_volution gdpr_supported: true -media_types: banner, video +media_types: banner, video, native +gvl_id: 957 +pbs: true +pbs_app_supported: true +usp_supported: true +schain_supported: true +pbjs_version_notes: not in 5.x --- ### Note: The E-volution Bidding adapter requires setup before beginning. Please contact us at admin@e-volution.ai -### Bid Params +### Prebid.JS Bid Params {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |---------------|----------|-----------------------|-----------|-----------| | `placementId` | required | E-volution tech placement id | `'1234asdf'` | `'string'` | + +### Prebid Server Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-----------------------|-----------|-----------| +| `key` | required | E-volution integration key | `'cf64c93f277afdd928d8260653d7413d'` | `'string'` | diff --git a/dev-docs/bidders/ebdr.md b/dev-docs/bidders/ebdr.md index 56036ed355..2218f1ca60 100644 --- a/dev-docs/bidders/ebdr.md +++ b/dev-docs/bidders/ebdr.md @@ -5,6 +5,7 @@ description: Prebid EngageBDR Bidder Adaptor biddercode: ebdr pbjs: true media_types: video +pbjs_version_notes: not in 5.x --- ### Bid params diff --git a/dev-docs/bidders/edgequeryx.md b/dev-docs/bidders/edgequeryx.md index 0acccc9643..5731ce33d1 100644 --- a/dev-docs/bidders/edgequeryx.md +++ b/dev-docs/bidders/edgequeryx.md @@ -8,6 +8,7 @@ media_types: display gdpr_supported: true schain_supported: true usp_supported: true +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/emoteev.md b/dev-docs/bidders/emoteev.md index c75302826a..553a9b236c 100644 --- a/dev-docs/bidders/emoteev.md +++ b/dev-docs/bidders/emoteev.md @@ -6,6 +6,7 @@ pbjs: true biddercode: emoteev gdpr_supported: true userIds: pubCommonId +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/emx_digital.md b/dev-docs/bidders/emx_digital.md index f87facc38e..00acc8c306 100644 --- a/dev-docs/bidders/emx_digital.md +++ b/dev-docs/bidders/emx_digital.md @@ -10,6 +10,7 @@ gdpr_supported: true gvl_id: 183 usp_supported: true schain_supported: true +userIds: identityLink, uid2 --- ### Registration diff --git a/dev-docs/bidders/engageadx.md b/dev-docs/bidders/engageadx.md new file mode 100644 index 0000000000..9402d71593 --- /dev/null +++ b/dev-docs/bidders/engageadx.md @@ -0,0 +1,27 @@ +--- +layout: bidder +title: EngageADX +description: EngageADX Bidder Adaptor +pbjs: true +pbs: true +biddercode: engageadx +media_types: banner, native, video +gdpr_supported: true +usp_supported: true +coppa_supported: true +pbs_app_supported: true +schain_supported: true +aliasCode : adkernel +--- + +### Note: + +The EngageADX bidding adapter requires setup and approval before implementation. Please reach out to for more details. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------|----------|-----------------------|---------------------------|----------| +| `host` | required | Host | `'cpm.engageadx.com'` | `string` | +| `zoneId` | required | Zone Id | `30164` | `integer` | diff --git a/dev-docs/bidders/envivo.md b/dev-docs/bidders/envivo.md index eda08b79d3..b5e2771e3f 100644 --- a/dev-docs/bidders/envivo.md +++ b/dev-docs/bidders/envivo.md @@ -4,6 +4,7 @@ title: envivo description: Prebid envivo Bidder Adapter pbjs: true biddercode: envivo +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/eplanning.md b/dev-docs/bidders/eplanning.md index ff47235e17..b6b0466f71 100644 --- a/dev-docs/bidders/eplanning.md +++ b/dev-docs/bidders/eplanning.md @@ -7,6 +7,8 @@ pbs: true biddercode: eplanning usp_supported: true gdpr_supported: true +pbs_app_supported: true +gvl_id: 90 --- diff --git a/dev-docs/bidders/epom.md b/dev-docs/bidders/epom.md index 228670bceb..d1d5897a28 100644 --- a/dev-docs/bidders/epom.md +++ b/dev-docs/bidders/epom.md @@ -10,7 +10,7 @@ coppa_supported: true schain_supported: false media_types: banner, video, native safeframes_ok: true -bidder_supports_deals: true +deals_supported: true pbjs: false pbs: true pbs_app_supported: true diff --git a/dev-docs/bidders/ergadx.md b/dev-docs/bidders/ergadx.md new file mode 100644 index 0000000000..2aedf405a1 --- /dev/null +++ b/dev-docs/bidders/ergadx.md @@ -0,0 +1,27 @@ +--- +layout: bidder +title: eRGADX +description: eRGADX Bidder Adaptor +pbjs: true +pbs: true +biddercode: ergadx +aliasCode : adkernel +media_types: banner, native, video +gdpr_supported: true +usp_supported: true +coppa_supported: true +pbs_app_supported: true +schain_supported: true +--- + +### Note: + +The eRGADX bidding adapter requires setup and approval before implementation. Please reach out to for more details. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------|----------|-----------------------|---------------------------|----------| +| `host` | required | RTB host | `'cpm.ergadx.com'` | `string` | +| `zoneId` | required | Zone Id | 30164 | `integer` | diff --git a/dev-docs/bidders/etarget.md b/dev-docs/bidders/etarget.md index 251697a776..41c3198529 100644 --- a/dev-docs/bidders/etarget.md +++ b/dev-docs/bidders/etarget.md @@ -6,6 +6,7 @@ pbjs: true biddercode: etarget media_types: banner, video gdpr_supported: true +fpd_supported: true --- diff --git a/dev-docs/bidders/feedad.md b/dev-docs/bidders/feedad.md index 58d470c9b2..14bb43c6a8 100644 --- a/dev-docs/bidders/feedad.md +++ b/dev-docs/bidders/feedad.md @@ -4,7 +4,9 @@ title: FeedAd description: Prebid FeedAd Bidder Adaptor pbjs: true biddercode: feedad -media_types: banner, video +gdpr_supported: true +media_types: banner +gvl_id: 781 --- ### Bid Params diff --git a/dev-docs/bidders/fidelity.md b/dev-docs/bidders/fidelity.md index 5aad9203a4..2ccca5fb16 100644 --- a/dev-docs/bidders/fidelity.md +++ b/dev-docs/bidders/fidelity.md @@ -9,6 +9,7 @@ media_types: banner gdpr_supported: true usp_supported: true gvl_id: 408 +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/getintent.md b/dev-docs/bidders/getintent.md index a91d9b2780..671ec6fe1f 100644 --- a/dev-docs/bidders/getintent.md +++ b/dev-docs/bidders/getintent.md @@ -4,7 +4,8 @@ title: GetIntent description: Prebid GetIntent Bidder Adaptor pbjs: true biddercode: getintent -media_types: video +media_types: video, banner +floors_supported: true --- @@ -23,6 +24,22 @@ media_types: video #### video +Adapter supports the following mediaTypes.video parameters: + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|--------------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------|------------------| +| `protocols` | optional | The list of the restricted VAST protocol versions. Possible values: `1` – VAST 1.0, `2` – VAST 2.0, `3` – VAST 3.0, `4` – VAST 1.0 Wrapper, `5` – VAST 2.0 Wrapper, `6` – VAST 3.0 Wrapper. | `[4,5,6]` | `Array` | +| `mimes` | optional | Array of Mime Type strings. | `['application/javascript']` | `Array` | +| `minduration`| optional | Minimal video duration. | `30` | `integer` | +| `maxduration`| optional | Maximal video duration. | `30` | `integer` | +| `minbitrate` | optional | Minimal Video bitrate. | `256` | `integer` | +| `maxbitrate` | optional | Maximal Video bitrate. | `512` | `integer` | +| `api` | optional | API of the inventory. Possible values: `1` - VPAID 1.0, `2` - VPAID 2.0, `3` - MRAID-1, `4` - ORMMA, `5` - MRAID-2. | `[3,4]` | `Array` | +| `skip` | optional | Skippability of the inventory. Possible values (case insensitive): `1` - skippable inventory is allowed, `0` - skippable inventory is not allowed. | `0` | `integer` | + +List of custom parameters available at bidder params level + {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |-------------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------|------------------| diff --git a/dev-docs/bidders/gnet.md b/dev-docs/bidders/gnet.md new file mode 100644 index 0000000000..3365cc1602 --- /dev/null +++ b/dev-docs/bidders/gnet.md @@ -0,0 +1,15 @@ +--- +layout: bidder +title: Gnet +description: Prebid Gnet Bidder Adaptor +pbjs: true +biddercode: gnet +--- + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|--------------------------------------------|-------------------------------------|----------| +| `websiteId` | required | The Gnet website ID | `'4'` | `string` | + diff --git a/dev-docs/bidders/go2net.md b/dev-docs/bidders/go2net.md index 7210f822de..f1ce1099d6 100644 --- a/dev-docs/bidders/go2net.md +++ b/dev-docs/bidders/go2net.md @@ -11,6 +11,7 @@ media_types: video ### bid params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|--------|----------|-------------|---------|----------| -| `zone` | required | | | `string` | +| Name | Scope | Description | Example | Type | +|---------------|----------|----------------------------------------------------------------------------------------------------------------|----------------------------------------|----------| +| `zone` | required | The unique identifier of the ad placement. Could be obtained from the Go2Net UI or from your account manager. | "e5ff8e48-4bd0-4a2c-9236-55530ab8981d" | `string` | +| `kvTargeting` | optional | Key/Value - a pair of the unique values that will be used for the custom targeting option. | {key1: value2, key2: value2} | `object` | diff --git a/dev-docs/bidders/gothamads.md b/dev-docs/bidders/gothamads.md index ea830b0279..d41aa86cbd 100644 --- a/dev-docs/bidders/gothamads.md +++ b/dev-docs/bidders/gothamads.md @@ -6,10 +6,11 @@ biddercode: gothamads gdpr_supported: true usp_supported: true coppa_supported: true +ccpa_supported: true schain_supported: true media_types: banner, video, native safeframes_ok: true -bidder_supports_deals: true +deals_supported: true pbjs: true --- diff --git a/dev-docs/bidders/grid.md b/dev-docs/bidders/grid.md index bbf036a2c2..8ca173f0fd 100644 --- a/dev-docs/bidders/grid.md +++ b/dev-docs/bidders/grid.md @@ -9,8 +9,11 @@ media_types: banner, video gdpr_supported: true usp_supported: true schain_supported: true -getFloor: true +floors_supported: true userIds: all +tcf2_supported: true +coppa_supported: true +fpd_supported: true --- diff --git a/dev-docs/bidders/gridNM.md b/dev-docs/bidders/gridNM.md index a7145c9c2b..fc92e91a17 100644 --- a/dev-docs/bidders/gridNM.md +++ b/dev-docs/bidders/gridNM.md @@ -7,6 +7,7 @@ biddercode: gridNM media_types: video gdpr_supported: true usp_supported: true +fpd_supported: true --- @@ -20,11 +21,11 @@ usp_supported: true | `source` | required | source of traffic, in JW Player case should be 'jwp' | `'jw_player'` | `string` | | `pubdata` | optional | publisher data, will be used by JW Player to pass their info | `{"jwpseg" : ["1111", "2222"]})` | `object` | | `floorcpm` | optional | floor cpm | `0.56` | `float` | -| `video` | required | video parameters which should be passed for no-mapping approach | | `object` | -| `video.mimes` | required | Content MIME types supported | `['video/mp4', 'video/x-ms-wmv']` | `string array` | +| `video` | optional | video parameters which should be passed for no-mapping approach | | `object` | +| `video.mimes` | optional | Content MIME types supported | `['video/mp4', 'video/x-ms-wmv']` | `string array` | | `video.mind` | optional | Minimum video ad duration in seconds. | `1` | `integer` | | `video.maxd` | optional | Maximum video ad duration in seconds | `60` | `int` | -| `video.protocols` | required | Array of supported video protocols | `[1,2,3,4,5,6]` | `integer array` | +| `video.protocols` | optional | Array of supported video protocols | `[1,2,3,4,5,6]` | `integer array` | | `video.size` | optional | player size wxh | `'300x250'` | `string` | | `video.linearity` | optional | Indicates if the impression must be linear, nonlinear, etc. | `1` | `int` | | `video.skip` | optional | Indicates if the player will allow the video to be skipped, where 0 = no, 1 = yes. | `0` | `int` | diff --git a/dev-docs/bidders/growads.md b/dev-docs/bidders/growads.md new file mode 100644 index 0000000000..8f7c295ad4 --- /dev/null +++ b/dev-docs/bidders/growads.md @@ -0,0 +1,18 @@ +--- +layout: bidder +title: GrowAdvertising +description: Prebid GrowAdvertising Bidder Adapter +pbjs: true +biddercode: growads +media_types: banner, native +--- + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------|----------|-----------|--------------------|----------| +| `zoneId` | required | ZoneId ID | `'unique-zone-id'` | `string` | +| `domain` | optional | Domain | `'example.org'` | `string` | +| `minCPM` | optional | Minimum CPM | `1.5` | `float` | +| `maxCPM` | optional | Maximum CPM | `10.8` | `float` | diff --git a/dev-docs/bidders/gumgum.md b/dev-docs/bidders/gumgum.md index b4be8091aa..c655f75fd9 100644 --- a/dev-docs/bidders/gumgum.md +++ b/dev-docs/bidders/gumgum.md @@ -8,10 +8,11 @@ pbs_app_supported: true biddercode: gumgum media_types: banner, video schain_supported: true -getFloor: true -userIds: unifiedId +floors_supported: true +userIds: unifiedId, identityLink gdpr_supported: true usp_supported: true +fpd_supported: true --- ### Note: @@ -28,23 +29,24 @@ Client side and server side parameters differ slightly. For Server side (Prebid ### Server Side Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|----------------|--------------------------------------------|-----------------------|------------------------|-----------| -| `zone` | pubId or zone required for all bid requests| Tracking ID | `'ggumtest'` | `string` | -| `pubId` | pubId or zone required for all bid requests| Publisher ID | `123` | `integer` | -| `irisid` | optional | Iris.tv ID | `'iris_6f9285823a4'` | `string` | +| Name | Scope | Description | Example | Type | +|----------------|------------------------------------------------------------------|-----------------------|------------------------|-----------| +| `zone` | required for all bid requests tracking a single domain or site | Tracking ID | `'ggumtest'` | `string` | +| `pubId` | required for all bid requests tracking multiple domains or sites | Publisher ID | `123` | `integer` | +| `irisid` | optional | Iris.tv ID | `'iris_6f9285823a4'` | `string` | +| `slot` | optional | Placement ID | `40` | `number` | ### Client Side Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|----------------|--------------------------------------------|-----------------------|------------------------|-----------| -| `zone` | pubId or zone required for all bid requests| Tracking ID | `'ggumtest'` | `string` | -| `pubId` | pubId or zone required for all bid requests| Publisher ID | `123` | `integer` | -| `slot` | required for slot placement only | Slot ID | `9` | `integer` | -| `iriscat` | optional | Iris.tv segments | `'segment1,segment2'` | `string` | -| `irisid` | optional | Iris.tv ID | `'123'` | `string` | -| `bidfloor` | optional | CPM bidfloor in USD | `0.03` | `float` | +| Name | Scope | Description | Example | Type | +|----------------|------------------------------------------------------------------|-----------------------|------------------------|-----------| +| `zone` | required for all bid requests tracking a single domain or site | Tracking ID | `'ggumtest'` | `string` | +| `pubId` | required for all bid requests tracking multiple domains or sites | Publisher ID | `123` | `integer` | +| `slot` | required for slot placement only | Slot ID | `9` | `integer` | +| `iriscat` | optional | Iris.tv segments | `'segment1,segment2'` | `string` | +| `irisid` | optional | Iris.tv ID | `'123'` | `string` | +| `bidfloor` | optional | CPM bidfloor in USD | `0.03` | `float` | ### Legacy Client Side Bid Params diff --git a/dev-docs/bidders/h12media.md b/dev-docs/bidders/h12media.md index 3897b21f95..46531323fd 100644 --- a/dev-docs/bidders/h12media.md +++ b/dev-docs/bidders/h12media.md @@ -6,18 +6,22 @@ pbjs: true biddercode: h12media media_types: banner gdpr_supported: true +usp_supported: true +userIds: all --- ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|---------------|----------|------------------------|-----------------------------|----------| -| `pubid` | required | Publisher ID | `123` | `string` | -| `placementid` | optional | Publisher placement ID | `321` | `string` | -| `size` | optional | Creative size | `'300x250'` | `string` | -| `endpointdom` | optional | Custom Endpoint URL | `https://h12-media.com/bid` | `string` | +| Name | Scope | Description | Example | Type | +|------------------|----------|------------------------|-----------------------------|----------| +| `pubid` | required | Publisher ID | `123` | `string` | +| `pubsubid` | optional | Publisher Sub ID | `123` | `string` | +| `pubcontainerid` | optional | Custom container ID | `123` | `string` | +| `placementid` | optional | Publisher placement ID | `321` | `string` | +| `size` | optional | Creative size | `'300x250'` | `string` | +| `endpointdom` | optional | Custom Endpoint URL | `https://h12-media.com/bid` | `string` | Example: diff --git a/dev-docs/bidders/haxmedia.md b/dev-docs/bidders/haxmedia.md index 39cb056b81..6931acb025 100644 --- a/dev-docs/bidders/haxmedia.md +++ b/dev-docs/bidders/haxmedia.md @@ -9,6 +9,7 @@ media_types: banner, video, native gdpr: true pbjs: true pbs: false +pbjs_version_notes: not in 5.x --- ### Prebid.JS Bid Params diff --git a/dev-docs/bidders/hpmdnetwork.md b/dev-docs/bidders/hpmdnetwork.md index 62c5fe86d3..026647b478 100644 --- a/dev-docs/bidders/hpmdnetwork.md +++ b/dev-docs/bidders/hpmdnetwork.md @@ -5,6 +5,7 @@ description: Prebid HPMD Network Bidder Adaptor pbjs: true biddercode: hpmdnetwork media_types: banner +pbjs_version_notes: not in 5.x --- Note: diff --git a/dev-docs/bidders/huaweiads.md b/dev-docs/bidders/huaweiads.md new file mode 100644 index 0000000000..1211990c2b --- /dev/null +++ b/dev-docs/bidders/huaweiads.md @@ -0,0 +1,34 @@ +--- +layout: bidder +title: HuaweiAds +description: Prebid HuaweiAds Bidder Adapter +biddercode: huaweiads +gvl_id: 856 +media_types: banner, video, native +safeframes_ok: false +deals_supported: true +pbjs: false +pbs: true +pbs_app_supported: true +prebid_member: false +--- + +### Note: + +The Example Bidding adapter requires setup before beginning. Please contact us at hwads@huawei.com. +1. The following parameters need to be registered on the HuaweiAds platform, and at the same time, the permission to access the server interface needs to be opened on the HuaweiAds platform. +2. You can find ( publisherid, signkey, keyid ) on the platform after registration. +3. You need to create your advertising creative on the platform and get the corresponding ( slotid, adtype ). +4. We need OAID, GAID, IMEI (One must not be empty, you can collect OAID first, or use GAID) in our request, so when using prebidmobile, please add something like "TargetingParams.addUserData("oaid", "oaid-test") TargetingParams.addUserData("gaid", "gaid-test") TargetingParams.addUserData("imei", "imei-test")". +5. You can also send the clientTime to the HuaweiAds Adx server, like "TargetingParams.addUserData("clientTime", "2018-11-02 16:34:07.981+0800")". if not, it will use the prebid server time and zone. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|--------------|-----------|----------| +| `publisherid` | required | Publisher Id | `'2001000399'` | `string` | +| `signkey` | required | Sign Key | `'5d********82c38594f8b2bdfd9f********a398dca734932898e3********8d'` | `string` | +| `keyid` | required | Key Id | `'2'` | `string` | +| `slotid` | required | Slot Id | `'u42ohmaufh'` | `string` | +| `adtype` | required | Ad Type | `'native'` | `string` | diff --git a/dev-docs/bidders/ias.md b/dev-docs/bidders/ias.md index cdbe4c3fa3..c9e88f4860 100644 --- a/dev-docs/bidders/ias.md +++ b/dev-docs/bidders/ias.md @@ -4,6 +4,7 @@ title: Integral Ad Science (IAS) description: Prebid Integral Ad Science Bidder Adaptor pbjs: true biddercode: ias +pbjs_version_notes: for 5.x, use the module --- ### Note: diff --git a/dev-docs/bidders/imonomy.md b/dev-docs/bidders/imonomy.md index 18d76122a5..134cc2b5c2 100644 --- a/dev-docs/bidders/imonomy.md +++ b/dev-docs/bidders/imonomy.md @@ -4,6 +4,7 @@ title: Imonomy description: Prebid Imonomy Bidder Adaptor pbjs: true biddercode: imonomy +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/impactify.md b/dev-docs/bidders/impactify.md new file mode 100644 index 0000000000..20c55f326b --- /dev/null +++ b/dev-docs/bidders/impactify.md @@ -0,0 +1,60 @@ +--- +layout: bidder +title: Impactify +description: Prebid Impactify Bidder Adapter +pbjs: true +pbs: true +biddercode: impactify +gdpr_supported: true +tcf2_supported: true +usp_supported: true +schain_supported: true +coppa_supported: true +media_types: video +userIds: criteo, id5Id, pubCommonId, unifiedId, uid2, netId +gvl_id: 606 +--- + +### Note: + +The Impactify adaptator requires setup and validation from the Impactify team. Simply email us your contact details at support@impactify.io and we'll make sure we'll connect you within 48h. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|----------------------------------------------------|----------------|-----------| +| `appId` | required | Impactify publisher id (Contact us) | `'example.com'` | `string` | +| `format` | required | Impactify ad format (screen or display) | `'screen'` | `string` | +| `style` | required | Impactify ad style (inline, impact or static) | `'impact'` | `string` | + +### Configuration + +Impactify recommends the UserSync configuration below. Without it, the Impactify adapter will not be able to perform user syncs, which lowers match rate and reduces monetization. + +For Prebid.js v1.15.0 and later: + +```javascript +pbjs.setConfig({ + userSync: { + filterSettings: { + iframe: { + bidders: '*', // '*' represents all bidders + filter: 'include' + } + } + } +}); +``` + +For Prebid.js v1.14.0 and before: + +```javascript +pbjs.setConfig({ + userSync: { + iframeEnabled: true, + enabledBidders: ['impactify'] + }}); +``` + +Note: Combine the above configuration with any other UserSync configuration. Multiple setConfig() calls overwrite each other and only the last call for a given attribute will take effect. diff --git a/dev-docs/bidders/improvedigital.md b/dev-docs/bidders/improvedigital.md index c2257fcf6b..89a765d3a4 100644 --- a/dev-docs/bidders/improvedigital.md +++ b/dev-docs/bidders/improvedigital.md @@ -6,7 +6,7 @@ biddercode: improvedigital pbjs: true pbs: true gdpr_supported: true -userIds: criteo, id5Id +userIds: all usp_supported: true media_types: banner, native, video schain_supported: true diff --git a/dev-docs/bidders/inmar.md b/dev-docs/bidders/inmar.md index 23f028e296..f00dc47243 100644 --- a/dev-docs/bidders/inmar.md +++ b/dev-docs/bidders/inmar.md @@ -8,7 +8,8 @@ usp_supported: true userIds: identityLink, liveIntentId, unifiedId, pubCommonId, pubProvidedId, sharedId media_types: banner, video safeframes_ok: false -bidder_supports_deals: true +deals_supported: true +fpd_supported: true pbjs: true --- ### Note: diff --git a/dev-docs/bidders/inmobi.md b/dev-docs/bidders/inmobi.md index aa87c6cb33..bafea45f6d 100644 --- a/dev-docs/bidders/inmobi.md +++ b/dev-docs/bidders/inmobi.md @@ -7,7 +7,8 @@ gdpr_supported: true usp_supported: false gvl_id: 333 coppa_supported: true -media_types: banner, video +schain_supported: true +media_types: banner, video, native pbs: true pbs_app_supported: true --- @@ -17,6 +18,12 @@ pbs_app_supported: true The InMobi Prebid adapter requires a setup to create placement IDs. Please contact your InMobi partner manager for setup assistance. For queries, write to us at prebid-support@inmobi.com +### User Sync Disclosure: + +InMobi has partnered with a third party, ID5, to use their ID as our primary user identifier for mobile web supply. We will also rely on ID5 IDs to handle compliance flows related to Data Subject Right requests in our systems. Hence, we require the publisher to use ID5’s sync URL for user syncing and passing the corresponding ID5 ID to InMobi in the bid request. For this purpose, we provide ID5’s sync URL in our Prebid adapter for User ID sync. Note that, InMobi has a direct contract with ID5 for consuming ID5 ID and the user sync via Prebid does not require the publisher to get into a contractual relationship with ID5. + +To opt out of InMobi ads on mobile web inventory or for any other requests, the user needs to visit the Opt-out page on InMobi website (https://www.inmobi.com/page/opt-out/). For opting out of ID5 ID entirely, the user needs to visit ID5’s opt out page: https://id5.io/platform-privacy-policy/. + ### Bid Params {: .table .table-bordered .table-striped } diff --git a/dev-docs/bidders/insticator.md b/dev-docs/bidders/insticator.md new file mode 100644 index 0000000000..794279bd07 --- /dev/null +++ b/dev-docs/bidders/insticator.md @@ -0,0 +1,17 @@ +--- +layout: bidder +title: Insticator +description: Prebid Insticator Bidder Adapter +biddercode: insticator +gdpr_supported: true +media_types: banner +pbjs: true +gvl_id: 910 +--- + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------|----------|-----------------|----------------------|-----------| +| `adUnitId` | Required | The ad unit ID provided by Insticator | `'test'` | `string` | diff --git a/dev-docs/bidders/integr8.md b/dev-docs/bidders/integr8.md new file mode 100644 index 0000000000..27662ef942 --- /dev/null +++ b/dev-docs/bidders/integr8.md @@ -0,0 +1,17 @@ +--- +layout: bidder +title: Integr8 +description: Prebid Integr8 Bidder Adapter +pbjs: true +biddercode: integr8 +media_types: banner, video +--- + + +### Bid Params + +| Name | Scope |Description | Example | Type | +|---------------|----------|------------------------------------------------------------------------|--------------------|-----------| +| `propertyId` | required |Property id | `"12345"` | `string` | +| `placementId` | required |Placement id | `"54321"` | `string` | +| `data` | optional |Catalog data (contents) and/or inventory data (custom key/value pairs) | `{catalogs: [{ catalogId: "699229", items: ["193", "4", "1"] }], inventory: { category: ["tech"], query: ["iphone 12"] }}` | `object` | diff --git a/dev-docs/bidders/interactiveOffers.md b/dev-docs/bidders/interactiveOffers.md index 1138f7c5bc..daadab5e9d 100644 --- a/dev-docs/bidders/interactiveOffers.md +++ b/dev-docs/bidders/interactiveOffers.md @@ -1,7 +1,8 @@ --- layout: bidder title: InteractiveOffers -description: Prebid InteractiveOffers.com Bidder Adaptor +description: Prebid InteractiveOffers.com Bidder Adapter +pbs: true pbjs: true biddercode: interactiveOffers gdpr_supported: false @@ -9,15 +10,14 @@ media_types: banner --- ### Note: -Module that connects to interactiveOffers demand sources. Param pubId is required. +Module that connects to interactiveOffers demand sources. Param partnerId is required. ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|----------|----------|----------------------------------------------------------------------|-----------------------------------|-----------| -| `pubId` | required | The placement ID (site channel ID) | `4` | `integer` | -| `tmax` | optional | Max timeout for response | `150` | `integer` | +| Name | Scope | Description | Example | Type | +|---------------|----------|-------------|---------|----------| +| `partnerId` | required | Partner id | 'abc123' | `string` | Example: @@ -25,8 +25,7 @@ Example: { bidder: "interactiveOffers", params: { - pubId: 4, - tmax: 150 + partnerId: "abc123" } } ``` diff --git a/dev-docs/bidders/invamia.md b/dev-docs/bidders/invamia.md new file mode 100644 index 0000000000..ec5dc91a79 --- /dev/null +++ b/dev-docs/bidders/invamia.md @@ -0,0 +1,23 @@ +--- +layout: bidder +title: Invamia +description: Prebid Invamia Bidder Adapter +pbjs: true +biddercode: invamia +safeframes_ok: false +--- + +### Note + +Here is what you need for Prebid integration with Invamia: +1. Register with Invamia. +2. Once registered and approved, you will receive a Zone ID. +3. Use the Zone ID as parameters in params. + + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|--------------|------------------------------------------------|----------| +| `zoneId` | required | Zone ID | `379783` | `number` | diff --git a/dev-docs/bidders/invibes.md b/dev-docs/bidders/invibes.md index f95aed8c7a..993d1a3c81 100644 --- a/dev-docs/bidders/invibes.md +++ b/dev-docs/bidders/invibes.md @@ -5,6 +5,8 @@ description: Prebid Invibes Bidder Adaptor pbjs: true biddercode: invibes gdpr_supported: true +tcf2_supported: true +userIds: pubCommonId, pubProvidedId, uid2, zeotapIdPlus, id5id pbs: true --- @@ -14,7 +16,6 @@ pbs: true | Name | Scope | Description | Example | Type | |-----------------|----------|--------------------------------------|-------------------------------------------------|----------| | `placementId` | required | The Invibes placement ID | `'1234567'` | `string` | -| `adContainerId` | optional | Id of ad container (only prebid js) | `'test-div'` | `string` | | `domainId` | optional | Id of domain (only prebid server) | `1001` | `integer`| | `debug` | optional | Debug paramentes (only prebid server)| `{ "testBvid": "1234", "testLog": true }` | `object` | diff --git a/dev-docs/bidders/iprom.md b/dev-docs/bidders/iprom.md index 14730c6833..5c123a13db 100644 --- a/dev-docs/bidders/iprom.md +++ b/dev-docs/bidders/iprom.md @@ -5,6 +5,7 @@ description: iPROM Prebid Adaptor biddercode: iprom media_types: banner pbjs: true +pbjs_version_notes: not in 5.x --- ### Prebid Server Note: diff --git a/dev-docs/bidders/iqm.md b/dev-docs/bidders/iqm.md index a9c01669a9..a3251a5a72 100644 --- a/dev-docs/bidders/iqm.md +++ b/dev-docs/bidders/iqm.md @@ -6,14 +6,78 @@ pbjs: true biddercode: iqm --- - -### Bid Params +# Parameters {: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | +| :------------ | :------- | :------------------------ | :------------------- | +| `publisherId` | required | The Publisher ID from iQM | "df5fd732-c5f3-11e7-abc4-cec278b6b50a" | +| `geo.country` | required | The publisher country| "USA" | +| `placementId` | required | The Placement ID from iQM | 23451 | +| `bidfloor` | optional | Bid Floor | 0.50 | + +# Description + +Module that connects to iQM demand sources + +# Test Parameters +``` +var adUnits = [{ + code: 'div-gpt-ad-1460505748561-0', + mediaTypes: { + banner: { + sizes: [[300,250]] + } + }, + + bids: [{ + bidder: 'iqm', + params: { + geo:{ + country:'USA' + }, + + publisherId: 'df5fd732-c5f3-11e7-abc4-cec278b6b50a', + placementId: 23451, + bidfloor: 0.50 + } + }] + + }] + +``` + +# adUnit Video + +``` + var videoAdUnit = { + code: 'video1', + mediaTypes: { + video: { + playerSize: [640, 480], + context: 'instream' + } + }, + bids: [{ + bidder: 'iqm', + params: { + // placementId: iosDevice ? 13239390 : 13232361, // Add your own placement id here. Note, skippable video is not supported on iOS + publisherId: 'df5fd732-c5f3-11e7-abc4-cec278b6b50a', + placementId: 23451, + geo:{ + country:'USA' + }, + + bidfloor: 0.05, + video: { + placement :2, + mimes: ['video/mp4'], + protocols: [2,5], + skipppable: true, + playback_method: ['auto_play_sound_off'] + } + } + }] + }; -| Name | Scope | Description | Example | Type | -|---------------|----------|----------------------------|------------------------------------------|-----------| -| `publisherId` | required | The Publisher ID from iQM. | `'df5fd732-c5f3-11e7-abc4-cec278b6b50a'` | `string` | -| `tagId` | required | The Tag ID from iQM. | `'1c5c9ec2-c5f4-11e7-abc4-cec278b6b50a'` | `string` | -| `placementId` | required | The Placement ID from iQM. | `'50cc36fe-c5f4-11e7-abc4-cec278b6b50a'` | `string` | -| `bidfloor` | required | Bid floor | `0.50` | `integer` | +``` diff --git a/dev-docs/bidders/iqzone.md b/dev-docs/bidders/iqzone.md new file mode 100644 index 0000000000..099cde3ba5 --- /dev/null +++ b/dev-docs/bidders/iqzone.md @@ -0,0 +1,32 @@ +--- +layout: bidder +title: IQzone +description: Prebid IQzone Bidder Adapter +biddercode: iqzone +usp_supported: true +gdpr_supported: true +schain_supported: true +media_types: banner, video, native +pbjs: true +pbs: true +pbs_app_supported: true +--- + +### Prebid.js Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-----------------------|-----------|-----------| +| `placementId` | required | Placement Id | `'0'` | `'string'` | + +### Prebid server Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-----------------------|-----------|-----------| +| `placementId` | optional | Placement Id | `'0'` | `'string'` | +| `endpointId` | optional | Endpoint Id | `'0'` | `'string'` | + +### Note + +For the prebid server, you only need to use one parameter, placementId or endpointId diff --git a/dev-docs/bidders/ironsource.md b/dev-docs/bidders/ironsource.md index 3c2add5d2f..f8d1ee0ebc 100644 --- a/dev-docs/bidders/ironsource.md +++ b/dev-docs/bidders/ironsource.md @@ -8,6 +8,7 @@ media_types: no-display, video schain_supported: true gdpr_supported: true usp_supported: true +pbjs_version_notes: not in 5.x --- ### Note diff --git a/dev-docs/bidders/ix.md b/dev-docs/bidders/ix.md index 7c0d2caac0..c19447d1ee 100644 --- a/dev-docs/bidders/ix.md +++ b/dev-docs/bidders/ix.md @@ -5,12 +5,15 @@ description: Prebid Index Exchange Bidder Adapter biddercode: ix pbjs: true pbs: true -userIds: identityLink, netId, fabrickId, zeotapIdPlus +userIds: identityLink, netId, fabrickId, zeotapIdPlus, uid2 pbs_app_supported: true schain_supported: true +coppa_supported: true gdpr_supported: true +floors_supported: true usp_supported: true media_types: banner, video +fpd_supported: true gvl_id: 10 prebid_member: yes --- @@ -25,37 +28,16 @@ Maintainer: prebid.support@indexexchange.com ## Description -Publishers may access Index Exchange's (IX) network of demand -sources through our Prebid.js and Prebid Server adapters. Both of these modules are GDPR and CCPA compliant. +Publishers may access Index Exchange's (IX) network of demand sources through our Prebid.js and Prebid Server adapters. Both of these modules are GDPR and CCPA compliant. ### IX Prebid.js Adapter -Our Prebid.js adapter is compatible with both the older ad unit format where the `sizes` and -`mediaType` properties are placed at the top-level of the ad unit, and the newer -format where this information is encapsulated within the `mediaTypes` object. We -recommend that you use the newer format when possible as it will be better able -to accommodate new feature additions. +This module connects publishers to Index Exchange's (IX) network of demand sources through Prebid.js. This module is GDPR and CCPA compliant. -If a mix of properties from both formats is present within an ad unit, the -newer format's properties will take precedence. +It is compatible with the new Prebid.js 5.0 ad unit format where banner and video properties, including the size parameter, are stored in the `adUnits[].mediaTypes` object. IX still supports both size as an optional parameter and the Missing Sizes feature, but we recommend upgrading to the Prebid.js 5.0 format. -Here are examples of both formats. +For more information about how the `adUnits[].mediaTypes` object is formatted in Prebid.js 5.0, refer to the following example. -##### Older Format -```javascript -var adUnits = [{ - // ... - - sizes: [ - [300, 250], - [300, 600] - ] - - // ... -}]; -``` - -##### Newer Format ```javascript var adUnits = [{ // ... @@ -68,60 +50,63 @@ var adUnits = [{ }, video: { context: 'instream', - playerSize: [ - [1280, 720] - ] + playerSize: [300, 250] } }, // ... }]; ``` - ### Supported Media Types (Prebid.js) {: .table .table-bordered .table-striped } -| Type | Support | -| ------ | ------- | -| `Banner` | Fully supported for all IX approved sizes. | -| `Video` | Fully supported for all IX approved sizes. | -| `Native` | Not supported. | +| Type | Support | +|---|---| +| `banner` | Fully supported for all IX approved sizes | +| `video` | Fully supported for all IX approved sizes | +| `native` | Not supported | ### Supported Media Types (Prebid Server) {: .table .table-bordered .table-striped } | Type | Support | -| ------ | ------- | -| `Banner` | Fully supported for all IX approved sizes. | -| `Video` | Fully supported for all IX approved sizes. | -| `Native` | Not supported. | +|------|-------| +| `banner` | Fully supported | +| `video` | Fully supported, including ad pods for OTT | +| `native` | Not supported | + +# Ad Unit or Bidder Parameters + +These params can be specified in the ad unit level, which will be the preferred way going forward with PBJS 5.0 + +Each of the IX-specific parameters provided under the object are detailed here. -## Bid Parameters +The following parameters are specified in the ad unit `adUnits[].mediaTypes`. This includes each of the IX-specific parameters provided under `adUnits[].bids[].params`. -Each of the IX-specific parameters provided under the `adUnits[].bids[].params` -object are detailed here. +In Prebid.js versions 5.0 and above, mediaType and sizes are not required to be defined at the ad unit level. ### Banner {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -| ---- | ----- | ----------- | ------- | ---- | -| `siteId` | Required | An IX-specific identifier that is associated with a specific size on this ad unit. This is similar to a placement ID or an ad unit ID that some other modules have. | `'3723'` | `string` | -| `size` | Required for client-side serving | The single size associated with the site ID. It should be one of the sizes listed in the ad unit under `adUnits[].sizes` or `adUnits[].mediaTypes.banner.sizes`. Note that the 'ix' Prebid Server bid adapter ignores this parameter. | `[300, 250]` | `Array` | -| `id` | Optional | An alphanumerical value used to identify the `slot_id` in reporting | `id: 'billboardHomepage'`, `id: 'billboardArticle'` | `string` | +| Key | Scope | Type | Description | +|---|---|---|---| +| `siteId` | Required | String | An IX-specific identifier that is associated with this ad unit. It will be associated to the single size, if the size provided. This is similar to a placement ID or an ad unit ID that some other modules have. For example, `'3723'`, `'6482'`, `'3639'`| +| `sizes` | Optional | Number[Number[]] | The size/sizes associated with the site ID, as listed in the ad unit under `adUnits[].mediaTypes.banner.sizes`. For example, `[300, 250], [300, 600], [728, 90]`| ### Video {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -| ---- | ----- | ----------- | ------- | ---- | -| `siteId` | Required | An IX-specific identifier that is associated with a specific size on this ad unit. This is similar to a placement ID or an ad unit ID that some other modules have. | `'3723'` | `string` | -| `size` | Required | The single size associated with the site ID. It should be one of the sizes listed in the ad unit under `adUnits[].sizes` or `adUnits[].mediaTypes.video.playerSize`. | `[300, 600]` | `Array` | -| `video` | Required | The video object will serve as the properties of the video ad. You can create any field under the video object that is mentioned in the `OpenRTB Spec v2.5`. Some fields like `mimes`, `protocols`, `minduration`, `maxduration` are required. Properties not defined at this level, will be pulled from the Adunit level. | `video: { startdelay: 0 }` | `object` | -| `video.mimes` | Required | Array list of content MIME types supported. | `['video/mp4', 'video/x-flv']` | `Array` | -| `video.minduration` | Required | Minimum video ad duration in seconds. | `0` | `integer` | -| `video.maxduration` | Required | Maximum video ad duration in seconds. | `300` | `integer` | -| `video.protocol` / `video.protocols` | Required | Either a single protocol provided as an integer, or protocols provided as a list of integers. `2` - VAST 2.0, `3` - VAST 3.0, `5` - VAST 2.0 Wrapper, `6` - VAST 3.0 Wrapper | `[2,3,5,6]` | `integer` / `Array` | -| `id` | Optional | An alphanumerical value used to identify the `slot_id` in reporting | `id: 'inStreamCTP'`, `id: 'inStreamAutoPlay'` | `string` | +| Key | Scope | Type | Description | +|---|---|---|---| +| `siteId` | Required | String | An IX-specific identifier that is associated with this ad unit. It will be associated to 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, `'3723'`, `'6482'`, `'3639'`| +| `size` | Optional | Number[] | The single size that is associated with the site ID, as listed in the ad unit under `adUnits[].sizes` or `adUnits[].mediaTypes.video.playerSize`. For example, [300, 250], [300, 600].

    This parameter is optional in Prebid.js versions 5.0 and above. Versions prior to 5.0 will still require a size parameter.| +| `video` | Optional | Hash | The video object will serve as the properties of the video ad. You can create any field under the video object that is mentioned in the `OpenRTB Spec v2.5`. Some fields like `mimes, protocols, minduration, maxduration` are required. Properties not defined at this level, will be pulled from the Adunit level.| +| `video.w` | Required | Integer | The video player size width in pixels that will be passed to demand partners.| +| `video.h` | Required | Integer | The video player size height in pixels that will be passed to demand partners.| +| `video.playerSize` | Optional* | Integer | The video player size that will be passed to demand partners. * In the absence of `video.w` and `video.h`, this field is required.| +| `video.mimes` | Required | String[] | Array list of content MIME types supported. Popular MIME types include, but are not limited to, `"video/x-ms- wmv"` for Windows Media and `"video/x-flv"` for Flash Video.| +| `video.minduration` | Required | Integer | Minimum video ad duration in seconds.| +| `video.maxduration` | Required | Integer | Maximum video ad duration in seconds.| +| `video.protocol` / `video.protocols` | Required | Integer / Integer[] | Either a single protocol provided as an integer, or protocols provided as a list of integers. `2` - VAST 2.0, `3` - VAST 3.0, `5` - VAST 2.0 Wrapper, `6` - VAST 3.0 Wrapper| ## Setup Guide @@ -150,9 +135,7 @@ var adUnits = [{ mediaTypes: { video: { context: 'instream', - playerSize: [ - [1280, 720] - ] + playerSize: [1280, 720] } }, bids: [] @@ -168,13 +151,12 @@ bid objects under `adUnits[].bids`: { bidder: 'ix', params: { - siteId: '123456', - size: [300, 250] + siteId: '123456' } } ``` -Set `params.siteId` and `params.size` in each bid object to the values provided +Set `params.siteId` in the bid object to the values provided by your IX representative. **Examples** @@ -194,14 +176,12 @@ var adUnits = [{ bids: [{ bidder: 'ix', params: { - siteId: '123456', - size: [300, 250] + siteId: '123456' } }, { bidder: 'ix', params: { - siteId: '123456', - size: [300, 600] + siteId: '123456' } }] }]; @@ -209,28 +189,33 @@ var adUnits = [{ **Video (Instream):** ```javascript var adUnits = [{ - code: 'video-request-a', + code: 'video-div-a', mediaTypes: { video: { + // Preferred location for openrtb v2.5 compatible video obj context: 'instream', - playerSize: [ - [1280, 720] - ] + playerSize: [300, 250], + mimes: [ + 'video/mp4', + 'video/webm' + ], + minduration: 0, + maxduration: 60, + protocols: [6] } }, bids: [{ bidder: 'ix', params: { - siteId: '123456', - size: [1280, 720], + siteId: '12345' + } + }, { + bidder: 'ix', + params: { + siteId: '12345', video: { - mimes: [ - 'video/mp4', - 'video/webm' - ], - minduration: 0, - maxduration: 60, - protocols: [6] + // openrtb v2.5 compatible video obj + // If required, use this to override mediaTypes.video.XX properties } } }] @@ -248,7 +233,14 @@ var adUnits = [{ mediaTypes: { video: { context: 'outstream', - playerSize: [[640, 360]] + playerSize: [300, 250], + mimes: [ + 'video/mp4', + 'video/webm' + ], + minduration: 0, + maxduration: 60, + protocols: [6] } }, renderer: { @@ -260,16 +252,9 @@ var adUnits = [{ bids: [{ bidder: 'ix', params: { - siteId: '123456', - size: [640, 360], + siteId: '12345', video: { - mimes: [ - 'video/mp4', - 'video/webm' - ], - minduration: 0, - maxduration: 60, - protocols: [6] + // If required, use this to override mediaTypes.video.XX properties } } }] @@ -310,21 +295,21 @@ pbjs.setConfig({ By default, the IX bidding adapter bids on all banner sizes available in the ad unit when configured to at least one banner size. If you want the IX bidding adapter to only bid on the banner size it’s configured to, switch off this feature using `detectMissingSizes`. ``` pbjs.setConfig({ - ix: { - detectMissingSizes: false - } - }); + ix: { + detectMissingSizes: false + } +}); ``` OR ``` pbjs.setBidderConfig({ - bidders: ["ix"], - config: { - ix: { - detectMissingSizes: false - } - } - }); + bidders: ["ix"], + config: { + ix: { + detectMissingSizes: false + } + } +}); ``` ### 2. Include `ixBidAdapter` in your build process @@ -355,6 +340,35 @@ gulp build --modules=bidderModules.json ## Setting First Party Data (FPD) +As a part of 4.30, IX will start to pick up FPD in the global FPD module, as well as continue to pick up IX bidder-specific FPD. Previous versions of IX Bid Adapter will only support the IX bidder-specific FPD. + +### Global FPD + +As of Prebid.js 4.30, use the more generic `ortb2` interface, which can be used for more than just First Party Data. + +The First Party Data feature allows publishers to specify key/value data in one place where each compatible bid adapter can read it. + +To supply global data, use the [`setConfig()`](/dev-docs/publisher-api-reference/setConfig.html) function as illustrated below: + +``` +pbjs.setConfig({ + ortb2: { + site: { + ... + }, + user: { + ... + } + } +}); +``` + +Use the [`setBidderConfig()`](/dev-docs/publisher-api-reference/setBidderConfig.html) function to supply bidder-specific data. + +For more information about the standard or more detailed examples, refer to [First Party Data Feature](/features/firstPartyData.html). + +### IX bidder-specific FPD + FPD allows you to specify key-value pairs that are passed as part of the query string to IX for use in Private Marketplace Deals which rely on query string targeting for activation. For example, if a user is viewing a @@ -382,6 +396,9 @@ pbjs.setConfig({ The values can be updated at any time by calling `pbjs.setConfig` again. The changes will be reflected in any proceeding bid requests. +{: .alert.alert-warning :} +Continue to use IX bidder-specific First Party Data for IX deals. Global First Party Data is not yet supported in IX deals. Consult your IX representative with any questions. + ## Setting a Server Side Timeout Setting a server-side timeout allows you to control the max length of time taken to connect to the server. The default value when unspecified is 50ms. @@ -452,18 +469,11 @@ towards total impressions on IX's side. ## FAQs -### Why do I have to input size in `adUnits[].bids[].params` for IX when the size is already in the ad unit? - -There are two important reasons why we require it: - -1. An IX site ID maps to a single size, whereas an ad unit can have multiple -sizes. To ensure that the right site ID is mapped to the correct size in the ad -unit we require the size to be explicitly stated. +#### Why do I have to input size in `adUnits[].bids[].params` for IX when the size is already in the ad unit? -2. An ad unit may have sizes that IX does not support. By explicitly stating the -size, you can choose not to have IX bid on certain sizes that are invalid. +If you are using Prebid.js version 5.0 and above, the `size` parameter is not a required field. Only the `siteID` is required, and it is stored with the sizes in the ad unit. -### How can I view the bid request sent to IX by Prebid.js? +#### How can I view the bid request sent to IX by Prebid.js? In your browser of choice, create a new tab and open the developer tools. In developer tools, select the network tab. Then, navigate to a page where IX is diff --git a/dev-docs/bidders/jcm.md b/dev-docs/bidders/jcm.md index a19ec3ce21..266c16c3b4 100644 --- a/dev-docs/bidders/jcm.md +++ b/dev-docs/bidders/jcm.md @@ -4,6 +4,7 @@ title: J Carter Marketing description: Prebid J Carter Marketing Bidder Adaptor pbjs: true biddercode: jcm +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/jixie.md b/dev-docs/bidders/jixie.md index b9241665de..e2945d6bc5 100644 --- a/dev-docs/bidders/jixie.md +++ b/dev-docs/bidders/jixie.md @@ -5,7 +5,7 @@ description: Prebid Jixie Bidder Adaptor pbjs: true pbs: true biddercode: jixie -bidder_supports_deals: false +deals_supported: false media_types: banner, video gdpr_supported: false --- diff --git a/dev-docs/bidders/justpremium.md b/dev-docs/bidders/justpremium.md index 20732ff502..f5eebddc3c 100644 --- a/dev-docs/bidders/justpremium.md +++ b/dev-docs/bidders/justpremium.md @@ -6,6 +6,7 @@ pbjs: true biddercode: justpremium gdpr_supported: true usp_supported: true +schain_supported: true userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, unifiedId --- diff --git a/dev-docs/bidders/kargo.md b/dev-docs/bidders/kargo.md index 6b142ad2bf..562d797b4d 100644 --- a/dev-docs/bidders/kargo.md +++ b/dev-docs/bidders/kargo.md @@ -4,8 +4,11 @@ title: Kargo description: Prebid Kargo Bidder Adaptor pbjs: true biddercode: kargo +media_types: banner, video +gdpr_supported: true userIds: unifiedId usp_supported: true +gvl_id: 972 --- ### Note: diff --git a/dev-docs/bidders/kobler.md b/dev-docs/bidders/kobler.md new file mode 100644 index 0000000000..3a2951ce6d --- /dev/null +++ b/dev-docs/bidders/kobler.md @@ -0,0 +1,72 @@ +--- +layout: bidder +title: Kobler +description: Kobler Bidder Adapter +biddercode: kobler +pbjs: true +media_types: banner +floors_supported: true +deals_supported: true +--- + +### Note: + +The Kobler Bidder Adapter requires setup and approval from Kobler AS. +Please reach out to for more information. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------|--------------------| +| `placementId` | required | The identifier of the placement, it has to be issued by Kobler. | `'xjer0ch8'` | `string` | +| `zip` | optional | Zip code of the user or the medium. When multiple ad units are submitted together, it is enough to set this parameter on the first one. | `'102 22'` | `string` | +| `test` | optional | Whether the request is for testing only. When multiple ad units are submitted together, it is enough to set this parameter on the first one. Defaults to false. | `true` | `boolean` | +| `floorPrice` | optional | Floor price in CPM and in USD. Can be used as an alternative to the [Floors module](https://docs.prebid.org/dev-docs/modules/floors.html), which is also supported by this adapter. Defaults to 0. | `5.0` | `float` | +| `position` | optional | The position of the ad unit. Can be used to differentiate between ad units if the same placement ID is used across multiple ad units. Defaults to 0. | `1` | `string` | +| `dealIds` | optional | Array of deal IDs. | `['abc328745', 'mxw243253']` | `array of strings` | + +### Example +```javascript + const adUnits = [{ + code: 'div-gpt-ad-1460505748561-1', + mediaTypes: { + banner: { + sizes: [[320, 250], [300, 250]], + } + }, + bids: [{ + bidder: 'kobler', + params: { + placementId: 'k5H7et3R0' + } + }] + }]; +``` + +In order to see a sample bid from Kobler (without a proper setup), you have to also do the following: +- Change the [`refererInfo` function](https://github.com/prebid/Prebid.js/blob/master/src/refererDetection.js) to return `'https://www.tv2.no/a/11734615'` as a [`referer`](https://github.com/prebid/Prebid.js/blob/caead3ccccc448e4cd09d074fd9f8833f56fe9b3/src/refererDetection.js#L169). This is necessary because Kobler only bids on recognized articles. +- Change the adapter's [`BIDDER_ENDPOINT`](https://github.com/prebid/Prebid.js/blob/master/modules/koblerBidAdapter.js#L8) to `'https://bid-service.dev.essrtb.com/bid/prebid_rtb_call'`. This endpoint belongs to the development server that is set up to always return a bid for the correct `placementId` and page URL combination. + +### Example With Optional Parameters +```javascript + const adUnits = [{ + code: 'div-gpt-ad-1460505748561-1', + mediaTypes: { + banner: { + sizes: [[320, 250], [300, 250]], + } + }, + bids: [{ + bidder: 'kobler', + params: { + placementId: 'k5H7et3R0', + zip: '102 22', + test: true, + floorPrice: 5.0, + position: 1, + dealIds: ['abc328745', 'mxw243253'] + } + }] + }]; +``` diff --git a/dev-docs/bidders/komoona.md b/dev-docs/bidders/komoona.md index 00508dfdf7..14a371176e 100644 --- a/dev-docs/bidders/komoona.md +++ b/dev-docs/bidders/komoona.md @@ -4,6 +4,7 @@ title: Komoona description: Prebid Komoona Bidder Adaptor pbjs: true biddercode: komoona +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/kubient.md b/dev-docs/bidders/kubient.md index 5e255461e1..f8f124fa63 100644 --- a/dev-docs/bidders/kubient.md +++ b/dev-docs/bidders/kubient.md @@ -6,9 +6,12 @@ pbjs: true pbs: true schain_supported: true biddercode: kubient -media_types: banner +media_types: banner, video gdpr_supported: true usp_supported: true +tcf2_supported: true +pbjs: true +pbs: true gvl_id: 794 --- @@ -16,6 +19,57 @@ gvl_id: 794 The Kubient Bidder Adapter requires setup and approval before beginning. Please reach out to for more details. +Banner Settings: + +var adUnits = [ + { + code: 'banner-ad-unit', + mediaTypes: { + banner: { + sizes: [[300, 100]] + } + }, + bids: [{ + bidder: 'kubient', + params: { + zoneid: "5fbb948f1e22b", + } + }] + } +]; + +Video Settings: + +var adUnits = [ + { + code: 'video-ad-unit', + mediaTypes: { + video: { + playerSize: [300, 250], // required + context: 'instream', // required + mimes: ['video/mp4','video/x-flv'], // required + protocols: [ 2, 3 ], // required, set at least 1 value in array + placement: 1, // optional, defaults to 2 when context = outstream + api: [ 1, 2 ], // optional + skip: 0, // optional + minduration: 5, // optional + maxduration: 30, // optional + playbackmethod: [1,3], // optional + battr: [ 13, 14 ], // optional + linearity: 1, // optional + minbitrate: 10, // optional + maxbitrate: 10 // optional + } + }, + bids: [{ + bidder: 'kubient', + params: { + zoneid: "60ad1c0b35864", + } + }] + } +]; + ### Bid Params {: .table .table-bordered .table-striped } diff --git a/dev-docs/bidders/lemma.md b/dev-docs/bidders/lemma.md index b4b3e71b99..68c76068a7 100644 --- a/dev-docs/bidders/lemma.md +++ b/dev-docs/bidders/lemma.md @@ -4,6 +4,7 @@ title: LEMMA description: Prebid Lemma Bidder Adapter pbjs: true biddercode: lemma +pbjs_version_notes: not in 5.x --- ### Integration Note: diff --git a/dev-docs/bidders/lifestreet.md b/dev-docs/bidders/lifestreet.md index f742988612..049e1acad3 100644 --- a/dev-docs/bidders/lifestreet.md +++ b/dev-docs/bidders/lifestreet.md @@ -9,6 +9,7 @@ media_types: video gdpr_supported: true usp_supported: true gvl_id: 67 +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/limelightDigital.md b/dev-docs/bidders/limelightDigital.md new file mode 100644 index 0000000000..6acf929fb6 --- /dev/null +++ b/dev-docs/bidders/limelightDigital.md @@ -0,0 +1,17 @@ +--- +layout: bidder +title: Limelight Digital +description: Prebid Limelight Digital Bidder Adaptor +pbjs: true +biddercode: limelightDigital +media_types: video +--- + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example |type| +| :----------- | :--------- | :------------ | :----------------- |:---| +| `host` | required | Ad network's RTB host | `'exchange.ortb.net'` | `string` | +| `adUnitId` | required | Ad Unit Id will be generated on Limelight Digital Platform. | 0 |integer| +| `adUnitType` | required | Type of Ad Unit (`'video'`, `'banner'`) | `'banner'` |string| diff --git a/dev-docs/bidders/livewrapped.md b/dev-docs/bidders/livewrapped.md index 2cb19e8464..67978a74b3 100644 --- a/dev-docs/bidders/livewrapped.md +++ b/dev-docs/bidders/livewrapped.md @@ -6,9 +6,12 @@ biddercode: livewrapped pbjs: true media_types: banner, video, native gdpr_supported: true -userIds: id5Id, pubCommonId +userIds: all schain_supported: true gvl_id: 919 +usp_supported: true +coppa_supported: true +safeframes_ok: true --- ### Note: diff --git a/dev-docs/bidders/lkqd.md b/dev-docs/bidders/lkqd.md index 0dc9b9f3b3..e2a48b1fb0 100644 --- a/dev-docs/bidders/lkqd.md +++ b/dev-docs/bidders/lkqd.md @@ -4,6 +4,7 @@ title: LKQD description: Prebid LKQD Bidder Adaptor pbjs: true biddercode: lkqd +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/logicad.md b/dev-docs/bidders/logicad.md index 7c38224fac..f0c28c3825 100644 --- a/dev-docs/bidders/logicad.md +++ b/dev-docs/bidders/logicad.md @@ -6,8 +6,9 @@ pbjs: true pbs: true pbs_app_supported: true biddercode: logicad -bidder_supports_deals: false +deals_supported: false media_types: banner, native +userIds: all gdpr_supported: false prebid_member: false --- diff --git a/dev-docs/bidders/loopme.md b/dev-docs/bidders/loopme.md index f640ad40e1..cd2bc82b47 100644 --- a/dev-docs/bidders/loopme.md +++ b/dev-docs/bidders/loopme.md @@ -6,6 +6,7 @@ pbjs: true biddercode: loopme gdpr_supported: true media_types: banner, video +pbjs_version_notes: not in 5.x --- ### Bid params diff --git a/dev-docs/bidders/lunamedia.md b/dev-docs/bidders/lunamedia.md index f8bbc1cfb4..80d72de5f8 100644 --- a/dev-docs/bidders/lunamedia.md +++ b/dev-docs/bidders/lunamedia.md @@ -5,6 +5,7 @@ description: Prebid Luna Media Bidder Adapter pbjs: true pbs: true biddercode: lunamedia +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/luponmedia.md b/dev-docs/bidders/luponmedia.md index 3d13033110..7c7b46b1b5 100644 --- a/dev-docs/bidders/luponmedia.md +++ b/dev-docs/bidders/luponmedia.md @@ -9,6 +9,7 @@ usp_supported: true coppa_supported: true schain_supported: true userIds: digitrust, identityLink, liveIntentId, pubCommonId +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/madvertise.md b/dev-docs/bidders/madvertise.md index 4d48221e73..3f58b6578b 100644 --- a/dev-docs/bidders/madvertise.md +++ b/dev-docs/bidders/madvertise.md @@ -1,22 +1,82 @@ --- layout: bidder title: Madvertise -description: Prebid Madvertise Bidder Adaptor +description: Prebid Madvertise Bidder Adapter pbjs: true biddercode: madvertise gdpr_supported: true +gvl_id: 153 +media_types: banner, video +safeframes_ok: true +pbs: true +pbs_app_supported: true --- -### Bid Params +### Prebid.js Bid Params {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |--------------|----------|---------------------------------------------------------------------------------------------------------|-----------------------------------------|-----------| -| `s` | required | Zone code. This parameter should be the unique Publisher ID of your mobile application or website. | `'/4543756/prebidadaptor/madvertiseHB'` | `string` | -| `donottrack` | optional | Possible values are `0` or `1`. If the of value is `1`, the user does not want to be tracked (opt out). | `1` | `integer` | +| `zoneId` | required Prebid version 5.x+| Zone code. This parameter should be the unique Publisher ID of your mobile application or website. | `/1111111/banner` | `string` | +| `s` | required in-scope only for 4.x | Zone code. This parameter should be the unique Publisher ID of your mobile application or website. Replace by zoneId starting 5.x | `/1111111/banner` | `string` | | `lat` | optional | Latitude | `48.866667` | `float` | | `long` | optional | Longitude | `2.333333` | `float` | | `age` | optional | Age | `19` | `integer` | | `gender` | optional | Gender m or f | `'f'` | `string` | | `locale` | optional | Locale | `'fr'` | `string` | | `floor` | optional | Bid floor | `1.0` | `float` | + +#### Example + +``` +{ + bidder: 'madvertise', + params: { + zoneId: "/4543756/prebidadaptor/madvertiseHB", + tgt:'aa=a;bb=b' + } +} +``` +### Prebid Server Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|--------------|----------|---------------------------------------------------------------------------------------------------------|-----------------------------------------|-----------| +|`zoneId` | required | The zone ID provided by Madvertise. | `'/1111111/banner'` | `string` | + + +#### Example + +``` +{ + "id": "some-request-id", + "test": 1, + "site": { + "page": "prebid.org" + }, + "imp": [ + { + "id": "some-impression-id", + "banner": { + "format": [ + { + "w": 320, + "h": 50 + } + ] + }, + "ext": { + "prebid": { + "bidder": { + "madvertise": { + "zoneId": "/1111111/banner" + } + } + } + } + } + ], + "tmax": 1000 +} +``` + diff --git a/dev-docs/bidders/marsmedia.md b/dev-docs/bidders/marsmedia.md index a38b704088..8281cb732f 100644 --- a/dev-docs/bidders/marsmedia.md +++ b/dev-docs/bidders/marsmedia.md @@ -7,7 +7,7 @@ pbs: true biddercode: marsmedia media_types: video, banner gdpr_supported: true -getFloor: true +floors_supported: true schain_supported: true usp_supported: true coppa_supported: true diff --git a/dev-docs/bidders/mathildeads.md b/dev-docs/bidders/mathildeads.md new file mode 100644 index 0000000000..c7dbe99b03 --- /dev/null +++ b/dev-docs/bidders/mathildeads.md @@ -0,0 +1,20 @@ +--- +layout: bidder +title: MathildeAds +description: Prebid MathildeAds Bidder Adapter +biddercode: mathildeads +usp_supported: true +schain_supported: true +media_types: banner, video, native +gdpr_supported: true +pbjs: true +pbs: false +pbs_app_supported: false +--- + +### Prebid.JS Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------------|----------|----------------------------------------------------------|------------|-----------| +| `placementId` | required | Placement Id will be generated on MathildeAds Platform. | `'1234'` | `string` | diff --git a/dev-docs/bidders/meazy.md b/dev-docs/bidders/meazy.md index ed3cc5f0bb..5a22b93b07 100644 --- a/dev-docs/bidders/meazy.md +++ b/dev-docs/bidders/meazy.md @@ -4,6 +4,7 @@ title: Meazy description: Prebid Meazy Bidder Adaptor pbjs: true biddercode: meazy +pbjs_version_notes: not in 5.x --- ### Bid params diff --git a/dev-docs/bidders/mediago.md b/dev-docs/bidders/mediago.md index f1fd1f7408..42d5b3a484 100644 --- a/dev-docs/bidders/mediago.md +++ b/dev-docs/bidders/mediago.md @@ -5,6 +5,7 @@ description: MediaGo Prebid Bidder Adapter biddercode: mediago media_types: banner pbjs: true +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/mediakeys.md b/dev-docs/bidders/mediakeys.md new file mode 100644 index 0000000000..8c9a8d5c81 --- /dev/null +++ b/dev-docs/bidders/mediakeys.md @@ -0,0 +1,24 @@ +--- +layout: bidder +title: Mediakeys +description: Mediakeys Prebid Bidder Adapter +biddercode: mediakeys +media_types: banner +gvl_id: 498 +pbjs: true +floors_supported: true +gdpr_supported: true +usp_supported: true +coppa_supported: true +schain_supported: true +safeframes_ok: true +userIds: all +fpd_supported: true +--- +### Note: + +The Mediakeys Bidding adapter requires setup before beginning and will repsond with bids for whitelisted domains only. Please contact us at prebidjs@mediakeys.com. + +### Bid Params + +No bid params are required. See Note section. diff --git a/dev-docs/bidders/medianet.md b/dev-docs/bidders/medianet.md index 0dac3e2037..594e349bc7 100644 --- a/dev-docs/bidders/medianet.md +++ b/dev-docs/bidders/medianet.md @@ -11,6 +11,8 @@ prebid_member: true pbjs: true gvl_id: 142 schain_supported: true +floors_supported: true +fpd_supported: true --- ### Bid Params @@ -53,7 +55,9 @@ var videoAdUnit = { mediaTypes: { video: { context: "instream", - playerSize: [640, 480] + playerSize: [640, 480], + mimes: ['video/mp4'], + placement: 1 } }, bids: [{ @@ -61,10 +65,6 @@ var videoAdUnit = { params: { cid: '8CUX0H51C', crid: '776755783', - video: { - mimes: ['video/mp4'], - placement: 1 - }, // Site member is to be used only for testing site: { page: 'http://smoketesting.net/prebidtest/', diff --git a/dev-docs/bidders/missena.md b/dev-docs/bidders/missena.md index fdff453fb1..4b2c853b0c 100644 --- a/dev-docs/bidders/missena.md +++ b/dev-docs/bidders/missena.md @@ -6,6 +6,7 @@ biddercode: missena gvl_id: 867 pbjs: true safeframes_ok: false +pbjs_version_notes: not in 5.x --- ### Note diff --git a/dev-docs/bidders/mobfox.md b/dev-docs/bidders/mobfox.md index fd6e5b86a0..9bcd5f61d1 100644 --- a/dev-docs/bidders/mobfox.md +++ b/dev-docs/bidders/mobfox.md @@ -5,6 +5,7 @@ description: Prebid MobFox Bidder Adaptor pbjs: true biddercode: mobfox media_types: video +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/mobfoxpb.md b/dev-docs/bidders/mobfoxpb.md index 1805342abf..eec2b0d860 100644 --- a/dev-docs/bidders/mobfoxpb.md +++ b/dev-docs/bidders/mobfoxpb.md @@ -11,6 +11,7 @@ pbjs: true pbs: true pbs_app_supported: true gvl_id: 311 +pbjs_version_notes: not in 5.x --- ### Prebid.JS Bid Params diff --git a/dev-docs/bidders/mobsmart.md b/dev-docs/bidders/mobsmart.md index 6bff488360..59a5b165ab 100644 --- a/dev-docs/bidders/mobsmart.md +++ b/dev-docs/bidders/mobsmart.md @@ -6,6 +6,7 @@ pbjs: true biddercode: mobsmart media_types: banner userIds: pubCommonId +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/nafdigital.md b/dev-docs/bidders/nafdigital.md index da0b164cff..a21d4173c6 100644 --- a/dev-docs/bidders/nafdigital.md +++ b/dev-docs/bidders/nafdigital.md @@ -6,6 +6,7 @@ top_nav_section: dev_docs nav_section: reference pbjs: true biddercode: nafdigital +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/nanointeractive.md b/dev-docs/bidders/nanointeractive.md index 28bde8cd92..43fed8d69f 100644 --- a/dev-docs/bidders/nanointeractive.md +++ b/dev-docs/bidders/nanointeractive.md @@ -8,6 +8,7 @@ biddercode: nanointeractive media_types: banner gdpr_supported: true gvl_id: 72 +pbjs_version_notes: not in 5.x --- ### Requirements: diff --git a/dev-docs/bidders/nasmediaAdmixer.md b/dev-docs/bidders/nasmediaAdmixer.md index 476424c150..a8a676e2c6 100644 --- a/dev-docs/bidders/nasmediaAdmixer.md +++ b/dev-docs/bidders/nasmediaAdmixer.md @@ -4,6 +4,7 @@ title: Nasmedia Admixer description: Prebid Nasmedia Admixer Bidder Adapter pbjs: true biddercode: nasmediaAdmixer +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/nativo.md b/dev-docs/bidders/nativo.md new file mode 100644 index 0000000000..9c72c55f07 --- /dev/null +++ b/dev-docs/bidders/nativo.md @@ -0,0 +1,22 @@ +--- +layout: bidder +title: Nativo +description: Prebid Nativo Bidder Adapter +pbjs: true +gvl_id: 263 +gdpr_supported: true +usp_supported: true +biddercode: nativo +--- + +### Note: + +The Nativo Bidder adapter requires setup before beginning. Please contact us at prebiddev@nativo.com beforehand. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|---------------------------------------------------------------------------------|--------------|-----------| +| `placementId` | optional | Publication placement ID value from the Nativo Platform | `13144370` | `integer` | +| `url` | optional | Publication url value associated with placement ID value in the Nativo Platform | `https://test-sites.internal.nativo.net/testing/prebid_adpater.html` | `string` | diff --git a/dev-docs/bidders/newborntownWeb.md b/dev-docs/bidders/newborntownWeb.md index cade9d7137..6dee12c74d 100644 --- a/dev-docs/bidders/newborntownWeb.md +++ b/dev-docs/bidders/newborntownWeb.md @@ -4,6 +4,7 @@ title: newborntownWeb description: Prebid newborntownWeb Bidder Adaptor pbjs: true biddercode: newborntownWeb +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/nextMillennium.md b/dev-docs/bidders/nextMillennium.md index b85074255f..6b863fd025 100644 --- a/dev-docs/bidders/nextMillennium.md +++ b/dev-docs/bidders/nextMillennium.md @@ -1,14 +1,29 @@ --- layout: bidder title: NextMillennium -description: NextMillennium bid adapter +gdpr_supported: true +usp_supported: true +coppa_supported: false +schain_supported: false +dchain_supported: false +safeframes_ok: false +deals_supported: false +floors_supported: false +fpd_supported: false +pbs_app_supported: false pbjs: true +pbs: true biddercode: nextMillennium +media_types: banner +description: NextMillennium bid adapter --- ### bid params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|----------------+----------+-----------------------------------------+---------|---------| -| `placement_id` | required | Placement ID, provided by nextMillennium | 12345 | Integer | +| Name | Scope | Description | Example | Type | +|----------------+----------+------------------------------------------+-----------|---------| +| `placement_id` | required | Placement ID, provided by nextMillennium | `'12345'` | String | + +As input parameters, it accepts only `placement_id`, which is issued when registering in NextMillennium. +Further information for the auction on NextMillennium side is generated automatically. diff --git a/dev-docs/bidders/nextroll.md b/dev-docs/bidders/nextroll.md index 23a5b51a88..c99e92a4b3 100644 --- a/dev-docs/bidders/nextroll.md +++ b/dev-docs/bidders/nextroll.md @@ -7,6 +7,7 @@ biddercode: nextroll media_types: display, native gdpr_supported: false usp_supported: true +prebid_member: true --- ### Bid Params @@ -17,7 +18,7 @@ usp_supported: true | `sellerId` | required | The seller ID from NextRoll.Please reach out your NextRoll representative for more details. | `'541459'` | `string` | | `publisherId` | optional | The publisher ID from NextRoll.Please reach out your NextRoll representative for more details. | `'956812'` | `string` | | `zoneId` | optional | Descriptive or unique identifier for the ad position | `'main-banner-505/600x160'` | `string` | -| `bidfloor` | optional | Per ad-unit bid floor | `2.3` | `number` | +| `bidfloor` | optional | Per ad-unit bid floor, used if the floor module is not available | `2.3` | `number` | #### Example of Banner Ad-unit ``` @@ -27,6 +28,17 @@ var adUnits = [ mediaTypes: { banner: {sizes: [[300, 250], [160, 600]]} }, + // If floors module is enabled + floors: { + currency: "USD", + schema: { + delimiter: "|", + fields: ["mediaType", "size"] + }, + values: { + "*|*": 2.0 + } + }, bids: [{ bidder: 'nextroll', params: { diff --git a/dev-docs/bidders/nobid.md b/dev-docs/bidders/nobid.md index 7f8cfd41dd..02d54e53c0 100644 --- a/dev-docs/bidders/nobid.md +++ b/dev-docs/bidders/nobid.md @@ -13,6 +13,7 @@ schain_supported: true coppa_supported: true userId: criteo, unifiedId, id5Id safeframes_ok: true +fpd_supported: true --- ### Bid Params diff --git a/dev-docs/bidders/ogury.md b/dev-docs/bidders/ogury.md new file mode 100644 index 0000000000..a1ae8c5f42 --- /dev/null +++ b/dev-docs/bidders/ogury.md @@ -0,0 +1,30 @@ +--- +layout: bidder +title: ogury +description: Ogury Bidder Adapter +biddercode: ogury +gdpr_supported: true +gvl_id: 31 +usp_supported: false +coppa_supported: false +schain_supported: false +floors_supported: true +dchain_supported: false +media_types: banner +safeframes_ok: false +deals_supported: false +pbjs: true +pbs: false +prebid_member: false +--- +### Note: + +The Ogury Bidding adapter requires setup before start of usage: some configuration & account creation needs to be done. Please contact us at web.inventory@ogury.co + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|-----------------------|-----------|-----------| +| `assetKey` | required | The asset key provided by Ogury | `'OGY-CA41D116484F'` | `string` | +| `adUnitId` | required | Your ad unit id configured with Ogury | `'2c4d61d0-90aa-0139-0cda-0242ac120004'` | `string` | diff --git a/dev-docs/bidders/oneVideo.md b/dev-docs/bidders/oneVideo.md index d77c059d67..4b50d23c55 100644 --- a/dev-docs/bidders/oneVideo.md +++ b/dev-docs/bidders/oneVideo.md @@ -9,6 +9,20 @@ gdpr_supported: true usp_supported: true --- +### IMPORTANT NOTICE! +**TL;DR** +1. The `oneVideo` adapter is scheduled to be depreciated. +2. Our New `yahoossp` is available for early adoption. +3. Please contact your Account Manager/Executive for migration details. + +Dear Publishers & Partners, +As part of our platform consolidation process to simplify your integrations moving forward +We invite you to switch from the `oneVideo` Adapter to our NEW `yahoossp` bid adapter for both Display & Video inventory. +FYI - The oneVideo adapter is scheduled for depreciation in the upcoming months. + +Thanks in advance, +Yahoo SSP + ### Note: One Video adapter only supports video ads. diff --git a/dev-docs/bidders/onedisplay.md b/dev-docs/bidders/onedisplay.md index d7d4002b83..e0749df141 100644 --- a/dev-docs/bidders/onedisplay.md +++ b/dev-docs/bidders/onedisplay.md @@ -6,7 +6,19 @@ pbjs: true biddercode: onedisplay aliasCode : aol --- +### IMPORTANT NOTICE! +**TL;DR** +1. The `onedisplay` adapter is scheduled to be depreciated. +2. Our New `yahoossp` is available for early adoption. +3. Please contact your Account Manager/Executive for migration details. +Dear Publishers & Partners, +As part of our platform consolidation process to simplify your integrations moving forward +We invite you to switch from the `onedisplay` Adapter to our NEW `yahoossp` bid adapter for both Display & Video inventory. +FYI - The oneVideo adapter is scheduled for depreciation in the upcoming months. + +Thanks in advance, +Yahoo SSP ### Bid Params diff --git a/dev-docs/bidders/onemobile.md b/dev-docs/bidders/onemobile.md index c830acf841..aabc65de76 100644 --- a/dev-docs/bidders/onemobile.md +++ b/dev-docs/bidders/onemobile.md @@ -7,7 +7,19 @@ biddercode: onemobile aliasCode : aol --- +### IMPORTANT NOTICE! +**TL;DR** +1. The `onemobile` adapter is scheduled to be depreciated. +2. Our New `yahoossp` is available for early adoption. +3. Please contact your Account Manager/Executive for migration details. +Dear Publishers & Partners, +As part of our platform consolidation process to simplify your integrations moving forward +We invite you to switch from the `onemobile` Adapter to our NEW `yahoossp` bid adapter for both Display & Video inventory. +FYI - The oneVideo adapter is scheduled for depreciation in the upcoming months. + +Thanks in advance, +Yahoo SSP ### Bid Params diff --git a/dev-docs/bidders/open8.md b/dev-docs/bidders/open8.md index 6f11a8ef46..0f930563dc 100644 --- a/dev-docs/bidders/open8.md +++ b/dev-docs/bidders/open8.md @@ -5,6 +5,7 @@ description: Prebid OPEN8 Bidder Adaptor pbjs: true biddercode: open8 media_types: video, banner +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/openweb.md b/dev-docs/bidders/openweb.md new file mode 100644 index 0000000000..162df57a03 --- /dev/null +++ b/dev-docs/bidders/openweb.md @@ -0,0 +1,64 @@ +--- +layout: bidder +title: OpenWeb +description: Prebid OpenWeb Bidder Adapter +biddercode: openweb +media_types: banner +gdpr_supported: true +userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, unifiedId +schain_supported: true +coppa_supported: true +usp_supported: true +safeframes_ok: true +prebid_member: true +pbjs: true +pbs: true +gvl_id: 280 +--- + +### Bid params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|-------|----------|---------------------------------|----------|-----------| +| `aid` | required | The source ID from OpenWeb. | `650342` | `integer` | + +### Description +OpenWeb.com official prebid adapter. Available in both client and server side versions. +OpenWeb header bidding adapter provides solution for accessing banner demand. + +### Test Parameters +``` +var adUnits = [ + // Banner adUnit + { + mediaTypes: { + banner: { + sizes: [[300, 250]] + } + }, + code: 'div-test-div', + bids: [{ + bidder: 'openweb', + params: { + aid: 650342 + } + }] + }, + // Prebid server + { + mediaTypes: { + banner: { + sizes: [[300, 250]] + } + }, + code: 'div-test-div', + bids: [{ + bidder: 'openweb', + params: { + aid: 650346 + } + }] + } +]; +``` diff --git a/dev-docs/bidders/openwebvideo.md b/dev-docs/bidders/openwebvideo.md new file mode 100644 index 0000000000..bc6a663c50 --- /dev/null +++ b/dev-docs/bidders/openwebvideo.md @@ -0,0 +1,45 @@ +--- +layout: bidder +title: OpenWeb Video +description: Prebid OpenWeb Video Bidder Adapter +pbjs: true +biddercode: openwebvideo +aliasCode: aniview +media_types: banner, video +gdpr_supported: true +usp_supported: true +schain_supported: true +safeframes_ok: true +--- + +### Note: +For more information about [OpenWeb](https://www.openweb.com/). + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|------------------|----------|------------------|------------------------------|----------| +| `AV_PUBLISHERID` | required | Publisher/Netid | `'55b88d4a181f465b3e8b4567'` | `string` | +| `AV_CHANNELID` | required | Channel id | `'5a5f17a728a06102d14c2718'` | `string` | + +### Test Parameters +``` +videoAdUnit = [ +{ + code: 'video1', + mediaTypes: { + video: { + playerSize: [[640, 480]], + context: 'outstream' + }, + }, + bids: [{ + bidder: 'openwebvideo', + params: { + AV_PUBLISHERID: '55b78633181f4603178b4568', + AV_CHANNELID: '5d19dfca4b6236688c0a2fc4' + } + }] +}]; +``` diff --git a/dev-docs/bidders/openx.md b/dev-docs/bidders/openx.md index 2243c99053..3adddca5d9 100644 --- a/dev-docs/bidders/openx.md +++ b/dev-docs/bidders/openx.md @@ -10,9 +10,10 @@ schain_supported: true gdpr_supported: true usp_supported: true coppa_supported: true -getFloor: true -userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, unifiedId +floors_supported: true +userIds: admixerId, amxId, britepoolId, criteo, dapId, deepintentId, dmdId, fabrickId, flocId, haloId, id5Id, identityLink, idxId, intentIqId, liveIntentId, lotamePanoramaId, merkleId, mwOpenLinkId, netId, nextrollId, novatiq, parrableId, pubCommonId, quantcastId, sharedId, tapadId, uid2, unifiedId, verizonMediaId, zeotapIdPlus prebid_member: true +fpd_supported: true gvl_id: 69 --- @@ -24,23 +25,23 @@ If you have any questions regarding set up, please reach out to your account man #### Banner {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -| ---- | ----- | ----------- | ------- | ---- | -| `delDomain` or `platform` | required | OpenX delivery domain or platform id provided by your OpenX representative. | "PUBLISHER-d.openx.net" or "555not5a-real-plat-form-id0123456789" | String | -| `unit` | required | OpenX ad unit ID provided by your OpenX representative. | "1611023122" | String | -| `customParams` | optional | User-defined targeting key-value pairs. customParams applies to a specific unit. | `{key1: "v1", key2: ["v2","v3"]}` | Object | -| `customFloor` | optional | Minimum price in USD. customFloor applies to a specific unit. For example, use the following value to set a $1.50 floor: 1.50

    **WARNING:**
    Misuse of this parameter can impact revenue | 1.50 | Number | -| `doNotTrack` | optional | Prevents advertiser from using data for this user.

    **WARNING:**
    Impacts all bids in the request. May impact revenue. | true | Boolean | -| `coppa` | optional | Enables Child's Online Privacy Protection Act (COPPA) regulations. **WARNING:**
    Impacts all bids in the request. May impact revenue. | true | Boolean | +| Name | Scope | Description | Example | Type | +| ---- | ----- | ----------- | ------- | ---- | +| `delDomain` or `platform` | required | OpenX delivery domain or platform id provided by your OpenX representative. Both may be present. `platform` is preferred | "PUBLISHER-d.openx.net" or "555not5a-real-plat-form-id0123456789" | String | +| `unit` | required | OpenX ad unit ID provided by your OpenX representative. | "1611023122" | String | +| `customParams` | optional | User-defined targeting key-value pairs. customParams applies to a specific unit. | `{key1: "v1", key2: ["v2","v3"]}` | Object | +| `customFloor` | optional | Minimum price in USD. customFloor applies to a specific unit. For example, use the following value to set a $1.50 floor: 1.50

    **WARNING:**
    Misuse of this parameter can impact revenue | 1.50 | Number | +| `doNotTrack` | optional | Prevents advertiser from using data for this user.

    **WARNING:**
    Impacts all bids in the request. May impact revenue. | true | Boolean | +| `coppa` | optional | Enables Child's Online Privacy Protection Act (COPPA) regulations. **WARNING:**
    Impacts all bids in the request. May impact revenue. | true | Boolean | #### Video {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -| ---- | ----- | ----------- | ------- | ---- | -| `unit` | required | OpenX ad unit ID provided by your OpenX representative. | "1611023122" | String | -| `delDomain` | required | OpenX delivery domain provided by your OpenX representative. | "PUBLISHER-d.openx.net" | String | -| `openrtb` | optional | An OpenRtb Impression with Video subtype properties | `{ imp: [{ video: {mimes: ['video/x-ms-wmv, video/mp4']} }] }` | Object | +| Name | Scope | Description | Example | Type | +| ---- | ----- | ----------- | ------- | ---- | +| `unit` | required | OpenX ad unit ID provided by your OpenX representative. | "1611023122" | String | +| `delDomain` or `platform` | required | OpenX delivery domain or platform id provided by your OpenX representative. Both may be present. `platform` is preferred | "PUBLISHER-d.openx.net" or "555not5a-real-plat-form-id0123456789" | String | +| `openrtb` | optional | An OpenRtb Impression with Video subtype properties | `{ imp: [{ video: {mimes: ['video/x-ms-wmv, video/mp4']} }] }` | Object | ## Example @@ -79,17 +80,15 @@ var adUnits = [ mediaTypes: { video: { playerSize: [640, 480], - context: 'instream' + context: 'instream', + mimes: ['video/x-ms-wmv, video/mp4'] } }, bids: [{ bidder: 'openx', params: { unit: '1611023124', - delDomain: 'PUBLISHER-d.openx.net', - video: { - mimes: ['video/x-ms-wmv, video/mp4'] - } + delDomain: 'PUBLISHER-d.openx.net' } }] } diff --git a/dev-docs/bidders/operaads.md b/dev-docs/bidders/operaads.md new file mode 100644 index 0000000000..49393966e3 --- /dev/null +++ b/dev-docs/bidders/operaads.md @@ -0,0 +1,31 @@ +--- +layout: bidder +title: OperaAds +description: Prebid OperaAds Bidder Adapter +biddercode: operaads +gdpr_supported: false +gvl_id: none +usp_supported: false +coppa_supported: true +schain_supported: true +dchain_supported: false +media_types: banner, video, native +safeframes_ok: false +deals_supported: false +pbjs: true +pbs: true +prebid_member: false +--- + +### Registration + +If you have any questions regarding set up, please reach out to your account manager or adtech-prebid-group@opera.com. + +### Bid Parameters + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|-------------|----------|------------------------|------------------|----------| +| `placementId`| required | Placement Id | `s12345678` | `string` | +| `endpointId`| required | Endpoint ID | `ep1234566` | `string` | +| `publisherId`| required | Publisher ID | `pub123456` | `string` | diff --git a/dev-docs/bidders/optimera.md b/dev-docs/bidders/optimera.md index a71b751b1f..2aaf77483a 100644 --- a/dev-docs/bidders/optimera.md +++ b/dev-docs/bidders/optimera.md @@ -4,6 +4,7 @@ title: Optimera description: Optimera Bidder Adaptor pbjs: true biddercode: optimera +pbjs_version_notes: for 5.x, use the module --- ### Bid Params diff --git a/dev-docs/bidders/optout.md b/dev-docs/bidders/optout.md new file mode 100644 index 0000000000..a4a0ebb62c --- /dev/null +++ b/dev-docs/bidders/optout.md @@ -0,0 +1,19 @@ +--- +layout: bidder +title: Opt Out Advertising +description: Prebid Opt Out Advertising Bidder Adaptor +pbjs: true +pbs: true +biddercode: optout +gdpr_supported: true +fpd_supported: true +gvl_id: 227 +--- + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|-------------|----------|----------------------|----------------|-----------| +| `publisher` | required | Opt Out publisher ID | `8` | `string` | +| `adslot` | required | Opt Out Adslot | `prebid_demo` | `string` | diff --git a/dev-docs/bidders/otm.md b/dev-docs/bidders/otm.md index 97b6bd0d5a..eb664b5f80 100644 --- a/dev-docs/bidders/otm.md +++ b/dev-docs/bidders/otm.md @@ -4,6 +4,7 @@ title: OTM description: OTM Bidder Adapter pbjs: true biddercode: otm +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/outbrain.md b/dev-docs/bidders/outbrain.md index 2171a00583..f555fb4685 100644 --- a/dev-docs/bidders/outbrain.md +++ b/dev-docs/bidders/outbrain.md @@ -3,7 +3,6 @@ layout: bidder title: Outbrain description: Outbrain Prebid Bidder Adapter biddercode: outbrain -aliasCode : zemanta gdpr_supported: true gvl_id: 164 usp_supported: true @@ -11,6 +10,10 @@ coppa_supported: true media_types: banner, native safeframes_ok: true pbjs: true +pbs: true +pbs_app_supported: true +prebid_member: true +pbjs_version_notes: v4.35 and later --- ### Registration @@ -19,37 +22,47 @@ The Outbrain Adapter requires setup before beginning. Please contact us at prebi ### Configuration -#### Bidder and usersync URLs +#### Prebid.js The Outbrain adapter does not work without setting the correct bidder and usersync URLs. You will receive the URLs when contacting us. - -Also note that the Outbrain adapter is an aliased adapter and for usersync to work you also need to enable it as shown below -on the `usersync` config object. ``` pbjs.setConfig({ outbrain: { - bidderUrl: 'https://bidder-url.com', - usersyncUrl: 'https://usersync-url.com' - }, - userSync: { - aliasSyncEnabled: true + bidderUrl: 'http://bidder-url.com', + usersyncUrl: 'http://usersync-url.com' } }); ``` +#### Prebid server + +Similar to the Prebid.js configuration described above, our prebid server adapter requires you to configure the bidder and usersync URLs. +You will receive the URLs when contacting us. + +Please note that you need to replace the `` part with the actual external URL of the prebid server host. +``` +adapters: + outbrain: + endpoint: http://bidder-url.com + syncurl: http://usersync-url.com?gdpr={%raw%}{{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}{%endraw%}&cb=%2Fsetuid%3Fbidder%3Doutbrain%26uid%3D__ZUID__ + +``` + ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|--------------------|----------|---------------------------------------------------|------------------------|----------| -| `publisher.id` | required | The publisher account ID | `'2706'` | `string` | -| `publisher.name` | optional | The publisher name | `'Publisher Name'` | `string` | -| `publisher.domain` | optional | The publisher domain | `'publisher.com'` | `string` | -| `tagid` | optional | Identifier for specific ad placement or ad tag | `'tag-id'` | `string` | +| Name | Scope | Description | Example | Type | +|--------------------|----------|----------------------------------------------------------------|--------------------|----------------| +| `publisher.id` | required | The publisher account ID | `'2706'` | `string` | +| `publisher.name` | optional | The publisher name | `'Publisher Name'` | `string` | +| `publisher.domain` | optional | The publisher domain | `'publisher.com'` | `string` | +| `tagid` | optional | Identifier for specific ad placement or ad tag | `'tag-id'` | `string` | +| `bcat` | optional | Blocked advertiser categories using the IAB content categories | `['IAB1-1']` | `string array` | +| `badv` | optional | Block list of advertisers by their domains | `['example.com']` | `string array` | -### Native example +#### Native example ``` var adUnits = [ @@ -87,13 +100,15 @@ var adUnits = [ name: 'Publishers Name', domain: 'publisher.com' }, - tagid: 'tag-id' + tagid: 'tag-id', + bcat: ['IAB1-1'], + badv: ['example.com'] } }] ]; ``` -### Banner example +#### Banner example ``` var adUnits = [ code: '/19968336/prebid_display_example_1', @@ -111,6 +126,8 @@ var adUnits = [ domain: 'publisher.com' }, tagid: 'tag-id', + bcat: ['IAB1-1'], + badv: ['example.com'] } }] ]; diff --git a/dev-docs/bidders/outbrain_old.md b/dev-docs/bidders/outbrain_old.md new file mode 100644 index 0000000000..e0529b8eee --- /dev/null +++ b/dev-docs/bidders/outbrain_old.md @@ -0,0 +1,135 @@ +--- +layout: bidder +title: Outbrain - Old +description: Outbrain Prebid Bidder Adapter +biddercode: outbrain +aliasCode: zemanta +gdpr_supported: true +gvl_id: 164 +usp_supported: true +coppa_supported: true +media_types: banner, native +safeframes_ok: true +pbjs: true +pbs: true +pbs_app_supported: true +prebid_member: true +pbjs_version_notes: for versions 4.20-4.34 +--- + +### Registration + +The Outbrain Adapter requires setup before beginning. Please contact us at prebid.org@outbrain.com. + +### Configuration + +#### Prebid.js + +The Outbrain adapter does not work without setting the correct bidder and usersync URLs. +You will receive the URLs when contacting us. +``` +pbjs.setConfig({ + outbrain: { + bidderUrl: 'http://bidder-url.com', + usersyncUrl: 'http://usersync-url.com' + } +}); +``` + +#### Prebid server + +Similar to the Prebid.js configuration described above, our prebid server adapter requires you to configure the bidder and usersync URLs. +You will receive the URLs when contacting us. + +Please note that you need to replace the `` part with the actual external URL of the prebid server host. +``` +adapters: + outbrain: + endpoint: http://bidder-url.com + syncurl: http://usersync-url.com?gdpr={%raw%}{{.GDPR}}&gdpr_consent={{.GDPRConsent}}&us_privacy={{.USPrivacy}}{%endraw%}&cb=%2Fsetuid%3Fbidder%3Doutbrain%26uid%3D__ZUID__ + +``` + +### Bid Params + +{: .table .table-bordered .table-striped } + +| Name | Scope | Description | Example | Type | +|--------------------|----------|----------------------------------------------------------------|--------------------|----------------| +| `publisher.id` | required | The publisher account ID | `'2706'` | `string` | +| `publisher.name` | optional | The publisher name | `'Publisher Name'` | `string` | +| `publisher.domain` | optional | The publisher domain | `'publisher.com'` | `string` | +| `tagid` | optional | Identifier for specific ad placement or ad tag | `'tag-id'` | `string` | +| `bcat` | optional | Blocked advertiser categories using the IAB content categories | `['IAB1-1']` | `string array` | +| `badv` | optional | Block list of advertisers by their domains | `['example.com']` | `string array` | + +#### Native example + +``` +var adUnits = [ + code: '/19968336/prebid_native_example_1', + mediaTypes: { + native: { + image: { + required: false, + sizes: [100, 50] + }, + title: { + required: false, + len: 140 + }, + sponsoredBy: { + required: false + }, + clickUrl: { + required: false + }, + body: { + required: false + }, + icon: { + required: false, + sizes: [50, 50] + } + } + }, + bids: [{ + bidder: 'outbrain', + params: { + publisher: { + id: '2706', + name: 'Publishers Name', + domain: 'publisher.com' + }, + tagid: 'tag-id', + bcat: ['IAB1-1'], + badv: ['example.com'] + } + }] +]; +``` + +#### Banner example +``` +var adUnits = [ + code: '/19968336/prebid_display_example_1', + mediaTypes: { + banner: { + sizes: [[300, 250]] + } + }, + bids: [{ + bidder: 'outbrain', + params: { + publisher: { + id: '2706', + name: 'Publishers Name', + domain: 'publisher.com' + }, + tagid: 'tag-id', + bcat: ['IAB1-1'], + badv: ['example.com'] + } + }] +]; +``` diff --git a/dev-docs/bidders/outcon.md b/dev-docs/bidders/outcon.md index bfb1b2d71e..243c7cb12d 100644 --- a/dev-docs/bidders/outcon.md +++ b/dev-docs/bidders/outcon.md @@ -4,6 +4,7 @@ title: Outcon description: Prebid Outcon Bidder Adaptor pbjs: true biddercode: outcon +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/ozone.md b/dev-docs/bidders/ozone.md index 8b59183e35..d576a29689 100644 --- a/dev-docs/bidders/ozone.md +++ b/dev-docs/bidders/ozone.md @@ -8,7 +8,8 @@ media_types: banner gdpr_supported: true userIds: criteo, id5Id, tdid, identityLink, liveIntentId, parrableId, pubCommonId, lotamePanoramaId, sharedId, fabrickId gvl_id: 524 -bidder_supports_deals: true +deals_supported: true +fpd_supported: true --- diff --git a/dev-docs/bidders/pangle.md b/dev-docs/bidders/pangle.md index d8b0f9277c..6d4da22aea 100644 --- a/dev-docs/bidders/pangle.md +++ b/dev-docs/bidders/pangle.md @@ -8,7 +8,7 @@ coppa_supported: true schain_supported: false media_types: banner, video, native safeframes_ok: false -bidder_supports_deals: false +deals_supported: false pbjs: false pbs: true pbs_app_supported: true @@ -22,6 +22,8 @@ The Pangle Bidding adapter requires setup before beginning. Please contact us at ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|---------------|----------|--------------|-----------|----------| -| token | required | access token | 'aaaa123' | string | +| Name | Scope | Description | Example | Type | +|---------------|----------|-------------------------------------------------------|-------------|----------| +| token | required | access token | 'aaaa123' | string | +| appid | optional | app id (must be used in conjunction with placementid) | '5123400' | string | +| placementid | optional | placement id (must be used in conjunction with appid) | '912340000' | string | diff --git a/dev-docs/bidders/performax.md b/dev-docs/bidders/performax.md index 630db169ff..0fc5bea4f5 100644 --- a/dev-docs/bidders/performax.md +++ b/dev-docs/bidders/performax.md @@ -5,6 +5,7 @@ description: Prebid Performax Bidder Adaptor pbjs: true biddercode: performax media_types: banner +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/pixfuture.md b/dev-docs/bidders/pixfuture.md new file mode 100644 index 0000000000..58159bb843 --- /dev/null +++ b/dev-docs/bidders/pixfuture.md @@ -0,0 +1,20 @@ +--- +layout: bidder +title: PixFuture +description: Prebid PixFuture Bidder Adapter +biddercode: pixfuture +media_types: banner +gdpr_supported: true +prebid_member: false +coppa_supported: true +usp_supported: true +fpd_supported: true +userIds: flocId, criteoId, unifiedId, id5Id, sharedId, identityLink, liveIntentId, fabrickId +pbs: false +pbjs: true +--- +#### Bid Params + +| Name | Scope | Description | Example | Type | +|---------------------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|------------------| +| `pix_id` | required | The pix_id is an ID from PixFuture. The `pix_id` parameter should be a `string` | `"Abc123"` | `string` | diff --git a/dev-docs/bidders/piximedia.md b/dev-docs/bidders/piximedia.md index 3c69172629..6c72ed7d85 100644 --- a/dev-docs/bidders/piximedia.md +++ b/dev-docs/bidders/piximedia.md @@ -5,6 +5,7 @@ description: Piximedia Bidder Adaptor pbjs: true biddercode: piximedia media_types: banner +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/platformio.md b/dev-docs/bidders/platformio.md index 0dae50c961..f8953d0039 100644 --- a/dev-docs/bidders/platformio.md +++ b/dev-docs/bidders/platformio.md @@ -6,8 +6,14 @@ pbjs: true biddercode: platformio media_types: native, video gdpr_supported: true +pbjs_version_notes: not in 5.x --- +### Disclosure + +This bidder sets `adId` on the bid response and hasn't responded to the Prebid.js team to confirm uniqueness +of this value. See [Issue 6381](https://github.com/prebid/Prebid.js/issues/6381). + ### Bid Params {: .table .table-bordered .table-striped } diff --git a/dev-docs/bidders/prebidServer.md b/dev-docs/bidders/prebidServer.md index f8528473b5..f599598761 100644 --- a/dev-docs/bidders/prebidServer.md +++ b/dev-docs/bidders/prebidServer.md @@ -91,18 +91,17 @@ var adUnits = [{ video: { playerSize: [640, 480], context: 'outstream', - mimes: ['video/mp4'] + mimes: ['video/mp4'], + protocols: [1, 2, 3, 4, 5, 6, 7, 8], + playbackmethod: [2], + skip: 1 } }, bids: [ { bidder: 'appnexus', params: { - placementId: 13232392, - video: { - skippable: true, - playback_method: ['auto_play_sound_off'] - } + placementId: 13232392 }, } diff --git a/dev-docs/bidders/project-limelight.md b/dev-docs/bidders/projectLimelight.md similarity index 53% rename from dev-docs/bidders/project-limelight.md rename to dev-docs/bidders/projectLimelight.md index 16b56e3aed..39a7a867e2 100644 --- a/dev-docs/bidders/project-limelight.md +++ b/dev-docs/bidders/projectLimelight.md @@ -5,6 +5,8 @@ description: Prebid Project Limelight Bidder Adaptor pbjs: true biddercode: project-limelight aliasCode: projectLimeLight +media_types: video +pbjs_version_notes: not in 5.x --- ### Bid Params @@ -12,6 +14,6 @@ aliasCode: projectLimeLight {: .table .table-bordered .table-striped } | Name | Scope | Description | Example |type| | :----------- | :--------- | :------------ | :----------------- |:---| -| `host` | required | Ad network's RTB host | `'ads.project-limelight.com'` | `string` | -| `adUnitId` | required | Ad Unit Id will be generated on Project Limelight Platform. | 0 |integer| -| `adUnitType` | required | Type of Ad Unit ('video', 'banner') | 'banner' |string| +| `host` | required | Ad network's RTB host | `'exchange.ortb.net'` | `string` | +| `adUnitId` | required | Ad Unit Id will be generated on Limelight Digital Platform. | 0 |integer| +| `adUnitType` | required | Type of Ad Unit (`'video'`, `'banner'`) | `'banner'` |string| diff --git a/dev-docs/bidders/proxistore.md b/dev-docs/bidders/proxistore.md index 172c18cc8b..1b111d30da 100644 --- a/dev-docs/bidders/proxistore.md +++ b/dev-docs/bidders/proxistore.md @@ -5,6 +5,7 @@ description: Prebid Proxistore Bidder Adapter pbjs: true biddercode: proxistore gdpr_supported: true +fpd_supported: true --- diff --git a/dev-docs/bidders/pubgenius.md b/dev-docs/bidders/pubgenius.md index f65208db8a..3085968a32 100644 --- a/dev-docs/bidders/pubgenius.md +++ b/dev-docs/bidders/pubgenius.md @@ -5,6 +5,7 @@ description: Prebid pubGENIUS Bidder Adaptor pbjs: true biddercode: pubgenius media_types: banner +floors_supported: true gdpr_supported: true usp_supported: true schain_supported: true @@ -18,13 +19,13 @@ userIds: unifiedId | Name | Scope | Description | Example | Type | |------------|----------|-----------------------------------------------------------------------------------------------------------------|----------|-----------| | `adUnitId` | required | pubGENIUS ad unit ID. | `'1234'` | `string` | -| `bidFloor` | optional | Bid floor | `0.01` | `number` | | `position` | optional | Ad position on the page. Supported values: `0` - unknown (default), `1` - above the fold, `3` - below the fold. | `1` | `integer` | | `test` | optional | Indicates bidding for testing purposes | `true` | `boolean` | | `video` | optional | Contains properties of the video ad. Any fields of `Video` object in OpenRTB v2.5 are accepted. | `{ skip: 1 }` | `object` | #### Video +Video parameters are read from the ad unit as in `mediaTypes.video`, and can be overridden in bid params. The following properties are required in `mediaTypes.video` of the ad unit: {: .table .table-bordered .table-striped } diff --git a/dev-docs/bidders/pubmatic.md b/dev-docs/bidders/pubmatic.md index 17850cb022..f8cbcd0a12 100644 --- a/dev-docs/bidders/pubmatic.md +++ b/dev-docs/bidders/pubmatic.md @@ -8,13 +8,14 @@ gdpr_supported: true usp_supported: true coppa_supported: true schain_supported: true -getFloor: true +floors_supported: true userIds: all prebid_member: true safeframes_ok: true pbjs: true pbs: true pbs_app_supported: true +fpd_supported: true gvl_id: 76 --- @@ -131,29 +132,27 @@ var videoAdUnits = [ mediaTypes: { video: { playerSize: [640, 480], // required - context: 'instream' + context: 'instream', + mimes: ['video/mp4','video/x-flv'], // required + skip: 1, // optional + minduration: 5, // optional + maxduration: 30, // optional + startdelay: 5, // optional + playbackmethod: [1,3], // optional + api: [ 1, 2 ], // optional + protocols: [ 2, 3 ], // optional + battr: [ 13, 14 ], // optional + linearity: 1, // optional + placement: 2, // optional + minbitrate: 10, // optional + maxbitrate: 10 // optional } }, bids: [{ bidder: 'pubmatic', params: { publisherId: '32572', // required - adSlot: '38519891@300x250', // required - video: { - mimes: ['video/mp4','video/x-flv'], // required - skippable: true, // optional - minduration: 5, // optional - maxduration: 30, // optional - startdelay: 5, // optional - playbackmethod: [1,3], // optional - api: [ 1, 2 ], // optional - protocols: [ 2, 3 ], // optional - battr: [ 13, 14 ], // optional - linearity: 1, // optional - placement: 2, // optional - minbitrate: 10, // optional - maxbitrate: 10 // optional - } + adSlot: '38519891@300x250' // required } }] }] diff --git a/dev-docs/bidders/pulsepoint.md b/dev-docs/bidders/pulsepoint.md index bb714993ae..0c575f9994 100644 --- a/dev-docs/bidders/pulsepoint.md +++ b/dev-docs/bidders/pulsepoint.md @@ -7,12 +7,16 @@ gdpr_supported: true usp_supported: true schain_supported: true media_types: banner, video, native -userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, parrableId, pubCommonId, unifiedId +userIds: britepoolId, criteo, fabrickId, haloId, id5Id, identityLink, liveIntentId, lotamePanoramaId, merkleId, parrableId, pubCommonId, sharedId, unifiedId, verizonMediaId pbjs: true pbs: true gvl_id: 81 --- +### Disclosure + +This bidder sets `adId` on the bid response and hasn't responded to the Prebid.js team to confirm uniqueness +of this value. See [Issue 6381](https://github.com/prebid/Prebid.js/issues/6381). ### Bid Params @@ -30,6 +34,7 @@ gvl_id: 81 ### Video parameters Parameters on the Video object in Bid params for PulsePoint. [OpenRTB 2.5](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf) Video object specification is used. Below are some sample parameters from the OpenRTB Video specs. +Please use `mediaTypes.video` to specify video params in place of this parameter for PBJS 5.0 and later. {: .table .table-bordered .table-striped } diff --git a/dev-docs/bidders/pwbid.md b/dev-docs/bidders/pwbid.md index 48c08c33b4..26715707a2 100644 --- a/dev-docs/bidders/pwbid.md +++ b/dev-docs/bidders/pwbid.md @@ -12,7 +12,7 @@ schain_supported: true prebid_member: true userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, pubProvidedId, sharedId, unifiedId tcf1_supported: true -getFloor: false +floors_supported: false gvl_id: 842 --- diff --git a/dev-docs/bidders/quantcast.md b/dev-docs/bidders/quantcast.md index 465b9e07f4..9d6e9764e7 100644 --- a/dev-docs/bidders/quantcast.md +++ b/dev-docs/bidders/quantcast.md @@ -8,6 +8,7 @@ media_types: video gdpr_supported: true usp_supported: true coppa_supported: true +prebid_member: true --- ### Bid Params diff --git a/dev-docs/bidders/quantumdex.md b/dev-docs/bidders/quantumdex.md index 4c441cb970..bc03315282 100644 --- a/dev-docs/bidders/quantumdex.md +++ b/dev-docs/bidders/quantumdex.md @@ -9,12 +9,9 @@ media_types: banner, video gdpr_supported: true schain_supported: true usp_supported: true +userIds: all +floors_supported: true --- - -### Bid Params - -{: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|-------------|----------|--------------------------------------------------------------------------------------------------------------------------------|------------|----------| -| `siteId` | required | Publisher site ID from Quantumdex | `'quantumdex-site-id'` | `string` | +# Description +Quantumdex is an aliased bidder of Apacdex bid adapter. Please refer to [Apacdex documentation](https://docs.prebid.org/dev-docs/bidders/apacdex) for bid parameters and implementation guide. diff --git a/dev-docs/bidders/rads.md b/dev-docs/bidders/rads.md index 53a3ce3915..ba3baa6f51 100644 --- a/dev-docs/bidders/rads.md +++ b/dev-docs/bidders/rads.md @@ -5,7 +5,9 @@ description: Prebid Rads Bidder Adaptor pbjs: true biddercode: rads media_types: banner, video -gdpr_supported: false +gdpr_supported: true +gvl_id: 602 +userIds: uid2, netId --- diff --git a/dev-docs/bidders/readpeak.md b/dev-docs/bidders/readpeak.md index 048e8ae711..b882b6dc96 100644 --- a/dev-docs/bidders/readpeak.md +++ b/dev-docs/bidders/readpeak.md @@ -5,6 +5,8 @@ description: Readpeak Bidder Adaptor pbjs: true biddercode: readpeak media_types: native +gdpr_supported: true +tcf2_supported: true gvl_id: 290 --- diff --git a/dev-docs/bidders/reklamstore.md b/dev-docs/bidders/reklamstore.md index f4e221d69c..8c9a025355 100644 --- a/dev-docs/bidders/reklamstore.md +++ b/dev-docs/bidders/reklamstore.md @@ -6,6 +6,7 @@ biddercode: reklamstore pbjs: true gdpr_supported: true media_types: banner +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/relaido.md b/dev-docs/bidders/relaido.md index 451554d9d4..08ef84f34f 100644 --- a/dev-docs/bidders/relaido.md +++ b/dev-docs/bidders/relaido.md @@ -3,6 +3,7 @@ layout: bidder title: Relaido description: Prebid Relaido Bidder Adapter biddercode: relaido +userIds: imuid pbjs: true media_types: banner, video --- diff --git a/dev-docs/bidders/reload.md b/dev-docs/bidders/reload.md index 54212e5af2..675b068536 100644 --- a/dev-docs/bidders/reload.md +++ b/dev-docs/bidders/reload.md @@ -4,6 +4,7 @@ title: Reload description: Reload Prebid Adaptor pbjs: true biddercode: reload +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/resetdigital.md b/dev-docs/bidders/resetdigital.md new file mode 100644 index 0000000000..1b827e844a --- /dev/null +++ b/dev-docs/bidders/resetdigital.md @@ -0,0 +1,20 @@ +--- +layout: bidder +title: ResetDigital +description: Reset Digital Bidder Module +hide: true +pbjs: true +biddercode: resetdigital +gdpr_supported: true +media_types: banner, video +--- + +### bid params + +{: .table .table-bordered .table-striped } + +| Name | Scope | Description | Example | Type | +|----------|----------|-------------|------------------------------------|----------| +| `pubId` | required | Publisher account id | `'123pubid'` | `string` | +| `zoneId` | optional | Ad zone specific id if provided | `'456zoneId'` | `string` | +| `forceBid` | optional | Returns test bid | true | `boolean` | diff --git a/dev-docs/bidders/resultsmedia.md b/dev-docs/bidders/resultsmedia.md index bca7d3244b..d1a68d29ec 100644 --- a/dev-docs/bidders/resultsmedia.md +++ b/dev-docs/bidders/resultsmedia.md @@ -7,6 +7,7 @@ biddercode: resultsmedia media_types: video, banner gdpr_supported: true schain_supported: true +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/richaudience.md b/dev-docs/bidders/richaudience.md index 727a910907..9a75adbc75 100644 --- a/dev-docs/bidders/richaudience.md +++ b/dev-docs/bidders/richaudience.md @@ -6,8 +6,11 @@ biddercode: richaudience userIds: criteo, id5Id, identityLink, liveIntentId, pubCommonId, unifiedId media_types: banner, video gdpr_supported: true -pbjs: true gvl_id: 108 +safeframes_ok: false +prebid_member: true +pbjs: true +pbs: true --- ### Bid Params diff --git a/dev-docs/bidders/rise.md b/dev-docs/bidders/rise.md index db95c5fce4..01585fbb75 100644 --- a/dev-docs/bidders/rise.md +++ b/dev-docs/bidders/rise.md @@ -1,13 +1,17 @@ --- layout: bidder title: Rise -description: Prebid Bidder Adaptor +description: Prebid Bidder Adaptor pbjs: true biddercode: rise -media_types: no-display, video +media_types: video schain_supported: true gdpr_supported: true usp_supported: true +floors_supported: true +userIds: all +fpd_supported: true +gvl_id: 1043 --- ### Note @@ -23,7 +27,7 @@ The Rise adapter requires setup and approval. Please reach out to prebid-rise-en | ---- | ----- | ---- | ----------- | ------- | `org` | required | String | Rise publisher Id provided by your Rise representative | "56f91cd4d3e3660002000033" | `floorPrice` | optional | Number | Minimum price in USD.

    **WARNING:**
    Misuse of this parameter can impact revenue | 2.00 -| `ifa` | optional | String | The ID for advertisers (also referred to as "IDFA") | "XXX-XXX" +| `placementId` | optional | String | A unique placement identifier | "12345678" | `testMode` | optional | Boolean | This activates the test mode | false ## Example @@ -43,7 +47,7 @@ var adUnits = [ params: { org: '56f91cd4d3e3660002000033', // Required floorPrice: 5.00, // Optional - ifa: 'XXX-XXX', // Optional + placementId: '12345678', // Optional testMode: false // Optional } }] @@ -54,15 +58,5 @@ var adUnits = [ ### Configuration Rise recommends setting UserSync by iframe for monetization. -For Prebid.js v1.15.0 and later: - -pbjs.setConfig({ - userSync: { - filterSettings: { - iframe: { - bidders: '*', // '*' represents all bidders - filter: 'include' - } - } - } -}); +### Versions +Prebid versions 5.0-5.3 are not supported diff --git a/dev-docs/bidders/roundel.md b/dev-docs/bidders/roundel.md new file mode 100644 index 0000000000..fed8e9a1f5 --- /dev/null +++ b/dev-docs/bidders/roundel.md @@ -0,0 +1,25 @@ +--- +layout: bidder +title: Roundel +description: Prebid Roundel Bidder Adapter +biddercode: roundel +aliasCode: ix +pbjs: true +pbs: true +userIds: identityLink, netId, fabrickId, zeotapIdPlus +pbs_app_supported: true +schain_supported: true +coppa_supported: true +gdpr_supported: true +usp_supported: true +media_types: banner, video +gvl_id: 10 +prebid_member: yes +--- + +## Overview +Roundel is an aliased bidder for Index Exchange and must be configured alongside the [IdentityLink](/dev-docs/modules/userId.html#identitylink) user ID module. + +## Bid Params +Bidder params for roundel follow the same structure as the Index Exchange bidder. Please reference configuration examples [here](/dev-docs/bidders/ix). + diff --git a/dev-docs/bidders/rtbanalytica.md b/dev-docs/bidders/rtbanalytica.md new file mode 100644 index 0000000000..3718ed244b --- /dev/null +++ b/dev-docs/bidders/rtbanalytica.md @@ -0,0 +1,27 @@ +--- +layout: bidder +title: RtbAnalytica +description: RtbAnalytica Bidder Adaptor +pbjs: true +pbs: true +biddercode: rtbanalytica +aliasCode : adkernel +media_types: banner, native, video +gdpr_supported: true +usp_supported: true +coppa_supported: true +pbs_app_supported: true +schain_supported: true +--- + +### Note: + +The RtbAnalytica bidding adapter requires setup and approval before implementation. Please reach out to for more details. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------|----------|-----------------------|---------------------------|----------| +| `host` | required | RtbAnalytica RTB host | `'cpm.rtbanalytica.com'` | `string` | +| `zoneId` | required | Zone Id | `30164` | `integer` | diff --git a/dev-docs/bidders/rtbdemand.md b/dev-docs/bidders/rtbdemand.md index bf429d80c7..0407f9d60a 100644 --- a/dev-docs/bidders/rtbdemand.md +++ b/dev-docs/bidders/rtbdemand.md @@ -6,6 +6,7 @@ top_nav_section: dev_docs nav_section: reference pbjs: true biddercode: rtbdemand +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/rtbsolutions.md b/dev-docs/bidders/rtbsolutions.md index 17fc1b5050..53fa8379f5 100644 --- a/dev-docs/bidders/rtbsolutions.md +++ b/dev-docs/bidders/rtbsolutions.md @@ -5,7 +5,7 @@ description: Prebid RTB Solutions Bidder Adaptor pbjs: true biddercode: rtbsolutions media_types: banner - +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/rubicon.md b/dev-docs/bidders/rubicon.md index 8712647869..aa23cbfb44 100644 --- a/dev-docs/bidders/rubicon.md +++ b/dev-docs/bidders/rubicon.md @@ -7,15 +7,16 @@ gdpr_supported: true usp_supported: true coppa_supported: true schain_supported: true -getFloor: true +floors_supported: true media_types: video userIds: all prebid_member: true safeframes_ok: true -bidder_supports_deals: true +deals_supported: true pbjs: true pbs: true pbs_app_supported: true +fpd_supported: true gvl_id: 52 --- @@ -28,37 +29,128 @@ For both Prebid.js and Prebid Server, the Rubicon Project adapter requires setup {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |-------------|---------|--------------------|-----------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|------------------| -| `accountId` | required | The publisher account ID | `'4934'` | `string` | -| `siteId` | required | The site ID | `'13945'` | `string` | -| `zoneId` | required | The zone ID | `'23948'` | `string` | -| `sizes` | optional | Array of Rubicon Project size IDs. If not specified, the system will try to convert from the AdUnit's mediaTypes.banner.sizes. | `[15]` | `Array` | +| `accountId` | required | The publisher account ID | `4934` | `integer` | +| `siteId` | required | The site ID | `13945` | `integer` | +| `zoneId` | required | The zone ID | `23948` | `integer` | | `position` | optional | Set the page position. Valid values are "atf" and "btf". | `'atf'` | `string` | | `userId` | optional | Site-specific user ID may be reflected back in creatives for analysis. Note that userId needs to be the same for all slots. | `'12345abc'` | `string` | | `floor` | optional | Sets the global floor -- no bids will be made under this value. | `0.50` | `float` | | `latLong` | optional | Sets the latitude and longitude for the visitor (avail since PBJS 1.10) | `[40.7608, 111.8910]` | `Array` | -| `inventory` | optional | Use this for First Party Data before PBJS 4.26. Between 4.26 and 4.29 (inclusive) use the `fpd` method of [First Party Data](/features/firstPartyData.html). In release 4.30 and later, use the `ortb2` method of setting First Party Data. In 4.25 and earlier, this parameter allows the definition of an object defining arbitrary key-value pairs concerning the page for use in targeting. The values must be arrays. | `{"rating":["5-star"], "prodtype":["tech","mobile"]}` | `object` | -| `visitor` | optional | Use this for First Party Data before PBJS 4.26. Between 4.26 and 4.29 (inclusive) use the `fpd` method of [First Party Data](/features/firstPartyData.html). In release 4.30 and later, use the `ortb2` method of setting First Party Data. In 4.25 and earlier, this parameter allows the definition of an object defining arbitrary key-value pairs concerning the visitor for use in targeting. The values must be arrays. | `{"ucat":["new"], "search":["iphone"]}` | `object` | -| `keywords` | optional | Deprecated - please use the [First Party Data feature](/features/firstPartyData.html), e.g. AdUnit.fpd.context.data.keywords. This is a legacy parameter that only works for client-side display. To get video or server-side reporting, please use First Party data or the inventory/visitor parameters. The order of precedence for banner is: params.keywords, AdUnit.fpd.context.data.keywords, config.fpd.keywords. | `['travel', 'tourism']` | `Array` | +| `inventory` | optional | See below for details on First Party Data. In release 4.29 and earlier, this parameter allows the definition of an object defining arbitrary key-value pairs concerning the page for use in targeting. The values must be arrays. | `{"rating":["5-star"], "prodtype":["tech","mobile"]}` | `object` | +| `visitor` | optional | See below for details on First Party Data. In release 4.29 and earlier, this parameter allows the definition of an object defining arbitrary key-value pairs concerning the visitor for use in targeting. The values must be arrays. | `{"ucat":["new"], "search":["iphone"]}` | `object` | +| `keywords` | optional | See below for details on First Party Data. In release 4.29 and earlier, this can be used to influence reports for client-side display. To get video or server-side reporting, please use First Party data or the inventory/visitor parameters. | `['travel', 'tourism']` | `Array` | | `video` | required for video | Video targeting parameters. See the [video section below](#rubicon-video). | `{"language": "en"}` | `object` | -
    +#### First Party Data -#### Video +Rubicon Project requires that first party data be split into two categories: "inventory" and "visitor". -The following video parameters are supported: +For Prebid.js 4.29 and before, use the bidder specific AdUnit parameters noted above: +``` +var adUnit = { + ... + bids: [{ + bidder: 'rubicon', + params: { + accountId: 7780, // replace account/site/zone params + siteId: 87184, + zoneId: 413290, + inventory: { + prodtype: ["tech","mobile"] + }, + visitor: { + ucat:["new"] + } + } + }] +}; +``` + +In release 4.30 and later, we recommend using the ortb2 method of setting First Party Data. This can be done in two ways: global (cross-bidder) or bidder-specific. For Inventory, you will need to use site.ext.data, and For Visitor, you will need to use the user.ext.data. For More information about Audience Segments in Magnite: https://resources.rubiconproject.com/resource/publisher-resources/segment-management-user-guide/ + +Example first party data available to all bidders and all adunits: +``` +pbjs.setConfig({ + ortb2: { + site: { + keywords: "kw1,kw2", // sent to Rubicon as 'keywords' available in reports for client-side display ads + ext: { + data: { + prodtype: ["tech","mobile"] // site.ext.data is sent to Rubicon as "inventory" data + } + } + }, + user: { + ext: { + data: { + ucat:["new"] // user.ext.data is sent to Rubicon as "visitor" data + } + } + } + } +}; +``` + +Example of first party data available only to the Rubicon Project bidder. Applies across all ad units. +``` +pbjs.setBidderConfig({ + bidders: ["rubicon"], + config: { + ortb2: { + site: { + keywords: "kw1,kw2", // sent to Rubicon as 'keywords' available in reports for client-side display ads + ext: { + data: { + prodtype: ["tech","mobile"] // site.ext.data is sent to Rubicon as "inventory" data + } + } + }, + user: { + ext: { + data: { + ucat:["new"] // user.ext.data is sent to Rubicon as "visitor" data + } + } + } + } + } +}; +``` + +#### mediaTypes.video + +The following video parameters are supported here so publishers may fully declare their video inventory: {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |----------------|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|-----------| -| `playerWidth` | optional | Video player width in pixels. If not specified, takes width set in mediaTypes.video.playerSize | `'640'` | `string` | -| `playerHeight` | optional | Video player height in pixels. If not specified, takes height set in mediaTypes.video.playerSize | `'360'` | `string` | -| `size_id` | optional for Prebid.js, required for Prebid Server | Integer indicating the Rubicon Project video ad format ID. If not set, Prebid.js can infer from mediaTypes.video.context | `201` | `integer` | -| `language` | recommended | Indicates the language of the content video, in ISO 639-1/alpha2. Highly recommended for successful monetization for pre-, mid-, and post-roll video ads. Not applicable for interstitial and outstream. | `'en'` | `string` | +| context | required | instream or outstream |"outstream" | string | +| playerSize| required | width, height of the player in pixels | [640,360] - will be translated to w and h in bid request | array | +| mimes | required | List of content MIME types supported by the player (see openRTB v2.5 for options) | ["video/mp4"]| array| +| protocols | required | Supported video bid response protocol values
    1: VAST 1.0
    2: VAST 2.0
    3: VAST 3.0
    4: VAST 1.0 Wrapper
    5: VAST 2.0 Wrapper
    6: VAST 3.0 Wrapper
    7: VAST 4.0
    8: VAST 4.0 Wrapper | [2,3,5,6] | array| +| api | required | Supported API framework values:
    1: VPAID 1.0
    2: VPAID 2.0
    3: MRAID-1
    4: ORMMA
    5: MRAID-2 | [2] | array | +| linearity | required | OpenRTB2 linearity. 1: linear (in-stream ad), 2: non-linear (overlay ad) | 1 | integer | +| maxduration | recommended | Maximum video ad duration in seconds. | 30 | integer | +| minduration | recommended | Minimum video ad duration in seconds | 6 | integer | +| playbackmethod | recommended | Playback methods that may be in use. Only one method is typically used in practice. (see openRTB v2.5 section 5.10 for options)| [2]| array | +| skip | optional | Indicates if the player will allow the video to be skipped, where 0 = no, 1 = yes. | 1 | integer | +| skipafter| optional | Number of seconds a video must play before skipping is enabled; only applicable if the ad is skippable. | 6 | integer| +| minbitrate | optional | Minimum bit rate in Kbps. | 300 | integer | +| maxbitrate | optional | Maximum bit rate in Kbps. | 9600 | integer | +| startdelay* | recommended | Indicates the start delay in seconds for pre-roll, mid-roll, or post-roll ad placements.
    >0: Mid-Roll (value indicates start delay in second)
    0: Pre-Roll
    -1: Generic Mid-Roll
    -2: Generic Post-Roll | 0 | integer | +| placement* | recommended | Placement type for the impression. (see openRTB v2.5 section 5.9 for options) | 1 | integer | +| | | | | | + + +#### bids.params.video + +The following Rubicon Project-specific video parameters are supported: -{: .alert.alert-warning :} -For Prebid.js 2.5 and later, the Rubicon Project adapter for video requires more parameters in the AdUnit's `mediaTypes.video` definition than required for version 2.4 and earlier. -We are requiring these parameters for publishers to fully declare their video inventory to be transparent to bidders, getting the best chance at a high value and technically compatible bid. -Specifically, we're requiring: `mimes`, `protocols`, `maxduration`, `linearity`, and `api`. See the example below. +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------------|--------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|-----------| +| `size_id` | optional for Prebid.js, required for Prebid Server | Integer indicating the Rubicon Project video ad format ID. If not set, Prebid.js can infer from mediaTypes.video.context, placement, startDelay | `201` | `integer` | +| `language` | recommended | Indicates the language of the content video, in ISO 639-1/alpha2. Highly recommended for successful monetization for pre-, mid-, and post-roll video ads. Not applicable for interstitial and outstream. | `'en'` | `string` | Here's a video example for Prebid.js 2.5 or later: @@ -77,11 +169,11 @@ var videoAdUnit = { } }, bids: [{ - bidder: 'rubicon', // replace bidders + bidder: 'rubicon', params: { - accountId: '7780', // and params - siteId: '87184', - zoneId: '413290', + accountId: 7780, // replace params + siteId: 87184, + zoneId: 413290, video: { language: 'en' } @@ -90,44 +182,39 @@ var videoAdUnit = { }; ``` -This example adunit will also work Prebid.js 2.4 and earlier, but mimes, protocols, maxduration, linearity, and api are not required. +This example adunit will also work in Prebid.js 2.4 and earlier, but mimes, protocols and api are not required. -We recommend discussing video demand with your Rubicon Project account representative. +We recommend discussing video demand with your Magnite account representative. -Lists of api, protocol, and linearity values are in the [OpenRTB 2.5](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf) documentation, copied here for convenience: +Lists of values are in the [OpenRTB 2.5](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf) documentation as referenced above. -##### api -+ `1` : VPAID 1.0 -+ `2` : VPAID 2.0 -+ `3` : MRAID 1.0 -+ `4` : ORMMA -+ `5` : MRAID 2.0 -+ `6` : MRAID 3.0 +#### Outstream Video -##### linearity -+ `1` : Linear / In-Stream -+ `2` : Non-Linear / Overlay +As of Prebid.js 4.37 Magnite's Rubicon Project adapter supports outstream video in two ways: using your own renderer or using ours. See the [Prebid.org Outstream documentation](/dev-docs/show-outstream-video-ads.html) for more information on using your own renderer. -##### protocols -+ `1` : VAST 1.0 -+ `2` : VAST 2.0 -+ `3` : VAST 3.0 -+ `4` : VAST 1.0 Wrapper -+ `5` : VAST 2.0 Wrapper -+ `6` : VAST 3.0 Wrapper -+ `7` : VAST 4.0 -+ `8` : VAST 4.0 Wrapper -+ `9` : DAAST 1.0 -+ `10` : DAAST 1.0 Wrapper +#### Outstream Renderer +The Magnite outstream renderer is a JavaScript tag that will load our outstream video player and render when it is 50% or more in view, pause when it’s more than 50% out of view, and close when the ad has completed playing. -#### Outstream Video +The renderer appearance can be configured with the following parameters, all of them optional. If any parameter is missing, the default value will be used. All options are case-sensitive and unknown options will be ignored. Additional advanced options are available by calling your Magnite account representative. + +``` +pbjs.setConfig({ + rubicon: { + rendererConfig: { + align: 'center', // player placement: left|center|right (default is center) + position: 'append' // position relative to ad unit: append|prepend|before|after (default is after) + closeButton: true, // display 'Close' button (default is false) + label: 'Advertisement', // custom text to display above the player (default is '-') + collapse: true // remove the player from the page after ad playback (default is true) + } + } +}); +``` -Rubicon Project supports outstream video with these restrictions: -* The publisher must [provide their own renderer](/dev-docs/show-outstream-video-ads.html#renderers). -* Rubicon Project does not make concurrent banner and video requests. The Rubicon adapter will send a video request if bids[].params.video is supplied, else a banner request will be made. +* The Rubicon Project adapter does not make concurrent banner and video requests. Instead, the adapter will send a video request if bids[].params.video is supplied, else a banner request will be made. ### Configuration @@ -148,9 +235,9 @@ pbjs.setConfig({ -2) Bids through the Rubicon Project Exchange are by default 'net'. For certain use cases it is possible for Rubicon Project clients to define a bid as either 'net' or 'gross'. In either case the Rubicon platform does not signal externally to other systems either bid state. +2) Bids through the Rubicon Project Exchange are by default 'net'. For certain use cases it is possible for publishers to define a bid as either 'net' or 'gross'. In either case the Rubicon platform does not signal externally to other systems either bid state. -For Prebid, the Rubicon Project bid adapter reports the revenue type as ‘gross’ by default before 2.35 and ‘net’ by default in 2.35 and later (as the vast majority of accounts are net and all new accounts are net). +For Prebid, the Rubicon Project bid adapter reports the revenue type as ‘gross’ by default before 2.35 and ‘net’ by default in 2.35 and later (as the vast majority of accounts are net and all new accounts are net). It’s important to note that what the Rubicon Prebid bid adapter reports is not directly related to the setting with the Rubicon Project exchange. If you are a publisher who has set your Rubicon exchange revenue type set to ‘gross’ and you'd like the Rubicon bid adapter to also report 'gross', you can change the 2.35+ default 'net' setting in Prebid.js with: diff --git a/dev-docs/bidders/sa_lunamedia.md b/dev-docs/bidders/sa_lunamedia.md new file mode 100644 index 0000000000..82c699af92 --- /dev/null +++ b/dev-docs/bidders/sa_lunamedia.md @@ -0,0 +1,22 @@ +--- +layout: bidder +title: SA Lunamedia +description: SA Lunamedia Bidder Adapter +biddercode: sa_lunamedia +usp_supported: true +schain_supported: true +media_types: banner, video, native +gdpr_supported: true +pbjs: false +pbs: true +pbs_app_supported: true +gvl_id: 998 +pbjs_version_notes: not in 5.x +--- + +### Prebid Server Bid Params +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------------|----------|----------------------------------------------------------|------------|-----------| +| `key` | required | Placement integration key | `'1234'` | `string` | +| `type` | optional | Supported values are `publisher` and `network`. | `'publisher'` | `string` | diff --git a/dev-docs/bidders/saambaa.md b/dev-docs/bidders/saambaa.md index ca38b82722..1d2415374b 100644 --- a/dev-docs/bidders/saambaa.md +++ b/dev-docs/bidders/saambaa.md @@ -4,6 +4,7 @@ title: Saambaa description: Prebid Saambaa Bidder Adapter pbjs: true biddercode: saambaa +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/safereach.md b/dev-docs/bidders/safereach.md deleted file mode 100644 index 1c2ff90c6b..0000000000 --- a/dev-docs/bidders/safereach.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: bidder -title: SafeReach -description: Prebid Safe Reach Bidder Adaptor -pbjs: true -biddercode: safereach -aliasCode : aardvark ---- - -### bid params - -{: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|------|----------|--------------------|----------|----------| -| `ai` | required | The auction ID | `'XBC1'` | `string` | -| `sc` | required | The adshortcode | `'AF2g'` | `string` | diff --git a/dev-docs/bidders/segmento.md b/dev-docs/bidders/segmento.md index 0ca7a2ed9d..3358f04be9 100644 --- a/dev-docs/bidders/segmento.md +++ b/dev-docs/bidders/segmento.md @@ -5,6 +5,7 @@ description: Prebid Segmento Bidder Adaptor pbjs: true biddercode: segmento media_types: banner +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/sekindoUM.md b/dev-docs/bidders/sekindoUM.md index db591bb625..cf55667388 100644 --- a/dev-docs/bidders/sekindoUM.md +++ b/dev-docs/bidders/sekindoUM.md @@ -6,6 +6,7 @@ pbjs: true biddercode: sekindoUM media_types: video gdpr_supported: true +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/selectmediavideo.md b/dev-docs/bidders/selectmediavideo.md index 5018b660b5..b83990023e 100644 --- a/dev-docs/bidders/selectmediavideo.md +++ b/dev-docs/bidders/selectmediavideo.md @@ -1,17 +1,19 @@ --- layout: bidder title: SelectMedia Video -description: SelectMedia Video Bidder Adapter +description: Prebid SelectMedia Video Bidder Adapter pbjs: true biddercode: selectmediavideo aliasCode: aniview -media_types: video +media_types: banner, video gdpr_supported: true usp_supported: true +schain_supported: true +safeframes_ok: true --- ### Note: -For more information about [SelectMedia](http://www.selectmedia.asia/). +For more information about [SelectMedia](https://www.selectmedia.asia/), please contact info@selectmedia.asia. ### Bid Params diff --git a/dev-docs/bidders/sharethrough.md b/dev-docs/bidders/sharethrough.md index ab34cb6615..9054f5e354 100644 --- a/dev-docs/bidders/sharethrough.md +++ b/dev-docs/bidders/sharethrough.md @@ -4,10 +4,12 @@ title: Sharethrough biddercode: sharethrough description: Prebid Sharethrough Adaptor gdpr_supported: true +coppa_supported: true media_types: native schain_supported: true userIds: pubCommonId, unifiedId, identityLink, id5Id, sharedId, liveIntentId usp_supported: true +fpd_supported: true pbjs: true pbs: true --- diff --git a/dev-docs/bidders/shinez.md b/dev-docs/bidders/shinez.md new file mode 100644 index 0000000000..b9bd8c8235 --- /dev/null +++ b/dev-docs/bidders/shinez.md @@ -0,0 +1,42 @@ +--- +layout: bidder +title: Shinez +description: Prebid Shinez Bidder Adapter +biddercode: shinez +media_types: banner +pbjs: true +pbjs_version_notes: not in 5.x +--- + +### Registration + +The Shinez adapter requires setup and approval from the Shinez team. Please reach out to tech-team@shinez.io for more information. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|------------|----------|----------------------|------------|----------| +| `placementId` | required | A Shinez-specific identifier that is associated with a specific domain provided by your Shinez representative. | `'00654321'` | `string` | +| `unit` | optional | An alphanumerical value used to identify the slot_id in reporting. | `'__header-bid-1'` | `string` | + +### Examples + +#### Example Banner Ad Unit + +```javascript +var adUnit = { + code: "test-div", + mediaTypes: { + banner: { + sizes: [[300, 250]] + } + }, + bids: [{ + bidder: "shinez", + params: { + placementId: "00654321" + } + }] +}; +``` diff --git a/dev-docs/bidders/slimcut.md b/dev-docs/bidders/slimcut.md index acc25494f0..598794aeac 100644 --- a/dev-docs/bidders/slimcut.md +++ b/dev-docs/bidders/slimcut.md @@ -1,7 +1,7 @@ --- layout: bidder title: Slimcut -description: SlimCut Bidder Adaptor +description: SlimCut Bidder Adapter pbjs: true biddercode: slimcut media_types: video, banner diff --git a/dev-docs/bidders/smaato.md b/dev-docs/bidders/smaato.md index ce460696ba..e8eab58473 100644 --- a/dev-docs/bidders/smaato.md +++ b/dev-docs/bidders/smaato.md @@ -4,25 +4,41 @@ title: Smaato description: Prebid Smaato Bidder Adaptor biddercode: smaato gdpr_supported: true +gvl_id: 82 usp_supported: true coppa_supported: true media_types: banner, video -userIds: criteo, pubCommonId, unifiedId +userId: criteo, pubCommonId, unifiedId pbjs: true pbs: true +pbs_app_supported: true prebid_member: true +floors_supported: true +fpd_supported: true --- ### Table of Contents +- [Registration](#smaato-registration) +- [Note](#smaato-note) - [Bid Params](#smaato-bid-params) - [App Object](#smaato-app-object) +- [Example Ad Units](#smaato-example-ad-units) - [First Party Data](#smaato-first-party) +- [Test Parameters](#smaato-test-parameters) + + ### Registration The Smaato adapter requires setup and approval from the Smaato team, even for existing Smaato publishers. Please reach out to your account team or prebid@smaato.com for more information. + + +### Note + +The Smaato adapter will convert bidfloors to 'USD' currency as needed. + ### Bid Params @@ -31,7 +47,8 @@ The Smaato adapter requires setup and approval from the Smaato team, even for ex | Name | Scope | Description | Example | Type | |------------|----------|----------------------|------------|----------| | `publisherId` | required | Your Smaato publisher id | `'1100012345'` | `string` | -| `adspaceId` | required | Your Smaato adspace id | `'11002234'` | `string` | +| `adspaceId` | required | Your Smaato adspace id. Required for non adpod requests | `'11002234'` | `string` | +| `adbreakId` | required | Your Smaato adbreak id. Required for adpod (long-form video) requests | `'41002234'` | `string` | | `app` | optional | Object containing mobile app parameters. See the [App Object](#smaato-app-object) for details.| `app : { ifa: '56700000-9cf0-22bd-b23e-46b96e40003a'}` | `object` | @@ -46,12 +63,15 @@ Smaato supports using prebid within a mobile app's webview. | `ifa` | String that contains the advertising identifier of the user (e.g. idfa or aaid). | `'56700000-9cf0-22bd-b23e-46b96e40003a'` | `string` | | `geo` | Object that contains the latitude (`lat`) and longitude (`lon`) of the user. | `{ lat: 33.3, lon: -88.8 }` | `object` | + -### Example Banner Ad Unit +### Example Ad Units + +#### Example Banner Ad Unit ```javascript var adUnit = { - "code": "header-bid-tag-1", + "code": "banner unit", "mediaTypes": { "banner": { "sizes": [320, 50] @@ -67,7 +87,7 @@ var adUnit = { } ``` -### Example Video Ad Unit +#### Example Video Ad Unit ```javascript var adUnit = { @@ -97,6 +117,37 @@ var adUnit = { }] }; ``` +#### Example AdPod (long-form) Video Ad Unit + +```javascript +var adUnit = { + "code": "adpod unit", + "mediaTypes": { + "video": { + "context": "adpod", + "playerSize": [640, 480], + "adPodDurationSec": 300, + "durationRangeSec": [15, 30], + "requireExactDuration": false, + "mimes": ["video/mp4"], + "startdelay": 0, + "linearity": 1, + "protocols": [7], + "skip": 1, + "skipmin": 5, + "api": [7], + } + }, + "bids": [{ + "bidder": "smaato", + "params": { + "publisherId": "1100042525", + "adbreakId": "400000000" + } + }] +}; +``` + ### First Party Data @@ -114,9 +165,12 @@ pbjs.setConfig({ gender: "M", yob: 1984 } + } }); ``` + + ### Test Parameters Following example includes sample `imp` object with publisherId and adSlot which can be used to test Smaato Adapter diff --git a/dev-docs/bidders/smartadserver.md b/dev-docs/bidders/smartadserver.md index 0c5d7a3b13..12db35618c 100644 --- a/dev-docs/bidders/smartadserver.md +++ b/dev-docs/bidders/smartadserver.md @@ -10,6 +10,7 @@ usp_supported: true userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, unifiedId pbjs: true pbs: true +floors_supported: true --- ### Registration diff --git a/dev-docs/bidders/smarthub.md b/dev-docs/bidders/smarthub.md new file mode 100644 index 0000000000..9bee0fd5ce --- /dev/null +++ b/dev-docs/bidders/smarthub.md @@ -0,0 +1,22 @@ +--- +layout: bidder +title: SmartHub +description: SmartHub Bidder Adapter +biddercode: smarthub +usp_supported: true +schain_supported: true +media_types: banner, video, native +gdpr_supported: true +pbjs: false +pbs: true +pbs_app_supported: true +--- + +### Prebid Server Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|---------------------|--------------------------------------|----------| +| `partnerName` | required | Unique partner name | `'partnertest'` | `string` | +| `seat` | required | Seat value | `'9Q20EdGxzgWdfPYShScl'` | `string` | +| `token` | required | Token | `'eKmw6alpP3zWQhRCe3flOpz0wpuwRFjW'` | `string` | diff --git a/dev-docs/bidders/smartico.md b/dev-docs/bidders/smartico.md new file mode 100644 index 0000000000..f05859f3b3 --- /dev/null +++ b/dev-docs/bidders/smartico.md @@ -0,0 +1,56 @@ +--- +layout: bidder +title: smartico +description: Prebid Smartico Bidder Adaptor +pbjs: true +biddercode: smartico +media_types: banner +--- + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|-----------------|----------|--------------------------|--------------|----------| +| `placementId` | required | Unique identificator per widget integration provided by customer | `'1234567'` | `string` | +| `token` | required | Unique 40-symbols identificator per customer provided by smartico | `'FNVzUGZn9ebpIOoheh3kEJ2GQ6H6IyMH39sHXaya` | `string` | +| `region` | optional | Creative region alias | `'berlin'` | `string` | +| `regions` | optional | Creative region aliases list | `['berlin', 'hamburg']` | `Array` | +| `bannerFormat` | optional | Specific banner format alias | `'medium_rectangle'` | `string` | +| `language` | optional | Two letter language code | `'de'` | `string` | + +### Note + +The Smartico bidder adaptor requires setup and approval from the Smartico team. Please reach out to [sk@smartico.eu](mailto:sk@smartico.eu) for more information.
    +
    +• Parameters 'region' and 'regions' are used as creatives feed filters, making sure creatives of specified region(s) to be only provided. The complete list of regions aliases must be predefined per each customer during the adapter integration.
    +• Parameter 'regions' can a array of region aliases or a string of comma separated region aliases
    +• Parameter 'bannerFormat' is needed in cases when it is not possible to precisely resolve the banner format by provided sizes as two or more banner formats could match that. The list supported banner formats could vary per customer thus must be predefined during the adapter integration.
    +• Parameter 'language' is used as creatives feed filter, making sure creatives of specified or no language content to be only provided and simultaneously making sure labels of specified language to be displayed inside creatives. The default label language is German. + +### Banner - Ad Unit Setup +```javascript +var adUnits = [ + { + code: 'slot123', + mediaTypes: { + banner: { + sizes: [[300, 250]], // a display size + } + }, + bids: [ + { + bidder: "smartico", + params: { + placementId: 'placement123', //required + token: "FNVzUGZn9ebpIOoheh3kEJ2GQ6H6IyMH39sHXaya", // required + region: "sample-region-code-1", // optional + regions: ["sample-region-code-1","sample-region-code-2"], // optional + bannerFormat: "medium_rectangle", // optional + language:"de" // optional + } + } + ] + } + ] +``` diff --git a/dev-docs/bidders/smartrtb.md b/dev-docs/bidders/smartrtb.md index df674f69d8..f81e8172ad 100644 --- a/dev-docs/bidders/smartrtb.md +++ b/dev-docs/bidders/smartrtb.md @@ -9,6 +9,7 @@ userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrable pbjs: true pbs: true pbs_app_supported: true +pbjs_version_notes: not in 5.x --- ### Registration diff --git a/dev-docs/bidders/smartx.md b/dev-docs/bidders/smartx.md index afb5d1dbf5..ecfbcf42be 100644 --- a/dev-docs/bidders/smartx.md +++ b/dev-docs/bidders/smartx.md @@ -11,6 +11,7 @@ schain_supported: false usp_supported: true safeframes_ok: false pbjs: true +pbjs_version_notes: avoid 4.31-4.39 --- ### Registration @@ -27,7 +28,6 @@ Please reach out to your smartclip business contact for any questions and assist | `bidfloor` | required | Value of Bidfloor. | `0.3` | `float` | | `bidfloorcur` | required | Used Currency. (e.g. EUR, USD etc.) | `'EUR'` | `string` | | `context` | optional | Token that describes which context to play: 'instream' or 'outstream' | `'outstream'` | `string` | -| `outstream_function` | optional | Custom function to be used as a renderer. | `function(bid){console.log(bid);}` | `function` | | `outstream_options` | required | Object to set options on the smartx renderer. (Only required when setting mediaType.video.context = 'outstream') | `{}` | `object` | | `secure` | optional | Boolean identifying whether the requests should be https or not (used to override the protocol if the page isn't secure). | `true`| `boolean` | | `mimes` | optional | List of MIME types to allow in ad. | `['application/javascript', 'video/mp4', 'video/webm']` | `array` | @@ -47,6 +47,6 @@ Please reach out to your smartclip business contact for any questions and assist | `maxAdWidth` | optional | Maximum size of the player. | `900` | `integer` | | `title` | optional | Makes a defined advertising text appear in the below right corner. `[remainingTime]` can be used to display the remaining time of the advertisement. | `'Advertisement [remainingTime]s'` | `string` | | `skipOffset` | optional | Define whenever the advertisement can be skipped. 0 = never | `0` | `integer` | -| `startOpen` | optional | Define whether the player should be initialized open or open when it is within view. | `false` | `bool` | -| `endingScreen` | optional | Define whether the player should stay open after advertising or not. | `true` | `bool` | +| `startOpen` | optional | Define whether the player should be initialized open or open when it is within view. | `'false'` | `string` | +| `endingScreen` | optional | Define whether the player should stay open after advertising or not. | `'true'` | `string` | | `desiredBitrate`| optional | Define the desired bitrate of the mediafile. | `800` | `integer` | diff --git a/dev-docs/bidders/smartyads.md b/dev-docs/bidders/smartyads.md index 3b0738bee3..671cf75ef0 100644 --- a/dev-docs/bidders/smartyads.md +++ b/dev-docs/bidders/smartyads.md @@ -9,7 +9,7 @@ coppa_supported: true schain_supported: true media_types: banner, video, native safeframes_ok: true -bidder_supports_deals: true +deals_supported: true pbjs: true pbs: true --- diff --git a/dev-docs/bidders/smilewanted.md b/dev-docs/bidders/smilewanted.md index 2cf3a77ce2..aae2f17d16 100644 --- a/dev-docs/bidders/smilewanted.md +++ b/dev-docs/bidders/smilewanted.md @@ -1,28 +1,46 @@ --- layout: bidder -title: SmileWanted -description: SmileWanted Bidder Adaptor +title: Smile Wanted +description: SmileWanted Bidder Adapter media_types: banner, video pbjs: true +pbs: true biddercode: smilewanted gdpr_supported: true - +usp_supported: true +gvl_id: 639 --- ### Note -To use us as a bidder you must have an account and an active "zoneId" on our SmileWanted platform. - -### Test zoneId - -zoneId: 1 - -This zoneId will always deliver an ad, a SmileWanted creation with a price of requested CPM, which offer you to test and to win every auctions. -(Please note that impressions and revenues of this test zone this will not be recorded and not be paid) +To use us as a bidder you must have an account and an active "zoneId" on our Smile Wanted platform. ### Bid params {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |----------|----------|-----------------------|----------|-----------| -| `zoneId` | required | The placement zone ID | `350975` | `integer` | +| `zoneId` | required | The placement zone ID | `'test.com_header_bidding_display_atf'` | `string` | + +### Testing + +You can add `#sw_test_campaign` to the end of any URL. This will have the effect of responding with a Smile Wanted creative with a high CPM, which means you'll win every auction so you can see if the ad displays correctly. +(Please note that impressions and revenues of this test ad will *not* be recorded and *not* be paid.) + +### User Sync + +Add the following code to enable user sync. Smile Wanted strongly recommends enabling user syncing through iFrames. This functionality improves partners' user match rates and increases the Smile Wanted bid rate and bid price. Be sure to call `pbjs.setConfig()` only once. + +``` +pbjs.setConfig({ + userSync: { + iframeEnabled: true, + filterSettings: { + iframe: { + bidders: '*', // '*' means all bidders + filter: 'include' + } + } + } +}); +``` diff --git a/dev-docs/bidders/smms.md b/dev-docs/bidders/smms.md index e4fb330d8c..f52ac751fb 100644 --- a/dev-docs/bidders/smms.md +++ b/dev-docs/bidders/smms.md @@ -5,6 +5,7 @@ description: Prebid SMMS Bidder Adaptor pbjs: true biddercode: smms media_types: banner, native +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/somo.md b/dev-docs/bidders/somo.md index fe8e9f57b5..44724eb0a0 100644 --- a/dev-docs/bidders/somo.md +++ b/dev-docs/bidders/somo.md @@ -5,8 +5,13 @@ description: Somo Audience Bidder Adapter pbjs: true biddercode: somo prevBiddercode: somoAudience +pbjs_version_notes: not in 5.x --- +### Disclosure + +This bidder sets `adId` on the bid response and hasn't responded to the Prebid.js team to confirm uniqueness +of this value. See [Issue 6381](https://github.com/prebid/Prebid.js/issues/6381). ### Bid Params diff --git a/dev-docs/bidders/somoaudience.md b/dev-docs/bidders/somoaudience.md index 57946aea26..2b56243146 100644 --- a/dev-docs/bidders/somoaudience.md +++ b/dev-docs/bidders/somoaudience.md @@ -5,6 +5,7 @@ description: Somo Audience Bidder Adapter biddercode: somoaudience media_types: banner, native, video pbs: true +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/sonobi.md b/dev-docs/bidders/sonobi.md index 7d0e2ca70a..73d3b538ff 100644 --- a/dev-docs/bidders/sonobi.md +++ b/dev-docs/bidders/sonobi.md @@ -5,12 +5,14 @@ description: Prebid Sonobi Bidder Adaptor biddercode: sonobi media_types: banner, video gdpr_supported: true -userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, unifiedId +userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, unifiedId, lotamePanoramaID pbjs: true pbs: true usp_supported: true +coppa_supported: true schain_supported: true pbs_app_supported: true +fpd_supported: true --- ### Note: diff --git a/dev-docs/bidders/sortable.md b/dev-docs/bidders/sortable.md index 6085124979..2ac98e8707 100644 --- a/dev-docs/bidders/sortable.md +++ b/dev-docs/bidders/sortable.md @@ -10,6 +10,8 @@ usp_supported: true schain_supported: true prebid_member: true gvl_id: 145 +floors_supported: true +userIds: all --- **Table of Contents** diff --git a/dev-docs/bidders/sovrn.md b/dev-docs/bidders/sovrn.md index 69f9fe1f60..98c383cbeb 100644 --- a/dev-docs/bidders/sovrn.md +++ b/dev-docs/bidders/sovrn.md @@ -11,6 +11,8 @@ userIds: all prebid_member: true schain_supported: true gvl_id: 13 +floors_supported: true +fpd_supported: true --- ### Bid Params diff --git a/dev-docs/bidders/spotx.md b/dev-docs/bidders/spotx.md index eb224ba5c2..db387ff88f 100644 --- a/dev-docs/bidders/spotx.md +++ b/dev-docs/bidders/spotx.md @@ -12,8 +12,15 @@ usp_supported: true safeframes_ok: false pbjs: true gvl_id: 165 +floors_supported: true +pbjs_version_notes: avoid 4.31-4.35 --- +### Note: + +There was an issue in the SpotX adapter in PBJS 4.31 that assumed all publishers had already set the [`ignoreVideoCacheKey`](/dev-docs/publisher-api-reference.html#setConfig-vast-cache). +Publishers using SpotX that haven't yet updated their ad server line items and turned on the ignoreVideoCacheKey option should avoid Prebid.js 4.31 - 4.35. + ### Bid Params {: .table .table-bordered .table-striped } @@ -26,7 +33,7 @@ gvl_id: 165 | `secure` | optional | Boolean identifying whether the requests should be https or not (used to override the protocol if the page isn't secure). | `true` | `boolean` | | `mimes` | optional | List of MIME types to allow in ad. | `['application/javascript', 'video/mp4', 'video/webm']` | `array` | | `ad_volume` | optional | Value between 0 and 1 to denote the volume the ad should start at | `0.7` | `float` | -| `price_floor` | optional | Set the current channel price floor in real time. | `10` | `integer` | +| `price_floor` | optional | Set the current channel price floor in real time. | `10` | `float` | | `hide_skin` | optional | Set to true to hide the SpotX skin | | `boolean` | | `custom` | optional | An object containing key-value pairs for reporting. See SpotX documentation [here](https://developer.spotxchange.com/content/local/docs/sdkDocs/DirectSdk/dsdk-custom-configs.md#custom-key-value-pair-reporting) | | `object` | | `min_duration` | optional | Minimum video ad duration in seconds | | `integer` | diff --git a/dev-docs/bidders/sspBC.md b/dev-docs/bidders/sspBC.md index e04e781816..18889255a4 100644 --- a/dev-docs/bidders/sspBC.md +++ b/dev-docs/bidders/sspBC.md @@ -4,8 +4,10 @@ title: sspBC description: Prebid sspBC Bidder Adaptor pbjs: true biddercode: sspBC -media_types: banner +media_types: banner, video, native +floors_supported: true gdpr_supported: true +fpd_supported: true gvl_id: 676 --- @@ -13,10 +15,11 @@ gvl_id: 676 ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|-------------|----------|----------------------------|-----------------------------|-----------| -| `id` | optional | placement id | `'006'` | `string` | -| `siteId` | optional | site id | `'235911'` | `string` | -| `domain` | optional | site domain | `'somesite.com'` | `string` | -| `page` | optional | page url | `'somesite.com/index.html'` | `string` | -| `tmax` | optional | tmax for server connection | `400` | `integer` | +| Name | Scope | Description | Example | Type | +|---------------|----------|----------------------------|-----------------------------|-----------| +| `id` | optional | placement id | `'006'` | `string` | +| `siteId` | optional | site id | `'235911'` | `string` | +| `publisherId` | optional | publisher id | `'728'` | `string` | +| `domain` | optional | site domain | `'somesite.com'` | `string` | +| `page` | optional | page url | `'somesite.com/index.html'` | `string` | +| `tmax` | optional | tmax for server connection | `400` | `integer` | diff --git a/dev-docs/bidders/streamkey.md b/dev-docs/bidders/streamkey.md new file mode 100644 index 0000000000..1da16ba537 --- /dev/null +++ b/dev-docs/bidders/streamkey.md @@ -0,0 +1,57 @@ +--- +layout: bidder +title: Streamkey +description: Prebid Streamkey.tv Bidder Adapter +pbjs: true +biddercode: streamkey +aliasCode: adtelligent +media_types: video +--- + +### Bid params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|-------|----------|---------------------------------|----------|-----------| +| `aid` | required | The traffic source ID | `232131` | `integer` | + + +### Test Parameters +``` + var adUnits = [ + + // Video instream adUnit + { + code: 'div-test-div', + sizes: [[640, 480]], + mediaTypes: { + video: { + context: 'instream' + } + }, + bids: [{ + bidder: 'streamkey', + params: { + aid: 331133 + } + }] + }, + + // Video outstream adUnit + { + code: 'outstream-test-div', + sizes: [[640, 480]], + mediaTypes: { + video: { + context: 'outstream' + } + }, + bids: [{ + bidder: 'streamkey', + params: { + aid: 331133 + } + }] + }, + ]; +``` diff --git a/dev-docs/bidders/stroeerCore.md b/dev-docs/bidders/stroeerCore.md index 9c0bae38c6..307ccd4b25 100644 --- a/dev-docs/bidders/stroeerCore.md +++ b/dev-docs/bidders/stroeerCore.md @@ -13,7 +13,7 @@ prebid_member: false pbjs: true pbs: false gvl_id: 136 -bidder_supports_deals: true +deals_supported: true --- ### Bid Params diff --git a/dev-docs/bidders/stv.md b/dev-docs/bidders/stv.md index 765c03e670..d55a9f68a2 100644 --- a/dev-docs/bidders/stv.md +++ b/dev-docs/bidders/stv.md @@ -6,6 +6,7 @@ pbjs: true biddercode: stv media_types: banner,video gdpr_supported: false +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/synacormedia.md b/dev-docs/bidders/synacormedia.md index 477f711ae9..a33aec42f1 100644 --- a/dev-docs/bidders/synacormedia.md +++ b/dev-docs/bidders/synacormedia.md @@ -6,6 +6,7 @@ pbjs: true pbs: true biddercode: synacormedia media_types: banner, video +userIds: identityLink, verizonMediaId, pubCommonId, nextrollId gdpr_supported: false schain_supported: true usp_supported: true @@ -60,7 +61,11 @@ var adUnits = [{ "mediaTypes": { "video": { "playerSize": [300, 250], - "context": "instream" + "context": "instream", + "minduration": 15, + "maxduration": 30, + "startdelay": 1, + "linearity": 1 } }, "bids": [{ @@ -69,13 +74,7 @@ var adUnits = [{ "seatId": "prebid", "tagId": "demo1", "bidfloor": 0.20, - "pos": 1, - "video": { - "minduration": 15, - "maxduration": 30, - "startdelay": 1, - "linearity": 1 - } + "pos": 1 } }] }] diff --git a/dev-docs/bidders/talkads.md b/dev-docs/bidders/talkads.md new file mode 100644 index 0000000000..8a8dfe4419 --- /dev/null +++ b/dev-docs/bidders/talkads.md @@ -0,0 +1,74 @@ +--- +layout: bidder +title: Talkads +description: Talkads Prebid Bidder Adapter +biddercode: talkads +gdpr_supported: true +gvl_id: +usp_supported: false +coppa_supported: false +media_types: banner, native +safeframes_ok: false +pbjs: true +pbs: false +prebid_member: false +pbjs_version_notes: v4.35 and later +--- + +### Registration + +The Talkads Adapter requires setup before beginning. Please contact us at www.natexo.com and register to the publisher side. + +### Configuration + +#### Prebid.js + +The TalkAds adapter does not work without setting the correct tag ID and bidder URL. +These parameters are totally specific to each Publisher, you will receive them when contacting us. + +### Bid Params + +{: .table .table-bordered .table-striped } + +| Name | Scope | Description | Example | Type | +|--------------|----------|----------------------------------------------------------------|---------------------------------------------------------|----------------| +| `tag_id` | required | The publisher tag id given by the Natexo team | `99` | `number` | +| `bidder_url` | required | The publisher bidder url given by the Natexo team | `'https://test.natexo-programmatic.com/tad/tag/prebid'` | `string` | + +#### Native example + +``` +var adUnits = [ + code: '/19968336/prebid_native_example_1', + mediaTypes: { + native: { + } + }, + bids: [{ + bidder: 'talkads', + params: { + tag_id: 0, + bidder_url: 'https://d.natexo-programmatic.com/tad/tag/testbid', + }, + }] +]; +``` + +#### Banner example +``` +var adUnits = [ + code: '/19968336/prebid_display_example_1', + mediaTypes: { + banner: { + sizes: [[300, 250]] + } + }, + bids: [{ + bidder: 'talkads', + params: { + tag_id: 0, + bidder_url: 'https://d.natexo-programmatic.com/tad/tag/testbid', + }, + }] +]; +``` diff --git a/dev-docs/bidders/taphype.md b/dev-docs/bidders/taphype.md index 33dd775c29..df27868761 100644 --- a/dev-docs/bidders/taphype.md +++ b/dev-docs/bidders/taphype.md @@ -4,6 +4,7 @@ title: TapHype description: Prebid TapHype Bidder Adaptor pbjs: true biddercode: taphype +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/tappx.md b/dev-docs/bidders/tappx.md index 9b757d1238..46673da937 100644 --- a/dev-docs/bidders/tappx.md +++ b/dev-docs/bidders/tappx.md @@ -1,6 +1,6 @@ --- layout: bidder -title: Tappx +title: tappx pbs: true pbjs: true media_types: banner, video @@ -11,14 +11,13 @@ coppa_supported: true schain_supported: true pbs_app_supported: true gvl_id: 628 +userIds: all --- ### Registration Please contact tappx@tappx.com to get set up. -**Note:** The Tappx prebid bidder only supports in app traffic at the moment - ### Bid Params {: .table .table-bordered .table-striped } @@ -28,6 +27,9 @@ Please contact tappx@tappx.com to get set up. | tappxkey | required | An ID which identifies the adunit | 'key1' | string | | endpoint | required | Endpoint provided to publisher | 'endpoint1' | string | | bidfloor | optional | Minimum bid for this impression expressed in CPM (USD) | 1.2 | number | +| mktag | optional | An ID which identifies a group of adunits | 'key1' | string | +| bcid | optional | Block list of CID | ["1234"] | array of strings | +| bcrid | optional | Block list of CRID | ["1234"] | array of strings | ### Test Parameters diff --git a/dev-docs/bidders/targetvideo.md b/dev-docs/bidders/targetvideo.md new file mode 100644 index 0000000000..945d941235 --- /dev/null +++ b/dev-docs/bidders/targetvideo.md @@ -0,0 +1,46 @@ +--- +layout: bidder +title: TargetVideo +description: Prebid TargetVideo Bidder Adaptor +biddercode: targetVideo +media_types: video +gdpr_supported: true +prebid_member: true +userIds: criteo, unifiedId, netId, identityLink, flocId, uid2 +schain_supported: true +coppa_supported: true +usp_supported: true +floors_supported: true +pbjs: true +pbs: true +gvl_id: 32 +--- + +### Table of Contents + +- [Bid Params](#targetvideo-bid-params) +- [Video Object](#targetvideo-video-object) + +
    + +#### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------|------------------| +| `placementId` | required | The placement ID from TargetVideo. You may identify a placement using the `invCode` and `member` instead of a placement ID. The `placementID` parameter can be either a `string` or `integer` for Prebid.js, however `integer` is preferred. Legacy code can retain the `string` value. **Prebid Server requires an integer value.** | `234234` | `integer` | + + + +#### Video Object + +{: .table .table-bordered .table-striped } +| Name | Description | Type | +|-------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------| +| `minduration` | Integer that defines the minimum video ad duration in seconds. | `integer` | +| `maxduration` | Integer that defines the maximum video ad duration in seconds. | `integer` | +|`context` | A string that indicates the type of video ad requested. Allowed values: `"pre_roll"`; `"mid_roll"`; `"post_roll"`; `"outstream"`. | `string` | +| `skippable` | Boolean which, if `true`, means the user can click a button to skip the video ad. Defaults to `false`. | `boolean` | +|`skipoffset`| Integer that defines the number of seconds until an ad can be skipped. Assumes `skippable` setting was set to `true`. | `integer` | +| `playback_method` | A string that sets the playback method supported by the publisher. Allowed values: `"auto_play_sound_on"`; `"auto_play_sound_off"`; `"click_to_play"`; `"mouse_over"`; `"auto_play_sound_unknown"`. | `string` | +| `frameworks` | Array of integers listing API frameworks supported by the publisher. Allowed values: None: `0`; VPAID 1.0: `1`; VPAID 2.0: `2`; MRAID 1.0: `3`; MRAID 2.0: `4`; ORMMA: `5`; OMID 1.0 `6`. | `Array` | diff --git a/dev-docs/bidders/teads.md b/dev-docs/bidders/teads.md index 4ca58d6654..905567f301 100644 --- a/dev-docs/bidders/teads.md +++ b/dev-docs/bidders/teads.md @@ -7,9 +7,10 @@ biddercode: teads gdpr_supported: true usp_supported: true schain_supported: true +userIds: flocId, uid2Id media_types: banner, video gvl_id: 132 -bidder_supports_deals: true +deals_supported: true --- ### Note: diff --git a/dev-docs/bidders/telaria.md b/dev-docs/bidders/telaria.md index 947e6ba625..46ae17f350 100644 --- a/dev-docs/bidders/telaria.md +++ b/dev-docs/bidders/telaria.md @@ -9,7 +9,7 @@ gdpr_supported: true --- ### Overview -This documentation covers some of the parameters that the **Telaria** `(previously Tremor Video)` exchange accepts. And is intended to be referenced by publishers using prebid 1.x. Documentation for prebid 0.x can be found under [tremor](/dev-docs/bidders/bidders.html#tremor) +This documentation covers some of the parameters that the **Telaria** `(previously Tremor Video)` exchange accepts. And is intended to be referenced by publishers using prebid 1.x. Documentation for prebid 0.x can be found under [tremor](/dev-docs/bidders/tremor) ### Bid Params Please refer to the **Tag Parameters** section in the [Telaria Console](https://console.telaria.com) @@ -66,24 +66,7 @@ var adUnit = { "params": { "supplyCode": "ssp-demo-rm6rh", "adCode": "ssp-!demo!-lufip", - "videoId": "MyCoolVideo", -// Other params go here, - "schain" : { - "ver":"1.0", - "complete":1, - "nodes":[ - { - "asi":"exchange1.com", - "sid":"1234", - "hp":1 - }, - { - "asi":"exchange2.com", - "sid":"abcd", - "hp":1 - } - ] - } + "videoId": "MyCoolVideo" } }] } diff --git a/dev-docs/bidders/theAdx.md b/dev-docs/bidders/theAdx.md index a45925ca7e..b688704620 100644 --- a/dev-docs/bidders/theAdx.md +++ b/dev-docs/bidders/theAdx.md @@ -16,3 +16,4 @@ gdpr_supported: false | `pid` | required | Publisher GUID from TheAdx.com | `'1000'` | `int` | | `wid` | required | Web Site ID from TheAdx.com | `'2000'` | `int` | | `tagId` | required | Tag ID from TheAdx.com | `'3000'` | `int` | +| | | | | | diff --git a/dev-docs/bidders/theadx.md b/dev-docs/bidders/theadx.md deleted file mode 100644 index a45925ca7e..0000000000 --- a/dev-docs/bidders/theadx.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: bidder -title: TheAdx -description: Prebid TheAdx Bidder Adapter -pbjs: true -biddercode: theAdx -gdpr_supported: false ---- - - -### Bid Params - -{: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|-------------|----------|-----------------------------------------------------------------------|------------|-------| -| `pid` | required | Publisher GUID from TheAdx.com | `'1000'` | `int` | -| `wid` | required | Web Site ID from TheAdx.com | `'2000'` | `int` | -| `tagId` | required | Tag ID from TheAdx.com | `'3000'` | `int` | diff --git a/dev-docs/bidders/tim.md b/dev-docs/bidders/tim.md index 017485beff..085c2aef4d 100644 --- a/dev-docs/bidders/tim.md +++ b/dev-docs/bidders/tim.md @@ -4,6 +4,7 @@ title: Tim Media description: Prebid Tim Bidder Adaptor pbjs: true biddercode: tim +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/topRTB.md b/dev-docs/bidders/topRTB.md index 0d5907b54c..7e7aab5641 100644 --- a/dev-docs/bidders/topRTB.md +++ b/dev-docs/bidders/topRTB.md @@ -4,6 +4,7 @@ title: TOPRTB description: Prebid topRTB Bidder Adapter pbjs: true biddercode: topRTB +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/trendqube.md b/dev-docs/bidders/trendqube.md index 4afba603d9..2b7fefe195 100644 --- a/dev-docs/bidders/trendqube.md +++ b/dev-docs/bidders/trendqube.md @@ -6,6 +6,7 @@ pbjs: true biddercode: trendqube gdpr_supported: true media_types: banner, video +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/tribeOS.md b/dev-docs/bidders/tribeOS.md deleted file mode 100644 index 1fb5d025d0..0000000000 --- a/dev-docs/bidders/tribeOS.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: bidder -title: tribeOS -description: Prebid tribeOS Bidder Adapter -pbjs: true -biddercode: tribeos ---- - -### Note - -Please contact your account manager before using this adapter. - -### Bid Params - -{: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|------------------|----------|------------------|------------------------------------------|-------------------| -| `placementId` | required | tribeOS's placement id | `'3gl2jk225'` | `string` | diff --git a/dev-docs/bidders/tribeos.md b/dev-docs/bidders/tribeos.md deleted file mode 100644 index 1fb5d025d0..0000000000 --- a/dev-docs/bidders/tribeos.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: bidder -title: tribeOS -description: Prebid tribeOS Bidder Adapter -pbjs: true -biddercode: tribeos ---- - -### Note - -Please contact your account manager before using this adapter. - -### Bid Params - -{: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|------------------|----------|------------------|------------------------------------------|-------------------| -| `placementId` | required | tribeOS's placement id | `'3gl2jk225'` | `string` | diff --git a/dev-docs/bidders/triplelift.md b/dev-docs/bidders/triplelift.md index fb5e246eab..24f4b522f3 100644 --- a/dev-docs/bidders/triplelift.md +++ b/dev-docs/bidders/triplelift.md @@ -7,19 +7,24 @@ gdpr_supported: true usp_supported: true coppa_supported: true schain_supported: true -getFloor: true +floors_supported: true media_types: banner, video -userIds: criteo, identityLink, unifiedId +userIds: criteo, identityLink, unifiedId, pubCommonId prebid_member: true safeframes_ok: true -bidder_supports_deals: true +deals_supported: true pbjs: true pbs: true pbs_app_supported: true +fpd_supported: true gvl_id: 28 -pbjs_version_notes: avoid 4.3 - 4.14 --- +{% capture version2 %} +The Triplelift Prebid Server bidding adapter and user sync endpoint require setup before beginning. Please contact us at prebid@triplelift.com. +{% endcapture %} +{% include alerts/alert_important.html content=version2 %} + ### Bid Params {: .table .table-bordered .table-striped } diff --git a/dev-docs/bidders/triplelift_native.md b/dev-docs/bidders/triplelift_native.md index 09829e00cf..8a8c2e00af 100644 --- a/dev-docs/bidders/triplelift_native.md +++ b/dev-docs/bidders/triplelift_native.md @@ -8,12 +8,12 @@ tcf2_supported: true usp_supported: true coppa_supported: true schain_supported: true -getFloor: true +floors_supported: true media_types: banner, video, native userIds: criteo, identityLink, unifiedId prebid_member: true safeframes_ok: true -bidder_supports_deals: true +deals_supported: true pbjs: true pbs: true pbs_app_supported: true diff --git a/dev-docs/bidders/trustx.md b/dev-docs/bidders/trustx.md index 5a39716ddc..d0d938c60d 100644 --- a/dev-docs/bidders/trustx.md +++ b/dev-docs/bidders/trustx.md @@ -1,20 +1,23 @@ --- layout: bidder title: TrustX -description: Prebid Trustx Bidder Adaptor +description: Prebid TrustX Bidder Adaptor pbjs: true +pbs: true biddercode: trustx media_types: banner, video gdpr_supported: true usp_supported: true +fpd_supported: true --- ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|-------------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------|-----------| -| `uid` | required | Represents the TrustX bidder system Ad Slot ID associated with the respective div id from the site page. | `42` | `integer` | -| `priceType` | optional | Can take the values `gross` or `net`, default value is `net`. Net represents the header bid price with the TrustX header bidder margin already extracted. Gross price does contain the TrustX bidder margin within. | `'gross'` | `string` | -| `keywords` | optional | A set of key-value pairs applied to all ad slots on the page. Values can be empty. | `keywords: { topic: ['stress', 'fear'] }` | `object` | +| Name | Scope | Description | Example | Type | +|----------------|----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------|-----------| +| `uid` | required | Represents the TrustX bidder system Ad Slot ID associated with the respective div id from the site page. | `42` | `integer` | +| `priceType` | optional (pbjs only) | Can take the values `gross` or `net`, default value is `net`. Net represents the header bid price with the TrustX header bidder margin already extracted. Gross price does contain the TrustX bidder margin within. | `'gross'` | `string` | +| `keywords` | optional (pbjs only) | A set of key-value pairs applied to all ad slots on the page. Values can be empty. | `keywords: { topic: ['stress', 'fear'] }` | `object` | +| `useNewFormat` | optional (pbjs only) | Indicates to use the new ad request format. | `true` | `boolean` | diff --git a/dev-docs/bidders/turktelekom.md b/dev-docs/bidders/turktelekom.md index 3c575a6be2..d845c7e845 100644 --- a/dev-docs/bidders/turktelekom.md +++ b/dev-docs/bidders/turktelekom.md @@ -1,18 +1,29 @@ --- layout: bidder title: Türk Telekom -description: Prebid Türk Telekom Bidder Adaptor +description: Türk Telekom Bidder Adaptor pbjs: true +pbs: true biddercode: turktelekom -media_types: banner, video +aliasCode : adkernel +media_types: banner, native, video gdpr_supported: true +usp_supported: true +coppa_supported: true +pbs_app_supported: true +schain_supported: true +pbjs_version_notes: v5.18+ +safeframes_ok: true --- +### Note: + +The Türk Telekom bidding adapter requires setup and approval before implementation. Please reach out to for more details. ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|-------------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------|-----------| -| `uid` | required | Represents the Türk Telekom bidder system Ad Slot ID associated with the respective div id from the site page. | `42` | `integer` | -| `priceType` | optional | Can take the values `gross` or `net`, default value is `net`. Net represents the header bid price with the Türk Telekom header bidder margin already extracted. Gross price does contain the Türk Telekom bidder margin within. | `'gross'` | `string` | +| Name | Scope | Description | Example | Type | +|----------|----------|-----------------------|---------------------------|----------| +| `host` | required | RTB host | `'cpm.programattik.com'` | `string` | +| `zoneId` | required | Zone Id | 30164 | `integer` | diff --git a/dev-docs/bidders/ucfunnel.md b/dev-docs/bidders/ucfunnel.md index 5d102e23c1..a825957ad8 100644 --- a/dev-docs/bidders/ucfunnel.md +++ b/dev-docs/bidders/ucfunnel.md @@ -15,7 +15,9 @@ gvl_id: 607 pbs_app_supported: true --- -### Bid params +### Prebid JS + +#### Bid params {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | @@ -46,3 +48,16 @@ Sizes set in the `adUnit` object will also apply to the ucfunnel bid requests. - [Banner Ads](https://cdn.aralego.net/ucfad/test/ucfunnel/compliance/pbjs_banner.html) - [Instream Video Ads](https://cdn.aralego.net/ucfad/test/ucfunnel/compliance/pbjs_video.html) - [Native Ads](https://cdn.aralego.net/ucfad/test/ucfunnel/compliance/pbjs_native.html) + + +### Prebid server + +#### Bid params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|--------|----------|-------------------------------------------------|---------|----------| +| `adunitid` | required | ID for ad unit | | `string` | +| `partnerid` | required | ID for partner | | `string` | + +``` diff --git a/dev-docs/bidders/undertone.md b/dev-docs/bidders/undertone.md index 94d743d670..3c079518d2 100644 --- a/dev-docs/bidders/undertone.md +++ b/dev-docs/bidders/undertone.md @@ -6,6 +6,7 @@ biddercode: undertone media_types: display, video gdpr_supported: true usp_supported: true +schain_supported: true userIds: britepoolId, criteo, id5Id, identityLink, liveIntentId, netId, parrableId, pubCommonId, unifiedId pbjs: true --- diff --git a/dev-docs/bidders/unibots.md b/dev-docs/bidders/unibots.md new file mode 100644 index 0000000000..d8b859e629 --- /dev/null +++ b/dev-docs/bidders/unibots.md @@ -0,0 +1,27 @@ +--- +layout: bidder +title: Unibots +description: Unibots Bidder Adaptor +pbjs: true +pbs: true +biddercode: unibots +aliasCode : adkernel +media_types: banner, native, video +gdpr_supported: true +usp_supported: true +coppa_supported: true +pbs_app_supported: true +schain_supported: true +--- + +### Note: + +The Unibots bidding adapter requires setup and approval before implementation. Please reach out to for more details. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------|----------|-----------------------|---------------------------|----------| +| `host` | required | RTB host | `'cpm.unibots.in'` | `string` | +| `zoneId` | required | Zone Id | 30164 | `integer` | diff --git a/dev-docs/bidders/unicorn.md b/dev-docs/bidders/unicorn.md index 4a81b59d3b..21a645f404 100644 --- a/dev-docs/bidders/unicorn.md +++ b/dev-docs/bidders/unicorn.md @@ -16,7 +16,6 @@ biddercode: unicorn |---------------|----------|-------------------------------------------|------------|-----------| | `placementId` | optional | Your placement ID | `'rectangle-ad-1'` | `string` | | `accountId` | required | Account ID for charge request (provided by UNICORN) | `12345` | `integer` | -| `bidfloorCpm` | optional for Prebid.js | Floor CPM (JPY); defaults to 0. | `0.2` | `float` | | `publisherId` | optional | Account specific publisher id. | `67890` | `integer` | | `mediaId` | required for Prebid Server, optional for Prebid.js | Publisher specific media id. | `'example'` | `string` | | `bcat` | optional for Prebid.js | Blocked IAB categories | `['IAB-1', 'IAB-2']` | `[string]` | diff --git a/dev-docs/bidders/unruly.md b/dev-docs/bidders/unruly.md index 539093e5b1..89bdd181cd 100644 --- a/dev-docs/bidders/unruly.md +++ b/dev-docs/bidders/unruly.md @@ -3,17 +3,26 @@ layout: bidder title: Unruly description: Prebid Unruly Bidder Adaptor biddercode: unruly -media_types: native, video gdpr_supported: true +usp_supported: true +coppa_supported: false +schain_supported: true +floors_supported: true +media_types: banner, video +userIds: all +prebid_member: false +safeframes_ok: check with bidder +deals_supported: check with bidder pbjs: true pbs: true -gvl_id: 162 +pbs_app_supported: true +gvl_id: 36 --- ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|-----------------|----------|---------------------------------------------------------------------------------------------|------------------------------------------|-----------| -| `siteId` | required | The site ID from Unruly. This will be provided to you by your Unruly account manager | `123456` | `integer` | -| `targetingUUID` | required | The targeting UUID from Unruly. This will be provided to you by your Unruly account manager | `'766220b5-3d02-46c5-aa8b-2bc60c6f7418'` | `string` | +| Name | Scope | Description | Example | Type | +|--------------------|----------------|------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------|-----------| +| `siteId` | required | The site ID from Unruly. This will be provided to you by your Unruly account manager. | `123456` | `integer` | +| `featureOverrides` | optional | This param is a generic object for configuring Unruly outstream demand. To run UNmissable, set ‘canRunUnmissable’ to true. | `"featureOverrides": {"canRunUnmissable": true}` | `object` | diff --git a/dev-docs/bidders/uol.md b/dev-docs/bidders/uol.md index befa00f86f..5caa90beb2 100644 --- a/dev-docs/bidders/uol.md +++ b/dev-docs/bidders/uol.md @@ -6,6 +6,7 @@ pbjs: true biddercode: uol gdpr_supported: false media_types: banner +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/valueimpression.md b/dev-docs/bidders/valueimpression.md index 23f8edeaba..38b86c78ca 100644 --- a/dev-docs/bidders/valueimpression.md +++ b/dev-docs/bidders/valueimpression.md @@ -9,13 +9,10 @@ media_types: banner, video gdpr_supported: true schain_supported: true usp_supported: true +userIds: all +floors_supported: true pbs: true --- - -### Bid Params - -{: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|-------------|----------|--------------------------------------------------------------------------------------------------------------------------------|------------|----------| -| `siteId` | required | Publisher site ID from Valueimpression | `'vi-site-id'` | `string` | +# Description +Valueimpression is an aliased bidder of Apacdex bid adapter. Please refer to [Apacdex documentation](https://docs.prebid.org/dev-docs/bidders/apacdex) for bid parameters and implementation guide. diff --git a/dev-docs/bidders/vi.md b/dev-docs/bidders/vi.md index 1c344a7ea9..20f6ff345c 100644 --- a/dev-docs/bidders/vi.md +++ b/dev-docs/bidders/vi.md @@ -4,6 +4,7 @@ title: vi description: vi bid adapter pbjs: true biddercode: vi +pbjs_version_notes: not in 5.x --- ### bid params diff --git a/dev-docs/bidders/vidazoo.md b/dev-docs/bidders/vidazoo.md index 441f121170..5baf2a5a15 100644 --- a/dev-docs/bidders/vidazoo.md +++ b/dev-docs/bidders/vidazoo.md @@ -14,7 +14,7 @@ pbjs: true {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |------------|----------|------------------------------------------------------------------------------------------|------------------------------|----------| -| `cId` | required | The connection ID from Vidazoo. | `'5a3a543645ea6b0004869360'` | `string` | +| `cId` | required | The connection ID from Vidazoo. | `'562524b21b1c1f08117fc7f9'` | `string` | | `pId` | required | The publisher ID from Vidazoo. | `'59ac17c192832d0011283fe3'` | `string` | | `bidFloor` | required | The minimum bid value desired. Vidazoo will not respond with bids lower than this value. | `0.90` | `float` | | `subDomain`| optional | Sets the server subdomain, default: 'prebid'. | `'prebid'` | `string` | diff --git a/dev-docs/bidders/vidcrunch.md b/dev-docs/bidders/vidcrunch.md new file mode 100644 index 0000000000..41a592a164 --- /dev/null +++ b/dev-docs/bidders/vidcrunch.md @@ -0,0 +1,45 @@ +--- +layout: bidder +title: VidCrunch +description: Prebid VidCrunch Bidder Adapter +pbjs: true +biddercode: vidcrunch +aliasCode: aniview +media_types: banner, video +gdpr_supported: true +usp_supported: true +schain_supported: true +safeframes_ok: true +--- + +### Note: +For more information about [VidCrunch](https://vidcrunch.com/), please contact info@vidcrunch.com. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|------------------|----------|------------------|------------------------------|----------| +| `AV_PUBLISHERID` | required | Publisher/Netid | `'55b88d4a181f465b3e8b4567'` | `string` | +| `AV_CHANNELID` | required | Channel id | `'5a5f17a728a06102d14c2718'` | `string` | + +### Test Parameters +``` +videoAdUnit = [ +{ + code: 'video1', + mediaTypes: { + video: { + playerSize: [[640, 480]], + context: 'outstream' + }, + }, + bids: [{ + bidder: 'vidcrunch', + params: { + AV_PUBLISHERID: '55b78633181f4603178b4568', + AV_CHANNELID: '5d19dfca4b6236688c0a2fc4' + } + }] +}]; +``` diff --git a/dev-docs/bidders/videobyte.md b/dev-docs/bidders/videobyte.md new file mode 100644 index 0000000000..bb954c5324 --- /dev/null +++ b/dev-docs/bidders/videobyte.md @@ -0,0 +1,24 @@ +--- +layout: bidder +title: VideoByte +description: Prebid VideoByte Bidder Adaptor +pbjs: true +biddercode: videobyte +media_types: video +gdpr_supported: true +usp_supported: true +schain_supported: true +--- + +### Note: + +VideoByte adapter only supports video ads. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------|----------|--------------|----------|----------| +| `pubId` | required | Publisher ID | `'vb12345'` | `string` | +| `placementId` | optional | Placement ID | `'1234567'` | `string` | +| `nid` | optional | Network ID | `'1234'` | `string` | diff --git a/dev-docs/bidders/videofy.md b/dev-docs/bidders/videofy.md index 79fc9bc0d6..b3f604c325 100644 --- a/dev-docs/bidders/videofy.md +++ b/dev-docs/bidders/videofy.md @@ -7,6 +7,7 @@ biddercode: videofy media_types: video gdpr_supported: true usp_supported: true +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/videonow.md b/dev-docs/bidders/videonow.md index 11eab677fd..7a0b19a480 100644 --- a/dev-docs/bidders/videonow.md +++ b/dev-docs/bidders/videonow.md @@ -5,6 +5,7 @@ description: Prebid Videonow Bidder Adaptor biddercode: videonow pbjs: true media_types: banner +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/vidoomy.md b/dev-docs/bidders/vidoomy.md new file mode 100644 index 0000000000..5757ad9b74 --- /dev/null +++ b/dev-docs/bidders/vidoomy.md @@ -0,0 +1,23 @@ +--- +layout: bidder +title: Vidoomy +description: Prebid Vidoomy Bidder Adaptor +pbjs: true +biddercode: vidoomy +media_types: banner, video +gdpr_supported: true +gvl_id: 380 +usp_supported: true +coppa_supported: true +--- + +### Note: +[Vidoomy](https://vidoomy.com/), for more info please contact support@vidoomy.com + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|------------------|----------|------------------|------------------------------|----------| +| `id` | required | id | `123123` | `string` | +| `pid` | required | pid | `'123123'` | `string` | diff --git a/dev-docs/bidders/viewdeos.md b/dev-docs/bidders/viewdeos.md new file mode 100644 index 0000000000..aacb4a2a6d --- /dev/null +++ b/dev-docs/bidders/viewdeos.md @@ -0,0 +1,39 @@ +--- +layout: bidder +title: Viewdeos Server +description: Prebid Server ViewDeos Adapter +pbjs: false +pbs: true +biddercode: viewdeos +media_types: banner,video +gdpr_supported: true +gvl_id: 924 +--- + +### Bid params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|-------|----------|---------------------------------|----------|-----------| +| `aid` | required | The source ID from member zone | `350975` | `integer` | + +### Test Parameters +``` + var adUnits = [ + // Banner adUnit + { + code: 'div-test-div', + mediaTypes: { + banner: { + sizes:[[300, 250]] + } + }, + bids: [{ + bidder: 'viewdeos', + params: { + aid: 672854 + } + }] + } + ]; +``` diff --git a/dev-docs/bidders/viewdeosDX.md b/dev-docs/bidders/viewdeosDX.md index 035d58f4aa..3c8ee83b72 100644 --- a/dev-docs/bidders/viewdeosDX.md +++ b/dev-docs/bidders/viewdeosDX.md @@ -1,13 +1,17 @@ --- layout: bidder -title: ViewDeos DX -description: Prebid ViewDeos Bidder Adaptor +title: ViewdeosDX Client +description: Prebid.js ViewDeos Bidder Adapter pbjs: true +pbs: false biddercode: viewdeosDX media_types: banner,video gdpr_supported: true +gvl_id: 924 --- +Note that for Prebid Server, use "viewdeos" bidder code. + ### Bid params {: .table .table-bordered .table-striped } diff --git a/dev-docs/bidders/visx.md b/dev-docs/bidders/visx.md index a6c01e8268..f39b0db05d 100644 --- a/dev-docs/bidders/visx.md +++ b/dev-docs/bidders/visx.md @@ -2,35 +2,34 @@ layout: bidder title: YOC VIS.X description: Prebid YOC VIS.X Bidder Adapter -pbjs: true -pbs: true biddercode: visx gdpr_supported: true +tcf2_supported: true +gvl_id: 154 schain_supported: true userIds: id5Id, unifiedId -pbs_app_supported: true +media_types: banner, video +deals_supported: true +pbjs: true +pbs: true --- ### Note + To be able to use the full bandwidth of VIS.X high impact ad products, we strongly recommend disabling SafeFrames: -- If you are using Google Ad Manager (GAM), make sure the “Serve in Safeframe” box in creative settings is unchecked, +- If you are using Google Ad Manager (GAM), make sure the "Serve in Safeframe" box in creative settings is unchecked, - If you are using AppNexus Seller Tag, make sure the enableSafeFrame parameter is set to False. If you require SafeFrames to be activated, please reach out to your YOC account manager to obtain further details. +If a single bid request contains more than 20 impression objects, this request will be ignored. + The YOC VIS.X adapter requires setup and approval from your YOC account manager team, even for existing YOC publishers. Please reach out to your account manager to enable Prebid.js for your account. -### Bid params - -{: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|-------|----------|-------------------------------------|------------|----------| -| `uid` | required | The publisher's ad unit ID in VIS.X | `'903536'` | `string` | - -### Configuration +### Configuration: Currency -The YOC VIS.X adapter has the ability to work in different currencies. Currently this adapter supports `EUR`, `USD`, +The YOC VIS.X adapter has the ability to work in different currencies. Currently, this adapter supports `EUR`, `USD`, `GBP`, `PLN`. Defaults to `EUR`. If your Ad Server uses `EUR`, you don't need any additional currency settings. If you would like to trade with VIS.X in a currency different from `EUR`, you should implement some additional settings. @@ -67,6 +66,91 @@ pbjs.setConfig({ ``` Best practices: -- Please make sure that currency module is set up and configured in order to trade with YOC in a currency that is not supported by YOC VIS.X bidder. -- You should set `EUR` in `bidderCurrencyDefault` parameter if you use unsupported currency for VIS.X. -- Feel free to reach out to your contact at YOC if you need additional support setting up Prebid.js and currency config. +- Please make sure that the currency module is set up and configured in order to trade with YOC in a currency that is not supported by the YOC VIS.X bidder. +- You should set `EUR` in `bidderCurrencyDefault` parameter if you use unsupported currencies for VIS.X. +- Feel free to reach out to your contact at YOC if you need additional support setting up Prebid.js and the currency config. + +### Configuration: Video + +The YOC VIS.X adapter responds with VAST XML (in the 'vastXml' field) and expects client-side caching enabled. + +```javascript +pbjs.setConfig({ + cache: { + url: 'https://prebid.adnxs.com/pbc/v1/cache' + } +}); +``` + +### Bid params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|-------|----------|-------------------------------------|------------|----------| +| `uid` | required | The publisher's Ad unit ID in VIS.X. | `'903536'` | `string` | + +### Media type Banner object params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|-------|----------|-------------------------------------|------------|----------| +| `sizes` | required | All sizes this ad unit can accept. | `[[300, 250], [300, 600]]` | `array of integer arrays` | + +### Media type Video object params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|-------|----------|-------------------------------------|------------|----------| +| `context` | required | The video context, only 'instream' is allowed. | `'instream'` | `string` | +| `playerSize` | required | The size (width, height) of the video player on the page, in pixels. | `[640, 480]` | `integer array` | +| `mimes` | required | Content MIME types supported. | `['video/mp4', 'video/x-ms-wmv']` | `string array` | +| `protocols` | required | Array of supported video protocols. Refer to List 5.8 of IAB OpenRTB 2.5 (e.g., VAST 3.0 Wrapper). | `[2,3,5,6]` | `integer array` | +| `api` | optional | List of supported API frameworks for this impression. Refer to List 5.6 of IAB OpenRTB 2.5 (e.g., VPAID 2.0). If an API is not explicitly listed, it is assumed not to be supported. | `[2]` | `integer array` | +| `minduration` | optional | Minimum video ad duration in seconds. | `5` | `integer` | +| `maxduration` | optional | Maximum video ad duration in seconds. | `30` | `integer` | +| `skip` | optional | Indicates if the player will allow the video to be skipped, where 0 = no, 1 = yes. | `1` | `integer` | + +### Example of Banner Ad unit + +```javascript +var bannerAdUnit = { + code: 'bannerAdUnit1', + mediaTypes: { + banner: { + sizes: [[320, 480], [728, 90]] // required + } + }, + bids: [{ + bidder: 'visx', + params: { + uid: '903536' // required + } + }] +}; +``` + +### Example of Video Ad unit + +```javascript +var videoAdUnit = { + code: 'videoAdUnit1', + mediaTypes: { + video: { + context: 'instream', // required + playerSize: [400, 300], // required + mimes: ['video/mp4', 'video/x-ms-wmv'], // required + protocols: [2, 3, 5, 6], // required + api: [2], // optional + minduration: 5, // optional + maxduration: 30, // optional + skip: 1 // optional + } + }, + bids: [{ + bidder: 'visx', + params: { + uid: '921068' // required + } + }] +}; +``` diff --git a/dev-docs/bidders/vlyby.md b/dev-docs/bidders/vlyby.md new file mode 100644 index 0000000000..bf0d5184a7 --- /dev/null +++ b/dev-docs/bidders/vlyby.md @@ -0,0 +1,24 @@ +--- +layout: bidder +title: VLYBY +description: Prebid VLYBY Bidder Adapter +biddercode: vlyby +media_types: banner, video +schain_supported: false +prebid_member: false +pbjs: true +--- + +### Note: + +The VLYBY Header Bidder Adapter needs a Contract with VLYBY Digital GmbH, Munich. Please contact prebid@vlyby.com for additional information. + + + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------------|----------|---------------------------------------------------------------------------------------|---------------------------------------------|----------| +| `publisherId`| required | VLYBY PublisherId | `'12345'` | `string` | +| `placement` | optional | Placement Id | `'12345'` | `string` | diff --git a/dev-docs/bidders/vmg.md b/dev-docs/bidders/vmg.md index c83169cafd..959ff01ab0 100644 --- a/dev-docs/bidders/vmg.md +++ b/dev-docs/bidders/vmg.md @@ -4,6 +4,7 @@ title: VMG description: Connects Google Ad Manager to the VMG Predict engine. pbjs: true biddercode: vmg +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/vrtcal.md b/dev-docs/bidders/vrtcal.md index 16b40e6050..cdb1948a8e 100644 --- a/dev-docs/bidders/vrtcal.md +++ b/dev-docs/bidders/vrtcal.md @@ -4,7 +4,7 @@ title: VRTCAL Markets, Inc. description: VRTCAL Markets, Inc. Bid Adapter pbjs: true pbs: true -media_ytpes: banner +media_types: banner, video gdpr_supported: false biddercode: vrtcal gvl_id: 706 diff --git a/dev-docs/bidders/vuble.md b/dev-docs/bidders/vuble.md index 0242c496a3..6c2308a5e8 100644 --- a/dev-docs/bidders/vuble.md +++ b/dev-docs/bidders/vuble.md @@ -6,6 +6,7 @@ pbjs: true biddercode: vuble media_types: video gdpr_supported: true +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/weborama.md b/dev-docs/bidders/weborama.md deleted file mode 100644 index 0fa88f3951..0000000000 --- a/dev-docs/bidders/weborama.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: bidder -title: Weborama -description: Prebid Weborama Bidder Adaptor -pbjs: true -biddercode: weborama ---- - -### Bid Params - -{: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | -| :----------- | :--------- | :------------ | :----------------- | -| `placementId` | required | Placement Id will be generated on Weborama Platform. | 0 | -| `traffic` | optional | Type traffic | 'banner' | diff --git a/dev-docs/bidders/welect.md b/dev-docs/bidders/welect.md index 08d6d15b62..3a099c2dc3 100644 --- a/dev-docs/bidders/welect.md +++ b/dev-docs/bidders/welect.md @@ -6,6 +6,7 @@ biddercode: welect media_types: no-display, video gvlid: 282 pbjs: true +pbjs_version_notes: not in 5.x --- ### Note: diff --git a/dev-docs/bidders/windtalker.md b/dev-docs/bidders/windtalker.md index 538d9246d9..4fae0d89e8 100644 --- a/dev-docs/bidders/windtalker.md +++ b/dev-docs/bidders/windtalker.md @@ -6,8 +6,14 @@ pbjs: true biddercode: windtalker media_types: native, video gdpr_supported: true +pbjs_version_notes: not in 5.x --- +### Disclosure + +This bidder sets `adId` on the bid response and hasn't responded to the Prebid.js team to confirm uniqueness +of this value. See [Issue 6381](https://github.com/prebid/Prebid.js/issues/6381). + ### Bid Params {: .table .table-bordered .table-striped } diff --git a/dev-docs/bidders/winr.md b/dev-docs/bidders/winr.md new file mode 100644 index 0000000000..38a0bc7a59 --- /dev/null +++ b/dev-docs/bidders/winr.md @@ -0,0 +1,30 @@ +--- +layout: bidder +title: WINR +description: Prebid WINR Bidder Adaptor +biddercode: winr +media_types: banner +prebid_member: false +userIds: criteo, unifiedId, netId, identityLink, flocId, uid2 +schain_supported: true +coppa_supported: true +usp_supported: true +floors_supported: true +pbjs: true +safeframes_ok: false +fpd_supported: true +--- + +### Note: +The WINR adapter requires setup and approval from the WINR team, even for partners that already work with us. Please reach out to our team at tech@winr.com.au + +*`domParent` and `child` position settings are usually determined and remotely controlled for each publisher site by the WINR team. If you would prefer to have control over these settings, please get in touch. + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|---------------|----------|---------------------------------------------------------------------------------------------------|--------------|-----------| +| `placementId` | required | Placement ID can be a `string` or `integer`, however `integer` is preferred. | `21764100` | `integer` | +| `domParent`* | optional | The DOM element where the ad unit will load into. The value is passed as a parameter to the JavaScript HTML DOM querySelector() method | `.blog_post` | `string` | +| `child`* | optional | The number of child nodes of `domParent` preceding the ad unit. | `4` | `integer` | diff --git a/dev-docs/bidders/xhb.md b/dev-docs/bidders/xhb.md index 8e4f39f345..ebd6e189e4 100644 --- a/dev-docs/bidders/xhb.md +++ b/dev-docs/bidders/xhb.md @@ -6,6 +6,7 @@ biddercode: xhb pbjs: true media_types: video, native gdpr_supported: true +pbjs_version_notes: not in 5.x --- ### Bid Params diff --git a/dev-docs/bidders/yahoossp.md b/dev-docs/bidders/yahoossp.md new file mode 100644 index 0000000000..4f6324795b --- /dev/null +++ b/dev-docs/bidders/yahoossp.md @@ -0,0 +1,44 @@ +--- +layout: bidder +title: Yahoo SSP +description: Yahoo SSP Bid Adapter +pbs: true +pbjs: true +media_types: banner, video +biddercode: yahoossp +prebid_member: true +gdpr_supported: true +usp_supported: true +schain_supported: true +coppa_supported: true +gvl_id: 25 +userIds: All +--- + +### Bid Params +The 'yahoossp' bid adapter supports 2 integration types: +1. **dcn & pos** (Site/App & Position explicit targeting) - For legacy "aol", "oneMobile" adapter partners/publishers. +2. **pubId** (Publisher ID) - For New partners/publishers joining Yahoo SSP and legacy "oneVideo" partners/publishers migrating to the Yahoo SSP. + + +**Important:** pubId integration (option 2) is only possible when your Seller account is setup for "Inventory Mapping", Please contact your Account Manager to verify your setup. + +#### DCN & POS Integration Parameters +For legacy "aol", "oneMobile" adapter partners/publishers. + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|------------|----------|------------------------|---------|----------| +| dcn | Required | Site ID provided by Yahoo SSP | 'site1' | string | +| pos | Required | Placement ID provided by Yahoo SSP | 'placement1' | string | + +#### PubId Integration Parameters +For New partners/publishers joining Yahoo SSP +floors_supported: true and legacy "oneVideo" partners/publishers migrating to the Yahoo SSP. + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|------------|----------|------------------------|---------|----------| +| pubId | Required | Your Publisher External ID provided by Yahoo SSP | 'DemoPublisher' | string | +| siteId | Optional | Ability to target a specific Site using an External ID provided by Yahoo SSP | '1234567' | string | +| placementId | Optional | Ability to target a specific Placement using an External ID provided by Yahoo SSP | 'header' | string | diff --git a/dev-docs/bidders/yieldmo.md b/dev-docs/bidders/yieldmo.md index ed0f5adb0a..9ec5b17793 100644 --- a/dev-docs/bidders/yieldmo.md +++ b/dev-docs/bidders/yieldmo.md @@ -4,40 +4,47 @@ title: Yieldmo description: Prebid Yieldmo Bidder Adaptor biddercode: yieldmo media_types: banner, video -userIds: pubCommonId, unifiedId, criteo +userIds: pubCommonId, unifiedId, criteo, sharedId gdpr_supported: true usp_supported: true schain_supported: true prebid_member: true +fpd_supported: true pbjs: true pbs: true --- - +# Registration +### Note: In order to use Yieldmo adapter please reach out to your Yieldmo account's person or support@yieldmo.com for more information. +
    ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|---------------|----------|----------------------|------------------------|----------| -| `placementId` | required | Yieldmo placement id | `'825209316101005155'` | `string` | -| `bidFloor` | optional | Bid Floor | `0.1` | `float` | +| Name | Scope | Description | Example | Type | +|---------------|----------|------------------------|------------------------|----------| +| `placementId` | required | Yieldmo placement id | `'825209316101005155'` | `string` | +| `bidFloor` | optional | Bid Floor | `0.1` | `float` | +| `lr_env` | optional | Live Ramp ATS envelope | `e3b0c44298fc1c149a` | `string` | ### video parameters -The Yieldmo adapter supports video as of Prebid v4.18. +The Yieldmo adapter supports in-stream video as of Prebid v4.18. Out-stream will be supported as of Prebid v4.35.0. {: .table .table-bordered .table-striped } | Name | Scope | Description | Example | Type | |-------------------|----------|--------------------------------------------------------|-----------------|-----------| -| `placement` | required | Video placement type. In-Stream: `1`; In-Banner: `2`; In-Article: `3`: In-Feed: `4`; Interstitial: `5`; see [OpenRTB 2.5 specification](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf), List 5.9 for more details | `1` | `integer` | +| `placement` | required | Video placement type. In-Stream: `1`; Out-stream types: In-Article - `3`: In-Feed - `4`; Interstitial - `5`;

    Currently we are not supporting `2` - in-banner.

    See [OpenRTB 2.5 specification](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf), List 5.9 for more details | `1` | `integer` | | `maxduration` | required | Maximum ad duration in seconds | `20` | `integer` | | `minduration` | optional | Minimum ad duration in seconds | `5` | `integer` | | `pos` | optional | Ad position on screen; see [OpenRTB 2.5 specification](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf), List 5.4 for more details | `1` | `integer` | -| `startdelay` | required if placement == 1 | Duration offset (in second) from the start of the content for showing the video ad before the start of the Video. Pre-roll: `0` (default); Mid-roll: `>0`; Default mid-roll: `-1`; Post-roll: `-2`; | `5` | `integer` | +| `startdelay` | required for in-stream | Duration offset (in second) from the start of the content for showing the video ad before the start of the Video. Pre-roll: `0` (default); Mid-roll: `>0`; Default mid-roll: `-1`; Post-roll: `-2`;

    For out-stream is' always `0`| `5` | `integer` | | `protocols` | required | Supported video bid response protocols. VAST 1.0: `1`; VAST 2.0: `2`; VAST 3.0: `3`; VAST 1.0 Wrapper: `4`; VAST 2.0 Wrapper: `5`; VAST 3.0 Wrapper: `6`; | `[2, 3]` | `Array` | -| `api` | required | API frameworks supported. VPAID 1.0: `1`; VPAID 2.0: `2`; MRAID-1: `3`; ORMMA: `4`; MRAID-2: `5`; MRAID-3: `6`; | `[1, 2]` | `Array` | -| `playbackmethod` | required | Playback methods that may be in use; see [OpenRTB 2.5 specification](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf), List 5.10 for more details | `[2,6]` | `Array` | +| `api` | required | API frameworks supported. VPAID 1.0: `1`; VPAID 2.0: `2`; MRAID-1: `3`; ORMMA: `4`; MRAID-2: `5`; MRAID-3: `6`; | `[1, 2]` | `Array` | +| `playbackmethod` | required | Playback methods that may be in use; see [OpenRTB 2.5 specification](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf), List 5.10 for more details. Out-stream is only always `2` | `[2,6]` | `Array` | | `skippable` | optional | If 'true', user can skip ad | `true` | `boolean` | | `skipafter` | optional | Number of seconds a video must play before skipping is enabled; only applicable if the ad is `skippable` | `5` | `integer` | +| `mimes` | required | List of the content MIME types supported by the player | `["video/mp4"]` | `Array` | + +Following video parameters might be also defined in `mediaTypes.video` in order to simplify bidders configuration. If the same parameters was also defined in `params.video` it will be overriten by `params.video`. More details - https://docs.prebid.org/dev-docs/adunit-reference.html In addition, Yieldmo adapter relies on parameters specified in the `mediaTypes.video` definition of the video ad-units, namely: @@ -45,38 +52,59 @@ In addition, Yieldmo adapter relies on parameters specified in the `mediaTypes.v | Name | Scope | Description | Example | Type | |-------------------|----------|--------------------------------------------------------|-----------------|------------------| | `playerSize` | required | Width and height of the player | `[640, 480]` | `Array` | -| `context` | required | Only `instream` is supported | `instream` | `string` | -| `mimes` | required | List of the content MIME types supported by the player | `["video/mp4"]` | `Array` | - - -### Example of Video Ad-unit +| `context` | required | `instream` or `outstream ` are only supported | `instream` | `string` | +### Example of in-stream Video Ad-unit ```javascript var videoAdUnits = [{ code: 'div-video-ad-1234567890', mediaTypes: { video: { - playerSize: [640, 480], // required + playerSize: [640, 480], // required context: 'instream', - mimes: ['video/mp4'] // required, array of strings + mimes: ['video/mp4'], // required, array of strings + placement: 1, // required, integer + maxduration: 30, // required, integer + minduration: 15, // optional, integer + pos: 1, // optional, integer + startdelay: 10, // required if placement == 1 + protocols: [2, 3], // required, array of integers + api: [2, 3], // required, array of integers + playbackmethod: [2,6], // required, array of integers + skip: 1, // optional, boolean + skipafter: 10 // optional, integer } }, bids: [{ bidder: 'yieldmo', params: { - placementId: '1524592390382976659', // required + placementId: '1524592390382976659',// required, + } + }] +}]; +``` +### Example of out-stream Video Ad-unit +```javascript +var videoAdUnit = [{ + code: 'div-video-ad-1234567890', + mediaTypes: { video: { - placement: 1, // required, integer - maxduration: 30, // required, integer - minduration: 15, // optional, integer - pos: 1, // optional, integer - startdelay: 10, // required if placement == 1 - protocols: [2, 3], // required, array of integers - api: [2, 3], // required, array of integers - playbackmethod: [2,6], // required, array of integers - skippable: true, // optional, boolean - skipafter: 10 // optional, integer + playerSize: [640, 480], // required + context: 'outstream', + mimes: ['video/mp4'], // required, array of strings + placement: 3, // required, integer ( 3,4,5 ) + maxduration: 30, // required, integer + protocols: [2, 3], // required, array of integers + api: [2, 3], // required, array of integers + playbackmethod: [1,2] // required, array of integers } + }, + bids: [{ + bidder: 'yieldmo', + params: { + placementId: '1524592390382976659', // required } }] }]; ``` + +> [Prebid out-stream demo](https://prebid-outstream-qa.yieldmo.com/prebid-outstream.html) diff --git a/dev-docs/bidders/yieldone.md b/dev-docs/bidders/yieldone.md index 43991a3439..4bbde1c7a6 100644 --- a/dev-docs/bidders/yieldone.md +++ b/dev-docs/bidders/yieldone.md @@ -5,6 +5,7 @@ description: Prebid YIELDONE Bidder Adaptor pbjs: true pbs: true biddercode: yieldone +userIds: identityLink media_types: banner, video --- diff --git a/dev-docs/bidders/zedo.md b/dev-docs/bidders/zedo.md index 9024188e8d..7fb66abe20 100644 --- a/dev-docs/bidders/zedo.md +++ b/dev-docs/bidders/zedo.md @@ -4,6 +4,7 @@ title: ZEDO description: Prebid ZEDO Bidder Adapter pbjs: true biddercode: zedo +pbjs_version_notes: not in 5.x --- diff --git a/dev-docs/bidders/zeta_global.md b/dev-docs/bidders/zeta_global.md index bdd2f17079..08a51def28 100644 --- a/dev-docs/bidders/zeta_global.md +++ b/dev-docs/bidders/zeta_global.md @@ -4,9 +4,10 @@ title: Zeta Global description: Zeta Global Prebid Bidder Adapter pbjs: true biddercode: zeta_global -bidder_supports_deals: false +deals_supported: false media_types: banner gdpr_supported: true +tcf2_supported: true gvl_id: 469 --- @@ -19,15 +20,23 @@ To use this bidder you will need a valid definerId. For further information, pl ### Bid Params {: .table .table-bordered .table-striped } -| Name | Scope | Description | Example | Type | -|----------------------|----------|---------------------------------------------------------------------------------------------------------------------|--------------|-----------| -| `user` | required | The object containing user data (See OpenRTB spec) | `user: {}` | `object` | -| `user.buyeruid` | required | Zeta's user id | `"12345"` | `string` | -| `device` | required | The object containing device data (See OpenRTB spec) | `device: {}` | `object` | -| `device.ip` | required | The client IP | `"0.0.0.0"` | `string` | -| `device.geo` | required | The object containing geo data (See OpenRTB spec) | `geo: {}` | `object` | -| `device.geo.country` | required | The country code pertinent to the request data | `"USA"` | `string` | -| `definerId` | required | The Definer ID from Zeta Global | `"12345"` | `string` | -| `site` | optional | The object containing site data (See OpenRTB spec) | `site: {}` | `object` | -| `app` | optional | The object containing app data (See OpenRTB spec) | `app: {}` | `object` | -| `test` | optional | Flag which will induce a sample bid response when true; only set to true for testing purposes (1 = true, 0 = false) | `1` | `integer` | +| Name | Scope | Description | Example | Type | +|----------------------|----------|----------------------------------------------------------------------------------------------------------------------------|-------------------------|----------------| +| `definerId` | required | The Definer ID provided by Zeta Global | `"12345"` | `string` | +| `user` | required | The object containing user data (See OpenRTB spec) | `user: {}` | `object` | +| `user.buyeruid` | required | Zeta's user id | `"12345"` | `string` | +| `device` | required | The object containing device data (See OpenRTB spec) | `device: {}` | `object` | +| `site` | optional | The object containing site data (See OpenRTB spec) | `site: {}` | `object` | +| `app` | optional | The object containing app data (See OpenRTB spec) | `app: {}` | `object` | +| `test` | optional | Flag which will induce a sample bid response when true; only set to true for testing purposes (1 = true, 0 = false) | `1` | `integer` | +| `at` | optional | Auction type, where 1 = First Price, 2 = Second Price Plus | `1` | `integer` | +| `tmax` | optional | Maximum time in milliseconds the exchange allows for bids to be received including Internet latency to avoid timeout | `200` | `integer` | +| `wseat` | optional | White list of buyer seats (e.g., advertisers, agencies) allowed to bid on this impression | `wseat: ["123"]` | `string array` | +| `bseat` | optional | Block list of buyer seats (e.g., advertisers, agencies) restricted from bidding on this impression | `bseat: ["123"]` | `string array` | +| `allimps` | optional | Flag to indicate that the impressions offered represent all the impressions available in context (1 = true, 0 = false) | `1` | `integer` | +| `wlang` | optional | White list of languages for creatives | `wlang: ["ENG"]` | `string array` | +| `bcat` | optional | Blocked advertiser categories using the IAB content categories | `bcat: ["123"]` | `string array` | +| `badv` | optional | Block list of advertisers by their domains | `badv: ["blocked.com"]` | `string array` | +| `bapp` | optional | Block list of applications by their platform-specific exchange independent application identifiers | `badv: ["com.blocked"]` | `string array` | +| `source` | optional | A Source object that provides data about the inventory source and which entity makes the final decision (See OpenRTB spec) | `source: {}` | `object` | +| `ext` | optional | An extension object that allows for custom fields and objects to be sent (See OpenRTB spec) | `ext: {}` | `object` | diff --git a/dev-docs/bidders/zeta_global_ssp.md b/dev-docs/bidders/zeta_global_ssp.md new file mode 100644 index 0000000000..1a375294cc --- /dev/null +++ b/dev-docs/bidders/zeta_global_ssp.md @@ -0,0 +1,34 @@ +--- +layout: bidder +title: Zeta Global Ssp +description: Zeta Global Ssp Prebid Bidder Adapter +pbjs: true +biddercode: zeta_global_ssp +deals_supported: false +media_types: banner +gdpr_supported: true +usp_supported: true +coppa_supported: true +userIds: all +prebid_member: true +fpd_supported: true +gvl_id: 833 +--- + +### Registration + +All references to the OpenRTB spec refer to OpenRtb v2.5 (https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf) + + +### Bid Params + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|----------------------|----------|---------------------------------------------------------------------------------------------------------------------|--------------|-----------| +| `user` | optional | The object containing user data (See OpenRTB spec) | `user: {}` | `object` | +| `user.buyeruid` | optional | Zeta's user id | `"12345"` | `string` | +| `tags` | optional | The object containing set of Zeta's custom tags witch publisher have to supply | `tags: {}` | `object` | +| `site` | optional | The object containing site data (See OpenRTB spec) | `site: {}` | `object` | +| `app` | optional | The object containing app data (See OpenRTB spec) | `app: {}` | `object` | +| `sid` | optional | Seller ID. The identifier associated with the seller or reseller account within the advertising system | `"1q2w3e"` | `string` | +| `test` | optional | Flag which will induce a sample bid response when true; only set to true for testing purposes (1 = true, 0 = false) | `1` | `integer` | diff --git a/dev-docs/cmp-best-practices.md b/dev-docs/cmp-best-practices.md index 2285d78446..6042e90788 100644 --- a/dev-docs/cmp-best-practices.md +++ b/dev-docs/cmp-best-practices.md @@ -73,6 +73,10 @@ Please follow the guidelines in the [Didomi documentation](https://developers.di LiveRamp has verified that they create the tcfapi functions and set gdprApplies=false when their CMP is removed from a geo. +### Sirdata + +Please follow the guidelines in the [Sirdata documentation](https://cmp.docs.sirdata.net/v/en/script-management/tag-conditioning) to make sure that the CMP is loaded and the user's choice exposed through the `__tcfapi()` function before the ad server and Prebid.js are invoked. + ## Further Reading - [IAB TCF Implementation Guidelines](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/TCF-Implementation-Guidelines.md) diff --git a/dev-docs/common-issues.md b/dev-docs/common-issues.md index 66eb3693ab..ac9cd05993 100644 --- a/dev-docs/common-issues.md +++ b/dev-docs/common-issues.md @@ -38,6 +38,6 @@ Check the bid prices. If they are low and are getting reduced to $0 due to price {:toc} + [Prebid.js FAQ](/dev-docs/faq.html) -+ [Prebid Tips for Troubleshooting]({{site.github.url}}/dev-docs/troubleshooting-tips.html) ++ [Prebid Tips for Troubleshooting](/troubleshooting/troubleshooting-guide.html) diff --git a/dev-docs/conditional-ad-units.md b/dev-docs/conditional-ad-units.md index c4073de26f..586416930b 100644 --- a/dev-docs/conditional-ad-units.md +++ b/dev-docs/conditional-ad-units.md @@ -13,7 +13,7 @@ sidebarType: 1 # Conditional Ad Units {:.no_toc} -The [global sizeConfig](/dev-docs/publisher-api-reference.html#setConfig-Configure-Responsive-Ads) and [Advanced Size Mapping](/dev-docs/modules/sizeMappingV2.html) features are useful for standard responsive ad designs, but a number of other scenarios are supported as well: +The [global sizeConfig](/dev-docs/publisher-api-reference/setConfig.html#setConfig-Configure-Responsive-Ads) and [Advanced Size Mapping](/dev-docs/modules/sizeMappingV2.html) features are useful for standard responsive ad designs, but a number of other scenarios are supported as well: * TOC {:toc} @@ -22,10 +22,10 @@ By supporting these scenarios, header bidding can be more efficient - the browse The basic steps are: -1. Build up an array of 'labels' from two sources: as an output of [`sizeConfig`](/dev-docs/publisher-api-reference.html#setConfig-Configure-Responsive-Ads), as an optional argument to [`requestBids()`](/dev-docs/publisher-api-reference.html#module_pbjs.requestBids), or both. +1. Build up an array of 'labels' from two sources: as an output of [`sizeConfig`](/dev-docs/publisher-api-reference/setConfig.html#setConfig-Configure-Responsive-Ads), as an optional argument to [`requestBids()`](/dev-docs/publisher-api-reference/requestBids.html), or both. 1. Apply label targeting to AdUnits or specific bids. -See the [Publisher API reference]({{site.baseurl}}/dev-docs/publisher-api-reference.html#setConfig-Configure-Responsive-Ads) for syntax. +See the [Publisher API reference](/dev-docs/publisher-api-reference/setConfig.html#setConfig-Configure-Responsive-Ads) for syntax. ## What if some bidders should be skipped for some devices? @@ -225,7 +225,7 @@ See the [Advanced Size Mapping module](/dev-docs/modules/sizeMappingV2.html) if ## What if some bid requests apply only to users originating certain from countries? -Labels aren't constrained to describing device size -- they can be used for many types of conditions the page maywant to define. Besides being defined as part of `sizeConfig`, labels can also be passed into the [`requestBids()`]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.requestBids) function as an argument. +Labels aren't constrained to describing device size -- they can be used for many types of conditions the page maywant to define. Besides being defined as part of `sizeConfig`, labels can also be passed into the [`requestBids()`](/dev-docs/publisher-api-reference/requestBids.html) function as an argument. A specific use case: suppose that a certain bidder doesn't have a data center outside of a certain region. It's really not worth sending them bid @@ -266,11 +266,11 @@ var AdUnits = [{ This example shows that the 'euroMobileBidder' is only interested in receiving bids that have **both** labels: -* "eur" as passed into [`requestBids()`]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.requestBids) +* "eur" as passed into [`requestBids()`](/dev-docs/publisher-api-reference/requestBids.html) * "phone" as created by `sizeConfig` ## Further Reading -+ [Responsive ad designs](/dev-docs/publisher-api-reference.html#setConfig-Configure-Responsive-Ads) ++ [Responsive ad designs](/dev-docs/publisher-api-reference/setConfig.html#setConfig-Configure-Responsive-Ads) + [Advanced Size Mapping Module](/dev-docs/modules/sizeMappingV2.html) + [Using Media Queries](https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries) diff --git a/dev-docs/datablocks.md b/dev-docs/datablocks.md deleted file mode 100644 index a510086da7..0000000000 --- a/dev-docs/datablocks.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: bidder -title: Datablocks -description: Prebid Datablocks Bidder Adaptor - -biddercode: datablocks -media_types: banner,native,video -gdpr_supported: true ---- - -### Note: - -The Datablocks Bidding adaptor requires setup and approval before beginning. Please reach out to for more details - -### Bid Params - -| Name | Scope | Description | Example | Type | -|-----------|----------|-----------------------|---------------------------|----------| -| `host` | required | Ad network's host | `'prebid.datablocks.net'` | `string` | -| `sourceId`| required | Network Identifier | `'5423124'` | `string` | diff --git a/dev-docs/examples/adunit-refresh.md b/dev-docs/examples/adunit-refresh.md index e5cc0252a2..07362a534c 100644 --- a/dev-docs/examples/adunit-refresh.md +++ b/dev-docs/examples/adunit-refresh.md @@ -7,6 +7,7 @@ sidebarType: 1 about: - Ability to refresh individual ad units - useful for infinite scrolling ad slots +- When auto-refreshing is done incorrectly, it could cause the same bids to be rendered repeatedly. For instance, when googletag.pubads.refresh() is called directly without removing the PBJS targeting, the same hb_ variables get re-sent to GAM, re-chosen, and re-rendered. Over and over without ever asking PBJS for updated targeting variables. Please see
    Auction Options for more info. jsfiddle_link: jsfiddle.net/Prebid_Examples/cu7tpexf/2/embedded/html,result diff --git a/dev-docs/examples/basic-example.md b/dev-docs/examples/basic-example.md index 516ebbcb90..982bb60b62 100644 --- a/dev-docs/examples/basic-example.md +++ b/dev-docs/examples/basic-example.md @@ -8,7 +8,7 @@ sidebarType: 1 about: - Asynchronous Prebid.js integration with single Google Ad Manager ad slot -- Default keyword targeting setup (reference) +- Default keyword targeting setup (reference) - Default price granularity jsfiddle_link: jsfiddle.net/Prebid_Examples/94jt62b8/7/embedded/html,result diff --git a/dev-docs/examples/custom-price-buckets.md b/dev-docs/examples/custom-price-buckets.md index f5d2c02ca6..6f914011e7 100644 --- a/dev-docs/examples/custom-price-buckets.md +++ b/dev-docs/examples/custom-price-buckets.md @@ -7,7 +7,7 @@ sidebarType: 1 about: - Custom price granularity buckets using pbjs.setConfig() -- See the the API reference for more detail. +- See the the API reference for more detail. jsfiddle_link: jsfiddle.net/Prebid_Examples/vq05dhnj/2/embedded/html,result diff --git a/dev-docs/examples/meta-bid-filtering.md b/dev-docs/examples/meta-bid-filtering.md new file mode 100644 index 0000000000..6fe914df06 --- /dev/null +++ b/dev-docs/examples/meta-bid-filtering.md @@ -0,0 +1,15 @@ +--- +layout: example +title: Meta Bid Filtering +left_nav_override: Examples +description: Bid filtering on meta object example +sidebarType: 1 + +about: +- Bidders can supply metadata about the bid such as advertiser domain. See the "meta" fields in the bid response for the full list. +- This is an example that filters bid responses based on the metadata object. + +jsfiddle_link: jsfiddle.net/Prebid_Examples/0s4eug1d/18/embedded/html,result + +code_height: 2300 +--- diff --git a/dev-docs/faq.md b/dev-docs/faq.md index 0767e28a96..805f7a1256 100644 --- a/dev-docs/faq.md +++ b/dev-docs/faq.md @@ -50,11 +50,11 @@ In both scenarios, your goal should be to see your inventory fill at the highest There is an analysis from the Prebid team here which may be useful: -[How many bidders should I work with?]({{site.baseurl}}/blog/how-many-bidders-for-header-bidding) +[How many bidders should I work with?](https://prebid.org/blog/how-many-bidders-for-header-bidding) ## Does Prebid.js cache bids? -It can. Versions 1.x of Prebid.js would re-consider previous bids under limited circumstances. In Prebid.js 2.0 and later, the [`useBidCache`](/dev-docs/publisher-api-reference.html#setConfig-Use-Bid-Cache) option can be used to enable this functionality. +It can. Versions 1.x of Prebid.js would re-consider previous bids under limited circumstances. In Prebid.js 2.0 and later, the [`useBidCache`](/dev-docs/publisher-api-reference/setConfig.html#setConfig-Use-Bid-Cache) option can be used to enable this functionality. The "limited bid caching" feature applies only: @@ -66,7 +66,7 @@ The "limited bid caching" feature applies only: Since the storage is in the browser, cached bids only apply to a single page context. If the user refreshes the page, the bid is lost. Each bid adapter defines the amount of time their bids can be cached and reconsidered. -This setting is called “Time to Live” (TTL), documented in the pbjs.getBidResponse [parameter table here]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.getBidResponses). +This setting is called “Time to Live” (TTL), documented in the pbjs.getBidResponse [parameter table here](/dev-docs/publisher-api-reference/getBidResponses.html). Examples of scenarios where a bid may be reconsidered in Prebid.js: @@ -81,13 +81,13 @@ Here's how it works: 1. When all the new bids are back or the timeout is reached, Prebid.js considers both the new bids on that AdUnit and previously cached bids. 1. Previously cached bids will be discarded if they've reached their TTL or if they have status `targetingSet` or `rendered`. 1. A cached bid may be used if its CPM beats the new bids. -1. Bids that win are removed from the pool. This is automatic for display and native ads, and can be done manually by the publisher for video ads by using the [markWinningBidAsUsed]({{site.github.url}}/dev-docs/publisher-api-reference.html#module_pbjs.markWinningBidAsUsed) function. +1. Bids that win are removed from the pool. This is automatic for display and native ads, and can be done manually by the publisher for video ads by using the [markWinningBidAsUsed](/dev-docs/publisher-api-reference/markWinningBidAsUsed.html) function. ## Some of my demand partners send gross bids while others send net bids; how can I account for this difference? You will want to adjust the gross bids so that they compete fairly with the rest of your demand, so that you are seeing the most revenue possible. -In Prebid.js, you can use a `bidCpmAdjustment` function in [the `bidderSettings` object]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.bidderSettings) to adjust any bidder that sends gross bids. +In Prebid.js, you can use a `bidCpmAdjustment` function in [the `bidderSettings` object](/dev-docs/publisher-api-reference/bidderSettings.html) to adjust any bidder that sends gross bids. ## Does Prebid.js support synchronous ad server tags? @@ -131,7 +131,7 @@ Prebid.org does not support any version of Prebid.js prior to the previous versi ## How can I change the price granularity for different ad units? -If you need different [price granularities]({{site.baseurl}}/dev-docs/publisher-api-reference.html#setConfig-Price-Granularity) for different AdUnits (e.g. video and display), the only way for now is to make sure the auctions don't run at the same time. e.g. Run one of them first, then kick off the other in the bidsBackHandler. e.g. here's one approach: +If you need different [price granularities](/dev-docs/publisher-api-reference/setConfig.html#setConfig-Price-Granularity) for different AdUnits (e.g. video and display), the only way for now is to make sure the auctions don't run at the same time. e.g. Run one of them first, then kick off the other in the bidsBackHandler. e.g. here's one approach: 1. Call `setConfig` to define the priceGranularity for the first set of AdUnits 1. Initiate the first auction with `requestBids` @@ -144,11 +144,11 @@ The handling of this scenario will be improved in a future release. ## How can I control how many targeting variables are sent to my ad server? -One way to limit the number of bytes sent to the ad server is to send only the winning bid by disabling the [enableSendAllBids](/dev-docs/publisher-api-reference.html#setConfig-Send-All-Bids) option. However, there are optimization and reporting +One way to limit the number of bytes sent to the ad server is to send only the winning bid by disabling the [enableSendAllBids](/dev-docs/publisher-api-reference/setConfig.html#setConfig-Send-All-Bids) option. However, there are optimization and reporting benefits for sending more than one bid. Once you find the right balance for your application, you can specify -what's sent to the ad server with [targetingControls.auctionKeyMaxChars](/dev-docs/publisher-api-reference.html#setConfig-targetingControls) and/or [sendBidsControl.bidLimit](/dev-docs/publisher-api-reference.html#setConfig-Send-Bids-Control) +what's sent to the ad server with [targetingControls.auctionKeyMaxChars](/dev-docs/publisher-api-reference/setConfig.html#setConfig-targetingControls) and/or [sendBidsControl.bidLimit](/dev-docs/publisher-api-reference/setConfig.html#setConfig-Send-Bids-Control) ## Can I run multiple different versions of Prebid.js concurrently? @@ -160,8 +160,21 @@ It's technically possible, but we don't recommend doing this: If all this wasn't enough to warn you away from trying, it should work if you name the PBJS global differently for each instance (https://github.com/prebid/Prebid.js/blob/master/package.json#L20) +## Can I filter bid responses that don't meet my criteria? + +Yes. Many bidders provide metadata about the bid that can be used in troubleshooting +and filtering. See the [list of bid response metadata](/dev-docs/bidder-adaptor.html#interpreting-the-response) and the [filtering example](/dev-docs/examples/meta-bid-filtering.html). + +## Does Prebid.js resolve the AUCTION_PRICE macro? + +Yes, but in a way that could cause discrepancies in reporting. It's recommended +that [bid adapters resolve OpenRTB macros](/dev-docs/bidder-adaptor.html#resolve-openrtb-macros-in-the-creatives) themselves before giving them to Prebid.js. + +For historic reasons, Prebid will resolve the AUCTION_PRICE macro, but it will be after currency conversion and any bid adjustments. +This differs from how OpenRTB defines this value as being the clearing price in the bid currency. Header Bidding is a first-price auction, the best candidate for “clearing price” is the original bid itself. + ## Related Reading -+ [Prebid.js Dev Tips]({{site.baseurl}}/dev-docs/troubleshooting-tips.html) -+ [Prebid.js Common Issues]({{site.baseurl}}/dev-docs/common-issues.html) ++ [Prebid.js Troubleshooting Guide](/troubleshooting/troubleshooting-guide.html) ++ [Prebid.js Common Issues](/dev-docs/common-issues.html) + [Prebid.js issues tagged 'question'](https://github.com/prebid/Prebid.js/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Aquestion%20) diff --git a/dev-docs/integrate-with-the-prebid-analytics-api.md b/dev-docs/integrate-with-the-prebid-analytics-api.md index 59a49042b1..15aec64b6b 100644 --- a/dev-docs/integrate-with-the-prebid-analytics-api.md +++ b/dev-docs/integrate-with-the-prebid-analytics-api.md @@ -71,7 +71,7 @@ Analytics adapter for Example.com. Contact prebid@example.com for information. 1. Create a JS file under `modules` with the name of the bidder suffixed with 'AnalyticsAdapter', e.g., `exAnalyticsAdapter.js` -2. Create an analytics adapter to listen for [Prebid events](/dev-docs/publisher-api-reference.html#module_pbjs.onEvent) and call the analytics library or server. See the existing *AnalyticsAdapter.js files in the repo under [modules](https://github.com/prebid/Prebid.js/tree/master/modules). +2. Create an analytics adapter to listen for [Prebid events](/dev-docs/publisher-api-reference/onEvent.html) and call the analytics library or server. See the existing *AnalyticsAdapter.js files in the repo under [modules](https://github.com/prebid/Prebid.js/tree/master/modules). 3. There are two types of analytics adapters. The example here focuses on the 'endpoint' type. See [AnalyticsAdapter.js](https://github.com/prebid/Prebid.js/blob/master/src/AnalyticsAdapter.js) for more info on the 'bundle' type. diff --git a/dev-docs/modules/adpod.md b/dev-docs/modules/adpod.md index 519b1a1a87..0519cd9db6 100644 --- a/dev-docs/modules/adpod.md +++ b/dev-docs/modules/adpod.md @@ -2,7 +2,7 @@ layout: page_v2 page_type: module title: Module - Adpod -description: Adds functions to validate, cache, and modify long-form video bids. +description: Enables developers to add support for a new adserver that handles ad pod (long-form) videos. module_code : adpod display_name : Adpod enable_download : true diff --git a/dev-docs/modules/bidViewable.md b/dev-docs/modules/bidViewable.md index 41aa46272b..a9da963a12 100644 --- a/dev-docs/modules/bidViewable.md +++ b/dev-docs/modules/bidViewable.md @@ -1,15 +1,16 @@ --- layout: page_v2 page_type: module -title: Module - Bid Viewable Event -description: Triggers BID_VIEWABLE event when a rendered PBJS-Bid is viewable according to [Active View criteria](https://support.google.com/admanager/answer/4524488) +title: Module - Bid Viewability - GAM +description: Triggers a BID_VIEWABLE event when a rendered bid is viewable according to Active View criteria module_code : bidViewability -display_name : Bid Viewable Event +display_name : Bid Viewability - GAM enable_download : true +vendor_specific: true sidebarType : 1 --- -# Bid Viewable Event +# Bid Viewability - GAM {:.no_toc} * TOC @@ -17,35 +18,39 @@ sidebarType : 1 ## Overview -This optional module will trigger a BID_VIEWABLE event which can be consumed by Analytics adapters, bidders will need to implement `onBidViewable` method to capture this event - +This optional module will trigger a BID_VIEWABLE event which can be consumed by Analytics adapters. In addition, the winning bidder can implement an `onBidViewable` method to capture this event. Notes: -- The module does not work with adservers other than GAM and only with GPT integration. -- The GPT API is used to find when a bid is viewable, See https://developers.google.com/publisher-tag/reference#googletag.events.impressionviewableevent . +- The module does not work with adservers other than GAM and only with GPT integration. See the [other Bid Viewable Event](/dev-docs/modules/bidViewableIO.html) module for an ad server independent version. +- The GPT API is used to find when a bid is viewable. See [GPT documentation](https://developers.google.com/publisher-tag/reference#googletag.events.impressionviewableevent) for more details. - This event is fired when an impression becomes viewable, according to [Active View criteria](https://support.google.com/admanager/answer/4524488). -- Logic used to find a matching Prebid.js bid for a GPT slot is ` (slot.getAdUnitPath() === bid.adUnitCode || slot.getSlotElementId() === bid.adUnitCode) ` this logic can be changed by using param ` customMatchFunction ` - When a rendered PBJS bid is viewable the module will trigger BID_VIEWABLE event, which can be consumed by the winning bidder and analytics adapters - The module works with Banner, Outsteam and Native creatives -Instead of listening for events, bidders may supply a ` bid.vurls ` array and this module may fire those pixels when the viewability signal is received. Publishers can control this with module config ` firePixels: true `. Please note that GDPR and USP related parameters will be added to the given URLs. +Instead of listening for events, bidders may supply a `bid.vurls` array and this module may fire those pixels when the viewability signal is received. Publishers can control this with module config ` firePixels: true `. Please note that GDPR and USP related parameters will be added to the given URLs. {: .alert.alert-warning :} -This feature doesn't seem to work with [Instream Video](/dev-docs/examples/instream-banner-mix.html), as GPT's impressionViewable event is not triggered for instream-video-creative +This feature doesn't work with [Instream Video](/dev-docs/examples/instream-banner-mix.html), as GPT's impressionViewable event is not triggered for instream-video-creative + +The default logic used to find a matching Prebid.js bid for a GPT slot is +``` +(bid, slot) => (slot.getAdUnitPath() === bid.adUnitCode || + slot.getSlotElementId() === bid.adUnitCode) +``` ## Configuration {: .table .table-bordered .table-striped } -| Field | Scope | Type | Description | -|----------+---------+--------+---------------------------------------------------------------------------------------| -| `bidViewability` | Required | Object | Configuration object for instream tracking | +| Field | Scope | Type | Description | +|----------+---------+--------+-----------------------------------------| +| `bidViewability` | Required | Object | Configuration object | | `bidViewability.enabled` | Required | Boolean | when set to true, the module will emit BID_VIEWABLE when applicable. Default: `false` | | `bidViewability.firePixels` | Optional | Boolean | when set to true, will fire the urls mentioned in `bid.vurls` which should be array of URLs. Default: `false` | -| `bidViewability.customMatchFunction` | Optional | function(bid, slot) | when passed this function will be used to `find` the matching winning bid for the GPT slot. Default value is ` (bid, slot) => (slot.getAdUnitPath() === bid.adUnitCode || slot.getSlotElementId() === bid.adUnitCode) ` | +| `bidViewability.customMatchFunction` | Optional | function(bid, slot) | this function will be used to find the matching winning bid for the GPT slot. See above for the default. | ## Example of setting module config {% highlight js %} - pbjs.setConfig({ + pbjs.setConfig({ bidViewability: { enabled: true, firePixels: true, @@ -63,3 +68,8 @@ This feature doesn't seem to work with [Instream Video](/dev-docs/examples/instr console.log('got bid details in bidViewable event', bid); }); {% endhighlight %} + +## Related Reading + +- [Building a PBJS analytics adapter](/dev-docs/integrate-with-the-prebid-analytics-api.html) +- [Building a PBJS bidder adapter](/dev-docs/bidder-adaptor.html) diff --git a/dev-docs/modules/bidViewableIO.md b/dev-docs/modules/bidViewableIO.md new file mode 100644 index 0000000000..b483bc5b80 --- /dev/null +++ b/dev-docs/modules/bidViewableIO.md @@ -0,0 +1,66 @@ +--- +layout: page_v2 +page_type: module +title: Module - Bid Viewability - Ad Server Independent +description: Triggers a BID_VIEWABLE event when a rendered bid is viewable according to an approximation of IAB viewability criteria +module_code : bidViewabilityIO +display_name : Bid Viewability - Ad Server Independent +enable_download : true +sidebarType : 1 +--- + +# Bid Viewability - Ad Server Independent +{:.no_toc} + +* TOC +{:toc} + +## Overview + +This optional module will trigger a BID_VIEWABLE event which can be consumed by Analytics adapters. In addition, the winning bidder can implement an `onBidViewable` method to capture this event. + +Notes: +- The module works with any adserver, or with no ad server at all. +- Publishers using GAM/GPT might consider using the [Bid Viewable Event - GAM](/dev-docs/modules/bidViewable.html) module +- Requires the site to polyfill the [IntersectionObserver API](https://github.com/w3c/IntersectionObserver/tree/main/polyfill) (v1) to find when a bid is viewable. This implementation assumes that the publisher and the bidder are acting in good faith, and does not attempt to detect any bad behavior from either party. We assume that the ad is rendered into the element it has been told to render into, and is not hidden or obfuscated at any time. +- This event is fired when an impression becomes viewable, according to IAB's viewability guidelines +- When a rendered PBJS bid is determined to be viewable this module will trigger a BID_VIEWABLE event, which can be consumed by the winning bidder and analytics adapters +- The module works with Banner creatives, with additional support to come. + +## Known Issues + +{: .alert.alert-warning :} +This feature is not intended to be a perfect measure of viewability. It is however intended to be a reasonable approximation of a bids viewability for creative types that are supported. + +1. Only supports Banner creatives +2. Only works on browsers that support or on sites that have [polyfilled the IntersectionObserver API](https://github.com/w3c/IntersectionObserver/tree/main/polyfill) +3. Results can only be trusted if both the publisher and winning bidder are assumed to be acting in good faith. + +## Configuration + +{: .table .table-bordered .table-striped } +| Field | Scope | Type | Description | +|----------+---------+--------+---------------------------------------------------------------------------------------| +| `bidViewabilityIO` | Required | Object | Configuration object for viewability tracking for supported media types (IO stands for IntersectionObserver) | +| `bidViewabilityIO.enabled` | Required | Boolean | when set to true, the module will emit BID_VIEWABLE when applicable. Default: `false` | + +## Example of setting module config +{% highlight js %} + pbjs.setConfig({ + bidViewabilityIO: { + enabled: true, + } + }); +{% endhighlight %} + +## Example of consuming BID_VIEWABLE event +{% highlight js %} + pbjs.onEvent('bidViewable', function(bid){ + console.log('got bid details in bidViewable event', bid); + }); +{% endhighlight %} + +## Related Reading + +- [Building a PBJS analytics adapter](/dev-docs/integrate-with-the-prebid-analytics-api.html) +- [Building a PBJS bidder adapter](/dev-docs/bidder-adaptor.html) diff --git a/dev-docs/modules/browsiRtdProvider.md b/dev-docs/modules/browsiRtdProvider.md index 6d269adf3a..062f47f45f 100644 --- a/dev-docs/modules/browsiRtdProvider.md +++ b/dev-docs/modules/browsiRtdProvider.md @@ -7,6 +7,7 @@ page_type: module module_type: rtd module_code : browsiRtdProvider enable_download : true +vendor_specific: true sidebarType : 1 --- diff --git a/dev-docs/modules/categoryTranslation.md b/dev-docs/modules/categoryTranslation.md index 6ba65349f7..cb1bd0f987 100644 --- a/dev-docs/modules/categoryTranslation.md +++ b/dev-docs/modules/categoryTranslation.md @@ -2,7 +2,7 @@ layout: page_v2 page_type: module title: Module - Category Translation -description: Converts IAB sub category to ad server group. +description: Converts IAB category to ad server category for long-form videos. module_code : categoryTranslation display_name : CategoryTranslation enable_download : true @@ -24,7 +24,7 @@ The module provides the following: ## How to use the module: 1. A Prebid.js package is built that contains this module and the Ad server module. Prebid supports [FreeWheel](/dev-docs/modules/freewheel.html) and Google Ad Manager ad servers. -2. The inclusion of this module and long-form ad server module causes Prebid to download a mapping file to local storage. The user also has the option to provide their own mapping file. +2. The inclusion of this module and long-form ad server module causes Prebid to download a mapping file to local storage. The user also has the option to provide their own mapping file. The default ad server is Freewheel. To hook to the DFP video ad server module you must configure it in the mapping url. 3. At runtime, brand category translation happens as needed. diff --git a/dev-docs/modules/consentManagement.md b/dev-docs/modules/consentManagement.md index e28579f9f8..f3ea32002f 100644 --- a/dev-docs/modules/consentManagement.md +++ b/dev-docs/modules/consentManagement.md @@ -2,10 +2,11 @@ layout: page_v2 page_type: module title: Consent Management - GDPR -description: Module to consume and distribute GDPR consent information to bidder adapters +description: If you have users in Europe, this module works with your Consent Management Platform to pass consent info to bidders and help align with EU regulations. See also the GDPR Enforcement module. module_code : consentManagement display_name : Consent Management - GDPR enable_download : true +recommended: true sidebarType : 1 --- @@ -22,7 +23,7 @@ sidebarType : 1 {% include /alerts/alert_important.html content=legalNotice %} {: .alert.alert-warning :} -Prebid.org is working on updates that will enable support for reading and parsing TCF 2.0 consent strings. See the [blog post](/blog/tcf2) for timelines. +Prebid.org is working on updates that will enable support for reading and parsing TCF 2.0 consent strings. See the [blog post](https://prebid.org/blog/tcf2) for timelines. ## Overview @@ -58,7 +59,7 @@ Please start by understanding the IAB's [TCF Implementation Guide](https://githu To utilize this module, a Consent Management Platform (CMP) compatible with the [IAB TCF v1.1 spec](https://iabeurope.eu/all-news/the-iab-europe-transparency-consent-framework-tcf-steering-group-votes-to-extend-technical-support-for-tcf-v1-1/) or [IAB TCF v2.0 spec](https://iabeurope.eu/tcf-2-0/) needs to be implemented on the site to interact with the user and obtain their consent choices. It's important to understand the details of how the CMP works before integrating it with Prebid.js -In general, implementation details for CMPs are not covered by Prebid.org, but we do recommend to that you place the CMP code before the Prebid.js code in the head of the page in order to ensure the CMP's framework is loaded before the Prebid code executes. In addition, the community is collecting a set of [CMP best practices](/dev-docs/cmp-best-practices.html). +In general, implementation details for CMPs are not covered by Prebid.org, but we do recommend to that you place the CMP code before the Prebid.js code in the head of the page in order to ensure the CMP's framework is loaded before the Prebid code executes. In addition, the community is collecting a set of [CMP best practices](/dev-docs/cmp-best-practices.html). Once the CMP is implemented, simply include this module into your build and add a `consentManagement` object in the `setConfig()` call. Adapters that support this feature will then be able to retrieve the consent information and incorporate it in their requests. @@ -318,8 +319,8 @@ Here are some things that publishers can do to control various activities: 1. If the current page view is known to be in GDPR scope, make sure the adapters are aware of it even on the first page where CMP hasn't been activated by setting the defaultGdprScope: `consentManagement.gdpr.defaultGdprScope: true` 2. If the user hasn't consented to Purpose 1: - - Set [deviceAccess: false](/dev-docs/publisher-api-reference.html#setConfig-deviceAccess) - - Don't enable [userSync](/dev-docs/publisher-api-reference.html#setConfig-Configure-User-Syncing) + - Set [deviceAccess: false](/dev-docs/publisher-api-reference/setConfig.html#setConfig-deviceAccess) + - Don't enable [userSync](/dev-docs/publisher-api-reference/setConfig.html#setConfig-Configure-User-Syncing) - Don't enable [userId](/dev-docs/modules/userId.html) modules 3. If you're working with bidders that don't support GDPR, consider dynamically populating adunits as needed. See the list below for bidders supporting GDPR. diff --git a/dev-docs/modules/consentManagementUsp.md b/dev-docs/modules/consentManagementUsp.md index c365dd0ce5..ddfa9be3fc 100644 --- a/dev-docs/modules/consentManagementUsp.md +++ b/dev-docs/modules/consentManagementUsp.md @@ -2,10 +2,11 @@ layout: page_v2 page_type: module title: Consent Management - US Privacy -description: Module to consume and distribute US Privacy information to bidder adapters +description: If you have users in California, this module works with your Consent Management Platform to pass CCPA/US-Privacy data to bidders. module_code : consentManagementUsp display_name : Consent Management - US Privacy enable_download : true +recommended: true sidebarType : 1 --- diff --git a/dev-docs/modules/currency.md b/dev-docs/modules/currency.md index 94a79fb63d..bc8dd3562d 100644 --- a/dev-docs/modules/currency.md +++ b/dev-docs/modules/currency.md @@ -2,7 +2,7 @@ layout: page_v2 page_type: module title: Module - Currency -description: Converts bids to the ad server currency +description: Converts bid currency into ad server currency based on data in a supplied exchange rate file. module_code : currency display_name : Currency enable_download : true @@ -17,7 +17,7 @@ sidebarType : 1 This module supports the conversion of multiple bidder currencies into a single currency used by the publisher's ad server. In previous versions of Prebid, this was accomplished -by using [BidderSettings.bidCpmAdjustment]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.bidderSettings), but that's a static value not changed except when +by using [BidderSettings.bidCpmAdjustment]({{site.baseurl}}/dev-docs/publisher-api-reference/bidderSettings.html), but that's a static value not changed except when the web development team makes a manual update. Publishers may continue to use the bidCpmAdjustment approach, or may begin using this optional module, gaining automatic updates as currency exchange rates fluctuate. Here's how it works at a high level: @@ -181,8 +181,9 @@ pbjs.setConfig({ } }); {% endhighlight %} -Note that the `defaultRates` attribute is optional, but recommended in case -there's an issue loading the currency file. + +{: .alert.alert-warning :} +Note that the `defaultRates` attribute is optional, but recommended in case there's an issue loading the currency file. In this example, the publisher is providing their own `conversionRateFile`: {% highlight js %} @@ -248,7 +249,7 @@ a currency object that may contain several parameters: | granularityMultiplier | `decimal` | How much to scale the price granularity calculations. Defaults to 1. | 108 | | conversionRateFile | `URL` | Optional path to a file containing currency conversion data. See below for the format. Prebid.org hosts a file as described in the next section. | `https://example.com/rates.json` | | rates | object | This optional argument allows you to specify the rates with a JSON object, subverting the need for the conversionRateFile parameter. If this argument is specified, the conversion rate file will not be loaded. | { 'USD': { 'CNY': 6.8842, 'GBP': 0.7798, 'JPY': 110.49 } } | -| defaultRates | `object` | An optional parameter that defines a default rate that can be used if the currency file cannot be loaded. This option isn't used when the `rates` parameter is supplied. | { 'USD': { 'GPB': 0.75 }} | +| defaultRates | `object` | An optional **but highly recommended** parameter that defines a default rate that can be used if the currency file cannot be loaded. This option isn't used when the `rates` parameter is supplied. | { 'USD': { 'GPB': 0.75 }} | | bidderCurrencyDefault | `object` | This is an optional argument to provide publishers a way to define which currency is used by a particular bidder. This option was provided as a transition until such a time that most bidder adapters define currency on bid response and is kept for legacy 0.x integrations. | { "bidderXYZ": "GBP" } | ## Currency Rate Conversion File diff --git a/dev-docs/modules/dfp_express.md b/dev-docs/modules/dfp_express.md index 598fb1c126..fef264c9db 100644 --- a/dev-docs/modules/dfp_express.md +++ b/dev-docs/modules/dfp_express.md @@ -2,10 +2,11 @@ layout: page_v2 page_type: module title: Module - Google Ad Manager Express -description: Simplified installation mechanism for publishers that have Google Ad Manager in their pages +description: A simplified installation mechanism for publishers that have Google Publisher Tag (GPT) ad calls in their pages. module_code : express display_name : Google Ad Manager Express enable_download : true +vendor_specific: true sidebarType : 1 --- diff --git a/dev-docs/modules/dfp_video.md b/dev-docs/modules/dfp_video.md index 8477587a42..e9219ac3b6 100644 --- a/dev-docs/modules/dfp_video.md +++ b/dev-docs/modules/dfp_video.md @@ -2,31 +2,32 @@ layout: page_v2 page_type: module title: Module - Google Ad Manager Video -description: Addition of DFP Video to the Prebid package +description: Required for serving instream video through Google Ad Manager. module_code : dfpAdServerVideo -display_name : DFP Video +display_name : Google Ad Manager Video Support enable_download : true +vendor_specific: true sidebarType : 1 --- -# DFP Video +# Google Ad Manager Video {:.no_toc} -This module is required to use the Prebid Instream video examples with DFP Adserver. For instructions showing how to add this module to Prebid.js, see below. +This module is required to use the Prebid Instream video examples with Google Ad Manager. For instructions showing how to add this module to Prebid.js, see below. ### Step 1: Prepare the base Prebid file as usual The standard options: -- Build from a locally-cloned git repo -- Receive the email package from the Prebid [Download]({{site.baseurl}}/download.html) page - +- Build from a locally-cloned git repo +- Receive the email package from the Prebid [Download](/download.html) page + ### Step 2: Integrate into your prebid.js configuration -The method exposes the [`pbjs.adServers.dfp.buildVideoUrl`]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.adServers.dfp.buildVideoUrl) method to use. For an example, see the DFP video guide linked below. +The method exposes the [`pbjs.adServers.dfp.buildVideoUrl`]({{site.baseurl}}/dev-docs/publisher-api-reference/adServers.dfp.buildVideoUrl.html) method to use. For an example, see the DFP video guide linked below. ## Further Reading -+ [Show Video Ads with DFP]({{site.baseurl}}/dev-docs/show-video-with-a-dfp-video-tag.html) ++ [Show Video Ads with GAM](/dev-docs/show-video-with-a-dfp-video-tag.html) diff --git a/dev-docs/modules/dgkeywordRtdProvider.md b/dev-docs/modules/dgkeywordRtdProvider.md new file mode 100644 index 0000000000..217971cc31 --- /dev/null +++ b/dev-docs/modules/dgkeywordRtdProvider.md @@ -0,0 +1,59 @@ +--- +layout: page_v2 +title: Digital Garage Keyword Module +display_name: Digital Garage Keyword +description: Digital Garage Keyword +page_type: module +module_type: rtd +module_code : dgkeywordRtdProvider +enable_download : true +vendor_specific: true +sidebarType : 1 +--- + +# Digital Garage Keyword Module +{:.no_toc} + +* TOC +{:toc} + +## Integration + +1) Compile the Digital Garage Keyword Module and Appnexus Bid Adapter into your Prebid build: + +``` +gulp build --modules="dgkeywordRtdProvider,appnexusBidAdapter,..." +``` + +2) Use `setConfig` to instruct Prebid.js to initilize the dgkeyword module, as specified below. + +## Configuration + +This module is configured as part of the `realTimeData.dataProviders` + +```javascript +var DGKEYWORD_TIMEOUT = 1000; +pbjs.setConfig({ + realTimeData: { + auctionDelay: DGKEYWORD_TIMEOUT, + dataProviders: [{ + name: 'dgkeyword', + waitForIt: true, + params: { + timeout: DGKEYWORD_TIMEOUT + } + }] + } +}); +``` + +Syntax details: + +{: .table .table-bordered .table-striped } +| Name |Type | Description | Notes | +| :------------ | :------------ | :------------ |:------------ | +| name | String | Real time data module name | Always 'dgkeyword' | +| waitForIt | Boolean | Should be `true` if there's an `auctionDelay` defined (optional) | `false` | +| params | Object | | | +| params.timeout | Integer |timeout (ms)| 1000 | + diff --git a/dev-docs/modules/enrichmentFpdModule.md b/dev-docs/modules/enrichmentFpdModule.md new file mode 100644 index 0000000000..857c4f2129 --- /dev/null +++ b/dev-docs/modules/enrichmentFpdModule.md @@ -0,0 +1,61 @@ +--- +layout: page_v2 +page_type: module +title: Module - First Party Data Enrichment +description: Injects additional data into the auction stream, including: domain, keywords, and page url. +module_code : enrichmentFpdModule +display_name : First Party Data Enrichment +enable_download : true +recommended: true +sidebarType : 1 +--- + +# First Party Data Enrichment Module +{:.no_toc} + +This module adds a number of First Party Data (FPD) fields from the environment. + +Add it to the Prebid.js build with this command: +``` +gulp build --modules=enrichmentFpdModule +``` + +If included in the build, it will automatically perform the enrichments unless controlled with setConfig: + +``` +pbjs.setConfig({ + firstPartyData: { + skipEnrichments: true // defaults to false + } +}); +``` + +## How it works + +When the first auction on the page is run, this module merges a number of values into the `ortb2` object. Specific details below. + +If the publisher needs to refresh the enriched FPD after the first auction, this can be done using a function provided by this module: + +``` +pbjs.refreshFpd(); +``` + +## Enrichments + +{: .table .table-bordered .table-striped } +| Page Source | ortb2 field | Notes | +|---+---+---| +| page URL | site.page | Uses pbjs getRefererInfo().canonicalUrl | +| referer URL | site.ref | Uses pbjs getRefererInfo().referer | +| host domain | site.domain | Pulled from the getRefererInfo().canonicalUrl the host domain is used with the www component dropped. | +| aggregated domain | site.publisher.domain | The highest level domain in which cookies can be set. | +| viewport width | device.w | Hunts for window.innerWidth, window.document.documentElement.clientWidth, window.document.body.clientWidth | +| viewport height | device.w | Hunts for window.innerHeight, window.document.documentElement.clientHeight, window.document.body.clientHeight | +| meta keywords | site.keywords | Looks for a meta tag. e.g. | +| currency | cur | Collects the currency defined by the [Currency module](/dev-docs/modules/currency.html). | + + +# Related Reading +- [Prebid.js First Party Data feature](/features/firstPartyData.html) +- [First Party Data Validation Module](/dev-docs/modules/validationFpdModule) +- [OpenRTB 2.5](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf) diff --git a/dev-docs/modules/floors.md b/dev-docs/modules/floors.md index 380ba312e9..e5d652df1d 100644 --- a/dev-docs/modules/floors.md +++ b/dev-docs/modules/floors.md @@ -2,7 +2,7 @@ layout: page_v2 page_type: module title: Module - Price Floors -description: Determine and enforce auction price floors +description: Configure and enforce minimum bids. module_code : priceFloors display_name : Price Floors enable_download : true @@ -17,11 +17,11 @@ sidebarType : 1 ## Overview -The Floors module provides an open source framework in Prebid for Publishers to configure Prebid price floors on their own or to work with a vendor who can provide floors. +The Price Floors Module provides an open source framework in Prebid for Publishers to configure Prebid price floors on their own or to work with a vendor who can provide floors. A ‘floor’ is defined as the lowest CPM price a bid will need to meet for each Prebid auction. It’s a way for publishers to signal to bidders the price to beat, thereby protecting the value of their inventory. -The module provides several ways for Prebid floors to be defined, that are used by bidder adapters to read floors and enforced on bid responses in any supported currency. The floors utilized by the Prebid.js floors module are defined by one or more set of rules containing any or all of the following dimensions: +The module provides several ways for Prebid floors to be defined, that are used by bidder adapters to read floors and enforced on bid responses in any supported currency. The floors utilized by the Price Floors Module are defined by one or more set of rules containing any or all of the following dimensions: - AdUnit @@ -32,31 +32,31 @@ The module provides several ways for Prebid floors to be defined, that are used - "custom dimensions" {: .alert.alert-warning :} -When using GPT Slot name, the gpt library is required to load first. Failing to do so may yield unexpected results and could impact revenue performance. +When using GPT Slot name, the GPT library is required to load first. Failing to do so may yield unexpected results and could impact revenue performance. -The entire set of Prebid floors selected by the Floors Module for a given auction is called a “Rule Location”. A Rule Location can be any one of: +The entire set of floors selected by the Price Floors Module for a given auction is called a "Rule Location". A Rule Location can be any one of: 1. Within the AdUnit (AdUnit) 2. Within setConfig (Package) 3. Retrieved from a real-time data service (Dynamic) {: .alert.alert-info :} -Even though floors are defined with five pre-configured dimensions, it’s possible to extend the list of dimensions to attributes of the page, user, auction or other data by supplying a dimension matching function. For example, a publisher can provide a matching function that returns the device type to allow the price floor module to use device type as an attribute within a prebid floor rules file. +Even though floors are defined with five pre-configured dimensions, it’s possible to extend the list of dimensions to attributes of the page, user, auction or other data by supplying a dimension matching function. For example, a publisher can provide a matching function that returns the device type to allow the Floor module to use device type as an attribute within a prebid floor rules file. ## How it Works -There are several places where the Floor module changes the behavior of the Prebid.js auction process. Below is a diagram describing the general flow of the Floors Module: +There are several places where the Floor module changes the behavior of the Prebid.js auction process. Below is a diagram describing the general flow of the Price Floors Module: ![Floors Module Flow](/assets/images/floors/floors_flow.png) -1. When building the Prebid.js package, the Floors module (and any analytics adapters) needs to be included with 'gulp build --modules=floors,...' -2. As soon as the setConfig({floors}) call is initiated, the Floors Module will build an internal hash table for each auction derived from a Rule Location (one of Dynamic, setConfig or adUnit) - - a. If an endpoint URL (a Dynamic Floor) is defined, the Floors Module will attempt to fetch floor data from the Floor Provider's endpoint. When requestBids is called, the Floors Module will delay the auction up to the supplied amount of time in floors.auctionDelay or as soon as the dynamic endpoint returns data, whichever is first. -3. Bid Adapters are responsible for utilizing the getFloors() from the bidRequest object for each ad slot media type, size combination. The Floors Module will perform currency conversion if the bid adapter requests floors in a different currency from the defined floor data currency. +1. When building the Prebid.js package, the Price Floors Module (and any analytics adapters) needs to be included with 'gulp build --modules=priceFloors,...' +2. As soon as the setConfig({floors}) call is initiated, the Price Floors Module will build an internal hash table for each auction derived from a Rule Location (one of Dynamic, setConfig or adUnit) + - a. If an endpoint URL (a Dynamic Floor) is defined, the Price Floors Module will attempt to fetch floor data from the Floor Provider's endpoint. When requestBids is called, the Price Floors Module will delay the auction up to the supplied amount of time in floors.auctionDelay or as soon as the dynamic endpoint returns data, whichever is first. +3. Bid Adapters are responsible for utilizing the getFloor() from the bidRequest object for each ad slot media type, size combination. The Price Floors Module will perform currency conversion if the bid adapter requests floors in a different currency from the defined floor data currency. 4. Bid Adapters will pass the floor values to their bidding endpoints, to request bids, responding with any bids that meet or exceed the provided floor -5. Bid adapters will submit bids to back to Prebid core, where the Floors Module will perform enforcement on each bid -6. The Floors Module will mark all bids below the floor as bids rejected. Prebid core will submit all eligible bids to the publisher ad server - - a. The Floors module emits floor event / bid data to Analytics adapters to allow Floor Providers a feedback loop on floor performance for model training +5. Bid adapters will submit bids to back to Prebid core, where the Price Floors Module will perform enforcement on each bid +6. The Price Floors Module will mark all bids below the floor as bids rejected. Prebid core will submit all eligible bids to the publisher ad server + - a. The Price Floors Module emits floor event / bid data to Analytics adapters to allow Floor Providers a feedback loop on floor performance for model training ## Defining Floors @@ -106,6 +106,9 @@ Below are some basic principles of ad unit floor definitions: ]; {% endhighlight %} +{: .alert.alert-info :} +When defining floors at the adUnit level, the Price Floors Module requires the floors object to be defined in setConfig, even if the definition is an empty object as shown below: {% highlight js %}pbjs.setConfig({ floors: {} });{% endhighlight %} + Floor definitions are set in the “values” object containing one or more rules, where the rule is the criteria that needs to be met for that given ad unit, with an associated CPM floor. In the above example, the floors are enforced when the bid from a bidder matches the “mediaType” and “size” combination. Since many bid adapters are not able to ingest floors per size, a simpler setup can be: {% highlight js %} @@ -123,7 +126,7 @@ floors: { } {% endhighlight %} -For more advanced publisher setups, values can accept a “\*” to denote a catch all when a bid comes back that the floors module does not have an exact match and for bid adapters who are not able to use a floor per size, the bid adapter will automatically receive the “\*” rule’s floor if available. Example setup can be: +For more advanced publisher setups, values can accept a “\*” to denote a catch-all when a bid comes back that the Price Floors Module does not have an exact match and for bid adapters who are not able to use a floor per size, the bid adapter will automatically receive the “\*” rule’s floor if available. Example setup can be: {% highlight js %} floors: { @@ -188,7 +191,7 @@ pbjs.setConfig({ }); {% endhighlight %} -By defining floor data with setConfig, the Floors module will map GPT ad slots to AdUnits as needed. It does this in the same way as the setTargetingForGPTAsync() function – first looking for an AdUnit.code that matches the slot name, then looking for an AdUnit.code that matches the div id of the named GPT slot. +By defining floor data with setConfig, the Price Floors Module will map GPT ad slots to AdUnits as needed. It does this in the same way as the setTargetingForGPTAsync() function – first looking for an AdUnit.code that matches the slot name, then looking for an AdUnit.code that matches the div id of the named GPT slot. Here’s another example that includes more fields: @@ -203,10 +206,10 @@ pbjs.setConfig({ fields: [ 'domain', 'gptSlot', 'mediaType', 'size'] }, values: { - 'www.plublisher.com|/1111/homepage/top-rect|banner|300x250': 0.80, - 'www.publisher.com|/1111/homepage/top-rect|video|300x250': 2.20, - 'www.plublisher.com|/1111/homepage/left-nav|banner|300x250': 1.77, - 'www.publisher.com|/1111/homepage/left-nav|video|300x250': 2.88 + 'www.examplepub.com|/1111/homepage/top-rect|banner|300x250': 0.80, + 'www.examplepub.com|/1111/homepage/top-rect|video|300x250': 2.20, + 'www.examplepub.com|/1111/homepage/left-nav|banner|300x250': 1.77, + 'www.examplepub.com|/1111/homepage/left-nav|video|300x250': 2.88 ... } } @@ -237,7 +240,7 @@ pbjs.setConfig({ }); {% endhighlight %} -The floors module is flexible to handle floors set in multiple locations. Like in the below example a publisher can configure Dynamic floors in addition to Package floors (in setConfig). While the floors module is only able to use one set of rules (either Package, adUnit or Dynamic) defined as a Floor Location, setting floors in the Package will be utilized when the Dynamic floors fail to return data or another error condition occurs with the Dynamic fetch. +The Price Floors Module is flexible to handle floors set in multiple locations. Like in the below example a publisher can configure Dynamic floors in addition to Package floors (in setConfig). While the Price Floors Module is only able to use one set of rules (either Package, adUnit or Dynamic) defined as a Floor Location, setting floors in the Package will be utilized when the Dynamic floors fail to return data or another error condition occurs with the Dynamic fetch. {% highlight js %} pbjs.setConfig({ @@ -269,7 +272,7 @@ pbjs.setConfig({ ## Floors Syntax -The examples above covered several different scenarios where floors can be applied. Below we will cover the syntax and definition of the floors data schema. As of Prebid.js version 3.24, the Floors module supports a second data schema with the ability to add new schemas to future-proof the needs of additional design changes while keeping backwards compatibility. +The examples above covered several different scenarios where floors can be applied. Below we will cover the syntax and definition of the floors data schema. As of Prebid.js version 3.24, the Price Floors Module supports a second data schema with the ability to add new schemas to future-proof the needs of additional design changes while keeping backwards compatibility. ### Schema 1 @@ -279,23 +282,23 @@ Schema 1 restricts floors providers or publishers to applying only one data grou {: .table .table-bordered .table-striped } | Param | Type | Description | Default | |---+---+---+---+---| -| floorMin | float | The mimimum CPM floor used by the Floors Module (as of 4.13). The Floors Module will take the greater of floorMin and the matched rule CPM when evaluating getFloor() and enforcing floors. | - | +| floorMin | float | The mimimum CPM floor used by the Price Floors Module (as of 4.13). The Price Floors Module will take the greater of floorMin and the matched rule CPM when evaluating getFloor() and enforcing floors. | - | | floorProvider | string | Optional atribute (as of prebid version 4.1) used to signal to the Floor Provider's Analytics adapter their floors are being applied. They can opt to log only floors that are applied when they are the provider. If floorProvider is supplied in both the top level of the floors object and within the data object, the data object's configuration shall prevail.| - | -| enforcement | object | Controls the enforcement behavior within the Floors Module.| - | -| skipRate | integer | skipRate is a random function whose input value is any integer 0 through 100 to determine when to skip all floor logic, where 0 is always use floor data and 100 is always skip floor data. The use case is for publishers or floor providers to learn bid behavior when floors are applied or skipped. Analytics adapters will have access to model version (if defined) when skipped is true to signal the Floors Module is in floors mode. If skipRate is supplied in both the root level of the floors object and within the data object, the skipRate configuration within the data object shall prevail. | 0 | -| enforcement.enforceJS | boolean | If set to true, the floors module will provide floors to bid adapters for bid request matched rules and suppress any bids not exceeding a matching floor. If set to false, the prebid floors module will still provide floors for bid adapters, there will be no floor enforcement.| true | -| enforcement.enforcePBS | boolean | If set to true, the Prebid.js floors module will signal to Prebid Server to pass floors to it’s bid adapters and enforce floors. If set to false, the pbjs should still pass matched bid request floor data to PBS, however no enforcement will take place. | false | +| enforcement | object | Controls the enforcement behavior within the Price Floors Module.| - | +| skipRate | integer | skipRate is a random function whose input value is any integer 0 through 100 to determine when to skip all floor logic, where 0 is always use floor data and 100 is always skip floor data. The use case is for publishers or floor providers to learn bid behavior when floors are applied or skipped. Analytics adapters will have access to model version (if defined) when skipped is true to signal the Price Floors Module is in floors mode. If skipRate is supplied in both the root level of the floors object and within the data object, the skipRate configuration within the data object shall prevail. | 0 | +| enforcement.enforceJS | boolean | If set to true, the Price Floors Module will provide floors to bid adapters for bid request matched rules and suppress any bids not exceeding a matching floor. If set to false, the Price Floors Module will still provide floors for bid adapters, there will be no floor enforcement.| true | +| enforcement.enforcePBS | boolean | If set to true, the Price Floors Module will signal to Prebid Server to pass floors to it’s bid adapters and enforce floors. If set to false, the pbjs should still pass matched bid request floor data to PBS, however no enforcement will take place. | false | | enforcement.floorDeals | boolean | Enforce floors for deal bid requests. | false | -| enforcement.bidAdjustment | boolean | If true, the Floors Module will use the bidAdjustment function to adjust the floor per bidder. If false (or no bidAdjustment function is provided), floors will not be adjusted. Note: Setting this parameter to false may have unexpected results, such as signaling a gross floor when expecting net or vice versa. | true | +| enforcement.bidAdjustment | boolean | If true, the Price Floors Module will use the bidAdjustment function to adjust the floor per bidder. If false (or no bidAdjustment function is provided), floors will not be adjusted. Note: Setting this parameter to false may have unexpected results, such as signaling a gross floor when expecting net or vice versa. | true | | endpoint | object | Controls behavior for dynamically retrieving floors. | - | | endpoint.url | string | URL of endpoint to retrieve dynamic floor data. | - | -| data | object (required) | Floor data used by the Floors Module to pass floor data to bidders and floor enforcement. | - | +| data | object (required) | Floor data used by the Price Floors Module to pass floor data to bidders and floor enforcement. | - | | data.floorProvider | string | Optional atribute (as of prebid version 4.2) used to signal to the Floor Provider's Analytics adapter their floors are being applied. They can opt to log only floors that are applied when they are the provider. If floorProvider is supplied in both the top level of the floors object and within the data object, the data object's configuration shall prevail.| - | | data.currency | string | Currency of floor data. Floor Module will convert currency where necessary. See Currency section for more details. | 'USD' | -| data.skipRate | integer | skipRate is a random function whose input value is any integer 0 through 100 to determine when to skip all floor logic, where 0 is always use floor data and 100 is always skip floor data. The use case is for publishers or floor providers to learn bid behavior when floors are applied or skipped. Analytics adapters will have access to model version (if defined) when skipped is true to signal the Floors Module is in floors mode. If skipRate is supplied in both the root level of the floors object and within the data object, the skipRate configuration within the data object shall prevail. | 0 | -| data.floorsSchemaVersion | string | The Floors Module supports two versions of the data schema. Version 1 allows for only one model to be applied in a given data set, whereas Version 2 allows you to sample multiple models selected by supplied weights. If no schema version is provided, the Floors Module will assume version 1 for the sake of backwards compatiblity. For schema version 2 see the next section. | 1 | +| data.skipRate | integer | skipRate is a random function whose input value is any integer 0 through 100 to determine when to skip all floor logic, where 0 is always use floor data and 100 is always skip floor data. The use case is for publishers or floor providers to learn bid behavior when floors are applied or skipped. Analytics adapters will have access to model version (if defined) when skipped is true to signal the Price Floors Module is in floors mode. If skipRate is supplied in both the root level of the floors object and within the data object, the skipRate configuration within the data object shall prevail. | 0 | +| data.floorsSchemaVersion | integer | The module supports two versions of the data schema. Version 1 allows for only one model to be applied in a given data set, whereas Version 2 allows you to sample multiple models selected by supplied weights. If no schema version is provided, the module will assume version 1 for the sake of backwards compatiblity. For schema version 2 see the next section. | 1 | | data.modelVersion | string | Used by floor providers to train on model version performance. The expectation is a floor provider’s analytics adapter will pass the model verson back for algorithm training. | - | -| data.modelTimestamp | int | Epoch timestamp associated with modelVersion. Can be used to track model creation of floor file for post auction analysis.| - | +| data.modelTimestamp | integer | Epoch timestamp associated with modelVersion. Can be used to track model creation of floor file for post auction analysis.| - | | data.schema | object |allows for flexible definition of how floor data is formatted. | - | | data.schema.delimiter | string | Character separating the floor keys. | '\|' | | data.schema.fields | array of strings | Supported values are: gptSlot, adUnitCode, mediaType, size | - | @@ -311,14 +314,14 @@ Schema 1 restricts floors providers or publishers to applying only one data grou ### Schema 2 -Schema 2 allows floors providers to A / B one or more floor groups, determined at auction time. +Schema 2 allows floors providers to A/B-test one or more floor groups, determined at auction time. The following principles apply to schema 2: - The below attributes are required: - data.floorsSchemaVersion to be set to 2 - A valid modelGroups object must be set - The field modelGroups.modelWeight is required for each model group - - If one of the model weights is missing, no schema 2 floor will be set and the Floors Module will look in other locations for floor definitions + - If one of the model weights is missing, no schema 2 floor will be set and the Price Floors Module will look in other locations for floor definitions - If common attributes are set in both the modelGroups and root level of the data object, modelGroups attributes prevail - The Schema 2 data model can only be applied in Package level (i.e. directly in setConfig) or Dynamic level - Sampling weights are applied at the auction level. Each new auction the dice will be rolled @@ -330,27 +333,27 @@ While some attributes are common in both schema versions, for completeness, all {: .table .table-bordered .table-striped } | Param | Type | Description | Default | |---+---+---+---+---| -| floorMin | float | The mimimum CPM floor used by the Floors Module (as of 4.13). The Floors Module will take the greater of floorMin and the matched rule CPM when evaluating getFloor() and enforcing floors. | - | +| floorMin | float | The mimimum CPM floor used by the module (as of 4.13). The module will take the greater of floorMin and the matched rule CPM when evaluating getFloor() and enforcing floors. | - | | floorProvider | string | Optional atribute (as of prebid version 4.1) used to signal to the Floor Provider's Analytics adapter their floors are being applied. They can opt to log only floors that are applied when they are the provider. If floorProvider is supplied in both the top level of the floors object and within the data object, the data object's configuration shall prevail.| - | -| enforcement | object | Controls the enforcement behavior within the Floors Module.| - | -| skipRate | integer | skipRate is a random function whose input value is any integer 0 through 100 to determine when to skip all floor logic, where 0 is always use floor data and 100 is always skip floor data. The use case is for publishers or floor providers to learn bid behavior when floors are applied or skipped. Analytics adapters will have access to model version (if defined) when skipped is true to signal the Floors Module is in floors mode. If skipRate is supplied in both the root level of the floors object and within the data object, the skipRate configuration within the data object shall prevail. | 0 | -| enforcement.enforceJS | boolean | If set to true, the floors module will provide floors to bid adapters for bid request matched rules and suppress any bids not exceeding a matching floor. If set to false, the prebid floors module will still provide floors for bid adapters, but there will be no floor enforcement.| true | -| enforcement.enforcePBS | boolean | If set to true, the Prebid.js floors module will signal to Prebid Server to pass floors to it’s bid adapters and enforce floors. If set to false, Prebid.js should still pass matched bid request floor data to Prebid Server, however no enforcement will take place. | false | +| enforcement | object | Controls the enforcement behavior within the module.| - | +| skipRate | integer | skipRate is a random function whose input value is any integer 0 through 100 to determine when to skip all floor logic, where 0 is always use floor data and 100 is always skip floor data. The use case is for publishers or floor providers to learn bid behavior when floors are applied or skipped. Analytics adapters will have access to model version (if defined) when skipped is true to signal the module is in floors mode. If skipRate is supplied in both the root level of the floors object and within the data object, the skipRate configuration within the data object shall prevail. | 0 | +| enforcement.enforceJS | boolean | If set to true, the module will provide floors to bid adapters for bid request matched rules and suppress any bids not exceeding a matching floor. If set to false, the module will still provide floors for bid adapters, but there will be no floor enforcement.| true | +| enforcement.enforcePBS | boolean | If set to true, the module will signal to Prebid Server to pass floors to it’s bid adapters and enforce floors. If set to false, Prebid.js should still pass matched bid request floor data to Prebid Server, however no enforcement will take place. | false | | enforcement.floorDeals | boolean | Enforce floors for deal bid requests. | false | -| enforcement.bidAdjustment | boolean | If true, the Floors Module will use the bidAdjustment function to adjust the floor per bidder. If false (or no bidAdjustment function is provided), floors will not be adjusted. Note: Setting this parameter to false may have unexpected results, such as signaling a gross floor when expecting net or vice versa. | true | +| enforcement.bidAdjustment | boolean | If true, the module will use the bidAdjustment function to adjust the floor per bidder. If false (or no bidAdjustment function is provided), floors will not be adjusted. Note: Setting this parameter to false may have unexpected results, such as signaling a gross floor when expecting net or vice versa. | true | | endpoint | object | Controls behavior for dynamically retrieving floors. | - | | endpoint.url | string | URL of endpoint to retrieve dynamic floor data. | - | -| data | object (required) | Floor data used by the Floors Module to pass floor data to bidders and floor enforcement. | - | +| data | object (required) | Floor data used by the module to pass floor data to bidders and floor enforcement. | - | | data.floorProvider | string | Optional atribute (as of prebid version 4.2) used to signal to the Floor Provider's Analytics adapter their floors are being applied. They can opt to log only floors that are applied when they are the provider. If floorProvider is supplied in both the top level of the floors object and within the data object, the data object's configuration shall prevail.| - | -| data.currency | string | Currency of floor data. Floors Module will convert currency where necessary. See Currency section for more details. | 'USD' | -| data.skipRate | integer | skipRate is a random function whose input value is any integer 0 through 100 to determine when to skip all floor logic, where 0 is always use floor data and 100 is always skip floor data. The use case is for publishers or floor providers to learn bid behavior when floors are applied or skipped. Analytics adapters will have access to model version (if defined) when skipped is true to signal the Floors Module is in floors mode. If skipRate is supplied in both the root level of the floors object and within the data object, the skipRate configuration within the data object shall prevail.| 0 | -| data.floorsSchemaVersion | string | The Floors Module supports two version of the data schema. Version 1 allows for only one model to be applied in a given data set, whereas Version 2 allows you to sample multiple models selected by supplied weights. If no schema version is provided, the Floors Module will assume version 1 for the sake of backwards compatiblity.| 1 | +| data.currency | string | Currency of floor data. The module will convert currency where necessary. See Currency section for more details. | 'USD' | +| data.skipRate | integer | skipRate is a random function whose input value is any integer 0 through 100 to determine when to skip all floor logic, where 0 is always use floor data and 100 is always skip floor data. The use case is for publishers or floor providers to learn bid behavior when floors are applied or skipped. Analytics adapters will have access to model version (if defined) when skipped is true to signal the module is in floors mode. If skipRate is supplied in both the root level of the floors object and within the data object, the skipRate configuration within the data object shall prevail.| 0 | +| data.floorsSchemaVersion | string | The module supports two version of the data schema. Version 1 allows for only one model to be applied in a given data set, whereas Version 2 allows you to sample multiple models selected by supplied weights. If no schema version is provided, the module will assume version 1 for the sake of backwards compatiblity.| 1 | | data.modelTimestamp | int | Epoch timestamp associated with modelVersion. Can be used to track model creation of floor file for post auction analysis.| - | | data.modelGroups | array of objects | Array of model objects to be used for A/B sampling multiple models. This field is only used when data.floorsSchemaVersion = 2 | - | | data.modelGroups[].currency | string | Currency of floor data. Floor Module will convert currency where necessary. See Currency section for more details. | 'USD' | -| data.modelGroups[].skipRate | integer | skipRate is a random function whose input value is any integer 0 through 100 to determine when to skip all floor logic, where 0 is always use floor data and 100 is always skip floor data. The use case is for publishers or floor providers to learn bid behavior when floors are applied or skipped. Analytics adapters will have access to model version (if defined) when skipped is true to signal the Floors Module is in floors mode. | 0 | +| data.modelGroups[].skipRate | integer | skipRate is a random function whose input value is any integer 0 through 100 to determine when to skip all floor logic, where 0 is always use floor data and 100 is always skip floor data. The use case is for publishers or floor providers to learn bid behavior when floors are applied or skipped. Analytics adapters will have access to model version (if defined) when skipped is true to signal the module is in floors mode. | 0 | | data.modelGroups[].modelVersion | string | Used by floor providers to train on model version performance. The expectation is a floor provider’s analytics adapter will pass the model verson back for algorithm training. | - | -| data.modelGroups[].modelWeight | integer | Used by the Floors Module to determine when to apply the specific model. All weights will be normalized and appllied at runtime. Futher clarification will be provided in examples below. | - | +| data.modelGroups[].modelWeight | integer | Used by the module to determine when to apply the specific model. All weights will be normalized and applied at runtime. Futher clarification will be provided in examples below. | - | | data.schema | object | Allows for flexible definition of how floor data is formatted. | - | | data.modelGroups[].schema.delimiter | string | Character separating the floor keys. | '\|' | | data.modelGroups[].schema.fields | array of strings | Supported pre-defined values are: gptSlot, adUnitCode, mediaType, size | - | @@ -367,65 +370,70 @@ While some attributes are common in both schema versions, for completeness, all Model weights add up to 100 and are sampled at a 25%, 25%, 50% distribution. Additionally, each model group has diffirent schema fields: {% highlight js %} -{ - "currency": "EU", - "skipRate": 20, - "floorsSchemaVersion":2, - "modelGroups": [ - { - "modelWeight":25, - "modelVersion": "Model1", - "schema": { - "fields": [ "domain", "gptSlot", "mediaType", "size" ] - }, - "values": { - "www.publisher.com|/1111/homepage/top-banner|banner|728x90": 1.00, - "www.publisher.com|/1111/homepage/top-rect|banner|300x250": 1.20, - "www.publisher.com|/1111/homepage/top-rect|banner|300x600": 1.80, - ... - "www.domain.com|/1111/homepage/top-banner|banner|728x90": 2.11 - ... - "www.publisher.com|*|*|*": 0.80, - }, - "default": 0.75 - }, - { - "modelWeight": 25, - "modelVersion": "Model2", - "schema": { - "fields": [ "domain", "mediaType", "size" ] - }, - "values": { - "www.publisher.com|banner|728x90": 1.00, - "www.publisher.com|banner|300x250": 1.20, - "www.publisher.com|banner|300x600": 1.80, - ... - "www.domain.com|banner|728x90": 2.11 - ... - "www.publisher.com|*|*|*": 0.80, - }, - "default": 0.75 - }, - { - "modelWeight": 50, - "modelVersion": "Model3", - "schema": { - "fields": [ "gptSlot", "mediaType", "size" ] - }, - "values": { - "/1111/homepage/top-banner|banner|728x90": 1.00, - "/1111/homepage/top-rect|banner|300x250": 1.20, - "/1111/homepage/top-rect|banner|300x600": 1.80, - ... - "/1111/homepage/top-banner|banner|728x90": 2.11 - ... - "*|banner|*": 0.80, - }, - "default": 0.75 - } - ] - -} +pbjs.setConfig({ + floors: { + enforcement: { ... }, + ... + data: { + "currency": "EU", + "skipRate": 20, + "floorsSchemaVersion":2, + "modelGroups": [ + { + "modelWeight":25, + "modelVersion": "Model1", + "schema": { + "fields": [ "domain", "gptSlot", "mediaType", "size" ] + }, + "values": { + "www.publisher.com|/1111/homepage/top-banner|banner|728x90": 1.00, + "www.publisher.com|/1111/homepage/top-rect|banner|300x250": 1.20, + "www.publisher.com|/1111/homepage/top-rect|banner|300x600": 1.80, + ... + "www.domain.com|/1111/homepage/top-banner|banner|728x90": 2.11 + ... + "www.publisher.com|*|*|*": 0.80, + }, + "default": 0.75 + }, + { + "modelWeight": 25, + "modelVersion": "Model2", + "schema": { + "fields": [ "domain", "mediaType", "size" ] + }, + "values": { + "www.publisher.com|banner|728x90": 1.00, + "www.publisher.com|banner|300x250": 1.20, + "www.publisher.com|banner|300x600": 1.80, + ... + "www.domain.com|banner|728x90": 2.11 + ... + "www.publisher.com|*|*|*": 0.80, + }, + "default": 0.75 + }, + { + "modelWeight": 50, + "modelVersion": "Model3", + "schema": { + "fields": [ "gptSlot", "mediaType", "size" ] + }, + "values": { + "/1111/homepage/top-banner|banner|728x90": 1.00, + "/1111/homepage/top-rect|banner|300x250": 1.20, + "/1111/homepage/top-rect|banner|300x600": 1.80, + ... + "/1111/homepage/top-banner|banner|728x90": 2.11 + ... + "*|banner|*": 0.80, + }, + "default": 0.75 + } + ] + } + } +}); {% endhighlight %} *Example 2* @@ -436,66 +444,69 @@ model2 = 50 -> 50 / (20 + 50) = 71% of auctions model 2 will be applied Additionally skipRate is supplied at model group level where model1 will skip floors 20% of times when model1 is selected, whereas model2 will skip 50% of auctions when model2 is selected. {% highlight js %} -{ - "currency": "EU", - "floorsSchemaVersion":2, - "modelGroups": [ - { - "modelWeight":25, - "skipRate": 20, - "modelVersion": "Model1", - "schema": { - "fields": [ "domain", "gptSlot", "mediaType", "size" ] - }, - "values": { - "www.publisher.com|/1111/homepage/top-banner|banner|728x90": 1.00, - "www.publisher.com|/1111/homepage/top-rect|banner|300x250": 1.20, - "www.publisher.com|/1111/homepage/top-rect|banner|300x600": 1.80, - ... - "www.domain.com|/1111/homepage/top-banner|banner|728x90": 2.11 - ... - "www.publisher.com|*|*|*": 0.80, - }, - "default": 0.75 - }, - { - "modelWeight": 50, - "skipRate": 50, - "modelVersion": "Model2", - "schema": { - "fields": [ "gptSlot", "mediaType", "size" ] - }, - "values": { - "/1111/homepage/top-banner|banner|728x90": 1.00, - "/1111/homepage/top-rect|banner|300x250": 1.20, - "/1111/homepage/top-rect|banner|300x600": 1.80, - ... - "/1111/homepage/top-banner|banner|728x90": 2.11 - ... - "*|banner|*": 0.80, - }, - "default": 0.75 - } - ] - -} +pbjs.setConfig({ + floors: { + enforcement: { ... }, + ... + data: { + "currency": "EU", + "floorsSchemaVersion":2, + "modelGroups": [ + { + "modelWeight":25, + "skipRate": 20, + "modelVersion": "Model1", + "schema": { + "fields": [ "domain", "gptSlot", "mediaType", "size" ] + }, + "values": { + "www.publisher.com|/1111/homepage/top-banner|banner|728x90": 1.00, + "www.publisher.com|/1111/homepage/top-rect|banner|300x250": 1.20, + "www.publisher.com|/1111/homepage/top-rect|banner|300x600": 1.80, + ... + "www.domain.com|/1111/homepage/top-banner|banner|728x90": 2.11 + ... + "www.publisher.com|*|*|*": 0.80, + }, + "default": 0.75 + }, + { + "modelWeight": 50, + "skipRate": 50, + "modelVersion": "Model2", + "schema": { + "fields": [ "gptSlot", "mediaType", "size" ] + }, + "values": { + "/1111/homepage/top-banner|banner|728x90": 1.00, + "/1111/homepage/top-rect|banner|300x250": 1.20, + "/1111/homepage/top-rect|banner|300x600": 1.80, + ... + "/1111/homepage/top-banner|banner|728x90": 2.11 + ... + "*|banner|*": 0.80, + }, + "default": 0.75 + } + ] + } + } +}); {% endhighlight %} ## Custom Schema Fields -Custom schema fields are fields the Floors Module does not support out of the box. To use a custom schema field, one needs to perform twp steps: +Out of the box, the Price Floors Module only supports looking up floors by AdUnit, GPT Slot, MediaType, ad size, and domain. Custom schema fields can be added to support other lookup dimensions. Here are the steps: -1. Create lookup function to give the Floors Module context of the value of custom fields for that given auction +1. Create a lookup function to give context of the value of custom fields for that given auction 1. Define, Set and Map Custom Schema Attributes ### Create Lookup Function -Create a function to allow the Floors Module to understand context of a given auction. In the below example, we must create a lookup function to give the Floors Module what deviceType this auction is. - -Here is an example lookup function: +Create a function to allow the module to understand context of a given auction. In the below example, a lookup function provides details about what deviceType this auction is for. +e.g. {% highlight js %} - function deviceTypes (bidRequest, bidResponse) { //while bidRequest and bidResponse are not required for this function, they are available for custom attribute mapping @@ -514,9 +525,9 @@ Here is an example lookup function: ### Define, Set and Map Custom Schema Attributes -After defining a lookup function for the given context of the auction, the custom schema field(s) need to be defined in the `floors.schema.fields` array. Once your custom field is defined you can assign rule values in `floors.data.values` derived from said field(s). The last step would be to supply the lookup function(s) that map from each custom field to a value of the context wthin that auction by using the `floors.additionalSchemaFields` attribute as seen below. +After defining a lookup function for the given context of the auction, the custom schema field(s) need to be defined in the `floors.schema.fields` array. Once your custom field is defined you can assign rule values in `floors.data.values` derived from these field(s). The last step would be to supply the lookup function(s) that map from each custom field to a value of the context wthin that auction by using the `floors.additionalSchemaFields` attribute as seen below. -In the below example, `deviceType` is a custom field not currently supported by default in the Floors Module whose values are one of "mobile", "desktop" or "tablet". +In the below example, `deviceType` is a custom field not currently supported by default in the Price Floors Module whose values are one of "mobile", "desktop" or "tablet". {% highlight js %} @@ -551,28 +562,26 @@ In the below example, `deviceType` is a custom field not currently supported by {% endhighlight %} - - ## Rule Handling ### Rule Location Priority -As defined in the overview, a Rule Location is where a particular rule is located, either defined in the Ad Unit, within setConfig or via a fetch from the browser (named Dynamic) for fresh rules. It may be possible (rather more than likely) that floor rules can be set in one or more locations for a given Prebid auction (i.e. on requestBids). At auction, the Floors Module will only ever use rules from one Rule Location, decided at run-time. Each auction will be assigned an immutable set of rules from one Rule Location, even if the rules change prior to auction complete. +As defined in the overview, a Rule Location is where a particular rule is located, either defined in (1) the Ad Unit, (2) within setConfig or (3) via a fetch from the browser. It's likely that floor rules are set in one or more location for a given Prebid auction. During an auction, the Price Floors Module will only ever use rules from one Rule Location, decided at run-time. Each auction will be assigned an immutable set of rules from one Rule Location, even if the rules change prior to auction complete. -The Floors Module will use the below prioritization scheme on determining which Rule Location is selected at run-time: +The module uses the below prioritization scheme on determining which Rule Location is selected at run-time: -- Dynamic +- dynamic - setConfig - adUnit ### Rule Selection Process -The job of the Prebid floors module is to select a matching Prebid floor rule for enforcement \(when a bid adapter bids in the auction\) given the context of each Ad Unit. With the usage of “\*” values in rules definitions \(where “\*” applies when no specific value matches\) multiple Prebid floor rules can match for a given ad unit auction. +The job of the Price Floors Module is to select a matching floor rule for enforcement given the context of each Ad Unit. With the usage of “\*” values in rules definitions multiple floor rules can match for a given ad unit auction. -The Prebid Floors module algorithm will produce a list of every possible permutation for each ad unit auction based on the defined schema types. The best matching rule for each enforced bid request and getFloor is based on specificity of values \(meaning match an exact value\) weighted from left to right, where the specificity of a value in the left most column would match over a rule with it’s “\*” equivalent if “\*” is supplied. +The module algorithm will produce a list of every possible permutation for each ad unit auction based on the defined schema types. The best matching rule for each enforced bid request and call to `getFloor()` is based on specificity of values \(meaning match an exact value\) weighted from left to right, where the specificity of a value in the left most column would match over a rule with its “\*” equivalent if “\*” is supplied. -Priority order behavior where “\_” is a specific value, and the “\*” is a catch all +Priority order behavior where “\_” is a specific value, and the “\*” is a catch-all Priority order for one column rule sets: @@ -643,7 +652,7 @@ mediaType = banner Size = 300x600 Domain context = www.website.com -The Price Floor Module produces an internal hash table of all possible permutations of “banner”, “300x600”, “www.website.com” and “\*” with the most specific hash values up top, weighting rules priority from left column specific values to right. Each left value will weigh more than the subsequent column’s specific values. The Floors Module attempt to find the matching rule by cycling through each below possible rule (from top to bottom) against the above rule provider data set. +The Floor module produces an internal hash table of all possible permutations of “banner”, “300x600”, “www.website.com” and “\*” with the most specific hash values up top, weighting rules priority from left column specific values to right. Each left value will weigh more than the subsequent column’s specific values. The module attempts to find the matching rule by cycling through each below possible rule (from top to bottom) against the above rule provider data set. {% highlight js %} { @@ -842,14 +851,14 @@ As a floor provider, your goal is to provide effective floors, with minimal page - Work with publishers on setting appropriate auction delays to retrieve dynamic data - Implement client-side caching (such as max-age headers) whenever possible - Evaluate data freshness vs frequency of new fetches to the CDN to reduce unnecessary calls -- Be aware of file sizes returned to the browser, implementing trimmiming algorithms for extremely large data sets +- Be aware of file sizes returned to the browser, implementing trimming algorithms for extremely large data sets {% endcapture %} {% include /alerts/alert_important.html content=warning_note %} -For Dynamic fetches, the floors module will perform a GET request to the supplied endpoint, that must return valid JSON, formatted like the data object in the “setConfig” Package configuration. +For Dynamic fetches, the Price Floors Module will perform a GET request to the supplied endpoint, that must return valid JSON, formatted like the data object in the “setConfig” Package configuration. -On rule creation, we recommend supplying various rules with catch all \(“\*”\) values with associated floors. This is to accommodate bid adapters who cannot retrieving floors on a per size basis, as well as using various permutations of rules with “\*” values to match auctions that do not have an exact match on a specific rule. Please refer to the Rule Selection Process when determining floors as attribute order and number of “\*”s may have an impact on which rule is selected. +On rule creation, we recommend supplying various rules with catch-all \(“\*”\) values with associated floors. This is to accommodate bid adapters who cannot retrieve floors on a per size basis, as well as using various permutations of rules with “\*” values to match auctions that do not have an exact match on a specific rule. Please refer to the Rule Selection Process when determining floors as attribute order and number of “\*”s may have an impact on which rule is selected. #### Example Dynamic fetch @@ -977,39 +986,41 @@ Floors Schema version 2 ### Bid Adapter Interface -The Prebid Floors Module is capable of handling an arbitrarily large set of floor rules of any combination of supported dimensions. To reduce the need for each bid adapter to process each and every rule in the selected rule data set, an encapsulated function (getFloor) was created to allow bid adapters to query the Floors Module for a floor for each mediaType, size and currency the bid adapter needs. +The Prebid Floors Module is capable of handling an arbitrarily large set of floor rules of any combination of supported dimensions. To reduce the need for each bid adapter to process each and every rule in the selected rule data set, an encapsulated function (getFloor) was created to allow bid adapters to query the module for a floor for each mediaType, size and currency the bid adapter needs. -If the price floors module is enabled for a given auction, the Floors Module will add to the bidRequest object the getFloor function. All bid adapters are recommended to call getFloor to retrieve a desired floor. The job of the getFloor function will be to return the floor CPM of a matched rule based on the rule selection process (written out above), using the getFloor inputs. +If the Price Floors Module is enabled for a given auction, it will add the getFloor() function to the bidRequest object. All bid adapters are recommended to call the getFloor() to retrieve a desired floor. The job of this function is to return the floor CPM of a matched rule based on the rule selection process (written out above), using the getFloor() inputs. -Intended changes for bid adapters: +Changes for bid adapters: - -1. Check for presence of getFloor within the bidRequest obect -1. If getFloors exists, call getFloor with desired parameters +1. Check for presence of getFloor() within the bidRequest obect +1. If getFloor() exists, call it with desired parameters 1. Parse floor and currency response 1. Pass floor and / or currency to bid adapter endpoint -getFloor takes in a single object with the following params: +getFloor() takes in a single object with the following params: {% highlight js %} - - getFloor({ + if (typeof bidRequest.getFloor === 'function') { + floorInfo = bidRequest.getFloor({ currency: string, - mediaType: string //Required + mediaType: string, size : [ w, h] OR "*" }); - +} {% endhighlight %} +{: .alert.alert-warning :} +Consider how floors will behave in multi-currency scenarios. A common pitfall is requesting floors without specifying currency, or specifying the wrong currency back to the bid adapter's platform. This may lead to bidders requesting one currency and bidding in an alternate currency. + + {: .table .table-bordered .table-striped } | Param | Type | Description | Default | |---+---+---+---| -| bidRequest | object | bidRequest object passed to buildRequests function | none | -| mediaType | string | The media type within the current bidRequest context to receive a floor from the Floors Module. Floors Module will return best matching floor. Possible values are one of “banner”, “video”, “Native” or "\*" | "banner" | -| size | Size array or ‘\*’ (required) | The size within the current bidRequest context to receive a floor from the Floors Module. Defaults to ‘\*’Array of size [w, h] for a specific size. If your bid adapter cannot handle size specific floors, use ‘\*’ to retrieve catch all size floor if defined by the publisher or floor provider | "\*" | +| mediaType | string | The media type within the current bidRequest context to receive a floor from the module. It will return best matching floor. Possible values are one of “banner”, “video”, “Native” or "\*" | "banner" | +| size | Size array or ‘\*’ (required) | The size within the current bidRequest context to receive a floor from the module. Defaults to ‘\*’Array of size [w, h] for a specific size. If your bid adapter cannot handle size specific floors, use ‘\*’ to retrieve catch-all size floor if defined by the publisher or floor provider | "\*" | | currency | String | The desired currency to return the floor in. Please refer to the currency section to understand how currency conversion is applied. If no currency is supplied, the floor module will assume USD. If the Floor Module cannot convert a floor to the supplied currency, bid adapters will be required to handle the supplied floor. | "USD" | -#### getFloor Response +#### getFloor() Response {% highlight js %} @@ -1028,9 +1039,9 @@ Or empty object if a floor was not found for a given input {% endhighlight %} -#### Example getFloor scenarios +#### Example getFloor() scenarios -Example rules file used for getFloor +Example rules file used for getFloor() {% highlight js %} @@ -1053,16 +1064,16 @@ Example rules file used for getFloor {% endhighlight %} -**Example getFloor 1** +**Example getFloor() 1** -getFloor for media type Banner for a bid request in the context of the gpt slot “/1111/homepage/top-rect” where the bid adapter does not support floors per size. +getFloor() for media type Banner for a bid request in GPT slot “/1111/homepage/top-rect” where the bid adapter does not support floors per size. {% highlight js %} getFloor({ currency: 'USD', mediatype: ‘banner’, - Size: ‘*’ + size: ‘*’ }); {% endhighlight %} @@ -1075,7 +1086,7 @@ getFloor for media type Banner for a bid request in the context of the gpt slot } {% endhighlight %} -To aid in the accuracy of floor selection when using size ”\*” in getFloor, the Floors Module has built-in smart rule selection when an ad unit in the internal bidRequest to the bid adapters interface has one ad unit type and one size. In the above example, if the ad unit within the bidRequest object has an ad unit type of “banner” with only one size, say “300x250”, the Floors Module will intelligently select the rule with "banner\|300x250" in it, as opposed to the "banner\|\*" rule producing the following response: +To aid in the accuracy of floor selection when using size ”\*” in getFloor(), the Price Floors Module has built-in smart rule selection when an ad unit in the internal bidRequest to the bid adapters interface has one ad unit type and one size. In the above example, if the ad unit within the bidRequest object has an ad unit type of “banner” with only one size, say “300x250”, the module will intelligently select the rule with "banner\|300x250" in it, as opposed to the "banner\|\*" rule producing the following response: {% highlight js %} { @@ -1085,9 +1096,9 @@ To aid in the accuracy of floor selection when using size ”\*” in getFloor, {% endhighlight %} -**Example getFloor 2** +**Example getFloor() 2** -getFloor for media type Banner for a bid requests in the context of the gpt slot “/1111/homepage/top-rect” with size of 300x600 where bid adapter does support floors per size. +getFloor() for media type Banner for a bid requests in GPT slot “/1111/homepage/top-rect” with size of 300x600 where bid adapter does support floors per size. {% highlight js %} getFloor({ @@ -1106,7 +1117,7 @@ getFloor({ } {% endhighlight %} -Here are some examples of how a bid adapter may wish to configure their adapter to handle getFloor function: +Here are some examples of how a bid adapter may wish to configure their adapter to handle getFloor() function: For a bid adapter who does not wish to handle making a request for each size in a given bid request they can leverage the \* attribute which is meant to be a skewed average for a floor. @@ -1115,7 +1126,7 @@ For a bid adapter who does not wish to handle making a request for each size in let floorInfo = bidRequest.getFloor({ currency: 'USD', mediaType: 'banner', - size: '\*' + size: '*' }); data['adapter_floor'] = floorInfo.currency === 'USD' ? floorInfo.floor : undefined; } @@ -1123,23 +1134,23 @@ For a bid adapter who does not wish to handle making a request for each size in ### Analytics Adapter Interface -Price Floors providers will most likely rely heavily on their associated (or their partner’s) prebid analytics adapter in order to make the most informed and optimal price floor rule sets. Because of this, the price floors module needs to relay important information about the flooring and decisions made in the lifecycle of an auction. +Floor providers rely on an analytics adapter in order to make the most informed and optimal price floor rule sets. Because of this, the Price Floors Module needs to relay important information about the flooring and decisions made in the lifecycle of an auction. -The price floors module will do this by leveraging the already existing implementation for prebid analytics adapters by exposing floorData information onto the bidRequest and bidResponse objects. Thus, when an analytics adapter hooks into these prebid events, it will be able to pick out the price floors data and pass it along to their servers. +The module will do this by leveraging the already-existing implementation for analytics adapters by exposing floorData information onto the bidRequest and bidResponse objects. Thus, when an analytics adapter hooks into these objects, it will be able to pick out the price floors data and pass it along to their servers. **bidRequest**: Bid Requests objects are updated to contain some basic top level information which a floor provider may need: {: .table .table-bordered .table-striped } | bidRequest.floorData. | Type | Description | example | |---+---+---+---+---| -| fetchStatus | String | Provides details on the status of a fetch for a JSON floors file when fetches are attempted. Valid values are: 'success' (when fetch returns an http 200 status), 'timeout' (when fetch results not returned before either auction delay or prebid timeout) or 'error' (any http status other than 200 or other error condition). To determine if fetch succeeds but returns invalid floors data, refer to the location field to infer invalid data if 'fetch' is not resultant value. | ‘success’ | -| floorMin | float | The mimimum CPM floor used by the Floors Module (as of 4.13). The Floors Module will take the greater of floorMin and the matched rule CPM when evaluating getFloor() and enforcing floors. | 0.10 | +| fetchStatus | String | Provides details on the status of a fetch for a JSON floors file when fetches are attempted. Valid values are: 'success' (when fetch returns an http 200 status), 'timeout' (when fetch results not returned before either auction delay or prebid timeout) or 'error' (any http status other than 200 or other error condition). Note: if data is received successfully, but isn't valid upon parsing, fetchStatus will be 'success', but the `location` field (below) will have a value other than 'fetch' because the system will fall back to another source. | ‘success’ | +| floorMin | float | The mimimum CPM floor used by the module (as of 4.13). The module will take the greater of floorMin and the matched rule CPM when evaluating getFloor() and enforcing floors. Note that the currency of this floor is the same as bidResponse.floorData.floorCurrency. | 0.10 | | floorProvider | string | Optional atribute (as of prebid version 4.1) used to signal to the Floor Provider's Analytics adapter their floors are being applied. They can opt to log only floors that are applied when they are the provider. If floorProvider is supplied in both the top level of the floors object and within the data object, the data object's configuration shall prevail.| "rubicon" | -| location | String | Where the Floors Module derived the rule set. Values are one of 'adUnit', 'setConfig', 'fetch' or 'noData'. If the Floors Module code is invoked and no floors object is able to be found (either by error or other condition) the floorsModule will set location to 'noData'. When on data is found, it is up to the analtyics adapter to decide what to log. All available values will be provided in teh bidRequest object. | ‘fetch’ | +| location | String | Where the module derived the rule set. Values are one of 'adUnit', 'setConfig', 'fetch' or 'noData'. If the module code is invoked and no floors object is able to be found (either by error or other condition) the floorsModule will set location to 'noData'. When on data is found, it is up to the analtyics adapter to decide what to log. All available values will be provided in the bidRequest object. | ‘fetch’ | | modelVersion | String | The name of the model| ‘floor-model-4.3’ | | modelWeight | integer | The weight of the model selected (for schema 2 version only)| 50 | | modelTimestamp | integer | Epoch timestamp associated with the modelVersion to be used for post auction analysis.| 1607126814 | -| skipRate | integer | skipRate will be populated when a skip rate is configured in the Prebid Floors Module, even if the skipRate is evaluated to false. Skip Rate is used to determine when to skip all floors logic. | 15 | +| skipRate | integer | skipRate will be populated when a skip rate is configured in the module, even if the skipRate is evaluated to false. Skip Rate is used to determine when to skip all floors logic. | 15 | | skipped | Boolean | Whether the skipRate resolved to be true or false| true | **bidResponse**: When a bid response is being processed it is important for analytics adapters to know the decision which was made and the context of the rule selection. Here is the data which is attached to each bidResponse: @@ -1157,28 +1168,29 @@ The price floors module will do this by leveraging the already existing implemen ### Prebid Server Interface -Not supported in initial build. S2S config support will be coming in the subsequent release. +The PrebidServerBidAdapter calls `getFloor()` like any other bid adapter +and passes it to the server side as imp.bidfloor and imp.bidfloorcur. ## Currency -The floors module will default the floor CPM currency with any associated rule to USD if none is supplied in the data object of the floors configuration. For any non-USD currency support, a publisher is required to specify the desired currency. If you are working with a floor provider, please speak to them about supplying the desired currency for your integration. +The Price Floors Module defaults the floor currency to USD if none is supplied in the data object of the floors configuration. For any non-USD currency support, a publisher is required to specify the desired currency. If you are working with a floor provider, please speak to them about supplying the desired currency for your integration. {% capture warning_note %} -For publishers seeking to perform currency conversions within the floors module (for example if the floors data currency is not the same as a bid adapter’s supported currency), failure to include the currency module may result in unexpected behavior and / or may impact revenue performance. +For publishers requiring currency conversions (for example if the floors data currency is not the same as a bid adapter’s supported currency), **failure to include the currency module may result in unexpected behavior** and / or may impact revenue performance. {% endcapture %} {% include /alerts/alert_warning.html content=warning_note %} Currency conversion can occur in two areas of the Floor Module code: -- On the **getFloor** call when Bid Adapters request a floor +- On the **getFloor()** call when Bid Adapters request a floor - On the **enforcement** side when each bidder submits a bidResponse -**getFloor** +**Currency and getFloor()** -The job of the getFloor method is to retrieve an appropriate floor for the requesting Bid Adapter, for a given auction context. If a Bid Adapter performs a getFloor call with a currency different than the currency of the floor data, the Floors Module will attempt to perform a currency conversion, utilizing the convertCurrency function in the global Prebid object. +The job of the getFloor() function is to retrieve an appropriate floor for the requesting Bid Adapter, for a given auction context. If a Bid Adapter performs a getFloor() call with a currency different than the currency of the floor data, the module will attempt to perform a currency conversion, utilizing the convertCurrency function in the global Prebid object. -If a currency conversion is successful in getFloor, the resulting floor will be returned to the requesting Bid Adapter. If the conversion failed, the Floors Module will return the original floor currency defined within the selected rule location data set. +If a currency conversion is successful in getFloor(), the resulting floor will be returned to the requesting Bid Adapter. If the conversion failed, the module will return the original floor currency defined within the selected rule location data set. Example Rule: currency = ‘USD’, @@ -1201,7 +1213,7 @@ If successfully returned the requested currency: } {% endhighlight %} -If unsuccessfully returned the requested currency: +If currency conversion is unsuccessful: {% highlight js %} { @@ -1220,9 +1232,9 @@ Currency conversion can fail for the following reasons: - Bidder passes in a currency code which does not have a conversion rate - Floors was set with a currency which does not have a conversion rate -**Enforcement** +**Currency and Floor Enforcement** -Enforcement in the Floors module occurs when bidders respond (i.e. bid) with a bidResponse object into the Prebid auction. The Floors Module will read the bid submitted within each valid bidResponse and its associated currency, performing currency conversion where necessary. +Enforcement in the Price Floors Module occurs when bidders respond with a bidResponse object into the Prebid auction. The module reads the bid submitted within each valid bidResponse and its associated currency, performing currency conversion where necessary. There exist three locations where currencies can differ within enforcement: @@ -1230,14 +1242,14 @@ There exist three locations where currencies can differ within enforcement: - Price Floor Currency: Currency set in the price floors data object - bidResponse Currency: The currency the bidder returned with their bidResponse back to Prebid -When a bid adapter submits a bid into the auction, the currency module will first determine if any conversion logic is necessary, afterwhich the bid is passed to the Floors Module. If currency conversion occurs at this stage, the bidResponse object will have the following attributes: +When a bid adapter submits a bid into the auction, the currency module will first determine if any conversion logic is necessary, afterwhich the bid is passed to the module. If currency conversion occurs at this stage, the bidResponse object will have the following attributes: - Cpm: The adServerCurrency converted CPM currency - Currency: The currency the adServerCurrency was set in - originalCpm: The original CPM the bidder responded with - originalCurrency: The original currency the bidder responded with -Below is a chart explaining the behavior of currency conversion, if necessary, within the Floors Module when comparing bid CPM to floor CPM for enforcement: +Below is a chart explaining the behavior of currency conversion, if necessary, within the module when comparing bid CPM to floor CPM for enforcement: {: .table .table-bordered .table-striped } | bid.currency | bid.originalCurrency | floor.currency | result | @@ -1256,6 +1268,8 @@ If the currency function is unable to derive the correct cpm in any of the scena ## Floors Providers {: .table } -| Partners| Contact | -| | Contact Magnite (Formerly Rubicon Project) support at [globalsupport@mangite.com](mailto:globalsupport@magnite.com) to use Magnite as a floor provider. | -| pubx.ai | Reach out to PubX at [hello@pubx.ai](mailto:hello@pubx.ai) to learn more about our AI-powered dynamic floor optimization. | +| Partner | Contact | About | +| | [globalsupport@magnite.com](mailto:globalsupport@magnite.com) | Magnite data-science applied to dynamic floors +| pubx.ai | [hello@pubx.ai](mailto:hello@pubx.ai) | AI-powered dynamic floor optimization | +| Assertive Yield | [assertiveyield.com](https://assertiveyield.com) | Holistic flooring covering Prebid, Amazon, GAM UPR, RTB and more | +| OpenX | Reach out to OpenX at [apollo@openx.com] | Dynamic floor optimization and more | diff --git a/dev-docs/modules/freewheel.md b/dev-docs/modules/freewheel.md index 24cba9286f..2aa357c750 100644 --- a/dev-docs/modules/freewheel.md +++ b/dev-docs/modules/freewheel.md @@ -2,10 +2,11 @@ layout: page_v2 page_type: module title: Module - Freewheel -description: Returns targeting key/value pairs for adpod mediaType adUnits. +description: Passes key value targeting to Freewheel SDK for adpod mediaType adUnits. module_code : freeWheelAdserverVideo -display_name : Freewheel +display_name : Freewheel Video Support enable_download : true +vendor_specific: true sidebarType : 1 --- diff --git a/dev-docs/modules/gdprEnforcement.md b/dev-docs/modules/gdprEnforcement.md index 03acfeb352..2afd260ac9 100644 --- a/dev-docs/modules/gdprEnforcement.md +++ b/dev-docs/modules/gdprEnforcement.md @@ -2,10 +2,11 @@ layout: page_v2 page_type: module title: GDPR Enforcement Module -description: Module to enforce GDPR consent +description: If you have users in Europe, you'll want this module that enforces GDPR consent module_code : gdprEnforcement display_name : GDPR Enforcement enable_download : true +recommended: true sidebarType : 1 --- diff --git a/dev-docs/modules/geoedgeRtdProvider.md b/dev-docs/modules/geoedgeRtdProvider.md index a9c4367cef..42113e0086 100644 --- a/dev-docs/modules/geoedgeRtdProvider.md +++ b/dev-docs/modules/geoedgeRtdProvider.md @@ -7,6 +7,7 @@ page_type: module module_type: rtd module_code : geoedgeRtdProvider enable_download : true +vendor_specific: true sidebarType : 1 --- diff --git a/dev-docs/modules/gpt-pre-auction.md b/dev-docs/modules/gpt-pre-auction.md index dad9aecaf0..504b648e59 100644 --- a/dev-docs/modules/gpt-pre-auction.md +++ b/dev-docs/modules/gpt-pre-auction.md @@ -2,10 +2,12 @@ layout: page_v2 page_type: module title: Module - GPT Pre-Auction -description: Adds PB Ad Slot and matching GAM ad unit name to each ad unit's first-party data before bid requests are sent to the adapters +description: If you run GAM, this module generates the 'global placement id' that's becoming required for successful auctions. module_code : gptPreAuction display_name : GPT Pre-Auction enable_download : true +recommended: true +vendor_specific: true sidebarType : 1 --- @@ -22,13 +24,13 @@ This module enables targeting and tracking at the ad server adunit level. Enabled by default if compiled into your package, this module will add the [Prebid Ad Slot](/features/pbAdSlot.html) and matching GAM ad unit name to each ad unit's first-party data before bid requests are sent to the adapters. * **Prebid.js Adapters** - will be able to utilize these values as: - * AdUnit.fpd.context.adServer.name="gam" - * AdUnit.fpd.context.adServer.adSlot="/1111/home" - * AdUnit.fpd.context.pbAdSlot="/1111/home-left" + * AdUnit.ortb2Imp.ext.data.adserver.name="gam" + * AdUnit.ortb2Imp.ext.data.adserver.adslot="/1111/home" + * AdUnit.ortb2Imp.ext.data.pbadslot="/1111/home-left" * **Prebid Server Adapters** - will see the OpenRTB as: - * imp[].ext.context.data.adserver.name - * imp[].ext.context.data.adserver.adslot - * imp[].ext.context.data.pbadslot + * imp[].ext.data.adserver.name + * imp[].ext.data.adserver.adslot + * imp[].ext.data.pbadslot ## Configuration @@ -38,10 +40,14 @@ into the Prebid.js package. Optional initialization parameters: -- enabled (on by default) -- customGptSlotMatching function -- customPbAdSlot function +{: .table .table-bordered .table-striped } +| Param | Required? | Type | Description | Example | +| enabled | no | boolean | allows turning off of module. Default value is true | true | +| customGptSlotMatching | no | function | GPT slot matching function should match the customSlotMatching function sent to [setTargetingForGptAsync](/dev-docs/publisher-api-reference/setTargetingForGPTAsync.html) | | +| customPbAdSlot | no | function | Custom PB AdSlot function | | +| mcmEnabled | no | boolean | Removes extra network IDs when Multiple Customer Management is active. Default is false. | true | +For example: ``` pbjs.setConfig({ gptPreAuction: { @@ -53,7 +59,8 @@ pbjs.setConfig({ customGptSlotMatching: function(gptSlotObj) { ... return true; // or false - } + }, + mcmEnabled: true } }); ``` @@ -67,13 +74,13 @@ When this module is on, it uses the BEFORE_REQUEST_BIDS event to insert function If GPT slot matching succeeds: -- it sets fpd.context.adserver.name to 'gam' -- it copies the resulting GPT slot name to fpd.context.adserver.adSlot +- it sets the Adunit ortb2Imp.ext.data.adserver.name to 'gam' +- it copies the resulting GPT slot name to ortb2Imp.ext.data.adserver.adslot -The customPbAdSlot function is called if it was specified, writing the results to fpd.context.pbAdSlot. -If there's no customPbAdSlot, a default algorithm is used to determine fpd.context.pbAdSlot: +The customPbAdSlot function is called if it was specified, writing the results to ortb2Imp.ext.data.pbadslot. +If there's no customPbAdSlot, a default algorithm is used to determine ortb2Imp.ext.data.pbadslot: -- first use the AdUnit's context.pbAdSlot if defined +- first use the AdUnit's ortb2Imp.ext.data.pbadslot if defined - else, see if the AdUnit.code corresponds to a div and if so, try to retrieve a data element from the div called data-adslotid. - else if the GPT slot matching succeeded, use the GPT slot name - else, just use the AdUnit.code, assuming that that's the ad unit slot diff --git a/dev-docs/modules/haloRtdProvider.md b/dev-docs/modules/haloRtdProvider.md index fafea35dc7..6e9be1b0d5 100644 --- a/dev-docs/modules/haloRtdProvider.md +++ b/dev-docs/modules/haloRtdProvider.md @@ -7,26 +7,35 @@ page_type: module module_type: rtd module_code : haloRtdProvider enable_download : true +vendor_specific: true sidebarType : 1 --- -# Audigent Halo RTD Segmentation Module +# Audigent Halo Real-time Data Submodule {:.no_toc} * TOC {:toc} -Audigent is a next-generation data management platform and a first-of-a-kind -"data agency" containing some of the most exclusive content-consuming audiences -across desktop, mobile and social platforms. +Audigent is a next-generation, first-party data management platform and the +world’s first "data agency", powering the programmatic landscape and DTC +eCommerce with actionable first-party audience and contextual data from +retailers, lifestyle publishers, content creators, athletes and artists. + +The Halo real-time data module in Prebid has been built so publishers +can maximize the power of their first-party audiences and contextual data. +This module provides both an integrated cookieless Halo identity, contextual +targeting and audience segmentation solution that seamlessly and easily +integrates into your existing Prebid deployment. + +Users, devices, content, cohorts and other features are identified and utilized +to augment every bid request with targeted, first-party data-derived segments +before being submitted to supply-side platforms. Enriching the bid request with +robust first-party audience and contextual data, Audigent's Halo RTD module +helps optimize targeting and header-bidding performance. For more information, +please visit https://audigent.com or contact our Prebid integration team at +prebid@audigent.com. -This real-time data module provides quality user segmentation that can be -attached to bid request objects destined for different SSPs in order to optimize -targeting and increase publisher revenue. Audigent maintains a large database -of first-party Tradedesk Unified ID, Audigent Halo ID and other id provider -mappings to various third-party segment types that are utilizable across -different SSPs. With this module, these segments can be retrieved and supplied -to the SSP in real-time during the bid request cycle. ## Publisher Usage @@ -34,15 +43,12 @@ Compile the Halo RTD module into your Prebid build: `gulp build --modules=userId,unifiedIdSystem,rtdModule,haloRtdProvider,appnexusBidAdapter` -Add the Audigent Halo RTD provider to your Prebid config. For any adapters -that you would like to retrieve segments for, add a mapping in the 'mapSegments' -parameter. In this example we will configure publisher 1234 to retrieve -appnexus segments from Audigent. See the "Parameter Descriptions" below for -more detailed information of the configuration parameters. Currently, -OpenRTB compatible fpd data will be added for any bid adapter in the -"mapSegments" objects. Automated bid augmentation exists for some bidders. -Please work with your Audigent Prebid support team (prebid@audigent.com) on -which version of Prebid.js supports which bidders automatically. +Add the Halo RTD provider to your Prebid config. In this example we will configure +publisher 1234 to retrieve segments from Audigent. See the +"Parameter Descriptions" below for more detailed information of the +configuration parameters. Please work with your Audigent Prebid support team +(prebid@audigent.com) on which version of Prebid.js supports different bidder +and segment configurations. ``` pbjs.setConfig( @@ -54,9 +60,6 @@ pbjs.setConfig( name: "halo", waitForIt: true, params: { - mapSegments: { - appnexus: true, - }, segmentCache: false, requestParams: { publisherId: 1234 @@ -77,21 +80,21 @@ pbjs.setConfig( | name | String | Real time data module name | Always 'halo' | | waitForIt | Boolean | Required to ensure that the auction is delayed until prefetch is complete | Optional. Defaults to false | | params | Object | | | -| params.mapSegments | Boolean | Dictionary of bidders you would like to supply Audigent segments for. Maps to boolean values, but also allows functions for custom mapping logic. The function signature is (bid, segments) => {}. | Required | +| params.handleRtd | Function | A passable RTD handler that allows custom adunit and ortb2 logic to be configured. The function signature is (bidConfig, rtd, rtdConfig, pbConfig) => {}. | Optional | | params.segmentCache | Boolean | This parameter tells the Halo RTD module to attempt reading segments from a local storage cache instead of always requesting them from the Audigent server. | Optional. Defaults to false. | | params.requestParams | Object | Publisher partner specific configuration options, such as optional publisher id and other segment query related metadata to be submitted to Audigent's backend with each request. Contact prebid@audigent.com for more information. | Optional | +| params.haloIdUrl | String | Parameter to specify alternate haloid endpoint url. | Optional | + +## Publisher Customized RTD Handling -## Overriding & Adding Segment Mappers As indicated above, it is possible to provide your own bid augmentation -functions. This is useful if you know a bid adapter's API supports segment -fields which aren't specifically being added to request objects in the Prebid -bid adapter. You can also override segment mappers by passing a function -instead of a boolean to the Halo RTD segment module. This might be useful -if you'd like to use custom logic to determine which segments are sent -to a specific backend. +functions rather than simply merging supplied data. This is useful if you +want to perform custom bid augmentation and logic with Halo real-time data +prior to the bid request being sent. Simply add your custom logic to the +optional handleRtd parameter and provide your custom RTD handling logic there. Please see the following example, which provides a function to modify bids for -a bid adapter called adBuzz and overrides the appnexus segment mapper. +a bid adapter called adBuzz and perform custom logic on bidder parameters. ``` pbjs.setConfig( @@ -103,19 +106,14 @@ pbjs.setConfig( name: "halo", waitForIt: true, params: { - mapSegments: { - // adding an adBuzz segment mapper - adBuzz: function(bid, segments) { - bid.params.adBuzzCustomSegments = []; - for (var i = 0; i < segments.length; i++) { - bid.params.adBuzzCustomSegments.push(segments[i].id); - } - }, - // overriding the appnexus segment mapper to exclude certain segments - appnexus: function(bid, segments) { - for (var i = 0; i < segments.length; i++) { - if (segments[i].id != 'exclude_segment') { - bid.params.user.segments.push(segments[i].id); + handleRtd: function(bidConfig, rtd, rtdConfig, pbConfig) { + var adUnits = bidConfig.adUnits; + for (var i = 0; i < adUnits.length; i++) { + var adUnit = adUnits[i]; + for (var j = 0; j < adUnit.bids.length; j++) { + var bid = adUnit.bids[j]; + if (bid.bidder == 'adBuzz' && rtd['adBuzz'][0].value != 'excludeSeg') { + bid.params.adBuzzCustomSegments.push(rtd['adBuzz'][0].id); } } } @@ -132,6 +130,11 @@ pbjs.setConfig( } ``` +The handleRtd function can also be used to configure custom ortb2 data +processing. Please see the examples available in the haloRtdProvider_spec.js +tests and work with your Audigent Prebid integration team (prebid@audigent.com) +on how to best configure your own Halo RTD & Open RTB data handlers. + ## Testing To view an example of available segments returned by Audigent's backends: diff --git a/dev-docs/modules/iabCatagoryTranslation.md b/dev-docs/modules/iabCatagoryTranslation.md deleted file mode 100644 index 7831fbd198..0000000000 --- a/dev-docs/modules/iabCatagoryTranslation.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -layout: page_v2 -page_type: module -title: Module - IAB Category Translation -description: Converts between ad agency brand categories and IAB brand categories. -module_code : CategoryTranslation -display_name : CategoryTranslation -enable_download : true -sidebarType : 1 ---- - -# IAB Category Translation - -{:.no_toc} - -This module converts the IAB sub category to FreeWheel industry group identifiers. The FreeWheel identifiers ensure competitve separation of industries and products. - -Each bid request must return one [IAB subcategory](https://support.aerserv.com/hc/en-us/articles/207148516-List-of-IAB-Categories). - -The module provides the following: - -- Converts IAB subcategories to a FreewWheel industry group identifier. - -## How to use the module: - -1. A Prebid.js package is built that contains this module and the [FreeWheel](/dev-docs/modules/freewheel.html) module. -2. The inclusion of this module causes Prebid to download a mapping file to local storage. The user also has the option to provide their own mapping file. -3. At runtime, brand category translation happens as needed. - - -## Using A Custom Map File -The IAB Category Translation module uses a default mapping file to convert adserver categories to IAB sub categories. If a publisher prefers to use their own mapping file they will need to set the URL location of that file. They can do so by adding the following to their Prebid.js configuration: - -``` -pbjs.setConfig({ - "brandCategoryTranslation": { - "translationFile": "" - } -}); -``` - -This file will be stored locally to expedite the conversion process. If a publisher opts to not provide a conversion mapping file Prebid will use its default conversion mapping file. - -Publishers should ensure that the JSON returned from their custom file is valid for Prebid by adhering to the following structure: - -```JSON -{ - “mapping”: { - ““: { - “id”: ““, - “name”: “” - }, - .... - } -} -``` - -Refer to Prebid Github repository for a [custom file reference](https://github.com/prebid/category-mapping-file). - - -## Further Reading - -[Prebid.js](/dev-docs/getting-started.html) -[Prebid Video](/prebid-video/video-overview.html) -[FreeWheel Module](/dev-docs/modules/freewheel.html) -[Adapter Integration](/dev-docs/bidder-adaptor.html) - - - - - - - diff --git a/dev-docs/modules/iasRtdProvider.md b/dev-docs/modules/iasRtdProvider.md new file mode 100644 index 0000000000..99dae5c16a --- /dev/null +++ b/dev-docs/modules/iasRtdProvider.md @@ -0,0 +1,56 @@ +--- +layout: page_v2 +title: Integral Ad Science(IAS) Real Time Data Module +display_name: Integral Ad Science(IAS) RTD +description: RTD provider for Integral Ad Science(IAS) +page_type: module +module_type: rtd +module_code : iasRtdProvider +enable_download : true +vendor_specific: true +sidebarType : 1 +--- + +# Integral Ad Science(IAS) Real Time Data Module + +# Overview + +Integral Ad Science(IAS) Real Time Data Module. Please contact [Integral Ad Science(IAS)](https://integralads.com/) for information. + +## Integration + +1) Compile Integral Ad Science(IAS) RTD Provider into your Prebid build: + +``` +`gulp build --modules=iasBidAdapter,iasRtdProvider`... +``` + +2) Use `setConfig` to instruct Prebid.js to initialize the IAS module, as specified below. + +## Configuration + +This module is configured as part of the `realTimeData.dataProviders` object. + +Configuration example for using RTD module with the `ias` provider: + +```javascript + pbjs.setConfig({ + realTimeData: { + dataProviders: [ + { + name: 'ias', + waitForIt: true, + params: { + pubId: '1234', + } + } + ] + } +``` + +Parameters details: + +{: .table .table-bordered .table-striped } +| Name | Type | Scope | Description | +| :------------ | :------------ | :------- | :------- | +| pubId | string | required | IAS publisher ID | diff --git a/dev-docs/modules/idLibrary.md b/dev-docs/modules/idLibrary.md index f85d8152fe..5874353f8e 100644 --- a/dev-docs/modules/idLibrary.md +++ b/dev-docs/modules/idLibrary.md @@ -2,7 +2,7 @@ layout: page_v2 page_type: module title: ID Import Library -description: ID Graphing Adapter +description: Retrieve user ids deployed on your site, and return them to a configurable endpoint for ID Graphing. module_code : currency display_name : ID Import Library enable_download : true @@ -15,7 +15,7 @@ Maintainer: eng-dmp@magnite.com # ID Import Library {:.no_toc} -The ID Import Library module gathers and generates a map of identities present on the page. The primary usecase for this adapter is for Publishers who have included multiple UserId subadapters in their prebid.js implementation, and want to store the resulting user ids serverside for modeling or graphing purposes. The ID Library module, anchors the response of `refreshUserIds()` to a presistant identifier (md5 encrypted) and returns an map of uids. This map of uids comes in the form of a POST message in JSON format and must be output to a publisher configured endpoint. +The ID Import Library module gathers and generates a map of identities present on the page. The primary usecase for this adapter is for Publishers who have included multiple UserId subadapters in their prebid.js implementation, and want to store the resulting user ids serverside for modeling or graphing purposes. The ID Library module, anchors the response of `refreshUserIds()` to a persistant identifier (md5 encrypted) and returns an map of uids. This map of uids comes in the form of a POST message in JSON format and must be output to a publisher configured endpoint. The module attempts to extract a persistant identifier in the following ways: diff --git a/dev-docs/modules/index.md b/dev-docs/modules/index.md index 3d43a16ac4..11ac8c2ecf 100644 --- a/dev-docs/modules/index.md +++ b/dev-docs/modules/index.md @@ -5,99 +5,92 @@ description: Module Documentation sidebarType: 1 --- - # Prebid.js Module Overview {:.no_toc} -The core of Prebid.js contains only the foundational code needed for header bidding. Any functionality that could be considered an add-on or that covers a special case is being moved out into modules. Examples of this kind of code include: - -- Bidder adapters -- Special auction logic -- Ad server API integrations -- Any other extensible functionality - -This section of the site contains user-submitted module documentation. We're hoping that it will grow over time. +The core of Prebid.js contains only the foundational code needed for header bidding. Any functionality that could be considered an add-on is part of a module. These are the major categories: -To see all of the modules that are available, see the [`modules` folder in the repo](https://github.com/prebid/Prebid.js/tree/master/modules). - -If you are looking for bidder adapter parameters, see [Bidders' Params]({{site.baseurl}}/dev-docs/bidders.html). +- [Bidder adapters](/dev-docs/bidders.html) +- [Analytics adapters](/overview/analytics.html) +- Any other extensible functionality - documented on this page * TOC {:toc} -## General Modules - -{: .table .table-bordered .table-striped } -| Module | Description | -|---------------------+--------------| -| [**Currency**](/dev-docs/modules/currency.html) | Converts bid currency into ad server currency based on data in a supplied exchange rate file. | -| **ConsentManagement** | Collecting and passing consent information in support of privacy regulations:{::nomarkdown}{:/} See [CMP Best Practices.](/dev-docs/cmp-best-practices.html) | -| [**Google Ad Manager Express**](/dev-docs/modules/dfp_express.html) | A simplified installation mechanism for publishers that have Google Publisher Tag (GPT) ad calls in their pages. | -| [**Supply Chain Object**](/dev-docs/modules/schain.html) | Validates and makes the Supply Object available to bidders | -| [**User ID**](/dev-docs/modules/userId.html) | Sub-modules are available to support a range of identification approaches. | -| [**Advanced Size Mapping**](/dev-docs/modules/sizeMappingV2.html) | Display Responsive AdUnits in demanding page environments. | -| [**Price Floors Module**](/dev-docs/modules/floors.html) | Configure and enforce minimum bids. | -| [**GPT Pre-Auction Module**](/dev-docs/modules/gpt-pre-auction.html) | Adds a PB Ad Slot and matching GAM ad unit name to each ad unit's first-party data before bid requests are sent to the adapters. | -| [**ID Import Library**](/dev-docs/modules/idLibrary.html) | Retrieve user ids deployed on your site, and return them to a configurable endpoint for ID Graphing | +{% assign module_pages = site.pages | where: "page_type", "module" %} -## Real-Time Data Providers +## Recommended Modules -All of the modules that fall under the Real-Time Data (RTD) category conform to -a consistent set of publisher controls. The pub can choose to run multiple -RTD modules, define an overall amount of time they're willing to wait for -results, and even flag some of the modules as being more "important" -than others. +Prebid.org highly recommends that publishers utilize the following modules: +
    + + + + + + + + +{% for page in module_pages %}{% if page.recommended == true %} + + + + +{% endif %}{% endfor %} + +
    ModuleDescription
    {{page.display_name}}{{page.description}}
    -See [the realTimeData setConfig](/dev-docs/publisher-api-reference.html#setConfig-realTimeData) reference for more details. +## General Modules -{% assign module_pages = site.pages | where: "page_type", "module" | where: "module_type", "rtd" %} +Modules in the Real-Time Data (RTD) category conform to +a consistent set of publisher controls. The publisher can choose to run multiple +RTD modules, define an overall amount of time they're willing to wait for +results, and even flag some of the modules as being higher priority +than others. See [the realTimeData setConfig](/dev-docs/publisher-api-reference/setConfig.html#setConfig-realTimeData) reference for more details. + -{% for page in module_pages %} - {% if page.enable_download == false %}{% continue %}{% endif %} +{% for page in module_pages %}{% if page.recommended == true or page.vendor_specific == true %}{% continue %}{% endif %} - + + {% if page.module_type == "rtd" %}{% else %}{% endif %} {% endfor %}
    Module DescriptionRTD?
    {{page.title}}{{page.display_name}} {{page.description}}yesno
    -## Video Modules - -{: .table .table-bordered .table-striped } -| Module | Description | -|---------------------+--------------| -| [**Ad Pod**](/dev-docs/modules/adpod.html) | Enables developers to add support for a new adserver that handles ad pod (long-form) videos | -| [**Freewheel**](/dev-docs/modules/freewheel.html) | Passes key value targeting to Freewheel SDK | -| [**Google Ad Manager Video**](/dev-docs/modules/dfp_video.html) | Required for serving instream video through Google Ad Manager. | -| [**IAB Category Translation**](/dev-docs/modules/categoryTranslation.html) | Converts IAB sub category to Ad server category for long-form videos. | -| [**Instream Video Ads Tracking**](/dev-docs/modules/instreamTracking.html) | Allow Analytics Adapters and Bid Adapters to track `BID_WON` events for Instream video bids. | -| [**Konduit Accelerate**](/dev-docs/modules/konduit.html) | Provides Real Time Start Rate Performance per Bidder. | - -## Testing and Debug Modules - -{: .table .table-bordered .table-striped } -| Module | Description | -|---------------------+--------------| -| [**Server-to-Server Testing**](/dev-docs/modules/s2sTesting.html) | Adds A/B test support to ease into server-side header bidding. | - -## Deprecated Modules - -{: .table .table-bordered .table-striped } -| Module | Description | -|---------------------+--------------| -| [**Publisher Common ID**](/dev-docs/modules/pubCommonId.html) | (Deprecated - please use User ID module) Adds a persisted user ID in the publisher's domain. | +## Vendor-Specific Modules +These modules may require accounts with a service provider. + + + + + + + + + +{% for page in module_pages %}{% if page.recommended == true %}{% continue %}{% endif %}{% if page.vendor_specific == true %} + + + + {% if page.module_type == "rtd" %}{% else %}{% endif %} + +{% endif %}{% endfor %} + +
    ModuleDescriptionRTD?
    {{page.display_name}}{{page.description}}yesno
    ## Further Reading + [Source code of all modules](https://github.com/prebid/Prebid.js/tree/master/modules) -+ [Bidders' Params](/dev-docs/bidders.html) ++ [How to add a Bid Adapter](/dev-docs/bidder-adaptor.html) ++ [How to add an Analytics Adapter](/dev-docs/integrate-with-the-prebid-analytics-api.html) + [How to add a Real Time Data Submodule](/dev-docs/add-rtd-submodule.html) diff --git a/dev-docs/modules/instreamTracking.md b/dev-docs/modules/instreamTracking.md index 07ef0f29fd..1e2c16f128 100644 --- a/dev-docs/modules/instreamTracking.md +++ b/dev-docs/modules/instreamTracking.md @@ -2,7 +2,7 @@ layout: page_v2 page_type: module title: Module - Instream Video Ads Tracking -description: Allows to track `BID WON` events for instream ad units +description: Allow Analytics Adapters and Bid Adapters to track `BID_WON` events for instream video bids. module_code : instreamTracking display_name : Instream Tracking enable_download : true @@ -45,7 +45,7 @@ pbjs.setConfig({ #### Example with urlPattern While checking for URLs having `videoCacheKey`, there are chances of false positives. To avoid those cases, we can set `instreamTracking.urlPattern: /REGEX_PATTERN/`. - + {% highlight js %} pbjs.setConfig({ 'instreamTracking': { @@ -80,4 +80,4 @@ pbjs.setConfig({ ## Further Reading ​ [Prebid.js for Video]({{site.baseurl}}/prebid-video/video-overview.html) -[Client-side Caching of VAST XML]({{site.baseurl}}/dev-docs/publisher-api-reference.html#setConfig-vast-cache) +[Client-side Caching of VAST XML]({{site.baseurl}}/dev-docs/publisher-api-reference/setConfig.html#setConfig-vast-cache) diff --git a/dev-docs/modules/jwplayerRtdProvider.md b/dev-docs/modules/jwplayerRtdProvider.md index 46f4f4187b..2950e4fceb 100644 --- a/dev-docs/modules/jwplayerRtdProvider.md +++ b/dev-docs/modules/jwplayerRtdProvider.md @@ -7,6 +7,7 @@ page_type: module module_type: rtd module_code : jwplayerRtdProvider enable_download : true +vendor_specific: true sidebarType : 1 --- @@ -95,7 +96,7 @@ Setting an `auctionDelay` in the `realTimeData` object is required to ensure the | :------------ | :------------ | :------------ |:------------ | | ortb2Imp.ext.data.jwTargeting | Object | | | | ortb2Imp.ext.data.jwTargeting.mediaID | String | Media Id of the content associated to the Ad Unit | Optional but highly recommended | -| ortb2Imp.ext.data.jwTargeting.playerID | String | Id of the JW Player instance which will render the content associated to the Ad Unit | Optional but recommended | +| ortb2Imp.ext.data.jwTargeting.playerID | String | the ID of the HTML div element used when instantiating the JW Player instance that will render the content associated with the Ad Unit | Optional but recommended. You can retrieve this ID by calling `player.id`, where player is the JW Player instance variable. | ## Implementation for Bid Adapters: diff --git a/dev-docs/modules/konduit.md b/dev-docs/modules/konduit.md index 686b8575a7..f9bb831eea 100644 --- a/dev-docs/modules/konduit.md +++ b/dev-docs/modules/konduit.md @@ -2,10 +2,11 @@ layout: page_v2 page_type: module title: Module - Konduit Accelerate -description: Applies Konduit video ad acceleration optimization to a provided bid. +description: Applies Konduit video ad acceleration optimization to wining video bid. module_code : konduitWrapper display_name : Konduit Accelerate enable_download : true +vendor_specific: true sidebarType : 1 --- @@ -32,7 +33,7 @@ Build your Prebid.js package in one of two ways: - Insert the Konduit module code in the source code of your page. The module exposes the `pbjs.adServers.konduit.processBids` function. - + - Provide input parameters to the function. (All parameters are shown in the following table.) {: .table .table-bordered .table-striped } @@ -43,7 +44,7 @@ Build your Prebid.js package in one of two ways: | adUnitCode | string | adUnitCode where a winner bid can be found | - | | timeout | number | Max time to wait for Konduit response with cache key and kCpm data | 1000 | | callback | function | The callback function is called once Konduit caches data for the bid. Arguments of this function are `error` and `bids` (`error` should be `null` if Konduit request is successful). | - | - + Konduit Accelerate module respects the Prebid `enableSendAllBids` flag and supports both ‘Send All Bids’ and ‘Use only the winning bid’ scenarios. Prebid set the `enableSendAllBids` flag to true by default and it can be explicitly disabled in Prebid config if needed. @@ -52,7 +53,7 @@ pbjs.setConfig({ enableSendAllBids: false }); ``` -Please refer to [Publisher API Reference (Send All Bids)](https://prebid.org/dev-docs/publisher-api-reference.html#setConfig-Send-All-Bids) for more information on the Send All Bids settings. +Please refer to [Publisher API Reference (Send All Bids)](/dev-docs/publisher-api-reference/setConfig.html#setConfig-Send-All-Bids) for more information on the Send All Bids settings. ### Step 3: Configure Google Ad Manager (GAM) @@ -81,7 +82,7 @@ Note that the creative URL contains a few custom macros that allow Konduit platf | k_cache_key | %%PATTERN:k_cache_key%% | The macro is passing a cache key so that Konduit platform is able to fetch current bid tag for processing. This macro is recommended for use in a ‘single bid’ mode. In ‘send all bids’ mode it always represents a winning bid. | | konduit_cache_key | %%PATTERN:konduit_cache_key%% | *This macro is deprecated and k_cache_key should be used instead* | | k_cache_key_BIDDERCODE | %%PATTERN:k_cache_key_rubicon%% | The macro is passing a cache key so that Konduit platform is able to fetch a bidder tag for processing. This macro should be used in a ‘send all bids’ mode. | - + Refer to the following documentation for more information on Google Ad Manager setup: [Step By Step Guide to Google Ad Manager Setup](https://prebid.org/adops/step-by-step.html) [Send all bids to the ad server - Ad Ops setup](https://prebid.org/adops/send-all-bids-adops.html) diff --git a/dev-docs/modules/mass.md b/dev-docs/modules/mass.md new file mode 100644 index 0000000000..019e5c58b6 --- /dev/null +++ b/dev-docs/modules/mass.md @@ -0,0 +1,184 @@ +--- +layout: page_v2 +page_type: module +title: Module - MASS +description: General deal rendering functionality. +module_code : mass +display_name : Deal Rendering (aka MASS) +enable_download : true +sidebarType : 1 +--- + +# MASS Module +{:.no_toc} + +* TOC +{:toc} + +## Overview + +This module enables the MASS protocol for Prebid. To use it, you'll need to +work with a MASS enabled provider. + +This module scans incoming bids for the presence of a "mass" flag being set to +true in the bid meta or a publisher specified DealID pattern and uses +external resources to decypher and process the MASS:// URI found within the ad markup. +This modules is designed to work with MASS enabled Exchanges and DSP's. + +This module only loads external JavaScript resources if the publisher ad server has +selected a MASS enabled bid as a winner. + +Find out more [here](https://massplatform.net). + +{: .alert.alert-warning :} +## Disclosure + +This module loads external JavaScript to render creatives + +## Custom Mode + +You can specify your own `dealIdPattern` and `renderUrl` by adding one or more entries into the `custom` configuration option (see [Configuration Parameters](#configuration-parameters) below). When specifying a custom renderer, quality assurance is your responsibility. + +## Integration + +Build the MASS module into the Prebid.js package with: + +``` +gulp build --modules=mass,... +``` + + +## Module Configuration + +```js +pbjs.que.push(function() { + pbjs.setConfig({ + mass: { + enabled: true, + renderUrl: 'https://cdn.massplatform.net/bootloader.js', + dealIdPattern: /^MASS/i, + custom: [ + { + dealIdPattern: /xyz/, + renderUrl: 'https://my.domain.com/render.js', + namespace: 'xyz' + } + ] + } + }); +}); +``` + +### Configuration Parameters + +|Name |Type |Description |Notes | +| :------------ | :------------ | :------------ |:------------ | +|enabled | Boolean |Enable/disable the module |Defaults to `true` | +|dealIdPattern | RegExp |The pattern used to identify MASS deal IDs |Defaults to `/^MASS/i` | +|renderUrl | String |The MASS render script to load |`https://cdn.massplatform.net/bootloader.js` | +|custom | Array |Add custom renderers | | +|custom[].dealIdPattern | RegExp |A pattern used to identify matching deal IDs |Either this parameter or `custom[].match` must be specified | +|custom[].renderUrl | String |The render script to load |Either this parameter or `custom[].render` must be specified | +|custom[].namespace | String |The namespace (i.e.: object) created on `window` to pass parameters to the render script |Required with `custom[].renderUrl` | +|custom[].match | Function(bid) |A custom function to identify matching bids |Either this parameter or `custom[].dealIdPattern` must be specified | +|custom[].render | Function(payload) |A custom function to render the matchig/winning bid |Either this parameter or `custom[].renderUrl` must be specified. The `payload` parameter contains: `payload.bid`, `payload.bidRequest`, `payload.adm` | + +### Example Configurations + +### Only (official) MASS support enabled + +```js +pbjs.que.push(function() { + pbjs.setConfig({ + mass: { + renderUrl: 'https://cdn.massplatform.net/bootloader.js' + } + }); +}); +``` + +### MASS support disabled, custom renderer enabled + +```js +pbjs.que.push(function() { + pbjs.setConfig({ + mass: { + custom: [ + { + dealIdPattern: /xyz/, + renderUrl: 'https://my.domain.com/render.js', + namespace: 'xyz' + } + ] + } + }); +}); +``` + +### Custom `match` and `render` + +```js +pbjs.que.push(function() { + pbjs.setConfig({ + mass: { + custom: [ + { + match: function(bid) { + // return true/false if matching/non-matching bid + }, + + render: function(payload) { + console.log(payload); + } + } + ] + } + }); +}); +``` + +## Integration Example + +There are two options to view the integration example: + +### Option 1 - Your own development environment +To view the integration example: + +1) Build Prebid using the following required options + +``` +gulp build --modules=ixBidAdapter,mass +``` + +2) Use a http server with a valid hostname to access its content. It is not advised to run the bid simulation using localhost or 127.0.0.1 + +``` +http://hostname/integrationExamples/mass/index.html +``` + +### Option 2 - Hosted online +Mass Platform Limited hosts an official integration and demo page that can be accessed using the following link: http://demo.massplatform.com/ix/prebid/ + +## Testing MASS +Testing requires valid bids to be returned to Prebid. To assist with this process, we recommend you use the MASS Bid Simulation tool found at https://github.com/massplatform/bidsim. Your Exchange partner might be able to assist you with other specialist tools and browser plugins to achieve similar resuls. + +The instructions below assume that you have followed the installation instructions for the MASS Bidsim tool found at https://github.com/massplatform/bidsim/blob/master/README.md. + +### Testing using MASS compliant tags +The bidsim tool ships with working DSP example tags that can be found under the bidsim/tags folder. + +A quick way to test the Integration test page in combination with the official bootloader is to use the following command: +``` +node bidsim --inject --bid 2000 --width 300 --height 250 --dealid 'MASS' --tag "tags/inskin-housead-desktop.js" -o https://demo.massplatform.net/ix/prebid +``` +### For third-party technology companies +Third-parties that wish to integrate with the official MASS bootloader can get started by running the following command: +``` +node bidsim --inject --bid 2000 --width 300 --height 250 --dealid 'MASS' --tag "tags/test.js" -o https://demo.massplatform.net/ix/prebid +``` + +Explanation: The tags/test.js tag calls a reference endpoint for developers that can be accessed here: https://demo.massplatform.net/reference/endpoint.js. +When running the above command to invoke this reference endpoint, you will see all the params that MASS collected and passed onto your endpoint. This includes inputs, parsed inputs, tag parameters and MASS/Provider specific configurations. + +### Testing on live sites +Any sites that have been MASS configured will work with the Bidsim tool. This is a convenient way to test whether your publisher ad server and slot is correctly configured. diff --git a/dev-docs/modules/medianetRtdProvider.md b/dev-docs/modules/medianetRtdProvider.md new file mode 100644 index 0000000000..fac7f1cf1c --- /dev/null +++ b/dev-docs/modules/medianetRtdProvider.md @@ -0,0 +1,116 @@ +--- +layout: page_v2 +title: Media.net Realtime Module +display_name: Media.net Realtime Module +description: Delivers added functionality based on configurations, i.e. refresh, viewability, etc. +page_type: module +module_type: rtd +module_code : medianetRtdProvider +enable_download : true +vendor_specific: true +sidebarType : 1 +--- + +# Media.net Realtime Module +{:.no_toc} + +* TOC +{:toc} + +## Overview + +The module currently provisions Media.net's Intelligent Refresh configured by the publisher. + +### Intelligent Refresh + +Intelligent Refresh (IR) module lets publisher refresh their ad inventory without affecting page experience of visitors through configured criteria. The module optionally provides tracking of refresh inventory and appropriate targeting in GAM. Publisher configured criteria is fetched via an external JS payload. + +{: .alert.alert-warning :} +Disclosure: This module loads external code that is not open source and has not been reviewed by Prebid.org. + +## Configuration + +This module is configured as part of the `realTimeData.dataProviders` object. + +{: .table .table-bordered .table-striped } +| Name | Scope | Description | Example | Type | +|------------|----------|----------------------------------------|---------------|----------| +| `name ` | required | Real time data module name | `'medianet'` | `string` | +| `params` | required | | | `Object` | +| `params.cid` | required | The customer id is provided by Media.net. | `'8CUX0H51C'` | `string` | + +#### Basic Example + +```javascript +pbjs.setConfig({ + realTimeData: { + dataProviders: [{ + name: 'medianet', + params: { + cid: '8CUX0H51C' + } + }] + } +}); +``` + +## Prebid Adapters module usage + +Prebid bidder and analytics adapters can read `adunit.ortb2Imp.ext.refresh` to know the information passed by Intelligent Refresh Real Time Module. Example AdUnit: + +```javascript +var adUnit = { + "code": "div-gpt-ad-1460505748561-1", + // ... + "ortb2Imp": { + "ext": { + "refresh": { // added by Intelligent Refresh RTD + "mnrf": "1", // mnrf=1 means its a refresh impression + "mnrfc": 2 // mrfc=2 means its the 2nd refresh-ed impression + }, + "data": { "pbadslot": "div-gpt-ad-1460505748561-1" }, + } + } +}; +``` + +## Targeting sent to GAM + +For each prebid adUnit we pass following key values to GAM by default + +```javascript +var targeting = { + "slotA":{ + "mnadc": "slotA", // used to map GPT slot => Prebid AdUnit + "mnrf": "1", // Refresh Impression Flag + "mnrfc": 2 // Refreshed count per slot + } +}; +``` + +## Integration +To install the module, follow these instructions: + +#### Step 1: Prepare the base Prebid file + +- Option 1: Use Prebid [Download](/download.html) page to build the prebid package. Ensure that you do check *Media.net Realtime Module* module + +- Option 2: From the command line, run `gulp build --modules=medianetRtdProvider,...` + +#### Step 2: Set configuration + +Enable Media.net Real Time Module using `pbjs.setConfig` + +```javascript +pbjs.setConfig({ + realTimeData: { + dataProviders: [{ + name: 'medianet', + params: { + cid: '8CUX0H51C' + } + }] + } +}); +``` + diff --git a/dev-docs/modules/multibid.md b/dev-docs/modules/multibid.md new file mode 100644 index 0000000000..e9ae46f0cc --- /dev/null +++ b/dev-docs/modules/multibid.md @@ -0,0 +1,107 @@ +--- +layout: page_v2 +page_type: module +title: Module - MultiBid +description: Allows bidders to send multiple bids to the ad server. +module_code : multibid +display_name : MultiBid +enable_download : true +sidebarType : 1 +--- + +# MultiBid Module +{:.no_toc} + +* TOC +{:toc} + +## Overview + +This module allows configured bidders to pass more than one bid per AdUnit +through to the ad server. + +Without this module, bidders can place multiple bids on the bid cache, but only the +highest bid will be considered for sending to the ad server. + +## Use Cases + +- Allows a bidder to provide bids on both outstream and banner. +- Supports the ability of one bidder to provide multiple video bids for the fallback scenario. +- Allows some bids to be blocked in ad server targeting logic while allowing other bids from the same bidder to be considered. + +There are two specific actions enabled by this module: + +1) It tells bidders how many bids will be considered. If [useBidCache](https://docs.prebid.org/dev-docs/publisher-api-reference.html#setConfig-Use-Bid-Cache) is on, more than one bid response per adapter can be registered. (Note that this is the case even without this module, but bid adapters might not know they can supply extra bids without the `multibid` config.) + +2) It expands the number of ad server targeting values that can go to the ad server. + +Here's an example configuration: + +``` +pbjs.setConfig({ + multibid: [{ + bidder: "bidderA", + // bidderA can supply up to two bids + maxBids: 2, + // the second bid will go to the ad server as hb_pb_bidA2 + targetBiddercodePrefix: "bidA" + },{ + bidder: "bidderB", + // bidderB can supply up to three bids + maxBids: 3, + // additional bids will be passed as hb_pb_bidB2 and hb_pb_bidB3 + targetBiddercodePrefix: "bidB" + },{ + bidders: ["bidderC","bidderD"] + maxBids: 3 + // don't send extra bids to ad server, just cache good ones + }] +}); +``` + +## Parameters + +MultiBid configuration takes these parameters: + +{: .table .table-bordered .table-striped } +| Param | Required? | Type | Description | Example | +| --- | --- | --- | --- | --- | +| bidder | Yes, unless bidders is specified | string | A biddercode | `'bidderA'` | +| bidders | Yes, unless bidder is specified | array of strings | Multiple biddercodes | `['bidderB','bidderC']` | +| maxBids | Yes | integer | The number of bids the named bidder(s) can supply. Max of 9. | `2` | +| targetBiddercodePrefix | No | string | An alternate (short) bidder code to send to the ad server. A number will be appended, starting from 2, e.g. hb_pb_PREFIX2. If not provided, the extra bids will not go to the ad server. | `'bidA'` | + +Note: Some bid adapters normally return more than one bid response per AdUnit. These +bids are available to the `useBidCache` scenario even without this module. +If those bidders are mentioned in the `multibid` config, the additional bids will +become subject to the `maxBids` limit. + +## Building Prebid.js with the MultiBid Module + +The MultiBid module is not included with Prebid.js by default. To get this behavior, you must include the module in the build: + +``` +gulp build --modules=multibid,exampleBidAdapter +``` + +## Setting Up New Line Items + +Publishers don't need to set up more line items in the ad server unless they +want to optimize a scenario where the primary bid might not match special targeting. Example scenarios include: + +- The publisher has set up special blocking on header bidding line items. For example: hb_adomin_bidderA not in "advA, advB, advC". In this case, the primary bid may be skipped over, so creating line items for the secondary bids could make sense. +- There's ad targeting logic that could exclude outstream bids on certain ad units for certain bidders. For example: AdUnit="abc" and hb_format_bidderA not in "video". In this case, the bidder can return a banner bid as well as video. +- The ad server supports video fallbacks, in which case multiple video bids from the same bidder can be part of the fallback list. + + +## Bid Adapter Interface + +Bid adapters can check the bidRequest.bidLimit value to see if they're going to +be allowed to provide more than one bid response. + +When they are allowed to do so, just add another bid response object to the +array returned from the `interpretResponse` function. + +## Related Topics + +- [MultiBid in the Prebid Server /openrtb2/auction endpoint](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#multibid-pbs-java-only) diff --git a/dev-docs/modules/optimeraRtdProvider.md b/dev-docs/modules/optimeraRtdProvider.md new file mode 100644 index 0000000000..351febd353 --- /dev/null +++ b/dev-docs/modules/optimeraRtdProvider.md @@ -0,0 +1,89 @@ +--- +layout: page_v2 +title: Optimera Real Time Data Module +display_name: Optimera RTD +description: Optimera Optimization Targeting +page_type: module +module_type: rtd +module_code : optimeraRtdProvider +enable_download : true +vendor_specific: true +sidebarType : 1 +--- + +# Optimera Real Time Date Module + +# Overview + +Optimera Real Time Data Module. Provides targeting for ad requests from data collected by the Optimera Measurement script on your site. Please contact [Optimera](http://optimera.nyc/) for information. This is a port of the Optimera Bidder Adapter. + +## Integration + +1) Compile the Optimera RTD Provider into your Prebid build: + +``` +`gulp build --modules=rtdModule,optimeraRtdProvider`... +``` + +Note: You must include rtdModule in the build list. + +2) Use `setConfig` to instruct Prebid.js to initialize the optimera module, as specified below. + +## Configuration + +This module is configured as part of the `realTimeData.dataProviders` object. + +Configuration example for using RTD module with the `optimeraRTD` provider: + +```javascript + pbjs.setConfig({ + realTimeData: { + dataProviders: [ + { + name: 'optimeraRTD', + waitForIt: true, + params: { + clientID: '9999', + optimeraKeyName: 'optimera', + device: 'de' + } + } + ] + } +``` + +## Migration From the Optimera Bidder Adapter + +The Optimera Bidder Adapter is no longer active with Prebid 5.0. Therefore, the bidder settings used for the Optimera Bidder Adapter for < Prebid 5.0 can be removed and replaced with this new Optimera RTD module configuration. + +For the optimeraKeyName setting, the Optimera Bidder Adapter used 'hb_deal_optimera' as the key name, as this is the key that name used in GAM. There is no need to change this key name in GAM, as you can still use this key name with the Optimera RTD Module as indicated above. + +Parameters details: + +Contact Optimera to get assistance with the params. + +{: .table .table-bordered .table-striped } + +| param name | type |Scope | Description | +| :------------ | :------------ | :------- | :------- | +| clientID | string | required | Optimera Client ID | +| optimeraKeyName | string | optional | GAM key name for Optimera. If migrating from the Optimera bidder adapter this will default to hb_deal_optimera and can be ommitted from the configuration. | +| device | string | optional | Device type code for mobile, tablet, or desktop. Either mo, tb, de | + +## Example + +To view an integration example: + +1) in your cli run: + +``` +gulp serve --modules=appnexusBidAdapter,optimeraRtdProvider` +``` + +2) in your browser, navigate to: + +``` +http://localhost:9999/integrationExamples/gpt/optimeraRtdProvider_example.html +``` + +You will be able to see targeting set for each ad request with the 'optimera' key name. diff --git a/dev-docs/modules/permutiveRtdProvider.md b/dev-docs/modules/permutiveRtdProvider.md new file mode 100644 index 0000000000..0983fe4d8a --- /dev/null +++ b/dev-docs/modules/permutiveRtdProvider.md @@ -0,0 +1,76 @@ +--- +layout: page_v2 +title: Permutive Real Time Data Provider +display_name: Permutive Real Time Data Module +description: Permutive Real Time Data Module +page_type: module +module_type: rtd +module_code : permutiveRtdProvider +enable_download : true +vendor_specific: true +sidebarType : 1 +--- + +# Permutive RTD Provider +{:.no_toc} + +* TOC +{:toc} + +## Overview +This module reads cohorts from Permutive and attaches them as targeting keys to bid requests. + +## Usage +Compile the Permutive RTD module into your Prebid build: +``` +gulp build --modules=rtdModule,permutiveRtdProvider +``` + +> Note that the global RTD module, `rtdModule`, is a prerequisite of the Permutive RTD module. + +You then need to enable the Permutive RTD in your Prebid configuration, using the below format: + +```javascript +pbjs.setConfig({ + ..., + realTimeData: { + auctionDelay: 50, // optional auction delay + dataProviders: [{ + name: 'permutive', + waitForIt: true, // should be true if there's an `auctionDelay` + params: { + acBidders: ['appnexus'] + } + }] + }, + ... +}) +``` + +## Supported Bidders +The Permutive RTD module sets Audience Connector cohorts as bidder-specific `ortb2.user.data` first-party data, following the Prebid `ortb2` convention, for any bidder included in `acBidders`. The module also supports bidder-specific data locations per ad unit (custom parameters) for the below bidders: + +{: .table .table-bordered .table-striped } +| Bidder | ID | Custom Cohorts | Audience Connector | +| ----------- | ---------- | -------------------- | ------------------ | +| Xandr | `appnexus` | Yes | Yes | +| Magnite | `rubicon` | Yes | No | +| Ozone | `ozone` | No | Yes | + +Key-values details for custom parameters: +* **Custom Cohorts:** The module configuration will automatically reflect the SSP integrations (_Activations_) you have enabled in your Permutive dashboard. Any additional bidders you want to pass data to will need to be configured. Permutive cohorts will be sent in the permutive key-value. + +* **Audience Connector:** You'll need to define which bidders should receive Audience Connector cohorts. You need to include the `ID` of any bidder in the `acBidders` array. Audience Connector cohorts will be sent in the `p_standard` key-value. + + +## Parameters + +{: .table .table-bordered .table-striped } +| Name | Type | Description | Default | +| ----------------- | -------------------- | ------------------ | ------------------ | +| name | String | This should always be `permutive` | - | +| waitForIt | Boolean | Should be `true` if there's an `auctionDelay` defined (optional) | `false` | +| params | Object | | - | +| params.acBidders | String[] | An array of bidders which should receive Audience Connector cohorts. | `[]` | +| params.maxSegs | Integer | Maximum number of cohorts to be included in either the `permutive` or `p_standard` key-value. | `500` | + diff --git a/dev-docs/modules/pubCommonId.md b/dev-docs/modules/pubCommonId.md index 7e42c44ade..455e89bb38 100644 --- a/dev-docs/modules/pubCommonId.md +++ b/dev-docs/modules/pubCommonId.md @@ -4,7 +4,7 @@ page_type: module title: Module - Publisher Common ID description: User ID persisted in first party domain module_code : pubCommonId -display_name : Publisher Common ID +display_name : Publisher Common ID (deprecated) enable_download : true sidebarType : 1 --- diff --git a/dev-docs/modules/reconciliationRtdProvider.md b/dev-docs/modules/reconciliationRtdProvider.md index da9da39642..47ff52d92e 100644 --- a/dev-docs/modules/reconciliationRtdProvider.md +++ b/dev-docs/modules/reconciliationRtdProvider.md @@ -5,8 +5,9 @@ description: Reconciliation Real Time Data Module page_type: module module_type: rtd module_code: reconciliationRtdProvider -display_name: Reconciliation +display_name: Reconciliation Supply Chain Validation enable_download: true +vendor_specific: true sidebarType: 1 --- diff --git a/dev-docs/modules/schain.md b/dev-docs/modules/schain.md index 8b030aeb05..4534f4840b 100644 --- a/dev-docs/modules/schain.md +++ b/dev-docs/modules/schain.md @@ -2,7 +2,7 @@ layout: page_v2 page_type: module title: Module - Supply Chain Object -description: Validates Supply Chain object and makes it available to bidder +description: Validates the Supply Chain object and makes it available to bidders. module_code : schain display_name : Supply Chain Object enable_download : true @@ -83,7 +83,7 @@ pbjs.setBidderConfig({ }); {% endhighlight%} -You can find more information about the `pbjs.setBidderConfig` function in the [Publisher API Reference]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.setBidderConfig). +You can find more information about the `pbjs.setBidderConfig` function in the [Publisher API Reference]({{site.baseurl}}/dev-docs/publisher-api-reference/setBidderConfig.html). ### Global and Bidder-Specific Together diff --git a/dev-docs/modules/sirdataRtdProvider.md b/dev-docs/modules/sirdataRtdProvider.md new file mode 100644 index 0000000000..68a07237f2 --- /dev/null +++ b/dev-docs/modules/sirdataRtdProvider.md @@ -0,0 +1,199 @@ +--- +layout: page_v2 +title: Sirdata Real Time Data Provider +display_name: Sirdata Real-time Segmentation Module +description: Sirdata Real-time Segmentation Module +page_type: module +module_type: rtd +module_code : sirdataRtdProvider +enable_download : true +vendor_specific: true +sidebarType : 1 +--- + +# Sirdata RTD Segmentation Module +{:.no_toc} + +* TOC +{:toc} + +Sirdata provides a disruptive API that allows publishers and curating SSPs to leverage its cutting-edge contextualization technology and its audience segments based on cookies and consent or without cookies nor consent, even in Europe! + +User-based segments and page-level automatic contextual categories will be attached to bid request objects sent to different SSPs in order to optimize targeting. + +Automatic or custom integration with Google Ad Manager and major bidders like Xandr/Appnexus, Smartadserver, Index Exchange, Proxistore, Magnite/Rubicon or Triplelift ! + +User's country and choice management are included in the module, so it's 100% compliant with local and regional laws like GDPR and CCPA/CPRA. + +ORTB2 compliant and FPD support for Prebid versions < 4.29 + +Please contact prebid@sirdata.com for more information. + +## Publisher Usage + +### Configure Prebid.js + +Compile the Sirdata RTD module into your Prebid build: + +`gulp build --modules=rtdModule,sirdataRtdProvider` + +Add the Sirdata RTD provider to your Prebid config. + +`actualUrl` MUST be set with actual location of parent page if prebid.js is loaded in an iframe (eg. postbid). It can be left blank ('') or removed otherwize. + +`partnerId` and `key` should be provided by your partnering SSP or get one and your dedicated taxonomy from Sirdata (prebid@sirdata.com). Segments ids (user-centric) and category ids (page-centric) will be provided salted and hashed : you can use them with a dedicated and private matching table. + +Should you want to allow a SSP or a partner to curate your media and operate cross-publishers campaigns with our data, please ask Sirdata (prebid@sirdata.com) to whitelist him it in your account. + +#### Minimal configuration + +``` +pbjs.setConfig( + ... + realTimeData: { + auctionDelay: 1000, + dataProviders: [ + { + name: "SirdataRTDModule", + waitForIt: true, + params: { + partnerId: 1, + key: 1, + } + } + ] + } + ... +} +``` + +#### Advanced configuration + +``` +pbjs.setConfig( + ... + realTimeData: { + auctionDelay: 1000, + dataProviders: [ + { + name: "SirdataRTDModule", + waitForIt: true, + params: { + partnerId: 1, + key: 1, + setGptKeyValues: true, + contextualMinRelevancyScore: 50, //Min score to filter contextual category globally (0-100 scale) + actualUrl: '', //top location url, for contextual categories + bidders: [{ + bidder: 'appnexus', + adUnitCodes: ['adUnit-1','adUnit-2'], + customFunction: overrideAppnexus, + curationId: '111', + },{ + bidder: 'ix', + sizeLimit: 1200 //specific to Index Exchange, + contextualMinRelevancyScore: 50, //Min score to filter contextual category for curation in the bidder (0-100 scale) + }] + } + } + ] + } + ... +} +``` + +### Parameter Descriptions for the Sirdata Configuration Section + +| Name |Type | Description | Notes | +| :------------ | :------------ | :------------ |:------------ | +| name | String | Real time data module name | Mandatory. Always 'SirdataRTDModule' | +| waitForIt | Boolean | Mandatory. Required to ensure that the auction is delayed until prefetch is complete | Optional. Defaults to false but recommended to true | +| params | Object | | Optional | +| params.partnerId | Integer | Partner ID, required to get results and provided by Sirdata. Use 1 for tests and get one running at prebid@sirdata.com | Mandatory. Defaults 1. | +| params.key | Integer | Key linked to Partner ID, required to get results and provided by Sirdata. Use 1 for tests and get one running at prebid@sirdata.com | Mandatory. Defaults 1. | +| params.setGptKeyValues | Boolean | This parameter Sirdata to set Targeting for GPT/GAM | Optional. Defaults to true. | +| params.contextualMinRelevancyScore | Integer | Min score to keep filter category in the bidders (0-100 scale). Optional. Defaults to 30. | +| params.bidders | Object | Dictionary of bidders you would like to supply Sirdata data for. | Optional. In case no bidder is specified Sirdata will atend to ad data custom and ortb2 to all bidders, adUnits & Globalconfig | + +Bidders can receive common setting : +| Name |Type | Description | Notes | +| :------------ | :------------ | :------------ |:------------ | +| bidder | String | Bidder name | Mandatory if params.bidders are specified | +| adUnitCodes | Array of String | Use if you want to limit data injection to specified adUnits for the bidder | Optional. Default is false and data shared with the bidder isn't filtered | +| customFunction | Function | Use it to override the way data is shared with a bidder | Optional. Default is false | +| curationId | String | Specify the curation ID of the bidder. Provided by Sirdata, request it at prebid@sirdata.com | Optional. Default curation ids are specified for main bidders | +| contextualMinRelevancyScore | Integer | Min score to filter contextual categories for curation in the bidder (0-100 scale). Optional. Defaults to 30 or global params.contextualMinRelevancyScore if exits. | +| sizeLimit | Integer | used only for bidder 'ix' to limit the size of the get parameter in Index Exchange ad call | Optional. Default is 1000 | + + +### Overriding data sharing function + +As indicated above, it is possible to provide your own bid augmentation functions. This is useful if you know a bid adapter's API supports segment fields which aren't specifically being added to request objects in the Prebid bid adapter. + +Please see the following example, which provides a function to modify bids for a bid adapter called ix and overrides the appnexus. + +``` +data Object format for usage in this kind of function : +{ + "segments":[111111,222222], + "contextual_categories":{"333333":100}, + "shared_taxonomy":{ + "27446":{ //CurationId + "segments":[444444,555555], + "contextual_categories":{"666666":100} + } + } +} +``` + +``` +function overrideAppnexus (adUnit, segmentsArray, dataObject, bid) { + for (var i = 0; i < segmentsArray.length; i++) { + if (segmentsArray[i]) { + bid.params.user.segments.push(segmentsArray[i]); + } + } +} + +pbjs.setConfig( + ... + realTimeData: { + auctionDelay: 1000, + dataProviders: [ + { + name: "SirdataRTDModule", + waitForIt: true, + params: { + partnerId: 1, + key: 1, + setGptKeyValues: true, + contextualMinRelevancyScore: 50, //Min score to keep contextual category in the bidders (0-100 scale) + actualUrl: actual_url, //top location url, for contextual categories + bidders: [{ + bidder: 'appnexus', + customFunction: overrideAppnexus, + curationId: '111' + },{ + bidder: 'ix', + sizeLimit: 1200, //specific to Index Exchange + customFunction: function(adUnit, segmentsArray, dataObject, bid) { + bid.params.contextual.push(dataObject.contextual_categories); + }, + }] + } + } + ] + } + ... +} +``` + +### Testing + +To view an example of available segments returned by Sirdata's backends: + +`gulp serve --modules=rtdModule,sirdataRtdProvider,appnexusBidAdapter` + +and then point your browser at: + +`http://localhost:9999/integrationExamples/gpt/sirdataRtdProvider_example.html` diff --git a/dev-docs/modules/sizeMappingV2.md b/dev-docs/modules/sizeMappingV2.md index 2598a26452..7583b4bb5d 100644 --- a/dev-docs/modules/sizeMappingV2.md +++ b/dev-docs/modules/sizeMappingV2.md @@ -2,7 +2,7 @@ layout: page_v2 page_type: module title: Module - Size Mapping -description: Display Conditional and Responsive Ad Units +description: Display Responsive AdUnits in demanding page environments. module_code: sizeMappingV2 display_name: Advanced Size Mapping enable_download: true @@ -17,7 +17,7 @@ sidebarType: 1 ## Overview -The Advanced Size Mapping module enables configuration of responsive ad units with more flexibility than the [core `sizeConfig`](/dev-docs/publisher-api-reference.html#setConfig-Configure-Responsive-Ads) feature. It detects the browser viewport dimensions, and based on that, applies a series of checks on the ad unit to determine: +The Advanced Size Mapping module enables configuration of responsive ad units with more flexibility than the [core `sizeConfig`](/dev-docs/publisher-api-reference/setConfig.html#setConfig-Configure-Responsive-Ads) feature. It detects the browser viewport dimensions, and based on that, applies a series of checks on the ad unit to determine: - which banner sizes should be active - what the playerSize is for a video media type @@ -41,15 +41,15 @@ It's meant for publishers that have complex site designs. You should use this mo {:/} If, on the other hand, the AdUnits, bidders, and mediaTypes all change behavior together at the same viewport width, -then the built-in [`sizeConfig`](/dev-docs/publisher-api-reference.html#setConfig-Configure-Responsive-Ads) feature will work. +then the built-in [`sizeConfig`](/dev-docs/publisher-api-reference/setConfig.html#setConfig-Configure-Responsive-Ads) feature will work. {% endcapture %} {% include alerts/alert_tip.html content=tip-choosing %} ## Differences Between Global and AdUnit Level sizeConfig -If you've used [`sizeConfig`](/dev-docs/publisher-api-reference.html#setConfig-Configure-Responsive-Ads) in Prebid.js before, read this section to learn about the differences. If you haven't used sizeConfig before, you can skip to the next section. +If you've used [`sizeConfig`](/dev-docs/publisher-api-reference/setConfig.html#setConfig-Configure-Responsive-Ads) in Prebid.js before, read this section to learn about the differences. If you haven't used sizeConfig before, you can skip to the next section. -- The biggest change to size mapping is the introduction of **AdUnit** and **Bidder** level sizeConfig declarations. Instead of defining a global sizeConfig object configured in [`pbjs.setConfig`](/dev-docs/publisher-api-reference.html#module_pbjs.setConfig), each Ad Unit and Bidder can define and control their own set of sizeConfig rules. This process makes it easier to reason which sizes should be active for the current viewport size in complex scenarios. +- The biggest change to size mapping is the introduction of **AdUnit** and **Bidder** level sizeConfig declarations. Instead of defining a global sizeConfig object configured in [`pbjs.setConfig`](/dev-docs/publisher-api-reference/setConfig.html#module_pbjs.setConfig), each Ad Unit and Bidder can define and control their own set of sizeConfig rules. This process makes it easier to reason which sizes should be active for the current viewport size in complex scenarios. - A **sizeConfig** parameter may be specified on the AdUnit mediaType or a bidder. In these scenarios, the syntax is a little different than with the global configuration. Here's an example for a sizeConfig object for banner media type: @@ -68,7 +68,7 @@ If you've used [`sizeConfig`](/dev-docs/publisher-api-reference.html#setConfig-C - Likewise, **mediaQuery** is not used in AdUnit sizeConfig objects. Instead, an array of size buckets is defined by just the `minViewPort` property. Only one size bucket activates based on viewport size. -It may be useful to compare the globally-configured sizeConfig with the AdUnit-level sizeConfig. [Here is an example](/dev-docs/publisher-api-reference.html#sizeConfig-Example) using global sizeConfig. +It may be useful to compare the globally-configured sizeConfig with the AdUnit-level sizeConfig. [Here is an example](/dev-docs/publisher-api-reference/setConfig.html#sizeConfig-Example) using global sizeConfig. Here's that same example using Advanced Size Mapping: @@ -191,6 +191,7 @@ II. A request originating in the UK, viewport size: `[1700px, 900px]` }, video: { context: 'instream', + ... other video params ... sizeConfig: [ { minViewPort: [0, 0], playerSize: [] }, { minViewPort: [1200, 0], playerSize: [640, 400]} diff --git a/dev-docs/modules/timeoutRtdProvider.md b/dev-docs/modules/timeoutRtdProvider.md new file mode 100644 index 0000000000..7830eb7b40 --- /dev/null +++ b/dev-docs/modules/timeoutRtdProvider.md @@ -0,0 +1,159 @@ +--- +layout: page_v2 +title: Timeout Rtd Module +display_name: Timeout RTD +description: Module for managing timeouts in real time +page_type: module +module_type: rtd +module_code : timeoutRtdProvider +enable_download : true +sidebarType : 1 +--- + +## Overview +The timeout RTD module enables publishers to set rules that determine the timeout based on +certain features. It supports rules dynamically retrieved from a timeout provider as well as rules +set directly via configuration. +Build the timeout RTD module into the Prebid.js package with: +``` +gulp build --modules=timeoutRtdProvider,rtdModule... +``` + +## Configuration +The module is configured in the realTimeData.dataProviders object. The module will override +`bidderTimeout` in the pbjs config. + +### Timeout Data Provider interface +The timeout RTD module provides an interface of dynamically fetching timeout rules from +a data provider just before the auction begins. The endpoint url is set in the config just as in +the example below, and the timeout data will be used when making bid requests. + +``` +pbjs.setConfig({ + ... + "realTimeData": { + "dataProviders": [{ + "name": 'timeout', + "params": { + "endpoint": { + "url": "http://{cdn-link}.json" + } + } + } + ]}, + + // This value below will be modified by the timeout RTD module if it successfully + // fetches the timeout data. + "bidderTimeout": 1500, + ... +}); +``` + +Sample Endpoint Response: +``` +{ + "rules": { + "includesVideo": { + "true": 200, + "false": 50 + }, + "numAdUnits" : { + "1-5": 100, + "6-10": 200, + "11-15": 300 + }, + "deviceType": { + "2": 50, + "4": 100, + "5": 200 + }, + "connectionSpeed": { + "slow": 200, + "medium": 100, + "fast": 50, + "unknown": 10 + }, +} +``` + +### Rule Handling: +The rules retrieved from the endpoint will be used to add time to the `bidderTimeout` based on certain features such as +the user's deviceType, connection speed, etc. These rules can also be configured statically on page via a `rules` object. +Note that the timeout Module will ignore the static rules if an endpoint url is provided. The timeout rules follow the +format: +``` +{ + '': { + '': + } +} +``` +See bottom of page for examples. + +Currently supported features: + +|Name |Description | Keys | Example +| :------------ | :------------ | :------------ |:------------ | +| includesVideo | Adds time to the timeout based on whether there is a video ad unit in the auction or not | 'true'/'false'| { "true": 200, "false": 50 } | +| numAdUnits | Adds time based on the number of ad units. Ranges in the format `'lowerbound-upperbound` are accepted. This range is inclusive | numbers or number ranges | {"1": 50, "2-5": 100, "6-10": 200} | +| deviceType | Adds time based on device type| 2, 4, or 5| {"2": 50, "4": 100} | +| connectionSpeed | Adds time based on connection speed. `connectionSpeed` defaults to 'unknown' if connection speed cannot be determined | slow, medium, fast, or unknown | { "slow": 200} | + +If there are multiple rules set, all of them would be used and any that apply will be added to the base timeout. For example, if the rules object contains: +``` +{ + "includesVideo": { + "true": 200, + "false": 50 + }, + "numAdUnits" : { + "1-3": 100, + "4-5": 200 + } +} +``` +and there are 3 ad units in the auction, all of which are banner, then the timeout to be added will be 150 milliseconds (50 for `includesVideo[false]` + 100 for `numAdUnits['1-3']`). + +Full example: +``` +pbjs.setConfig({ + ... + "realTimeData": { + "dataProviders": [{ + "name": 'timeout', + "params": { + "rules": { + "includesVideo": { + "true": 200, + "false": 50 + }, + "numAdUnits" : { + "1-5": 100, + "6-10": 200, + "11-15": 300 + }, + "deviceType": { + "2": 50, + "4": 100, + "5": 200 + }, + "connectionSpeed": { + "slow": 200, + "medium": 100, + "fast": 50, + "unknown": 10 + } + } + } + ]} + } + ... + // The timeout RTD module will add time to `bidderTimeout` based on the rules set above. + "bidderTimeout": 1500, +``` + +## Timeout Providers + +{: .table } +| Partner | Contact | About | +| OpenX | [apollo@openx.com](mailto:apollo@openx.com) | Dynamic timeout optimization and more | \ No newline at end of file diff --git a/dev-docs/modules/userId.md b/dev-docs/modules/userId.md index 4776ce414b..ba6ebade2e 100644 --- a/dev-docs/modules/userId.md +++ b/dev-docs/modules/userId.md @@ -2,7 +2,7 @@ layout: page_v2 page_type: module title: Module - User ID -description: Supports multiple cross-vendor user IDs +description: Vendor-specific user ID sub-modules are available to support a range of identification approaches. module_code : userId display_name : User ID enable_download : false @@ -25,14 +25,18 @@ The User ID module supports multiple ways of establishing pseudonymous IDs for u 1. The publisher builds Prebid.js by specifying one or more ID sub-modules they would like to include. e.g. "gulp build --modules=____IdSystem". You also need to add the `userId` module to your Prebid.js distribution. 1. The page defines User ID configuration in `pbjs.setConfig()` 1. When `setConfig()` is called, and if the user has consented to storing IDs locally, the module is invoked to call the URL if needed - 1. If the relevant local storage is present, the module doesn't call the URL and instead parses the scheme-dependent format, injecting the resulting ID into bidRequest.userId. -1. An object containing one or more IDs (bidRequest.userId) is made available to Prebid.js adapters and Prebid Server S2S adapters. -1. In addition to bidRequest.userId, bidRequest.userIdAsEids is made available to Prebid.js adapters and Prebid Server S2S adapters. bidRequest.userIdAsEids has userIds in ORTB EIDS format. + 1. If the relevant local storage is present, the module doesn't call the URL and instead parses the scheme-dependent format, injecting the resulting ID into `bidRequest.userId`. + 1. If GDPR applies, the consent signal from the CMP is hashed and stored in a cookie called `_pbjs_userid_consent_data`. This is required so that ID sub-modules may be called to refresh their ID if the user's consent preferences have changed from the previous page, and ensures cached IDs are no longer used if consent is withdrawn. +1. An object containing one or more IDs (`bidRequest.userId`) is made available to Prebid.js adapters and Prebid Server S2S adapters. +1. In addition to `bidRequest.userId`, `bidRequest.userIdAsEids` is made available to Prebid.js adapters and Prebid Server S2S adapters. `bidRequest.userIdAsEids` has userIds in ORTB EIDS format. +{: .alert.alert-info :} Note that User IDs aren't needed in the mobile app world because device ID is available in those ad serving scenarios. -Also note that not all bidder adapters support all forms of user ID. See the tables below for a list of which bidders support which ID schemes. +{: .alert.alert-info :} +Note that not all bidder adapters support all forms of user ID. See the tables below for a list of which bidders support which ID schemes. +{: .alert.alert-info :} As of Prebid 4.0, this module will attempt storage in the main domain of the publisher's website instead of a subdomain, unless this behavior is overriden by a submodule. ## User ID, GDPR, Permissions, and Opt-Out @@ -47,7 +51,7 @@ When paired with the [Consent Management](/dev-docs/modules/consentManagement.ht In addition, individual users may opt-out of receiving cookies and HTML5 local storage by setting these values: * `_pbjs_id_optout` cookie or HTML5 local storage. The value can be anything -- if it exists, the user is considered opted out and no userId modules will fire. -* `_pubcid_optout` cookie or HTML5 local storage. This is for backwards compatibility with the original PubCommonID module. Likewise, the value can be anything. +* `_pubcid_optout` cookie or HTML5 local storage. This is for backwards compatibility with the original PubCommonID module, as of 5.0 known as the SharedId module. Likewise, the value can be anything. ### Publisher First Party Opt-Out @@ -68,7 +72,7 @@ of sub-objects. The table below has the options that are common across ID system {: .table .table-bordered .table-striped } | Param under userSync.userIds[] | Scope | Type | Description | Example | | --- | --- | --- | --- | --- | -| name | Required | String | May be: `"britepoolId"`, `"criteo"`, `"fabrickId"`, `"haloId"`, `"id5id"`, `identityLink`, `"idx"`, `"intentIqId"`, `"liveIntentId"`, `"lotamePanoramaId"`, `"merkleId"`, `"netId"`, `"novatiqId"`, `"parrableId"`, `"quantcastId"`, `"pubCommonId"`, `"pubProvidedId"`, `"sharedId"`, `"tapadId"`, `"unifiedId"`, `"verizonMediaId"`, `"zeotapIdPlus"` | `"unifiedId"` | +| name | Required | String | May be: `"admixerId"`, `"adtelligentId"`, `"akamaiDAPId"`, `"amxId"`, `"britepoolId"`, `"criteo"`, `"fabrickId"`, `"flocId"`, `"haloId"`, `"id5id"`, `identityLink`, `"idx"`, `"intentIqId"`, `"liveIntentId"`, `"lotamePanoramaId"`, `"merkleId"`, `"naveggId"`, `"mwOpenLinkId"`, `"netId"`, `"novatiqId"`, `"parrableId"`, `"quantcastId"`, `"pubProvidedId"`, `"sharedId"`, `"tapadId"`, `"unifiedId"`,`"uid2"`, `"verizonMediaId"`, `"zeotapIdPlus"` | `"unifiedId"` | params | Based on User ID sub-module | Object | | | | bidders | Optional | Array of Strings | An array of bidder codes to which this user ID may be sent. | `['bidderA', 'bidderB']` | | storage | Optional | Object | The publisher can specify some kind of local storage in which to store the results of the call to get the user ID. This can be either cookie or HTML5 storage. This is not needed when `value` is specified or the ID system is managing its own storage | | @@ -79,14 +83,12 @@ of sub-objects. The table below has the options that are common across ID system | value | Optional | Object | Used only if the page has a separate mechanism for storing a User ID. The value is an object containing the values to be sent to the adapters. | `{"tdid": "1111", "pubcid": {2222}, "IDP": "IDP-2233", "id5id": {"uid": "ID5-12345"}}` | -## User ID Sub-Modules - ## Permissions -Publishers can control which user ids are shared with the bid adapters they choose to work with by using the bidders array. The bidders array is part of the User id module config, publisher may choose to send an id to some bidders but not all, the default behavior is that each user id go to all bid adapters the publisher is working with. +Publishers can control which user ids are shared with the bid adapters they choose to work with by using the bidders array. The bidders array is part of the User id module config, publisher may choose to send an id to some bidders but not all, the default behavior is that each user id go to all bid adapters the publisher is working with. Use the optional `bidders` parameter to define an array of bidder codes to which this user ID may be sent. -In this example the SharedId sub adapter is only allowed to be sent to the Rubicon adapter. +In this example the SharedID sub adapter is only allowed to be sent to the Rubicon adapter. ``` userIds: [ { @@ -106,7 +108,7 @@ userIds: [ } ] ``` -The Rubicon bid adapter would then receive +The Rubicon bid adapter would then receive ``` { "bidder": "rubicon", @@ -135,9 +137,180 @@ The Rubicon bid adapter would then receive } ``` +## User ID Sub-Modules + +### AkamaiDAPId + +The Akamai Data Activation Platform (DAP) is a privacy-first system that protects end-user privacy by only allowing them to be targeted as part of a larger cohort. DAP views hiding individuals in large cohorts as the best mechanism to prevent unauthorized tracking. + +The integration of DAP into Prebid.JS consists of creating a UserID plugin that interacts with the DAP API. The UserID module tokenizes the end-user identity into an ephemeral, secure pseudonymization called a dapId. The dapId is then supplied to the bid-stream where the SSP partner looks up cohort membership for that token, and supplies the cohorts to the rest of the bid-stream. + +In this system, no end-user identifier is supplied to the bid-stream, only cohorts. This is a foundational privacy principal DAP is built upon. + +#### AkamaiDAPId Configuration + +First, make sure to add the DAP submodule to your Prebid.js package with: + +``` +gulp build --modules=akamaiDAPIdSystem,userId +``` + +The following configuration parameters are available: + +```javascript +pbjs.setConfig({ + userSync: { + userIds: [{ + name: 'akamaiDAPId', + params: { + apiHostname: '', + domain: 'your-domain.com', + type: 'email' | 'mobile' | ... | 'dap-signature:1.0.0', + identity: ‘your@email.com’ | ‘6175551234' | ..., + apiVersion: 'v1' | 'x1', + attributes: '{ "cohorts": [ "3:14400", "5:14400", "7:0" ],"first_name": "...","last_name": "..." }' + }, + }], + auctionDelay: 50 // 50ms maximum auction delay, applies to all userId modules + } +}); +``` +In order to make use of v1 APIs, "apiVersion" needs to explicitly mention 'v1'. The "apiVersion" defaults to x1 if not specified. +"attributes" can be configured in x1 API only and not v1 APIs. Please ensure that the "attributes" value is in same format as shown above. + +Contact Prebid@akamai.com(Akamai account rep) for apiHostname. + + +### AdmixerID + +Admixer ID, provided by [Admixer] (https://admixer.com/), is a universal ID solution that doesn't rely on 3rd party cookies and helps publishers and advertisers to recognize users across various browsers and environments. Our sub adapter takes deterministic signals like email and phone as input and returns an anonymous id that unlocks access to a wide range of Admixer's demand sources, amplifying audience segmentation, targeting and measurement. + +The Admixer privacy policy is at https://admixer.com/privacy/ + +Add Admixer ID module to your Prebid.js package with: + +{: .alert.alert-info :} +gulp build --modules=admixerIdSystem + +#### AdmixerID Configuration + +{: .table .table-bordered .table-striped } +| Param under userSync.userIds[] | Scope | Type | Description | Example | +| --- | --- | --- | --- | --- | +| name | Required | String | `"admixerId"` | `"admixerId"` | +| params | Required | Object | Details for admixer initialization. | | +| params.pid | Required | String | id provided by admixer | "458frgde-djd7-3ert-gyhu-12fghy76dnmko" | +| params.e | Optional | String | The hashed email address of a user. We can accept the hashes, which use the following hashing algorithms: md5, sha1, sha256. | "3d400b57e069c993babea0bd9efa79e5dc698e16c042686569faae20391fd7ea" | +| params.p | Optional | String | The hashed phone number of a user. We can accept the hashes, which use the following hashing algorithms: md5, sha1, sha256. | "05de6c07eb3ea4bce45adca4e0182e771d80fbb99e12401416ca84ddf94c3eb9" | + +#### AdmixerID Examples + +1) Individual params may be set for the Admixer ID Submodule. + +{% highlight javascript %} + pbjs.setConfig({ + userSync: { + userIds: [{ + name: "admixerId", + storage: { + name: "admixerId", + type: "cookie", + expires: 30 + }, + params: { + pid: "4D393FAC-B6BB-4E19-8396-0A4813607316", // example id + e: "3d400b57e069c993babea0bd9efa79e5dc698e16c042686569faae20391fd7ea", // example hashed email (sha256) + p: "05de6c07eb3ea4bce45adca4e0182e771d80fbb99e12401416ca84ddf94c3eb9" //example hashed phone (sha256) + } + }], + auctionDelay: 50 // 50ms maximum auction delay, applies to all userId modules + } + }); +{% endhighlight %} + +### Adtelligent + +The [Adtelligent](https://adtelligent.com) ID system is a unique per-session user identifier for providing high quality DMP data for advertisers + +Add it to your Prebid.js package with: + +{: .alert.alert-info :} +gulp build --modules=userId,adtelligentIdSystem + +#### Adtelligent Configuration + +adtelligentIdSystem adapter doesn't require any configuration or storage params. The adapter performs asynchronously and to achieve better performance it is recommended to set the `storage` object `refreshInSeconds` to a short period, such as ten minutes. At the end of the set storage refresh the adapter will refresh its configuration. + +#### Adtelligent Example + +{% highlight javascript %} + pbjs.setConfig({ + userSync: { + userIds: [{ + name: 'adtelligent' + }] + } + }); +{% endhighlight %} + +Example with a short storage for ~10 minutes and refresh in 5 minutes: + +{% highlight javascript %} + pbjs.setConfig({ + userSync: { + userIds: [{ + name: 'adtelligent', + storage: { + type: "html5", + name: "adt_id", + expires:0.003, + refreshInSeconds: 60 * 5 + } + }] + } + }); +{% endhighlight %} + +### AMX RTB ID + +The AMX RTB ID is a first-party identifier designed for publishers using the AMX RTB adapter. For more information please contact [prebid@amxrtb.com](prebid@amxrtb.com) + +#### AMX RTB ID Configuration + +First, add the AMX RTB ID module to your Prebid.js build: + +```shell +gulp build --modules=userId,amxIdSystem +``` + +Then configure the amxId in your `userSync` configuration: + +```javascript +pbjs.setConfig({ + userSync: { + userIds: [{ + name: 'amxId', + storage: { + name: 'amxId', + type: 'html5', + expires: 14, + } + }] + } +}); +``` + +This will add a `userId.amxId` property to all bidRequests. This will be read by the AMX RTB bid adapter, and any other adapters that support EIDs: + +```javascript +{ + amxId: '3ca11058-ecbc-419f-bda7-b52fe7baf02a' +} +``` + ### BritePool -The [BritePool]((https://britepool.com)) ID is a persistent identifier that enables identity resolution for people-based marketing in the cookieless world. Every BritePool ID is associated with a real identity. As a result, publishers, SSPs and DSPs that integrate with BritePool, or automated +The [BritePool](https://britepool.com) ID is a persistent identifier that enables identity resolution for people-based marketing in the cookieless world. Every BritePool ID is associated with a real identity. As a result, publishers, SSPs and DSPs that integrate with BritePool, or automated integration partners (such as PubMatic), are able to maximize revenues without cookies. As addressable individuals visit publisher websites and mobile apps, the BritePool IDs associated with these identities are passed into the bidstream; enabling advertisers to transact against these BritePool ID's and publishers to maximize the revenues associated with their inventory and audience. The BritePool ID combines consumer privacy with easy, rapid integration for publishers and does not significantly increase the computing resources required of DSPs and SSPs. Add it to your Prebid.js package with: @@ -220,6 +393,103 @@ pbjs.setConfig({ }); {% endhighlight %} +### Deepintent DPES ID by Deepintent + +The DeepIntent Healthcare Marketing Platform is the first and only DSP that combines real-world health data, premium partnerships, and custom integrations to reach patients and providers across any device. DeepIntent empowers publishers to maximize their inventory, collaborate and transact directly with advertisers, and grow their business in a safe, controlled, transparent, and privacy-compliant way. Our publisher partners sell inventory on every channel via real-time bidding or conducting one-to-one trading with hundreds of the country’s leading healthcare brands and agencies. + +DeepIntent’s DPES ID is a shared user identifier built for healthcare marketers and publishers integrated within DeepIntent’s Healthcare Marketplace. The DPES ID lets users protect and manage their privacy throughout the advertising value chain. User data written and associated with the DPES ID is not stored on DeepIntent’s servers. Instead, this data is stored in a decentralized way on a user’s browser. Users can still opt out of the ads by navigating to https://option.deepintent.com/adchoices + +#### Deepintent DPES ID Registration + +DPES ID is free to use and requires a simple registration with DeepIntent. Please reach out to DeepIntent’s Publisher Development team at prebid@deepintent.com to learn more and get started. Once a publisher registers with DeepIntent’s platform, DeepIntent will provide a simple code snippet to be integrated with the publisher’s website. This code snippet will capture and store information per the publisher’s end user agreement. The DPES User ID module uses the DPES ID by passing it within the DeepIntent Prebid adapter. + +#### Deepintent DPES ID Configuration + +{: .table .table-bordered .table-striped } +| Param under userSync.userIds[] | Scope | Type | Description | Example | +| --- | --- | --- | --- | --- | +| name | Required | String | The name of this module: `"deepintentId"` | `"deepintentId"` | +| storage | Required | Object | Storage settings for how the User Id module will cache the Deepintent ID locally | | +| storage.type | Required | String | This is where the results of the user ID will be stored. Deepintent`"html5"` or `"cookie"`. | `"html5"` | +| storage.name | Optional | String | The name of the local storage where the user ID will be stored. Deepintent | `"_dpes_id"` | +| storage.expires | Optional | Integer | How long (in days) the user ID information will be stored. Deepintent recommends `90`. | `90` | + +#### Deepintent DPES ID Examples + +1) Publisher stores the hashed identity from healthcare identity in cookie +{% highlight javascript %} +pbjs.setConfig({ + userSync: { + userIds: [{ + name: 'deepintentId', + storage: { + type: 'cookie', // "html5" is the required storage type option is "html5" + name: '_dpes_id', + expires: 90 // storage lasts for 90 days, optional if storage type is html5 + } + }], + auctionDelay: 50 // 50ms maximum auction delay, applies to all userId modules + } +}); +{% endhighlight %} + +2) Publisher stores the hashed identity from healthcare identity in localstorage +{% highlight javascript %} +pbjs.setConfig({ + userSync: { + userIds: [{ + name: 'deepintentId', + storage: { + type: 'html5' // "html5" is the required storage type option is "html5" + name: '_dpes_id' + } + }], + auctionDelay: 50 // 50ms maximum auction delay, applies to all userId modules + } +}); +{% endhighlight %} + +### DMD ID by DMD Marketing Corp + +DMD is the preeminent supplier of US-based healthcare professional (HCP) identity data to the pharmaceutical, health system and medical publishing industries. DMD is the only data provider that has acquired its deterministic identity data through a fully consented, first-party, opt-in process. DMD’s privacy policy that can be found at [Privacy Policy](https://hcn.health/privacy-policy). + +For assistance setting up your module, please contact us at prebid@dmdconnects.com + +Add the DMD ID to your Prebid.js Package with: + +{: .alert.alert-info :} +gulp build --modules=userId,dmdIdSystem + +#### DMD ID Registration + +Please reach out to [prebid@dmdconnects.com](mailto:prebid@dmdconnects.com) to request your `api_key` + +#### DMD ID Configuration + +{: .table .table-bordered .table-striped } +| Param under userSync.userIds[] | Scope | Type | Description | Example | +| --- | --- | --- | --- | --- | +| name | Required | String | The name of Module | `"dmdId"` | +| storage | Required | Object | | +| storage.name | Required | String | `dmd-dgid` | +| params | Required | Object | Container of all module params. | | +| params.api_key | Required | String | This is your `api_key` as provided by DMD Marketing Corp. | `3fdbe297-3690-4f5c-9e11-ee9186a6d77c` | + +#### DMD ID Example + +{% highlight javascript %} +pbjs.setConfig({ + userSync: { + userIds: [{ + name: 'dmdId', + params: { + api_key: '3fdbe297-3690-4f5c-9e11-ee9186a6d77c' // provided to you by DMD + } + }] + } +}); +{% endhighlight %} + ### Fabrick ID by Neustar [Neustar Fabrick™](https://www.home.neustar/fabrick) is a unified identity ecosystem that powers connections between brands, publishers, and consumers to accelerate marketing performance across online and offline channels. @@ -293,9 +563,57 @@ pbjs.setConfig({ }); {% endhighlight %} +### FLoC ID + +The [Federated Learning of Cohorts (FLoC)](https://web.dev/floc/) system provides a privacy-preserving mechanism for interest-based ad selection. As a user moves around the web, their browser uses the FLoC algorithm to work out an "interest cohort", which will be the same for thousands of browsers with a similar recent browsing history. The user's browser is associated with one interest cohort at a time and recalculates its cohort periodically (currently once every seven days during this initial origin trial) on the user's device, without sharing individual browsing data with the browser vendor or anyone else. + +There are two important things to note when using the FLoC Userid Sub adapter. + +1. Unlike other user id subadapters FLoC ids cannot be stored in a cookie or Local Storage. FLoC ids change periodically and should always be fetched from the FLoC API + +2. The function `(getGlobal()).getUserIds` returns `userId.flocId.id=value` into the bid request **NOT** `userid.userIdAsEids`. + +To include the FLoC user id module use: + +`$ gulp build --modules=flocIdSystem` + +{: .alert.alert-info :} +Note: FLoC is still in a trial period. [How to take part in the FLoC origin trial](https://developer.chrome.com/blog/floc/). During the trial, a token is +required. Publishers may get their own token or use sharedid's token if they choose. Use this without the line breaks: +A3dHTSoNUMjjERBLlrvJSelNnwWUCwVQhZ5tNQ+sll7y+LkPPVZXtB77u2y7CweRIxiYaGw +GXNlW1/dFp8VMEgIAAAB+eyJvcmlnaW4iOiJodHRwczovL3NoYXJlZGlkLm9yZzo0NDMiLC +JmZWF0dXJlIjoiSW50ZXJlc3RDb2hvcnRBUEkiLCJleHBpcnkiOjE2MjYyMjA3OTksImlzU +3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9 + + +#### FLoC ID Configuration + +{: .table .table-bordered .table-striped } +| Param under userSync.userIds[] | Scope | Type | Description | Example | +| --- | --- | --- | --- | --- | +| name | Required | String | The name of this module. | `"flocId"` | +| params | Required | Object | Container of all module params. | | +| params.token | Required | String | This is your apiKey as provided by Chrome. This value is required during the origin trial phase but will be optional once the origin trial ends. Publishers may use sharedid's registered token if they choose. | `A3dHTSo...`| + +#### FLoC Example + +{% highlight javascript %} +pbjs.setConfig({ + userSync: { + userIds: [{ + name: "flocId", + params: { + "token": "Registered token" // see above for sharedId's FLoC token + } + }], + syncDelay: 3000 // 3 seconds after the first auction + } +}); +{% endhighlight %} + ### Halo ID from Audigent -Audigent is a next-generation data management platform and a first-of-a-kind "data agency" containing some of the most exclusive content-consuming audiences across desktop, mobile and social platforms. Our HaloId module allows for user id resolution and Audigent user data segmentation to be retrieved for users across the web. For assistance setting up your module please contact us at [prebid@audigent.com](prebid@audigent.com). +Audigent is a next-generation data management platform and a first-of-a-kind "data agency" containing some of the most exclusive content-consuming audiences across desktop, mobile and social platforms. Our HaloId module allows for user id resolution and Audigent user data segmentation to be retrieved for users across the web. For assistance setting up your module please contact us at [prebid@audigent.com](mailto:prebid@audigent.com). #### HaloId Configuration Add the Halo ID system to your Prebid.js package with: @@ -319,13 +637,21 @@ pbjs.setConfig({ }); ``` -The `request.userId.haloId` will contain the Audigent HaloId and associated segments: +The `request.userId.haloId` will contain the Audigent HaloId: ``` { - "haloId": "user-halo-id", - "auSeg": ["segment1", "segment2"] + "haloId": "0201chpvai07jv2yg08xizqr0bwpa1w0evvmq014d2ykn0b5oe" } ``` +The following configuration parameters are available: + +{: .table .table-bordered .table-striped } +| Param under usersync.userIds[] | Scope | Type | Description | Example | +| --- | --- | --- | --- | --- | +| name | Required | String | ID value for the HaloID module - `"haloId"` | `"haloId"` | +| params | Optional | Object | Used to store params for the HaloId system | +| params.url | Optional | String | Set an alternate GET url for HaloId with this parameter | +| params.urlArg | Optional | Object | Optional url parameter for params.url | ### ID+ @@ -361,7 +687,7 @@ pbjs.setConfig({ ### ID5 Universal ID -The ID5 Universal ID is a shared, neutral identifier that publishers and ad tech platforms can use to recognise users even in environments where 3rd party cookies are not available. The ID5 Universal ID is designed to respect users' privacy choices and publishers’ preferences throughout the advertising value chain. For more information about the ID5 Universal ID and detailed integration docs, please visit [our documentation](https://wiki.id5.io/x/BIAZ). We also recommend that you sign up for our [release notes](https://id5.io/universal-id/release-notes) to stay up-to-date with any changes to the implementation of the ID5 Universal ID in Prebid. +The ID5 Universal ID is a shared, neutral identifier that publishers and ad tech platforms can use to recognise users even in environments where 3rd party cookies are not available. The ID5 Universal ID is designed to respect users' privacy choices and publishers’ preferences throughout the advertising value chain. For more information about the ID5 Universal ID and detailed integration docs, please visit [our documentation](https://support.id5.io/portal/en/kb/articles/prebid-js-user-id-module). We also recommend that you sign up for our [release notes](https://id5.io/universal-id/release-notes) to stay up-to-date with any changes to the implementation of the ID5 Universal ID in Prebid. #### ID5 Universal ID Registration @@ -384,13 +710,13 @@ The following configuration parameters are available: | name | Required | String | The name of this module: `"id5Id"` | `"id5Id"` | | params | Required | Object | Details for the ID5 Universal ID. | | | params.partner | Required | Number | This is the ID5 Partner Number obtained from registering with ID5. | `173` | -| params.pd | Optional | String | Publisher-supplied data used for linking ID5 IDs across domains. See [our documentation](https://wiki.id5.io/x/BIAZ) for details on generating the string. Omit the parameter or leave as an empty string if no data to supply | `"MT1iNTBjY..."` | +| params.pd | Optional | String | Partner-supplied data used for linking ID5 IDs across domains. See [our documentation](https://support.id5.io/portal/en/kb/articles/passing-partner-data-to-id5) for details on generating the string. Omit the parameter or leave as an empty string if no data to supply | `"MT1iNTBjY..."` | | params.abTesting | Optional | Object | Allows publishers to easily run an A/B Test. If enabled and the user is in the Control Group, the ID5 ID will NOT be exposed to bid adapters for that request | Disabled by default | | params.abTesting.enabled | Optional | Boolean | Set this to `true` to turn on this feature | `true` or `false` | | params.abTesting.controlGroupPct | Optional | Number | Must be a number between `0.0` and `1.0` (inclusive) and is used to determine the percentage of requests that fall into the control group (and thus not exposing the ID5 ID). For example, a value of `0.20` will result in 20% of requests without an ID5 ID and 80% with an ID. | `0.1` | {: .alert.alert-info :} -**NOTE:** The ID5 Universal ID that is delivered to Prebid will be encrypted by ID5 with a rotating key to avoid unauthorized usage and to enforce privacy requirements. Therefore, we strongly recommend setting `storage.refreshInSeconds` to `8` hours (`8*3600` seconds) to ensure all demand partners receive an ID that has been encrypted with the latest key, has up-to-date privacy signals, and allows them to transact against it. +**NOTE:** The ID5 Universal ID that is delivered to Prebid is encrypted by ID5 with a rotating key to enforce privacy requirements and avoid unauthorized usage. Therefore, we strongly recommend setting `storage.refreshInSeconds` to `8` hours (`8*3600` seconds) to ensure all demand partners receive an ID that has been encrypted with the latest key, has up-to-date privacy signals, and allows them to transact against it. ##### A Note on A/B Testing @@ -412,7 +738,7 @@ pbjs.setConfig({ name: 'id5Id', params: { partner: 173, // change to the Partner Number you received from ID5 - pd: 'MT1iNTBjY...', // optional, see table below for a link to how to generate this + pd: 'MT1iNTBjY...', // optional, see table above for a link to how to generate this abTesting: { // optional enabled: true, // false by default controlGroupPct: 0.1 // valid values are 0.0 - 1.0 (inclusive) @@ -430,128 +756,111 @@ pbjs.setConfig({ }); {% endhighlight %} -### IdentityLink +### IDx -IdentityLink, provided by [LiveRamp](https://liveramp.com) is a single person-based identifier which allows marketers, platforms and publishers to perform personalized segmentation, targeting and measurement use cases that require a consistent, cross-channel view of the user in anonymous spaces. +IDx, a universal ID solution provided by [Retargetly](https://retargetly.com), is the evolution of digital identifiers for the Latin American region. Through a proprietary identity graph, it allows publishers, advertisers, and ad tech platforms to recognize users across domains and devices even where third party cookies aren't available. + +The IDx platform is designed with privacy at its core and allows for nearly every conceivable digital use case including but not limited to audience targeting, retargeting, frequency management, personalization, and total reach reporting. Add it to your Prebid.js package with: {: .alert.alert-info :} -gulp build --modules=identityLinkIdSystem +gulp build --modules=idxIdSystem -#### IdentityLink Registration +#### IDx Registration -Please reach out to [prebid@liveramp.com](mailto:prebid@liveramp.com) and request your `placementId`. +If you are a publisher or an advertiser, then IDx is free to use but requires a simple registration process. To do this, please send an email to [idx-partners@retargetly.com](mailto:idx-partners@retargetly.com) to request your IDx Partner ID. -The IdentityLink privacy policy is at [https://liveramp.com/privacy/service-privacy-policy/](https://liveramp.com/privacy/service-privacy-policy/). +We may ask for some basic information from you before approving your request. For more information on IDx, please visit [retargetly.com/idx](http://retargetly.com/idx). -#### IdentityLink Configuration +#### IDx Configuration {: .table .table-bordered .table-striped } | Param under userSync.userIds[] | Scope | Type | Description | Example | | --- | --- | --- | --- | --- | -| name | Required | String | `"identityLink"` | `"identityLink"` | -| params | Required for Id Link | Object | Details for identityLink initialization. | | -| params.pid | This parameter is required for IdentityLink | String | This is the placementId, value needed for obtaining user’s IdentityLink envelope - - -#### IdentityLink Examples - -1) Publisher passes a placement ID and elects to store the IdentityLink envelope in a cookie. - - -{% highlight javascript %} -pbjs.setConfig({ - userSync: { - userIds: [{ - name: "identityLink", - params: { - pid: '999' // Set your real identityLink placement ID here - }, - storage: { - type: "cookie", - name: "idl_env", // create a cookie with this name - expires: 30 // cookie can last for 30 days - } - }], - syncDelay: 3000 // 3 seconds after the first auction - } -}); -{% endhighlight %} +| name | Required | String | `"idx"` | `"idx"` | -2) Publisher passes a placement ID and elects to store the IdentityLink envelope in HTML5 localStorage. +#### IDx Example {% highlight javascript %} pbjs.setConfig({ userSync: { userIds: [{ - name: "identityLink", - params: { - pid: '999' // Set your real identityLink placement ID here - }, - storage: { - type: "html5", - name: "idl_env", // set localstorage with this name - expires: 30 - } - }], - syncDelay: 3000 + name: "idx" + }] } }); {% endhighlight %} -### IDx +### IM-UID by Intimate Merger -IDx, a universal ID solution provided by [Retargetly](https://retargetly.com), is the evolution of digital identifiers for the Latin American region. Through a proprietary identity graph, it allows publishers, advertisers, and ad tech platforms to recognize users across domains and devices even where third party cookies aren't available. - -The IDx platform is designed with privacy at its core and allows for nearly every conceivable digital use case including but not limited to audience targeting, retargeting, frequency management, personalization, and total reach reporting. +IM-UID, provided by [Intimate Merger](https://corp.intimatemerger.com/), is a universal identifier that designed for publishers, platforms and advertisers to perform segmentation and targeting even in environments where 3rd party cookies are not available. IM-UID is currently only available in Japan. Add it to your Prebid.js package with: {: .alert.alert-info :} -gulp build --modules=idxIdSystem +gulp build --modules=imuIdSystem -#### IDx Registration +#### IM-UID Registration -If you are a publisher or an advertiser, then IDx is free to use but requires a simple registration process. To do this, please send an email to [idx-partners@retargetly.com](mailto:idx-partners@retargetly.com) to request your IDx Partner ID. +Please visit [https://lp.intimatemerger.com/im-uid](https://lp.intimatemerger.com/im-uid) and request your Customer ID to get started. -We may ask for some basic information from you before approving your request. For more information on IDx, please visit [retargetly.com/idx](http://retargetly.com/idx). +The Intimate Merger privacy policy is at https://corp.intimatemerger.com/privacypolicy/ -#### IDx Configuration +#### IM-UID Configuration {: .table .table-bordered .table-striped } | Param under userSync.userIds[] | Scope | Type | Description | Example | | --- | --- | --- | --- | --- | -| name | Required | String | `"idx"` | `"idx"` | +| name | Required | String | The name of this module. | `"imuid"` | +| params | Required | Object | Details of module params. | | +| params.cid | Required | Number | This is the Customer ID value obtained via Intimate Merger. | `5126` | +| params.url | Optional | String | Use this to change the default endpoint URL. | `"https://example.com/some/api"` | -#### IDx Example +#### IM-UID Example {% highlight javascript %} pbjs.setConfig({ userSync: { userIds: [{ - name: "idx" + name: "imuid", + params: { + cid: 5126 // Set your Intimate Merger Customer ID here for production + } }] } }); {% endhighlight %} -### IntentIQ ID +### Intent IQ ID + +Intent IQ’s universal ID with its unparalleled coverage of over 80% of ad inventory, protects publishers’ ability to rely on advertising as their main revenue source while preserving user privacy in a third party cookieless world. + +The universal ID is an Intent IQ generated alphanumeric characters ID representing a person. This ID is not matched with personal information and remains anonymous to Intent IQ. + +Intent IQ universal ID enables partners - publishers, SSPs, DSPs, DMPs and advertisers to support, in a privacy-friendly way, and on a person level, core elements of the advertising business model - + +- Targeting across sites and devices +- Frequency capping +- Attribution measurement across sites and devices + +Intent IQ's universal ID works across IP addresses and user-agent changes. + +Intent IQ's universal ID truly stands out in the coverage and accuracy it provides. Intent IQ's universal ID covers over 80% of ad inventory with 90% accuracy. By contrast, third-party cookies offer 56% coverage and log-in solutions offer coverage of less than 20%. -The IntentIQ ID solution is provided by intentiq.com. Add it to your Prebid.js package with: {: .alert.alert-info :} gulp build --modules=intentIqIdSystem -#### IntentIQ ID Registration +#### Intent IQ ID Registration -You can set up IntentIQ ID by contacting our operations team at [IntentIQ Contact Us] (https://www.intentiq.com/contact-us) and getting your partner id. +You can set up Intent IQ ID by contacting our operations team at [Intent IQ Contact Us](https://www.intentiq.com/contact-us) and getting your partner id. -The IntentIQ ID privacy is covered under the [IntentIQ Privacy Policy](https://www.intentiq.com/technology-privacy-policy). +The Intent IQ ID privacy is covered under the [Intent IQ Privacy Policy](https://www.intentiq.com/technology-privacy-policy). -#### IntentIQ ID Configuration +#### Intent IQ ID Configuration {: .table .table-bordered .table-striped } | Param under userSync.userIds[] | Scope | Type | Description | Example | @@ -562,9 +871,12 @@ The IntentIQ ID privacy is covered under the [IntentIQ Privacy Policy](https://w | params.pcid | Optional | String | This is the partner cookie ID, it is a dynamic value attached to the request. | `"g3hC52b"` | | params.pai | Optional | String | This is the partner customer ID / advertiser ID, it is a dynamic value attached to the request. | `"advertiser1"` | -#### IntentIQ ID Examples +{: .alert.alert-info :} +**NOTE:** The Intent IQ ID is encrypted with a key that changes every several hours. Demand partners utilize the latest key to decrypt the ID and use it. Therefore, to enable demand partners have an ID they can use, we highly recommend calling Intent IQ every 4 hours by setting storage.refreshInSeconds to 4 hours (4*3600 seconds) + +#### Intent IQ ID Examples -1) Publisher has a partner ID from IntentIQ and cookies. +1) Publisher has a partner ID from Intent IQ and cookies. {: .alert.alert-warning :} {% highlight javascript %} @@ -573,20 +885,21 @@ pbjs.setConfig({ userIds: [{ name: "intentIqId", params: { - parnter: 123456 // valid partner id + partner: 123456 // valid partner id }, storage: { type: "cookie", - name: "intentIqId", // create a cookie with this name - expires: 60 // cookie can last for 60 days - } + name: "intentIqId", // create a cookie with this name + expires: 60, // cookie can last for 60 days + refreshInSeconds: 4*3600 // refresh ID every 4 hours to ensure it's fresh +} }], syncDelay: 3000 // 3 seconds after the first auction } }); {% endhighlight %} -2) Publisher supports IntentIQ and HTML5 local storage. +2) Publisher supports Intent IQ and HTML5 local storage. {% highlight javascript %} pbjs.setConfig({ @@ -594,12 +907,13 @@ pbjs.setConfig({ userIds: [{ name: "intentIqId", params: { - parnter: 123456 // valid partner id + partner: 123456 // valid partner id }, storage: { type: "html5", - name: "intentIqId", // set localstorage with this name - expires: 60 + name: "intentIqId", // set localstorage with this name + expires: 60, + refreshInSeconds: 4*3600 // refresh ID every 4 hours to ensure it's fresh } }], syncDelay: 3000 @@ -616,9 +930,9 @@ pbjs.setConfig({ userIds: [{ name: "intentIqId", params: { - parnter: 123456 // valid partner id - pcid: PCID_VARIABLE // string value, dynamically loaded into a variable before setting the configuration - pai: PAI_VARIABLE // string value, dynamically loaded into a variable before setting the configuration + partner: 123456 // valid partner id + pcid: PCID_VARIABLE // string value, dynamically loaded into a variable before setting the configuration + pai: PAI_VARIABLE // string value, dynamically loaded into a variable before setting the configuration }, storage: { type: "html5", @@ -631,6 +945,41 @@ pbjs.setConfig({ }); {% endhighlight %} +### Kinesso ID + +Kinesso ID solution is a new approach to persistent cross domain authentication. + +#### How it works + +The Kinesso identity solution creates a persistent cross domain authenticated user id that is then used to link users with their interest signals (commonly known as segments). The Kinesso user ID (knsso) is never broadcast into the bid stream. Instead it is sent to a server side data store, merged with accompanying data from the Prebid Id Library and shipped to Kinesso. All data is encrypted at rest and in transit so your identifiers are never stored or transmitted in an insecure manner. + +The Kinesso ID sub adapter sets two cookies, one as a third party cookie and the other as a first party cookie in the publisher's domain. These cookies are merged with the user's hashed email address (when present) server side and sent to Kinesso. The combined output looks like this: + +{: .table .table-bordered .table-striped } +| kpuid | knsso | hid | account_id | created on | +| --- | --- | --- | --- | --- | +| `` | `` | `` | `` | `` | + +Kinesso will then attach these users to deals ids that they will target in the ORTB bid stream by brands and agencies represented by IPG. + +Add it to your Prebid.js package with: + +{: .alert.alert-info :} +gulp build --modules=kinessoIdSystem + +#### Kinesso ID Registration + +You can set up Kinesso ID sub adapter by contacting Kinesso at prebid@kinesso.com + +The Kinesso ID privacy policy is covered under the [Kinesso Privacy Notice](https://kinesso.com/privacy-policy/). Please note, at present the Kinesso ID module is not meant for use inside the EEA. + +{: .table .table-bordered .table-striped } +| Param under userSync.userIds[] | Scope | Type | Description | Example | +| --- | --- | --- | --- | --- | +| name | Required | String | The name of this module. | `'kinessoId'` | +| params | Required | Object | Details for KinessoId initialization | | +| params.accountid | Required | Int | Your SSP Account Id | 123 | + ### LiveIntent nonID LiveIntent offers audience resolution by leveraging our next-generation identity solutions. The LiveIntent identity graph is built around a people-based set of data that is authenticated daily through active engagements with email newsletters and media across the web. The LiveIntent nonID is a user identifier tied to an active, encrypted email in our graph and functions in cookie-challenged environments and browsers. @@ -775,9 +1124,9 @@ pbjs.setConfig({ ### Lotame Panorama ID -Lotame Panorama is a suite of data-enrichment solutions for digital advertising that empowers marketers, agencies, publishers and media companies to transform consumer personas into addressable audiences. At the heart of Lotame Panorama is the Panorama ID, a people-based identifier powered by deterministic and probabilistic data, available across the cookie-challenged web and all browsers. +[Lotame Panorama](https://www.lotame.com/panorama/) is a suite of data-enrichment solutions for digital advertising that empowers marketers, agencies, publishers and media companies to transform consumer personas into addressable audiences. At the heart of Lotame Panorama is the [Panorama ID](https://www.lotame.com/panorama/id/), a people-based identifier powered by deterministic and probabilistic data, available across the cookie-challenged web and all browsers. -The Lotame privacy policy is at [https://www.lotame.com/about-lotame/privacy/](https://www.lotame.com/about-lotame/privacy/). +The Lotame privacy policy is at [https://www.lotame.com/about-lotame/privacy/](https://www.lotame.com/about-lotame/privacy/). If you have any questions about Panorama ID, please reach out by emailing [prebid@lotame.com](mailto:prebid@lotame.com). Add it to your Prebid.js package with: @@ -791,17 +1140,60 @@ The Lotame Panorama ID module does not require any configuration parameters. It {: .alert.alert-info :} NOTE: For optimal performance, the Lotame Panorama Id module should be called at every opportunity. It is best not to use `params.storage` with this module as the module has its own optimal caching mechanism. -#### Lotame Panorama ID Example +#### Lotame Panorama ID Example + +{% highlight javascript %} +pbjs.setConfig({ + userSync: { + userIds: [{ + name: "lotamePanoramaId", + }] + } +}); +{% endhighlight %} + +### MediaWallah OpenLinkID + +MediaWallah's openLink is an anonymous person based ID that enables buyers and sellers of media to connect a person and their devices across the web and mobile apps. openLink facilities the buying of media between DSPs, SSPs and publishers. + +Add support for MediaWallah OpenLinkID to your Prebid.js package with: + +{: .alert.alert-info :} +gulp build --modules=userId,mwOpenLinkIdSystem + +#### MediaWallah OpenLinkID Registration + +MediaWallah requires the creation of an accountId a partnerId in order to take advantage of openLink. Please contact your partner resource to get these Ids provisioned. + +#### MediaWallah OpenLinkID Configuration + +
    +| Param under userSync.userIds[] | Scope | Type | Description | Example | +| --- | --- | --- | --- | --- | +| name | Required | String | The name of this module. | `'mwOpenLinkId'` | +| params | Required | Object | Details for mwOLID syncing. || +| params.accountId | Required | String | The MediaWallah assigned Account Id | `1000` | +| params.partnerId | Required | String | The MediaWallah assign partner Id |`'1001'`| +| params.uid | Optional | String | Your unique Id for the user or browser. Used for matching. | `'u-123xyz'` | +{: .table .table-bordered .table-striped } +
    -{% highlight javascript %} +#### MediaWallah OpenLinkID Examples + +``` pbjs.setConfig({ userSync: { userIds: [{ - name: "lotamePanoramaId", + name: 'mwOpenLinkId', + params: { + accountId: '1000', + partnerId: '1001', + uid: 'u-123xyz' + } }] } -}); -{% endhighlight %} +}) +``` ### Merkle ID @@ -817,8 +1209,10 @@ pbjs.setConfig({ userIds: [{ name: 'merkleId', params: { - ptk: 'example', - pubid: 'EXAMPLE' + vendor:'example_vendor', + sv_cid:'example_cid', + sv_pubid:'example_pubid', + sv_domain:'example.com' }, storage: { type: 'html5', @@ -830,6 +1224,24 @@ pbjs.setConfig({ }); {% endhighlight %} +### Navegg ID + +[Navegg](https://www.navegg.com) enables publishers, advertisers and agencies to use their own first party data together to activate media in a cookie-less way across several Ad Tech platforms. Navegg has one of the largest data networks in Latin America which also allows the enhancement of data with unique categories. + +#### Navegg ID Examples + +Publisher stores NaveggId in local storage and/or 1st party cookies + +{% highlight javascript %} +pbjs.setConfig({ + userSync: { + userIds: [{ + name: 'naveggId' + }] + } +}); +{% endhighlight %} + ### netID The [European netID Foundation (EnID)](https://developerzone.netid.de/index.html) aims to establish with the netID an independent European alternative in the digital market for Demand and Supply side. With the netID Single-Sign-On, the EnID established an open standard for consumer logins for services of Buyers and Brands, that also includes user-centric consent management capabilities that results in a standardized, EU-GDPR compliant, IAB TCF aware, cross-device enabled Advertising Identifier, which can be leveraged by publishers and advertisers (and vendors supporting them) to efficiently deliver targeted advertising through programmatic systems to already more than 38 million Europeans on mobile and desktop devices. @@ -853,6 +1265,36 @@ pbjs.setConfig({ }); {% endhighlight %} +### NextRoll ID + +NextRoll is an industry-leading marketing technology and data stack that fuels growth for businesses of all kinds. Our technology powers two multi-million dollar high-growth businesses: AdRoll and RollWorks. The NextRoll ID is a cookieless identifier built from NextRoll’s proprietary identity graph. Publishers, ad tech platforms, and NextRoll’s brands (AdRoll and RollWorks) leverage the NextRoll ID to access unique demand in cookieless environments. The NextRoll ID respects user privacy preferences and enables users to opt out through multiple web based mechanisms found in [Section 8 of NextRoll’s Privacy Policy](https://nextroll.com/privacy#service-8). + +#### NextRoll ID Registration + +To sign up for a Partner ID please contact your NextRoll representative or send an email to [publishers@nextroll.com](mailto:publishers@nextroll.com). + +#### NextRoll ID Configuration + +Add it to your Prebid.js package with: + +{: .alert.alert-info :} +gulp build --modules=nextrollIdSystem + +Enable the module in configuration, with your Partner ID: + +{% highlight javascript %} +pbjs.setConfig({ + userSync: { + userIds: [{ + name: "nextrollId", + params: { + partnerId: 'YOUR_PARTNER_ID' + } + }] + } +}); +{% endhighlight %} + ### Novatiq Snowflake ID Novatiq proprietary dynamic snowflake ID is a unique, non sequential and single use identifier for marketing activation. Our in network solution matches verification requests to telco network IDs, safely and securely inside telecom infrastructure. Novatiq snowflake ID can be used for identity validation and as a secured 1st party data delivery mechanism. @@ -962,36 +1404,157 @@ pbjs.setConfig({ }); {% endhighlight %} -### PubCommon ID +### Publisher Link +Publisher Link, provided by [Epsilon](https://www.epsilon.com/us), is a cross-device identity solution that activates publisher first-party, authenticated +data to improve audience identification and increase bid opportunities, specifically designed for sites with authenticated +traffic. Publisher first-party authenticated data and a user's unique encrypted ID is linked to an existing people-based +Epsilon CORE ID. By utilizing Publisher Link, publishers are able to reap the benefits of Epsilon's CORE ID. + +#### Publisher Link Registration +Please contact [Epsilon](mailto:PublisherSupport@Epsilon.com) to sign up. + +The Epsilon privacy is covered in the [Epsilon Privacy Policy](https://www.epsilon.com/us/privacy-policy). + +The Publisher Link opt-out is included [here](https://www.epsilon.com/privacy/dms/opt-out/email) + +#### Publisher Link Configuration + +In addition to the parameters documented above in the Basic Configuration section the following Publisher Link specific configuration is available: + +{: .table .table-bordered .table-striped } +| Param under userSync.userIds[] | Scope | Type | Description | Example | +| --- | --- | --- | --- | --- | +| name | Required | String | The name of this module. | `'publinkId'` | +| params | Required | Object | Customized parameters. | | +| params.e | Required | String | Hashed email address of the user. Supports MD5 and SHA256. | `'7D320454942620664D96EF78ED4E3A2A'` | +| params.site_id | Required | String | Site ID provided by Epsilon. | `'123456'` | +| params.api_key | Required | String | API key provided by Epsilon. | `'7ab62359-bdc0-4095-b573-ef474fb55d2'` + +#### Publisher Link Examples +```javascript + pbjs.setConfig({ + userSync: { + userIds: [{ + name: "publinkId", + storage: { + name: "pbjs_publink", + type: "cookie", + expires: 30 + }, + params: { + e: "7D320454942620664D96EF78ED4E3A2A", // example hashed email (md5) + site_id: "123456", + api_key: "7ab62359-bdc0-4095-b573-ef474fb55d2" + } + }] + } + }); +``` + +### RampID + +RampID, formerly known as IdentityLink, provided by [LiveRamp](https://liveramp.com) is a single person-based identifier which allows marketers, platforms and publishers to perform personalized segmentation, targeting and measurement use cases that require a consistent, cross-channel view of the user in anonymous spaces. + +Add it to your Prebid.js package with: + +{: .alert.alert-info :} +gulp build --modules=identityLinkIdSystem + +#### RampID Registration + +Please sign up through our [Console](https://launch.liveramp.com) platform and request a `placementId`. + +The RampID privacy policy is at [https://liveramp.com/privacy/service-privacy-policy/](https://liveramp.com/privacy/service-privacy-policy/). + +#### RampID Configuration + +{: .table .table-bordered .table-striped } +| Param under userSync.userIds[] | Scope | Type | Description | Example | +| --- | --- | --- | --- | --- | +| name | Required | String | `"identityLink"` | `"identityLink"` | +| params | Required for Id Link | Object | Details for RampID initialization. | | +| params.pid | This parameter is required for RampID | String | This is the placementId, value needed for obtaining user’s RampID envelope +| params.notUse3P | This parameter is not required for RampID | Boolean | Property for choosing should 3P Liveramp envelope endpoint be fired or not, in order to get RampID envelope + +#### RampID Examples + +1) Publisher passes a placement ID and elects to store the RampID envelope in a cookie. + + +{% highlight javascript %} +pbjs.setConfig({ + userSync: { + userIds: [{ + name: "identityLink", + params: { + pid: '999', // Set your real RampID placement ID here + // notUse3P: true/false // If you do not want to use 3P endpoint to retrieve the envelope. If you do not set this property to true, 3P endpoint will be fired. By default this property is undefined and 3P request will be fired. + }, + storage: { + type: "cookie", + name: "idl_env", // create a cookie with this name + expires: 30 // cookie can last for 30 days + } + }], + syncDelay: 3000 // 3 seconds after the first auction + } +}); +{% endhighlight %} + +2) Publisher passes a placement ID and elects to store the RampID envelope in HTML5 localStorage. + +{% highlight javascript %} +pbjs.setConfig({ + userSync: { + userIds: [{ + name: "identityLink", + params: { + pid: '999', // Set your real RampID placement ID here + // notUse3P: true/false // If you do not want to use 3P endpoint to retrieve the envelope. If you do not set this property to true, 3P endpoint will be fired. By default this property is undefined and 3P request will be fired. + }, + storage: { + type: "html5", + name: "idl_env", // set localstorage with this name + expires: 30 + } + }], + syncDelay: 3000 + } +}); +{% endhighlight %} + +### SharedID -This module stores an unique user id in the first party domain and makes it accessible to all adapters. Similar to IDFA and AAID, this is a simple UUID that can be utilized to improve user matching, especially for iOS and MacOS browsers, and is compatible with ITP (Intelligent Tracking Prevention). It’s lightweight and self contained. Adapters that support Publisher Common ID will be able to pick up the user ID and return it for additional server-side cross device tracking. +This module stores an unique user id in the first party domain and makes it accessible to all adapters. Similar to IDFA and AAID, this is a simple UUID that can be utilized to improve user matching, especially for iOS and MacOS browsers, and is compatible with ITP (Intelligent Tracking Prevention). It’s lightweight and self contained. Adapters that support SharedId will be able to pick up the user ID and return it for additional server-side cross device tracking. -There is no special registration or configuration for PubCommon ID. Each publisher's privacy policy should take -PubCommon ID into account. +There is no special registration or configuration for SharedID. Each publisher's privacy policy should take +SharedID into account. Prebid recommends implementing a method where users can easily opt-out of targeted advertising. Please refer to the User Opt-Out section located at the bottom of this page. For more information check out Prebid's dedicated [identity page](/identity/sharedid.html) Add it to your Prebid.js package with: {: .alert.alert-info :} gulp build --modules=pubCommonIdSystem -#### PubCommon ID Configuration +#### SharedID ID Configuration -In addition to the parameters documented above in the Basic Configuration section the following PubCommon specific configuration is available: +In addition to the parameters documented above in the Basic Configuration section the following SharedID specific configuration is available: {: .table .table-bordered .table-striped } | Param under userSync.userIds[] | Scope | Type | Description | Example | | --- | --- | --- | --- | --- | | name | Required | String | The name of this module. | `'pubCommonId'` | | params | Optional | Object | Customized parameters | | -| params.create | Optional | Boolean | For publisher server support only. If true, the publisher's server will create the PubCommon ID cookie. Default is true. | `true` | -| params.pixelUrl | Optional | String | For publisher server support only. This is a URL of a pixel for updating cookies' expiration times. Fired after a new ID has been created or an existing ID is being extended. No default. | `'https://example.com/ping'` +| params.create | Optional | Boolean | For publisher server support only. If true, the publisher's server will create the (pubcid) cookie. Default is true. | `true` | +| params.pixelUrl | Optional | String | For publisher server support only. Where to call out to for a server cookie -- see [Prebid Identity](/identity/sharedid.html) for more information. | `/wp-json/pubcid/v1/extend/` | params.extend | Optional | Boolean | If true, the expiration time of the stored IDs will be refreshed during each page load. Default is false. | `false` | -| params.enableSharedId | Optional | Boolean | Invokes [SharedID](/dev-docs/modules/userId.html#shared-id-user-id-submodule) as well as setting PubCommon ID. Defaults to `false` | `true` | - +| storage | Required | Object | The publisher must specify some kind of local storage in which to store the results of the call to get the user ID. This can be either cookie or HTML5 storage. | +| storage.expires | Integer | Required | How long the user ID information will be stored. | `365` | +| storage.name | String | Required | The name of the cookie or html5 local storage where the user ID will be stored. | `_pubcid` +| storage.type | String | Required | This is where the results of the user ID will be stored. Must be either: Must be either: "cookie" or "html5". For server side implementations, which have the best identifier life and revenue impact, this must be a cookie. | `cookie` -#### PubCommon ID Examples +#### SharedID Examples -1) Publisher supports PubCommonID and first party domain cookie storage +1) Publisher supports SharedID and first party domain cookie storage {% highlight javascript %} pbjs.setConfig({ @@ -1000,7 +1563,7 @@ pbjs.setConfig({ name: "pubCommonId", storage: { type: "cookie", - name: "_pubcid", // create a cookie with this name + name: `"_pubcid"`, // create a cookie with this name expires: 365 // expires in 1 years } }] @@ -1008,7 +1571,7 @@ pbjs.setConfig({ }); {% endhighlight %} -2) Publisher supports both UnifiedID and PubCommonID and first party domain cookie storage +2) Publisher supports both UnifiedID and SharedID and first party domain cookie storage {% highlight javascript %} pbjs.setConfig({ @@ -1026,11 +1589,11 @@ pbjs.setConfig({ },{ name: "pubCommonId", params: { - enableSharedId: true // optionally enable Prebid sharedID + pixelUrl: "/wp-json/pubcid/v1/extend/" }, storage: { type: "cookie", - name: "_pubcid", // create a cookie with this name + name: `"_pubcid"`, // create a cookie with this name expires: 180 } }], @@ -1039,9 +1602,25 @@ pbjs.setConfig({ }); {% endhighlight %} -{: .alert.alert-info :} -When enableSharedId is true, the browser will make an additional call to id.sharedid.org/usync. Calling to Shareid.org sets a user id in a 3rd party cookie under the sharedid.org domain. Anyone setting this additional identity should reference Sharedid.orgs optout policy at https://sharedid.org/. Prebid.js 5.0 will enable the enableSharedId option by default. +3) Publisher supports SharedID and first party domain cookie storage initiated by a first party server +{% highlight javascript %} +pbjs.setConfig({ + userSync: { + userIds: [{ + name: "pubCommonId", + params: { + pixelUrl: "/wp-json/pubcid/v1/extend/" //pixelUrl should be specified when the server plugin is used + }, + storage: { + type: "cookie", + name: `"_pubcid"`, // create a cookie with this name + expires: 365 // expires in 1 years + } + }] + } +}); +{% endhighlight %} ### PubProvided ID @@ -1067,27 +1646,27 @@ Or, the eids values can be passed directly into the `setConfig` call: pbjs.setConfig({ userSync: { userIds: [{ - name: "example.com", + name: "pubProvidedId", params: { eids: [{ source: "domain.com", - uids:[{ - id: "value read from cookie or local storage", - atype: 1, - ext: { - stype: "ppuid" - } - - }] - },{ + uids: [{ + id: "value read from cookie or local storage", + atype: 1, + ext: { + stype: "ppuid" + } + + }] + }, { source: "3rdpartyprovided.com", - uids:[{ - id: "value read from cookie or local storage", - atype: 3, - ext: { - stype: "dmp" - } - }] + uids: [{ + id: "value read from cookie or local storage", + atype: 3, + ext: { + stype: "dmp" + } + }] }] } }] @@ -1105,7 +1684,7 @@ In either case, bid adapters will receive the eid values after consent is valida - dmp - this uid comes from the in-page dmp named in eids.source - ppuid - this uid comes from the publisher named in eids.source -- other - for setting other id origin signals please use the [adCOM!](https://github.com/InteractiveAdvertisingBureau/AdCOM/blob/master/AdCOM%20v1.0%20FINAL.md#object--extended-identifier-uids-) `atype` spec +- other - for setting other id origin signals please use the [adCOM!](https://github.com/InteractiveAdvertisingBureau/AdCOM/blob/master/AdCOM%20v1.0%20FINAL.md#object--extended-identifier-uids-) `atype` spec 5. Bid adapters listening for "userIds.pubProvidedId" will not receive a string, please use the userIdAsEids value/function to return the userid as a string. @@ -1128,25 +1707,32 @@ gulp build --modules=pubProvidedId ### Quantcast ID -Quantcast ID enables publishers that use Quantcast Measure tag to uniquely identify -their clients within Quantcast's extensive publisher network without relying on third party -cookies. The Quantcast User ID submodule makes the existing Quantcast first party -cookie available in the bid request. The first party cookie allows Quantcast to correlate -the bid request with Quantcast's Measure dataset. - -Currently, Quantcast ID only works with the presence of Quantcast Measure tag. More information -about Measure can be found in https://www.quantcast.com/measure. - -The Quantcast privacy policy is at https://www.quantcast.com/privacy/. +The Prebid Quantcast ID module stores a Quantcast ID in a first party cookie. The ID is then made available in the bid request. The ID from the cookie added in the bidstream allows Quantcast to more accurately bid on publisher inventories without third party cookies, which can result in better monetization across publisher sites from Quantcast. And, it’s free to use! For easier integration, you can work with one of our SSP partners, like PubMatic, who can facilitate the legal process as well as the software integration for you. Add it to your Prebid.js package with: {: .alert.alert-info :} gulp build --modules=userId,quantcastIdSystem +Quantcast’s privacy policies for the services rendered can be found at + https://www.quantcast.com/privacy/ + +Publishers deploying the module are responsible for ensuring legally required notices and choices for users. + +The Quantcast ID module will only perform any action and return an ID in situations where: +1. the publisher has not set a ‘coppa' flag on the prebid configuration on their site (see [pbjs.setConfig.coppa](https://docs.prebid.org/dev-docs/publisher-api-reference/setConfig.html#setConfig-coppa)) +2. there is not a IAB us-privacy string indicating the digital property has provided user notice and the user has made a choice to opt out of sale +3. if GDPR applies, an IAB TCF v2 string exists indicating that Quantcast does not have consent for purpose 1 (cookies, device identifiers, or other information can be stored or accessed on your device for the purposes presented to you), or an established legal basis (by default legitimate interest) for purpose 10 (your data can be used to improve existing systems and software, and to develop new products). + #### Quantcast ID Configuration -Quantcast ID module does not require any configuration parameters at this time. +{: .table .table-bordered .table-striped } +| Param under userSync.userIds[] | Scope | Type | Description | Example | +| --- | --- | --- | --- | --- | +| name | Required | String | `"quantcastId"` | `"quantcastId"` | +| params | Optional | Object | Details for Quantcast initialization. | | +| params.ClientID | Optional | String | Optional parameter for Quantcast prebid managed service partners. The parameter is not required for websites with Quantcast Measure tag. Reach out to Quantcast for ClientID if you are not an existing Quantcast prebid managed service partner: quantcast-idsupport@quantcast.com | | + #### Quantcast ID Example @@ -1154,13 +1740,14 @@ Quantcast ID module does not require any configuration parameters at this time. pbjs.setConfig({ userSync: { userIds: [{ - name: "quantcastId", + name: "quantcastId" }] } }); {% endhighlight %} + ### Tapad ID Tapad's ID module provides access to a universal identifier that publishers, ad tech platforms and advertisers can use for data collection and collation without reliance on third-party cookies. @@ -1206,52 +1793,6 @@ pbjs.setConfig({ }); {% endhighlight %} - - -### Shared ID User ID Submodule - -The Shared ID User Module generates a UUID that can be utilized to improve user matching. This module enables timely synchronization and handles opt-out via sharedId.org. This module does not require any registration. - -#### Building Prebid with Shared Id Support -Add it to your Prebid.js package with: - -{: .alert.alert-info :} -ex: $ gulp build --modules=sharedIdSystem - -#### Prebid Params - -Individual params may be set for the Shared ID User ID Submodule. -``` -pbjs.setConfig({ - userSync: { - userIds: [{ - name: 'sharedId', - params: { - syncTime: 60 // in seconds, default is 24 hours - }, - storage: { - name: 'sharedid', - type: 'cookie', - expires: 28 - }, - }] - } -}); -``` - -#### SharedId Configuration - -{: .table .table-bordered .table-striped } -| Params under usersync.userIds[]| Scope | Type | Description | Example | -| --- | --- | --- | --- | --- | -| name | Required | String | ID value for the Shared ID module - `"sharedId"` | `"sharedId"` | -| params | Optional | Object | Details for sharedId syncing. | | -| params.syncTime | Optional | Object | Configuration to define the frequency(in seconds) of id synchronization. By default id is synchronized every 24 hours | 60 | -| storage | Required | Object | The publisher must specify the local storage in which to store the results of the call to get the user ID. This can be either cookie or HTML5 storage. | | -| storage.type | Required | String | This is where the results of the user ID will be stored. The recommended method is `localStorage` by specifying `html5`. | `"html5"` | -| storage.name | Required | String | The name of the cookie or html5 local storage where the user ID will be stored. | `"sharedid"` | -| storage.expires | Optional | Integer | How long (in days) the user ID information will be stored. | `28` | - ### Unified ID The Unified ID solution is provided by adsrvr.org and the Trade Desk. @@ -1342,59 +1883,101 @@ pbjs.setConfig({ }); {% endhighlight %} -### Verizon Media ConnectID +### Unified ID 2.0 + +Unified ID 2 is an email based id solution that is owned and operated by the prebid community. Unified ID 2, relies on user consent before an id can be added to the bid stream. Consent can be gathered by SSO providers who have integrated against the UID 2 framework, or Publishers own login & consent mechaninism. + +Add it to your Prebid.js package with: + +{: .alert.alert-info :} +gulp build --modules=uid2IdSystem + +#### Unified ID Registration + +You can set up Unified ID 2 in one of these ways: + +- Include the module to your pb.js wrapper, no registration is required +- Utilize a [managed services](https://prebid.org/product-suite/managed-services/) company who can do this for you. + +Each publisher’s privacy policy should take UnifiedId 2 into account + +#### Unified ID 2 Configuration + +{: .table .table-bordered .table-striped } +The below parameters apply only to the UID 2.0 User ID Module integration. + +| Param under userSync.userIds[] | Scope | Type | Description | Example | +| --- | --- | --- | --- | --- | +| name | Required | String | ID value for the UID20 module - `"uid2"` | `"uid2"` | +| value | Optional | Object | Used only if the page has a separate mechanism for storing the UID 2.O ID. The value is an object containing the values to be sent to the adapters. In this scenario, no URL is called and nothing is added to local storage | `{"uid2": { "id": "eb33b0cb-8d35-4722-b9c0-1a31d4064888"}}` | + +#### Unified ID 2 Example + +Publisher has a integrated with an SSO provider that sets a cookie called __uid2_advertising_token when user consent is granted. + +{% highlight javascript %} +pbjs.setConfig({ + userSync: { + userIds: [{ + name: 'uid2' + }] + } +}); +{% endhighlight %} + -Verizon Media ConnectID is a person based ID and does not depend on 3rd party cookies. It enables ad tech platforms to recognize and match users consistently across the open web. Built on top of Verizon Media’s robust and proprietary ID Graph it delivers a higher find rate of audiences on publishers’ sites user targeting that respects privacy. +### Yahoo ConnectID -Verizon Media ConnectID honors privacy choices from the [Verizon Media Privacy Dashboard](https://www.verizonmedia.com/policies/us/en/verizonmedia/privacy/dashboard/index.html) as well as global privacy acts. +Yahoo ConnectID is a person based ID and does not depend on 3rd party cookies. It enables ad tech platforms to recognize and match users consistently across the open web. Built on top of Yahoo’s robust and proprietary ID Graph it delivers a higher find rate of audiences on publishers’ sites user targeting that respects privacy. -Add support for Verizon Media ConnectID to your Prebid.js package with: +Verizon Media ConnectID honors privacy choices from the [Yahoo Privacy Dashboard](https://legal.yahoo.com/us/en/yahoo/privacy/dashboard/index.html) as well as global privacy acts. + +Add support for Yahoo ConnectID to your Prebid.js package with: {: .alert.alert-info :} -gulp build --modules=userId,verizonMediaIdSystem +gulp build --modules=userId,connectIdSystem -#### Verizon Media ConnectID Registration +#### Yahoo ConnectID Registration -A Verizon Media supplied publisher specific pixel Id is required. Reach out to your account manager for assistance with setup. +A Yahoo supplied publisher specific pixel Id is required. Please reach out to your account manager for assistance with setup. -#### Verizon Media ConnectID Configuration +#### Yahoo ConnectID Configuration
    | Param under userSync.userIds[] | Scope | Type | Description | Example | | --- | --- | --- | --- | --- | -| name | Required | String | The name of this module. | `'verizonMediaId'` | +| name | Required | String | The name of this module. | `'connectId'` | | params | Required | Object | Container of all module params. || -| params.pixelId | Required | Number | The Verizon Media supplied publisher specific pixel Id | `8976` | +| params.pixelId | Required | Number | The Yahoo supplied publisher specific pixel Id | `8976` | | params.he | Required | String | The SHA-256 hashed user email address |`'ed8ddbf5a171981db8ef938596ca297d5e3f84bcc280041c5880dba3baf9c1d4'`| | storage | Required | Object | Defines where and for how long the results of the call to get a user ID will be stored. | | | storage.type | Required | String | Defines where the resolved user ID will be stored (either `'cookie'` or `'html5'` localstorage).| `'html5'` | -| storage.name | Required | String | The name of the cookie or html5 localstorage where the resolved user ID will be stored. | `'connectid'` | +| storage.name | Required | String | The name of the cookie or html5 localstorage where the resolved user ID will be stored. | `'connectId'` | | storage.expires | Recommended | Integer | How long (in days) the user ID information will be stored. The recommended value is `15` | `15` | {: .table .table-bordered .table-striped }
    -#### Verizon Media ConnectID Examples +#### Yahoo ConnectID Examples ``` pbjs.setConfig({ userSync: { userIds: [{ - name: "verizonMediaId", + name: "connectId", params: { pixelId: 8976, he: "ed8ddbf5a171981db8ef938596ca297d5e3f84bcc280041c5880dba3baf9c1d4" }, storage: { type: "html5", - name: "connectid", - expires: 1 + name: "connectId", + expires: 15 } }] } }) ``` - ## Adapters Supporting the User ID Sub-Modules {% assign bidder_pages = site.pages | where: "layout", "bidder" %} @@ -1414,158 +1997,56 @@ pbjs.setConfig({ Bidders that want to support the User ID module in Prebid.js, need to update their bidder adapter to read the indicated bidRequest attributes and pass them to their endpoint. -
    -| ID System Name | ID System Host | Prebid.js Attr | Example Value | -| --- | --- | --- | --- | --- | --- | -| BritePool ID | BritePool | bidRequest.userId.britepoolid | `"1111"` | -| CriteoID | Criteo | bidRequest.userId.criteoId | `"1111"` | -| Halo ID | Audigent | bidRequest.userId.haloId | `{"haloId":"user-halo-id", "auSeg":["segment1","segment2"]}` | -| ID+ | Zeotap | bidRequest.userId.IDP | `"1111"` | -| ID5 ID | ID5 | bidRequest.userId.id5id | `{ uid: "1111", ext: { linkType: 2, abTestingControlGroup: false } }` | -| IdentityLink | Trade Desk | bidRequest.userId.idl_env | `"1111"` | -| IntentIQ ID | IntentIQ | bidRequest.userId.intentiqid | `"1111"` | -| LiveIntent ID | Live Intent | bidRequest.userId.lipb.lipbid | `"1111"` | -| Lotame Panorama ID | Lotame | bidRequest.userId.lotamePanoramaId | `"e4b96a3d9a8e8761cef5656fb05f16d53938069f1684df4b2257e276e8b89a0e"` | -| merkleID | Merkle | bidRequest.userId.merkleId | `"1111"` | -| netID | netID | bidRequest.userId.netId | `"fH5A3n2O8_CZZyPoJVD-eabc6ECb7jhxCicsds7qSg"` | -| Parrable ID | Parrable | bidRequest.userId.parrableId | `{"eid":"01.1594654046.cd0972d861e98ff3723a368a6efa69287a0df3f1cac9142afc2e7aed1caa8dd1b7fc0590b3baf67525f53e1228024c2805b6041206c7a23e34bb823b0659547d7d1d0dac2a11938e867f"}` | -| PubCommon ID | n/a | bidRequest.userId.pubcid | `"1111"` | -| PubProvided ID | n/a | bidRequest.userId.pubProvidedId | `"1111"` | -| Quantcast ID | n/a | bidRequest.userId.quantcastId | `"1111"` | -| Tapad ID | Tapad | bidRequest.userId.tapadId | `"1111"` | -| Shared ID | SharedId | bidRequest.userId.sharedid | `{"id":"01EAJWWNEPN3CYMM5N8M5VXY22","third":"01EAJWWNEPN3CYMM5N8M5VXY22"}` | -| Unified ID | Trade Desk | bidRequest.userId.tdid | `"1111"` | -| Verizon Media ConnectID | Verizon Media | bidRequest.userId.connectid | `"72d04af6e07c2eb93e9c584a131f48b6a9b963bcb2736d624e987ff8cf36d472"` | {: .table .table-bordered .table-striped } -
    +| ID System Name | ID System Host | Prebid.js Attr: bidRequest.userId. | EID Source | Example Value | +| --- | --- | --- | --- | --- | --- | --- | +| Admixer ID | Admixer | admixerId | admixer.net | "1111" | +| Adtelligent ID | Adtelligent | bidRequest.userId.adtelligentId | `"1111"` | +| Akamai DAP ID | Akamai DAP | dapId | akamai.com | "eyJhbGciOiJka....YIsj7"| +| AMX RTB ID | AMX RTB | amxId | amxrtb.com | "3ca11058-..." | +| BritePool ID | BritePool | britepoolid | britepool.com | "1111" | +| DeepIntent ID | Deep Intent | deepintentId | deepintent.com | "1111" | +| DMD ID | DMD | dmdId | hcn.health | "1111" | +| CriteoID | Criteo | criteoId | criteo.com | "1111" | +| Fabrick ID | Neustar | fabrickId | neustar.biz | "1111" | +| FLoC ID | n/a | flocId | | | +| Halo ID | Audigent | haloId | audigent.com | {"haloId":"user-halo-id", "auSeg":["segment1", "segment2"]} | +| ID+ | Zeotap | IDP | zeotap.com | "1111" | +| ID5 ID | ID5 | id5id | id5-sync.com | {uid: "1111", ext: { linkType: 2, abTestingControlGroup: false } } | +| IdentityLink | LiveRamp | idl_env | liveramp.com | "1111" | +| Intent IQ ID | Intent IQ | intentiqid | intentiq.com | "1111" | +| Kinesso ID | Kinesso | kpuid | kpuid.com | "1111" | +| LiveIntent ID | Live Intent | lipb.lipbid | liveintent.com | "1111" | +| Lotame Panorama ID | Lotame | lotamePanoramaId | crwdcntrl.net | "e4b9..." | +| MediaWallah OpenLink ID | MediaWallah | mwOpenLinkId | mediawallahscript.com | "1111" | +| merkleID | Merkle | merkleId | merkleinc.com | "1111" | +| naveggId | Navegg | naveggId | navegg.com | "1111" | +| netID | netID | netId | netid.de | "fH5A..." | +| NextRoll ID | NextRoll | nextrollId | nextroll.com | "bf3Ka.../SjP/zpVGr09voA" | +| Novatiq ID | Novatiq | novatiqId | novatiq.com | "1111" | +| Parrable ID | Parrable | parrableId | parrable.com | {"eid":"01.15946..."} | +| Publisher Link ID | n/a | publinkId | epsilon.com | | +| PubProvided ID | n/a | pubProvidedId | publisher domain | "1111" | +| Quantcast ID | n/a | quantcastId | quantcast.com | "1111" | +| Tapad ID | Tapad | tapadId | tapad.com | "1111" | +| SharedID (PBJS 5.x) | n/a | pubcid | pubcid.org | "1111" | +| SharedID (PBJS 4.x)| Prebid | sharedid | sharedid.org | {"id":"01EAJWWN...", "third":"01EAJ..."} | +| Unified ID | Trade Desk | tdid | adserver.org | "1111" | +| ConnectID | Yahoo | connectId | yahoo.com | "72d04af6..." | For example, the adapter code might do something like: {% highlight javascript %} - if (bidRequest.userId && bidRequest.userId.pubcid) { - url+="&pubcid="+bidRequest.userId.pubcid; + if (bidRequest.userId && bidRequest.userId.sharedid) { + url+="&pubcid="+bidRequest.userId.sharedid; } {% endhighlight %} ### Prebid Server Adapters -Bidders that want to support the User ID module in Prebid Server, need to update their server-side bid adapter to read the desired OpenRTB attributes noted in the example below and send them to their endpoint. - -{% highlight bash %} -{ - "user": { - "ext": { - "eids": [{ - "source": "adserver.org", // Unified ID - "uids": [{ - "id": "111111111111", - "ext": { - "rtiPartner": "TDID" - } - }] - },{ - "source": "pubcid.org", - "uids": [{ - "id":"11111111" - }] - }, - { - "source": "id5-sync.com", - "uids": [{ - "id": "ID5-12345", - "ext": { - "linkType": 2, - "abTestingControlGroup": false - } - }] - }, - { - source: "parrable.com", - uids: [{ - id: "01.1594654046.cd0972d861e98ff3723a368a6efa69287a0df3f1cac9142afc2e7aed1caa8dd1b7fc0590b3baf67525f53e1228024c2805b6041206c7a23e34bb823b0659547d7d1d0dac2a11938e867f" - }] - },{ - "source": "audigent.com", - "atype": 1, - "uids": [{ - "id": "11111111" - }] - },{ - "source": "identityLink", - "uids": [{ - "id": "11111111" - }] - },{ - "source": "criteo.com", - "uids": [{ - "id": "11111111" - }] - },{ - "source": "britepool.com", - "uids": [{ - "id": "11111111" - }] - },{ - "source": "liveintent.com", - "uids": [{ - "id": "11111111" - }] - },{ - "source": "crwdcntrl.net", // Lotame Panorama ID - "uids": [{ - "id": "e4b96a3d9a8e8761cef5656fb05f16d53938069f1684df4b2257e276e8b89a0e" - }] - },{ - "source": "netid.de", - "uids": [{ - "id": "11111111" - }] - },{ - "source": "novatiq.com", - "uids": [{ - "id": "81b001ec-8914-488c-a96e-8c220d4ee08895ef", - "atype":1 - }] - },{ - "source": "sharedid.org", // Shared ID - "uids": [{ - "id": "01EAJWWNEPN3CYMM5N8M5VXY22", - "ext": { - "third": "01EAJWWNEPN3CYMM5N8M5VXY22" - } - }] - },{ - "source": "pub.com", // Publisher must configure their domain here - "uids": [{ - "id": "01EAJWWNEPN3CYMM5N8M5VXY22", - "atype":1 //ADCOM - Type of user agent the match is from - "ext": { - "stype": "dmp" //currently supported values (dmp,ppuid,other) - } - }] - },{ - "source": "verizonmedia.com", - "uids": [{ - "id": "61cef5656fb05f16d53938069f1684df4b2257e27" - }] - } - ] - } - } -} -{% endhighlight %} - -### ID Providers - -If you're an ID provider that wants to get on this page: - -- Fork Prebid.js and write a sub-module similar to one of the *IdSystem modules already in the [modules](https://github.com/prebid/Prebid.js/tree/master/modules) folder. -- Add your *IdSystem name into the modules/.submodules.json file -- Follow all the guidelines in the [contribution page](https://github.com/prebid/Prebid.js/blob/master/CONTRIBUTING.md). -- Submit a Pull Request against the [Prebid.js repository](https://github.com/prebid/Prebid.js). -- Fork the prebid.org [documentation repository](https://github.com/prebid/prebid.github.io), modify the /dev-docs/modules/userId.md, and submit a documentation Pull Request as well. +Bidders that want to support the User ID module in Prebid Server, need to update their server-side bid adapter to read the desired OpenRTB 'user.ext.eids.source' object and forward the relevant values to their endpoint. - +See the [Prebid.js EIDs javascript source](https://github.com/prebid/Prebid.js/blob/master/modules/userId/eids.js) for the definitive list of user EID sources. ### Exporting User IDs @@ -1575,7 +2056,7 @@ If you need to export the user IDs stored by Prebid User ID module, the `getUser pbjs.getUserIds() // returns object like bidRequest.userId. e.g. {"pubcid":"1111", "tdid":"2222"} ``` -You can use [`getUserIdsAsEids()`](https://docs.prebid.org/dev-docs/publisher-api-reference.html#userId.getUserIdsAsEids) to get the user IDs stored by Prebid User ID module in ORTB Eids format. Refer [eids.md](https://github.com/prebid/Prebid.js/blob/master/modules/userId/eids.md) for output format. +You can use [`getUserIdsAsEids()`](/dev-docs/publisher-api-reference/getUserIds.html) to get the user IDs stored by Prebid User ID module in ORTB Eids format. Refer [eids.md](https://github.com/prebid/Prebid.js/blob/master/modules/userId/eids.md) for output format. ``` pbjs.getUserIdsAsEids() // returns userIds in ORTB Eids format. e.g. [ @@ -1612,11 +2093,23 @@ pbjs.getUserIdsAsEids() // returns userIds in ORTB Eids format. e.g. ] ``` +## ID Providers + +If you're an ID provider that wants to get on this page: + +- Fork Prebid.js and write a sub-module similar to one of the *IdSystem modules already in the [modules](https://github.com/prebid/Prebid.js/tree/master/modules) folder. +- Add your *IdSystem name into the modules/.submodules.json file +- Follow all the guidelines in the [contribution page](https://github.com/prebid/Prebid.js/blob/master/CONTRIBUTING.md). +- Submit a Pull Request against the [Prebid.js repository](https://github.com/prebid/Prebid.js). +- Fork the prebid.org [documentation repository](https://github.com/prebid/prebid.github.io), modify /dev-docs/modules/userId.md, /download.md, and submit a documentation Pull Request. + + + ## Passing UserIds to Google Ad Manager for targeting -User IDs from Prebid User ID module can be passed to GAM for targeting in Google Ad Manager or to pass ahead in Google Exchange Bidding using ```userIdTargeting``` module. More details can be found [here](https://github.com/prebid/Prebid.js/blob/master/modules/userIdTargeting.md). In short, you just need to add the optional userIdTargeting sub-module into your `gulp build` command and the additional `userIdTargeting` config becomes available. +User IDs from Prebid User ID module can be passed to GAM for targeting in Google Ad Manager or could be passed ahead to Google Open Bidding using ```userIdTargeting``` module. Note Google deprecated the ability to pass key values, including identifiers, to OB partners and then later began a closed beta to resume it with details non-public (see https://developers.google.com/authorized-buyers/rtb/request-guide ). More details on the user id module can be found [here](https://github.com/prebid/Prebid.js/blob/master/modules/userIdTargeting.md). In short, you just need to add the optional userIdTargeting sub-module into your `gulp build` command and the additional `userIdTargeting` config becomes available. ## Further Reading -* [Prebid.js Usersync](/dev-docs/publisher-api-reference.html#setConfig-Configure-User-Syncing) +* [Prebid.js Usersync](/dev-docs/publisher-api-reference/setConfig.html#setConfig-Configure-User-Syncing) * [GDPR ConsentManagement Module](/dev-docs/modules/consentManagement.html) diff --git a/dev-docs/modules/validationFpdModule.md b/dev-docs/modules/validationFpdModule.md new file mode 100644 index 0000000000..571eb26f7f --- /dev/null +++ b/dev-docs/modules/validationFpdModule.md @@ -0,0 +1,66 @@ +--- +layout: page_v2 +page_type: module +title: Module - First Party Data Validation +description: Verify First Party Data fields and data types. Not recommended for production use. +module_code : validationFpdModule +display_name : First Party Data Validation +enable_download : true +sidebarType : 1 +--- + +# First Party Data Validation Module +{:.no_toc} + +This module performs a number of validations on First Party Data (FPD) fields.The scope and number of validations is large enough that it increases the size of the PBJS package by about 1KB: verifying fields and data types. e.g. confirm that site.sectioncat is an array of strings. + +For this reason, publishers sensitive to javascript size may want to consider running this module only when testing a new release of Prebid.js or during major changes to how Prebid.js is integrated into their pages. + +Add it to the Prebid.js build with this command: +``` +gulp build --modules=validationFpdModule +``` + +If included in the build, it will automatically perform the defined validations unless controlled with setConfig: + +``` +pbjs.setConfig({ + firstPartyData: { + skipValidations: true // defaults to false + } +}); +``` + +## Validations + +This module does its checks only once at the first auction. The checks can be re-run anytime by calling `pbjs.refreshFpd()`. + +When a data field doesn't meet the defined validations, it will be removed. In addition, the module will look for the _pubcid_optout cookie (or local storage), +and if it exists, certain fields will be removed. + +{: .table .table-bordered .table-striped } +| Field | Validations | Notes | +| --- | --- | --- | +| ortb2.imp | remove | imp elements can only be defined by AdUnits | +| ortb2.cur | array of strings | OpenRTB currency is an array, but Prebid supports only a single currency | +| ortb2.device.w and .h | number | Device width and height must be numbers | +| ortb2.site.name | string | | +| ortb2.site.domain | string | | +| ortb2.site.page | string | | +| ortb2.site.ref | string | referrer | +| ortb2.site.keywords | string | comma-separated list of keywords | +| ortb2.site.search | string | | +| ortb2.site.cat | array of strings | | +| ortb2.site.pagecat | array of strings | | +| ortb2.site.sectioncat | array of strings | | +| ortb2.site.publisher | object | | +| ortb2.site.content.data | Must be an array of objects, each element must have a name and a segment. Each segment must contain an id that is a string | | +| ortb2.user.yob | number | removed if _pubcid_optout is defined | +| ortb2.user.gender | string | removed if _pubcid_optout is defined | +| ortb2.user.data | Must be an array of objects, each element must have a name and a segment. Each segment must contain an id that is a string | | +| ortb2.user.data.ext | Must be an object | | + +# Related Reading +- [Prebid.js First Party Data feature](/features/firstPartyData.html) +- [First Party Data Enrichment Module](/dev-docs/modules/enrichmentFpdModule) +- [OpenRTB 2.5](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf) diff --git a/dev-docs/modules/weboramaRtdProvider.md b/dev-docs/modules/weboramaRtdProvider.md new file mode 100644 index 0000000000..9fc5ec5e10 --- /dev/null +++ b/dev-docs/modules/weboramaRtdProvider.md @@ -0,0 +1,83 @@ +--- +layout: page_v2 +title: Weborama Real Time Data Provider +display_name: Weborama Real-time Segmentation Module +description: Weborama Real-time Segmentation Module +page_type: module +module_type: rtd +module_code : weboramaRtdProvider +enable_download : true +vendor_specific: true +sidebarType : 1 +--- + +# Weborama RTD Segmentation Module +{:.no_toc} + +* TOC +{:toc} + +Weborama provides a Semantic AI Contextual API that classifies in Real-time a web page seen by a web user within generic and custom topics. It enables publishers to better monetize their inventory and unlock it to programmatic. + +ORTB2 compliant and FPD support for Prebid versions < 4.29 + +Please contact prebid-support@weborama.com for more information. + +## Publisher Usage + +### Configure Prebid.js + +Compile the Weborama RTD module into your Prebid build: + +`gulp build --modules=rtdModule,weboramaRtdProvider` + +Add the Weborama RTD provider to your Prebid config. + + +#### Minimal configuration + +``` +pbjs.setConfig( + ... + realTimeData: { + auctionDelay: 1000, + dataProviders: [ + { + name: "weborama", + waitForIt: true, + params: { + weboCtxConf: { + token: "" + } + } + } + ] + } + ... +); +``` + +### Parameter Descriptions for the Weborama Configuration Section + +| Name |Type | Description | Notes | +| :------------ | :------------ | :------------ |:------------ | +| name | String | Real time data module name | Mandatory. Always 'Weborama' | +| waitForIt | Boolean | Mandatory. Required to ensure that the auction is delayed until prefetch is complete | Optional. Defaults to false but recommended to true | +| params | Object | | Optional | +| params.weboCtxConf | Object | Weborama Contextual Configuration | Optional | +| params.weboCtxConf.token | String | Security Token provided by Weborama, unique per client | Mandatory | +| params.weboCtxConf.targetURL | String | Url to be profiled in the contextual api | Optional. Defaults to `document.URL` | +| params.weboCtxConf.defaultProfile | Object | default value of the profile to be used when there are no response from contextual api (such as timeout)| Optional. Default is `{}` | +| params.weboCtxConf.setTargeting|Boolean|If true, will use the contextual profile to set the gam targeting of all adunits managed by prebid.js| Optional. Default is *true*.| +| params.weboCtxConf.setOrtb2|Boolean|If true, will use the contextual profile to set the ortb2 configuration on `site.ext.data`| Optional. Default is *false*.| + + +### Testing + +To view an example of available segments returned by Weborama's backends: + +`gulp serve --modules=rtdModule,weboramaRtdProvider,appnexusBidAdapter` + +and then point your browser at: + +`http://localhost:9999/integrationExamples/gpt/weboramaRtdProvider_example.html` diff --git a/dev-docs/pbs-bidders.md b/dev-docs/pbs-bidders.md index 491c6d70a2..d9b5ccee80 100644 --- a/dev-docs/pbs-bidders.md +++ b/dev-docs/pbs-bidders.md @@ -49,8 +49,9 @@ You can also download the full CSV | **User IDs** | {% if page.userIds and page.userIds != '' %}{{page.userIds}}{% else %}none{% endif %} | **USP/CCPA Support** | {% if page.usp_supported == true %}yes{% else %}no{% endif %} | | **Supply Chain Support** | {% if page.schain_supported == true %}yes{% else %}no{% endif %} | **COPPA Support** | {% if page.coppa_supported == true %}yes{% else %}no{% endif %} | | **Demand Chain Support** | {% if page.dchain_supported == true %}yes{% else %}no{% endif %} | **Safeframes OK** | {% if page.safeframes_ok and page.safeframes_ok == false %}no{% elsif page.safeframes_ok and page.safeframes_ok == true %}yes{% else %}check with bidder{% endif %} | -| **Supports Deals** | {% if page.bidder_supports_deals and page.bidder_supports_deals == false %}no{% else %}yes{% endif %} | **Prebid.js Adapter** | {% if page.pbjs == true %}yes{% else %}no{% endif %} | +| **Supports Deals** | {% if page.deals_supported and page.deals_supported == false %}no{% else %}yes{% endif %} | **Prebid.js Adapter** | {% if page.pbjs == true %}yes{% else %}no{% endif %} | | **Mobile App Support** | {% if page.pbs_app_supported and page.pbs_app_supported == false %}no{% elsif page.pbs_app_supported and page.pbs_app_supported == true %}yes{% else %}check with bidder{% endif %} | **Prebid Server Adapter** | yes | +| **Floors Support** | {% if page.floors_supported == false %}no{% elsif page.floors_supported == true %}yes{% else %}check with bidder{% endif %} | **First Party Data Support** | {% if page.fpd_supported == true %}yes{% elsif page.fpd_supported == false %}no{% else %}check with bidder{% endif %} |

    "Send All Bids" Ad Server Keys

    diff --git a/dev-docs/plugins/bc/about-bc-prebid-plugin.md b/dev-docs/plugins/bc/about-bc-prebid-plugin.md index 1eac4e907d..d82fd4648f 100644 --- a/dev-docs/plugins/bc/about-bc-prebid-plugin.md +++ b/dev-docs/plugins/bc/about-bc-prebid-plugin.md @@ -93,13 +93,13 @@ You can think of the “plugin” as being a combination of the loader and the p #### Minified Version -- Default location: `http://acdn.adnxs.com/video/plugins/bc/prebid/bc_prebid_vast.min.js` +- Default location: `https://acdn.adnxs.com/video/plugins/bc/prebid/bc_prebid_vast.min.js` - Repository location: `https://github.com/prebid/prebid-js-plugin-brightcove.git` - after building: `./prebid-js-plugin-brightcove/dist/bc_prebid_vast.min.js` #### Non-Minified Version -- Default location: `http://acdn.adnxs.com/video/plugins/bc/prebid/bc_prebid_vast.js` +- Default location: `https://acdn.adnxs.com/video/plugins/bc/prebid/bc_prebid_vast.js` - Repository location: `https://github.com/prebid/prebid-js-plugin-brightcove.git` - after building: `./prebid-js-plugin-brightcove/dist/bc_prebid_vast.js` @@ -109,13 +109,13 @@ You can think of the “plugin” as being a combination of the loader and the p #### Minified Version -- Default location: `http://acdn.adnxs.com/video/plugins/bc/prebid/bc_prebid_vast_plugin.min.js` +- Default location: `https://acdn.adnxs.com/video/plugins/bc/prebid/bc_prebid_vast_plugin.min.js` - Repository location: `https://github.com/prebid/prebid-js-plugin-brightcove.git` - after building: `./prebid-js-plugin-brightcove/dist/bc_prebid_vast_plugin.min.js` #### Non-Minified Version -- Default location: `http://acdn.adnxs.com/video/plugins/bc/prebid/bc_prebid_vast_plugin.js` +- Default location: `https://acdn.adnxs.com/video/plugins/bc/prebid/bc_prebid_vast_plugin.js` - Repository location: `https://github.com/prebid/prebid-js-plugin-brightcove.git` - after building: `./prebid-js-plugin-brightcove/dist/bc_prebid_vast_plugin.js` @@ -133,14 +133,14 @@ This plugin includes modifications that can be found in the MailOnline repositor #### Minified Version -- Default location: `http://acdn.adnxs.com/video/plugins/mol/videojs_5.vast.vpaid.min.js` +- Default location: `https://acdn.adnxs.com/video/plugins/mol/videojs_5.vast.vpaid.min.js` - Repository location: `https://github.com/prebid/videojs-mailonline-plugin.git` - after building: `./videojs-mailonline-plugin/dist/videojs_5.vast.vpaid.min.js` #### Non-Minified Version -- Default location: `http://acdn.adnxs.com/video/plugins/mol/videojs_5.vast.vpaid.js` -- Debuggable Non-Minified Version: `http://acdn.adnxs.com/video/plugins/mol/debug/videojs_5.vast.vpaid.js` +- Default location: `https://acdn.adnxs.com/video/plugins/mol/videojs_5.vast.vpaid.js` +- Debuggable Non-Minified Version: `https://acdn.adnxs.com/video/plugins/mol/debug/videojs_5.vast.vpaid.js` - Repository location: `https://github.com/prebid/videojs-mailonline-plugin.git` - after building: `./videojs-mailonline-plugin/dist/videojs_5.vast.vpaid.js` @@ -171,14 +171,14 @@ The plugin relies on one or two CSS files to control the ad playback, depending Defines CSS styles that are used directly by the plugin. -- Default location: `http://acdn.adnxs.com/video/plugins/bc/prebid/bc_prebid_vast_vjs.css` +- Default location: `https://acdn.adnxs.com/video/plugins/bc/prebid/bc_prebid_vast_vjs.css` - Repository location: `./prebid-js-plugin-brightcove/src/bc_prebid_vast_vjs.css` #### MailOnline Plugin CSS Defines CSS styles that are used by the MailOnline Plugin. If you are using another renderer, you might need to include your own CSS file for that renderer. Also, if the Brightcove IMA Plugin is used to render the ad, then this CSS file is not used. -- Default location: `http://acdn.adnxs.com/video/plugins/css/mol/bc_vpaid_vast_mo.css` +- Default location: `https://acdn.adnxs.com/video/plugins/css/mol/bc_vpaid_vast_mo.css` - After building: `./videojs-mailonline-plugin/bin/bc_vpaid_vast_mo.css` ## Models Supported diff --git a/dev-docs/plugins/bc/bc-prebid-plugin-api.md b/dev-docs/plugins/bc/bc-prebid-plugin-api.md index e263a90657..143fd7add2 100644 --- a/dev-docs/plugins/bc/bc-prebid-plugin-api.md +++ b/dev-docs/plugins/bc/bc-prebid-plugin-api.md @@ -113,10 +113,10 @@ If the results of the prebid process is being determined outside of the plugin, {"prebidPath": "//files.prebid.org/prebid-org.js", "biddersSpec": { ”code": "my-video-tag", - "sizes": [640,480], "mediaTypes": { "video": { "context": "instream", + "playerSize": [640, 480], "mimes": ["video/mp4","application/javascript"], "protocols": [1,2,3,4,5,6,7,8], "playbackmethod": [1,2], @@ -126,10 +126,7 @@ If the results of the prebid process is being determined outside of the plugin, "bids": [{ "bidder": "appnexus", "params": { - "placementId": 8845778, - "video": {"skippable": true, - "playback_method": ["auto_play_sound_off"] - } + "placementId": 8845778 } }] }, diff --git a/dev-docs/plugins/bc/bc-prebid-plugin-integration-studio.md b/dev-docs/plugins/bc/bc-prebid-plugin-integration-studio.md index 7dbfd86d8c..1b211504c4 100644 --- a/dev-docs/plugins/bc/bc-prebid-plugin-integration-studio.md +++ b/dev-docs/plugins/bc/bc-prebid-plugin-integration-studio.md @@ -131,10 +131,10 @@ Example: {"prebidPath": "//files.prebid.org/prebid-org.js", // not for production use "biddersSpec": { ”code": "my-video-tag", - "sizes": [640,480], "mediaTypes": { "video": { "context": "instream", + "playerSize": [640,480], "mimes": ["video/mp4","application/javascript"], "protocols": [1,2,3,4,5,6,7,8], "playbackmethod": [1,2], @@ -144,11 +144,7 @@ Example: "bids": [{ "bidder": "appnexus", "params": { - "placementId": 8845778, - "video": {"skippable": true, - "playback_method": - ["auto_play_sound_off"] - } + "placementId": 8845778 } }] }, @@ -259,10 +255,10 @@ None ], "biddersSpec": { "code": "my-video-tag", - "sizes": [640,480], "mediaTypes": { "video": { "context": "instream", + "playerSize": [640,480], "mimes": ["video/mp4","application/javascript"], "protocols": [1,2,3,4,5,6,7,8], "playbackmethod": [1,2], diff --git a/dev-docs/plugins/bc/bc-prebid-plugin-multiad-options.md b/dev-docs/plugins/bc/bc-prebid-plugin-multiad-options.md index 83bcfa5d85..72260d6d0f 100644 --- a/dev-docs/plugins/bc/bc-prebid-plugin-multiad-options.md +++ b/dev-docs/plugins/bc/bc-prebid-plugin-multiad-options.md @@ -46,25 +46,21 @@ The following is a sample JSON definition of the plugin configuration defining c "scriptLoadTimeout": 3000, "biddersSpec" : { "code" : "my-video-tag", - "sizes" : [640, 480], "mediaTypes": { "video": { - "context": "instream", - "mimes": ["video/mp4", "application/javascript"], - "protocols" : [1,2,3,4,5,6,7,8], - "playbackmethod" : [1, 2], - "api":[1,2] + "context": "instream", + "playerSize": [640,480], + "mimes": ["video/mp4", "application/javascript"], + "protocols" : [1,2,3,4,5,6,7,8], + "playbackmethod" : [1, 2], + "api":[1,2] } }, "bids": [ { "bidder": "appnexus", "params": { - "placementId": 12527596, - "video": { - "skippable": true, - "playback_method": ["auto_play_sound_off"] - } + "placementId": 12527596 } } ] @@ -145,25 +141,21 @@ The following is a sample JSON definition of the plugin configuration defining c "prebidPath" : "//files.prebid.org/prebid-org.js", // not for production use "biddersSpec" : { "code" : "my-video-tag", - "sizes" : [640, 480], "mediaTypes": { "video": { - "context": "instream", - "mimes": ["video/mp4", "application/javascript"], - "protocols" : [1,2,3,4,5,6,7,8], - "playbackmethod" : [1, 2], - "api":[1,2] + "context": "instream", + "playerSize": [640,480], + "mimes": ["video/mp4", "application/javascript"], + "protocols" : [1,2,3,4,5,6,7,8], + "playbackmethod" : [1, 2], + "api":[1,2] } }, "bids": [ { "bidder": "appnexus", "params": { - "placementId": 12531984, - "video": { - "skippable": true, - "playback_method": ["auto_play_sound_off"] - } + "placementId": 12531984 } } ] @@ -254,25 +246,22 @@ The following is a sample JSON definition of the plugin configuration defining c "scriptLoadTimeout": 3000, "biddersSpec" : { "code" : "my-video-tag", - "sizes" : [640, 480], "mediaTypes": { "video": { - "context": "instream", - "mimes": ["video/mp4", "application/javascript"], - "protocols" : [1,2,3,4,5,6,7,8], - "playbackmethod" : [1, 2], - "api":[1,2] + "context": "instream", + "playerSize": [640,480], + "mimes": ["video/mp4", "application/javascript"], + "protocols" : [1,2,3,4,5,6,7,8], + "playbackmethod" : [1, 2], + "api":[1,2], + "skip": 1 } }, "bids": [ { "bidder": "appnexus", "params": { - "placementId": 12527596, - "video": { - "skippable": true, - "playback_method": ["auto_play_sound_off"] - } + "placementId": 12527596 } } ] @@ -353,25 +342,22 @@ The following is a sample JSON definition of the plugin configuration defining c "prebidPath" : "//files.prebid.org/prebid-org.js", // not for production use "biddersSpec" : { "code" : "my-video-tag", - "sizes" : [640, 480], "mediaTypes": { "video": { - "context": "instream", - "mimes": ["video/mp4", "application/javascript"], - "protocols" : [1,2,3,4,5,6,7,8], - "playbackmethod" : [1, 2], - "api":[1,2] + "context": "instream", + "playerSize": [640,480], + "mimes": ["video/mp4", "application/javascript"], + "protocols" : [1,2,3,4,5,6,7,8], + "playbackmethod" : [1, 2], + "api":[1,2], + "skip": 1 } }, "bids": [ { "bidder": "appnexus", "params": { - "placementId": 12531984, - "video": { - "skippable": true, - "playback_method": ["auto_play_sound_off"] - } + "placementId": 12531984 } } ] @@ -452,25 +438,22 @@ The following is a sample JSON definition of the plugin configuration defining c "prebidPath" : "//files.prebid.org/prebid-org.js", // not for production use "biddersSpec" : { "code" : "my-video-tag", - "sizes" : [640, 480], "mediaTypes": { "video": { - "context": "instream", - "mimes": ["video/mp4", "application/javascript"], - "protocols" : [1,2,3,4,5,6,7,8], - "playbackmethod" : [1, 2], - "api":[1,2] + "context": "instream", + "playerSize": [640,480], + "mimes": ["video/mp4", "application/javascript"], + "protocols" : [1,2,3,4,5,6,7,8], + "playbackmethod" : [1, 2], + "api":[1,2], + "skip": 1 } }, "bids": [ { "bidder": "appnexus", "params": { - "placementId": 12531977, - "video": { - "skippable": true, - "playback_method": ["auto_play_sound_off"] - } + "placementId": 12531977 } } ] diff --git a/dev-docs/plugins/bc/bc-prebid-plugin-prebid-options.md b/dev-docs/plugins/bc/bc-prebid-plugin-prebid-options.md index f4f6b7c65b..4d8265ea4a 100644 --- a/dev-docs/plugins/bc/bc-prebid-plugin-prebid-options.md +++ b/dev-docs/plugins/bc/bc-prebid-plugin-prebid-options.md @@ -60,7 +60,7 @@ https://acdn.adnxs.com/prebid/not-for-prod/prebid.js **Example:** -`options.prebidPath = 'http://your-path/prebid.js'` +`options.prebidPath = 'https://your-path/prebid.js'`
    ### biddersSpec @@ -190,7 +190,7 @@ For example: A Brightcove Prebid Plugin : Bidder Settings JSON Converter tool has been created that you can use to convert bidder settings as they would be defined on the page into the format acceptable in Brightcove Studio. You can access this tool in one of the following ways: - directly in the GitHub repository for the plugin: [https://github.com/prebid/prebid-js-plugin-brightcove/blob/master/tools/biddersettings.html](https://github.com/prebid/prebid-js-plugin-brightcove/blob/master/tools/biddersettings.html) -- directly using this external link: [http://video-demo.appnexus.com/encino/bcplugin/prebid/tools/biddersettings.html](http://video-demo.appnexus.com/encino/bcplugin/prebid/tools/biddersettings.html) +- directly using this external link: [https://video-demo.appnexus.com/encino/bcplugin/prebid/tools/biddersettings.html](https://video-demo.appnexus.com/encino/bcplugin/prebid/tools/biddersettings.html) See "bidderSettings" at [Prebid.org]({{site.baseurl}}/dev-docs/publisher-api-reference.html) for details. @@ -293,7 +293,7 @@ Additional options that are passed in to the prebid.js `setConfig()` method. JSON object. -Supported fields are documented in the [Prebid.org Publisher API Reference]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.setConfig) +Supported fields are documented in the [Prebid.org Publisher API Reference](/dev-docs/publisher-api-reference/setConfig.html) **Required?** @@ -314,7 +314,7 @@ None Parameters used when using Google Ad Manager as the ad server. -See prebid.org documentation for [buildVideoUrl]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.adServers.dfp.buildVideoUrl) +See prebid.org documentation for [buildVideoUrl](/dev-docs/publisher-api-reference/adServers.dfp.buildVideoUrl.html) **Acceptable Values:** @@ -494,9 +494,9 @@ Allows the user to specify a custom path used to load the Prebid plugin script. In version 0.4, the original plugin was split into a loader and the main plugin. The loader is the file that you specify when embedding the plugin into the player. The loader will then load the main plugin itself at runtime. This separation simplifies the process of debugging the plugin, especially when the plugin is embedded directly into the player in Brightcove Studio. It also means that when updates are published for the plugin, publishers will be able to pick up the updates without having to re-publish their players. -When registering the plugin to the Brightcove Player, you should continue to use the original path to the plugin. This is now the path to the loader. By default, this path is: `http://acdn.adnxs.com/video/plugins/bc/prebid/bc_prebid_vast.min.js`. +When registering the plugin to the Brightcove Player, you should continue to use the original path to the plugin. This is now the path to the loader. By default, this path is: `https://acdn.adnxs.com/video/plugins/bc/prebid/bc_prebid_vast.min.js`. -Also, by default, the loader will load in the plugin from: `http://acdn.adnxs.com/video/plugins/bc/prebid/bc_prebid_vast_plugin.min.js`. +Also, by default, the loader will load in the plugin from: `https://acdn.adnxs.com/video/plugins/bc/prebid/bc_prebid_vast_plugin.min.js`. However, if you are trying to run custom or trial versions of the plugin, you can specify the path to this trial version using this new option: `prebidPluginPath`. @@ -510,7 +510,7 @@ No. **Default Value:** -http://acdn.adnxs.com/video/plugins/bc/prebid/bc_prebid_vast_plugin.min.js +https://acdn.adnxs.com/video/plugins/bc/prebid/bc_prebid_vast_plugin.min.js **Example:** diff --git a/dev-docs/plugins/bc/bc-prebid-plugin-sample-prebid-header.md b/dev-docs/plugins/bc/bc-prebid-plugin-sample-prebid-header.md index 7f75fe1abb..0ab409f6cd 100644 --- a/dev-docs/plugins/bc/bc-prebid-plugin-sample-prebid-header.md +++ b/dev-docs/plugins/bc/bc-prebid-plugin-sample-prebid-header.md @@ -51,17 +51,20 @@ The following is a sample Brightcove Player Prebid Plugin integration that invok // the set of bidders here shows how to specify the AppNexus video bidder: appnexus var params = { code : 'my-video-tag', - sizes : [640, 480], - mediaType: 'video', + mediaTypes: { + video: { + context: 'instream', + playerSize: [640, 480], + mimes: ['video/mp4'], + protocols: [1, 2, 3, 4, 5, 6, 7, 8], + playbackmethod: [2], + skip: 1 + } bids: [ { bidder: 'appnexus', params: { - placementId: 12334567, - video: { - skippable: true, - playback_method: ['auto_play_sound_off'] - } + placementId: 12334567 } } ] diff --git a/dev-docs/plugins/bc/bc-prebid-plugin-sample-studio-integration-general-method.md b/dev-docs/plugins/bc/bc-prebid-plugin-sample-studio-integration-general-method.md index b684bc04fe..3f8ee393f8 100644 --- a/dev-docs/plugins/bc/bc-prebid-plugin-sample-studio-integration-general-method.md +++ b/dev-docs/plugins/bc/bc-prebid-plugin-sample-studio-integration-general-method.md @@ -54,23 +54,20 @@ This page presents a sample publisher page using the General Integration Method "prebidPath": "//files.prebid.org/prebid-org.js", // not for production use "biddersSpec": { ”code": "my-video-tag", - "sizes": [640,480], "mediaTypes": { "video": { "context": "instream", - "mimes": ["video/mp4","application/javascript"], - "protocols": [1,2,3,4,5,6,7,8], - "playbackmethod": [1,2], + "playerSize": [640,480], + "mimes": ["video/mp4","application/javascript"], + "protocols": [1,2,3,4,5,6,7,8], + "playbackmethod": [1,2], "api": [1,2 ] } }, "bids": [{ "bidder": "appnexus", "params": { - "placementId": 8845778, - "video": {"skippable": true, - "playback_method": ["auto_play_sound_off"] - } + "placementId": 8845778 } }] }, diff --git a/dev-docs/plugins/cross-player-prebid-component/about-cross-player-prebid-component.md b/dev-docs/plugins/cross-player-prebid-component/about-cross-player-prebid-component.md index 6be25274f1..86550f986d 100644 --- a/dev-docs/plugins/cross-player-prebid-component/about-cross-player-prebid-component.md +++ b/dev-docs/plugins/cross-player-prebid-component/about-cross-player-prebid-component.md @@ -15,7 +15,7 @@ The [Cross-Player Prebid Component](https://github.com/prebid/cross-player-prebi The Component is a JavaScript file that is loaded via URL. It can be loaded into the header of the HTML document for header bidding or it can be loaded by a player for "just-in-time" Prebid. You can use the default location of the Component or, because it is an open-source project, you can download the source for the Component, modify it (if needed) to meet your needs, and build it, then host your custom build on your own site. {% capture noteAlert %} -Users have the option of running a localized version of the Cross-Player Prebid Component by either downloading or checking out the current build from our Github repo at [https://github.com/prebid/cross-player-prebid-component](https://github.com/prebid/cross-player-prebid-component) or loading the most current production version from our CDN located at [http://acdn.adnxs.com/video/plugins/cp/PrebidPluginCP.min.js](http://acdn.adnxs.com/video/plugins/cp/PrebidPluginCP.min.js) +Users have the option of running a localized version of the Cross-Player Prebid Component by either downloading or checking out the current build from our Github repo at [https://github.com/prebid/cross-player-prebid-component](https://github.com/prebid/cross-player-prebid-component) or loading the most current production version from our CDN located at [https://acdn.adnxs.com/video/plugins/cp/PrebidPluginCP.min.js](https://acdn.adnxs.com/video/plugins/cp/PrebidPluginCP.min.js) {% endcapture %} {% include alerts/alert_note.html content=noteAlert %} diff --git a/dev-docs/plugins/cross-player-prebid-component/cross-player-config.md b/dev-docs/plugins/cross-player-prebid-component/cross-player-config.md index 92b63718f6..7a62c85734 100644 --- a/dev-docs/plugins/cross-player-prebid-component/cross-player-config.md +++ b/dev-docs/plugins/cross-player-prebid-component/cross-player-config.md @@ -124,7 +124,7 @@ Define some behaviors for the platform and specific adapters. The basic structur **Acceptable Values:** -When you are defining all options to the prebid plugin directly on the page, you may use a JSON object using same syntax described under “bidderSettings” in the [Publisher API Reference]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.bidderSettings) +When you are defining all options to the prebid plugin directly on the page, you may use a JSON object using same syntax described under “bidderSettings” in the [Publisher API Reference](/dev-docs/publisher-api-reference/bidderSettings.html) **Required?** @@ -181,7 +181,7 @@ Additional options that are passed in to the prebid.js `setConfig()` method. JSON object. -Supported fields are documented in the [Publisher API Reference]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.setConfig) +Supported fields are documented in the [Publisher API Reference](/dev-docs/publisher-api-reference/setConfig.html) **Required?** @@ -202,7 +202,7 @@ None Parameters used when using Google Ad Manager (formerly DFP) as the ad server. -See documentation for [buildVideoUrl]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.adServers.dfp.buildVideoUrl) for more information. +See documentation for [buildVideoUrl](/dev-docs/publisher-api-reference/adServers.dfp.buildVideoUrl.html) for more information. **Acceptable Values:** @@ -300,10 +300,10 @@ Here is a sample Prebid configuration JSON object returned via URL: "prebidPath" : "//acdn.adnxs.com/prebid/not-for-prod/prebid.js", "biddersSpec" : { "code" : "my-video-tag", - "sizes" : [640, 480], "mediaTypes": { "video": { "context": "instream", + "playerSize": [640, 480], "mimes": ["video/mp4", "application/javascript"], "protocols" : [1,2,3,4,5,6,7,8], "playbackmethod" : [1, 2], @@ -314,11 +314,7 @@ Here is a sample Prebid configuration JSON object returned via URL: { "bidder": "appnexus", "params": { - "placementId": 9999, - "video": { - "skippable": true, - "playback_method": ["auto_play_sound_off"] - } + "placementId": 9999 } } ] diff --git a/dev-docs/prebid-1.0-API.md b/dev-docs/prebid-1.0-API.md index 3fa9625215..d8a7b8a428 100644 --- a/dev-docs/prebid-1.0-API.md +++ b/dev-docs/prebid-1.0-API.md @@ -29,12 +29,12 @@ The following functions and variables were removed as of 1.0: - `pbjs._adUnitCodes` - `pbjs._adsReceived` - `pbjs.cbTimeout` -- `pbjs.addCallback` and `pbjs.removeCallback` in favor of the [onEvent API]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.onEvent) +- `pbjs.addCallback` and `pbjs.removeCallback` in favor of the [onEvent API](/dev-docs/publisher-api-reference/onEvent.html) - `pbjs.allBidsAvailable` -- `pbjs.buildMasterVideoTagFromAdserverTag` in favor of [`pbjs.adServers.dfp.buildVideoUrl`]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.adServers.dfp.buildVideoUrl) +- `pbjs.buildMasterVideoTagFromAdserverTag` in favor of [`pbjs.adServers.dfp.buildVideoUrl`](/dev-docs/publisher-api-reference/adServers.dfp.buildVideoUrl.html) - `adUnit.sizeMapping` in favor of [`pbjs.setConfig({sizeConfig:[ ... ]})`]({{site.baseurl}}/dev-docs/prebid-1.0-API.html#size-mapping-changes) -Other methods were removed as part of the [new `setConfig` API]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.setConfig) - for details, see [the section below describing the new `pbjs.setConfig` API](#pbjs.setConfig). +Other methods were removed as part of the [new `setConfig` API](/dev-docs/publisher-api-reference/setConfig.html) - for details, see [the section below describing the new `pbjs.setConfig` API](#pbjs.setConfig). {: .alert.alert-success :} For a complete list of methods that were removed, see the [Publisher API Reference]({{site.baseurl}}/dev-docs/publisher-api-reference.html). @@ -43,7 +43,7 @@ For a complete list of methods that were removed, see the [Publisher API Referen ## Legacy APIs replaced by `pbjs.setConfig` -For 1.0, the following APIs were removed in favor of a generic "options" param object passed to [`pbjs.setConfig`]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.setConfig): +For 1.0, the following APIs were removed in favor of a generic "options" param object passed to [`pbjs.setConfig`](/dev-docs/publisher-api-reference/setConfig.html): - `pbjs.bidderTimeout` - use `pbjs.setConfig({bidderTimeout})` instead - `pbjs.logging` - use `pbjs.setConfig({debug})` instead diff --git a/dev-docs/prebid-troubleshooting-guide.md b/dev-docs/prebid-troubleshooting-guide.md index 8ed9c50bf9..70f4d1f22b 100644 --- a/dev-docs/prebid-troubleshooting-guide.md +++ b/dev-docs/prebid-troubleshooting-guide.md @@ -2,10 +2,6 @@ layout: page_v2 title: Prebid.js Troubleshooting Guide head_title: Prebid.js Troubleshooting Guide -description: How to troubleshoot Prebid.js from the perspective of an ad call from start to finish. -pid: 10 -top_nav_section: dev_docs -nav_section: troubleshooting sidebarType: 1 --- @@ -14,111 +10,4 @@ sidebarType: 1 # Prebid.js Troubleshooting Guide {:.no_toc} -{: .alert.alert-danger :} -Prebid.org does not support any version of Prebid.js prior to version 1.0. - -Use this guide to troubleshoot your Prebid.js integration. You can follow this guide sequentially to determine whether Prebid.js is working as intended on your website. It takes you through the ad call from start to finish. - -* TOC -{:toc} - -## Check Your Prebid Version - -The open source code in Prebid.js can change frequently. To see what version of Prebid.js you are using, open your browser console and type `pbjs.version;`. - -You can reference this against the changes listed in the [Prebid.js Release Notes](https://github.com/prebid/Prebid.js/releases). - -## Delay the Ad Server Call so Key-Values can be Set - -Make sure that you delay any calls to the ad server. This allows all of the key-values to be set before the auction in the ad server occurs. - -Within Google Ad Manager, this is achieved by adding the following code to your page. It should be called before any of the ad server code to make sure it runs first. - -{% highlight js %} -var googletag = googletag || {}; -googletag.cmd = googletag.cmd || []; -googletag.cmd.push(function() { - googletag.pubads().disableInitialLoad(); -}); -{% endhighlight %} - -## Check the Ad Units on the Page - -Make sure the ad units configured for Prebid.js match up with the ad units that have been set up in your ad server. - -You can review what ad units have been configured for Prebid by opening your browser console and typing `pbjs.getBidResponses();`. This will show a list of what div IDs are present: - -![pbjs.getBidResponses() showing ad units in browser console]({{site.github.url}}/assets/images/overview/prebid-troubleshooting-guide/ad-units.png "pbjs.getBidResponses() showing ad units in browser console"){: .pb-lg-img :} - -## List your Bids and Bidders - -Open your browser console and type `pbjs.getBidResponses();` to see a list of the ad units that have been configured. This also shows what bids have been returned from each of the bidder partners in chronological order as shown in the screenshot below. - -To see all of the winning bids, open your browser console and type [`pbjs.getAllWinningBids();`]({{site.baseurl}}/dev-docs/publisher-api-reference.html#module_pbjs.getAllWinningBids). - -{: .alert.alert-danger :} -Keep in mind that any bid responses that come back after [the timeout you configured during setup]({{site.github.url}}/dev-docs/getting-started.html#set-the-ad-server-timeout) will not be sent to the ad server. - -{: .alert.alert-success :} -You can also [print this data to the console in table format]({{site.baseurl}}/dev-docs/troubleshooting-tips.html#see-all-bids-in-the-console) for easier reading. - -![pbjs.getBidResponses() in browser console]({{site.github.url}}/assets/images/overview/prebid-troubleshooting-guide/bids.png "pbjs.getBidResponses()"){: .pb-lg-img :} - -## Verify your Ad Server Targeting - -After the auction on page has occurred, Prebid.js will set key-value targeting for the ad server for those bids that have been returned before the [timeout you configured during setup]({{site.github.url}}/dev-docs/getting-started.html#set-the-ad-server-timeout). - -To see what values Prebid.js intends to send to the ad server, open your browser console and type `pbjs.getAdserverTargeting();` as shown below: - -![pbjs.getAdserverTargeting() in browser console]({{site.github.url}}/assets/images/overview/prebid-troubleshooting-guide/ad-server-target.png "pbjs.getAdserverTargeting()"){: .pb-lg-img :} - -{: .alert.alert-danger :} -Note that if no bids are returned, no key-values will be set. You may need to increase your timeout setting or reach out to your bidder partners to determine why no bid responses are being sent. - -## Check the Ad Server's Auction - -After the Prebid auction has occurred and key-values have been set for the ad server, the ad server will use the line items targeting those key-values within its auction. - -If you're using Google Ad Manager, you can verify this by using the [Google Publisher Console](https://support.google.com/dfp_sb/answer/2462712?hl=en), which can be accessed as follows: - -+ Open your browser's console and type `googletag.openConsole();` - -+ Append `googfc` as a query parameter to the URL. Then, click the *Delivery Diagnostics* option to reveal most of the information described below. - -To make sure your ad server is set up correctly, answer the following questions: - -+ **How many ads have been fetched for an ad unit?** Ideally, only 1 ad will be requested on page load. If not, check for unnecessary extra calls to the ad server in your page's source code. - - ![Google Publisher Console Ad fetch count]({{site.github.url}}/assets/images/overview/prebid-troubleshooting-guide/ad-server-1.png "Google Publisher Console Ad fetch count"){: .pb-sm-img :} - -+ **Are the key-values being set in the ad server?** If not, review your page's source code to ensure that the Prebid auction completes **before** sending the key-value targeting to the ad server. - - ![Google Ad Manager Delivery Troubleshooting]({{site.github.url}}/assets/images/overview/prebid-troubleshooting-guide/ad-server-2.png "Google Ad Manager Delivery Troubleshooting"){: .pb-lg-img :} - -+ **Has the ad server order been activated?** If not, you'll have to activate the order to see Prebid-delivered ads. - -+ **Are there other higher priority campaigns running within your ad server?** Higher priority campaigns will prevent Prebid ads with a higher CPM bid from winning in the ad server's auction. For testing purposes, you may want to pause these campaigns or have them excluded when the prebid key values are present. - -+ **Is there other remnant inventory in the ad server with a higher CPM that is winning?** To test for this, you may want to use a test creative set up within a bidder partner that has a high CPM or create artificial demand with a [bidCPMadjustment]({{site.github.url}}/dev-docs/publisher-api-reference.html#module_pbjs.bidderSettings). - -+ **Have you set up all of the line items in the ad server to match the [setPriceGranularity setting]({{site.github.url}}/dev-docs/examples/custom-price-buckets.html) within Prebid.js?** All of the line items that correspond to your price granularity settings must be set up in your ad server. When there are gaps in the price granularity of your line item setup, bids will be reduced according to the size of the gap. For example, with [dense granularity]({{site.github.url}}/dev-docs/publisher-api-reference.html#dense-granularity), a $3.32 bid will be sent to the ad server as $3.30. - -## Look for the Winning Bid - -When a prebid line item wins the ad server's auction, a `renderAd` event will be logged in the browser console. To see this event, you need to do either of the following before the auction: - -+ Have typed `pbjs.logging=true` into your your browser console - -+ Appended `pbjs_debug=true` as a query parameter to the URL - -When this event is logged, it shows that Prebid.js has requested to render the ad from the winning bidder partner, and that this partner's bid has won both the Prebid and ad server auctions. - -![renderAd event in browser console]({{site.github.url}}/assets/images/overview/prebid-troubleshooting-guide/render-ad.png "renderAd event in browser console"){: .pb-lg-img :} - -## Related Topics - -+ [Developer Troubleshooting Tips]({{site.github.url}}/dev-docs/troubleshooting-tips.html) - -+ [Common Setup Issues]({{site.github.url}}/dev-docs/common-issues.html) - - +Moved to a new [Troubleshooting Guide](/troubleshooting/troubleshooting-guide.html) diff --git a/dev-docs/publisher-api-reference-old.md b/dev-docs/publisher-api-reference-old.md deleted file mode 100644 index b8fb9acb37..0000000000 --- a/dev-docs/publisher-api-reference-old.md +++ /dev/null @@ -1,1871 +0,0 @@ ---- -layout: page_v2 -title: Publisher API Reference - DEPRECATED -description: Publisher API Reference for Prebid.js Header Bidding - DEPRECATED -pid: 10 -sidebarType: 1 ---- - -
    - -# Publisher API Reference - DEPRECATED - -This page has documentation for the pre-1.0 public API methods of Prebid.js. These versions are not supported and this documentation is not being updated. - -{: .alert.alert-danger :} -Warning: do not use this API reference for new Prebid.js implementations. This document is kept for users on old (Pre-1.0) versions of Prebid.js who need to maintain their pages. - - - -## pbjs - -* [pbjs](#module_pbjs) - - * [.getAdserverTargeting()](#module_pbjs.getAdserverTargeting) - * [.getAdserverTargetingForAdUnitCode([adUnitCode])](#module_pbjs.getAdserverTargetingForAdUnitCode) - * [.getBidResponses()](#module_pbjs.getBidResponses) - * [.getBidResponsesForAdUnitCode(adUnitCode)](#module_pbjs.getBidResponsesForAdUnitCode) - * [.getHighestCpmBids([adUnitCode])](#module_pbjs.getHighestCpmBids) - * [.getAllWinningBids()](#module_pbjs.getAllWinningBids) - * [.getAllPrebidWinningBids()](#module_pbjs.getAllPrebidWinningBids) - * [.setTargetingForGPTAsync([codeArr])](#module_pbjs.setTargetingForGPTAsync) - * [.setTargetingForAst()](#module_pbjs.setTargetingForAst) - * [.allBidsAvailable()](#module_pbjs.allBidsAvailable) Deprecated; will be removed in 1.0 - * [.enableSendAllBids()](#module_pbjs.enableSendAllBids) Deprecated; will be removed in 1.0 - * [.setPriceGranularity(granularity)](#module_pbjs.setPriceGranularity) Deprecated; will be removed in 1.0 - * [.renderAd(doc, id)](#module_pbjs.renderAd) - * [.removeAdUnit(adUnitCode)](#module_pbjs.removeAdUnit) - * [.requestBids(requestObj)](#module_pbjs.requestBids) - * [.addAdUnits(Array\|Object)](#module_pbjs.addAdUnits) - * [.addBidResponse(adUnitCode, bid)](#module_pbjs.addBidResponse) Deprecated; will be removed in 1.0 - * [.bidderSettings](#module_pbjs.bidderSettings) - * [.addCallback(event, func)](#module_pbjs.addCallback) Deprecated; will be removed in 1.0 - * [.removeCallback(cbId)](#module_pbjs.removeCallback) Deprecated; will be removed in 1.0 - * [.buildMasterVideoTagFromAdserverTag(adserverTag, options)](#module_pbjs.buildMasterVideoTagFromAdserverTag) Deprecated; will be removed in 1.0 - * [.setBidderSequence(order)](#module_pbjs.setBidderSequence) Deprecated; will be removed in 1.0 - * [.onEvent(event, handler, id)](#module_pbjs.onEvent) - * [.offEvent(event, handler, id)](#module_pbjs.onEvent) - * [.enableAnalytics(config)](#module_pbjs.enableAnalytics) - * [.aliasBidder(adapterName, aliasedName)](#module_pbjs.aliasBidder) - * [.setConfig(options)](#module_pbjs.setConfig) - * [.getConfig([string])](#module_pbjs.getConfig) - * [.adServers.dfp.buildVideoUrl(options)](#module_pbjs.adServers.dfp.buildVideoUrl) - - - -### pbjs.getAdserverTargeting() ⇒ `object` - -Returns all ad server targeting for all ad units. Note that some bidder's response may not have been received if you call this function too quickly after the requests are sent. - -The targeting keys can be configured in [ad server targeting](#module_pbjs.bidderSettings). - -When [deals are enabled]({{site.baseurl}}/adops/deals.html), the object returned by this method may include a field `hb_deal_BIDDERCODE`, where `BIDDERCODE` is replaced by the name of the bidder, e.g., AppNexus, Rubicon, etc. - -**Kind**: static method of [pbjs](#module_pbjs) - -**Returns**: `object` - Map of adUnitCodes and targeting values [] - -**Returned Object Example:** - -{% highlight js %} -{ - "/9968336/header-bid-tag-0": { - "hb_bidder": "rubicon", - "hb_adid": "13f44b0d3c", - "hb_pb": "1.50" - }, - "/9968336/header-bid-tag-1": { - "hb_bidder": "openx", - "hb_adid": "147ac541a", - "hb_pb": "1.00" - }, - "/9968336/header-bid-tag-2": { - "hb_bidder": "appnexus", - "hb_adid": "147ac541a", - "hb_pb": "2.50", - "hb_deal_appnexus": "ABC_123" - } -} -{% endhighlight %} - -
    - - - -### pbjs.getAdserverTargetingForAdUnitCode([adunitCode]) ⇒ `object` - -This function returns the query string targeting parameters available at this moment for a given ad unit. For full documentation see function [pbjs.getAdserverTargeting()](#module_pbjs.getAdserverTargeting). - -**Kind**: static method of [pbjs](#module_pbjs) - -**Returns**: `object` - returnObj return bids - -**Request Params:** - -{: .table .table-bordered .table-striped } -| Param | Type | Description | -| --- | --- | --- | -| [adunitCode] | `string` | adUnitCode to get the bid responses for | - -**Returned Object Example:** - -{% highlight js %} -{ - "hb_bidder": "rubicon", - "hb_adid": "13f44b0d3c", - "hb_pb": "0.50" -} -{% endhighlight %} - -
    - - - -### pbjs.getBidResponses() ⇒ `object` - -This function returns the bid responses at the given moment. - -**Kind**: static method of [pbjs](#module_pbjs). - -**Returns**: `object` - map | object that contains the bidResponses. - -**Returned Object Params**: - -{: .table .table-bordered .table-striped } -| Param | Type | Description | | -|---------------------+---------+---------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------| -| `bidder` | String | The bidder code. Used by ad server's line items to identify bidders | `rubicon` | -| `adId` | String | The unique identifier of a bid creative. It's used by the line item's creative as in [this example]({{site.github.url}}/adops/send-all-bids-adops.html#step-3-add-a-creative). | `123` | -| `width` | Integer | The width of the returned creative size. | 300 | -| `height` | Integer | The height of the returned creative size. | 250 | -| `cpm` | Float | The exact bid price from the bidder | 1.59 | -| `requestTimestamp` | Integer | The time stamp when the bid request is sent out in milliseconds | 1444844944106 | -| `responseTimestamp` | Integer | The time stamp when the bid response is received in milliseconds | 1444844944185 | -| `timeToRespond` | Integer | The amount of time for the bidder to respond with the bid | 79 | -| `adUnitCode` | String | adUnitCode to get the bid responses for | "/9968336/header-bid-tag-0" | -| `statusMessage` | String | The bid's status message | "Bid returned empty or error response" or "Bid available" | -| `dealId` | String | (Optional) If the bid is [associated with a Deal]({{site.baseurl}}/adops/deals.html), this field contains the deal ID. | "ABC_123" | - -
    - -
    - -
    -
    - - -{% highlight js %} -{ - "/9968336/header-bid-tag-0": { - "bids": [ - { - "bidderCode": "appnexus", - "width": 300, - "height": 250, - "statusMessage": "Bid available", - "adId": "7a53a9d3", - "creative_id": 29681110, - "cpm": 0.5, - "adUrl": "http://nym1.ib.adnxs.com/ab?e=wqT_3QLzBKBqAgAAAgDWAAUIkav6sAUQucfc0v-nzQcYj…r=http%3A%2F%2Flocal%3A4000%2Fexamples%2Fpbjs_partial_refresh_example.html", - "requestTimestamp": 1444844944095, - "responseTimestamp": 1444844944180, - "timeToRespond": 85, - "adUnitCode": "/19968336/header-bid-tag-0", - "bidder": "appnexus", - "usesGenericKeys": true, - "size": "300x250", - "adserverTargeting": { - "hb_bidder": "appnexus", - "hb_adid": "7a53a9d3", - "hb_pb": "0.50" - } - },{ - "bidderCode": "pubmatic", - "width": "300", - "height": "250", - "statusMessage": "Bid available", - "adId": "1139e34e14", - "adSlot": "39620189@300x250", - "cpm": 1, - "ad": " ", - "adUrl": "http://aktrack.pubmatic.com/AdServer/AdDisplayTrackerServlet?operId=1&pubId…local%3A4000%2Fexamples%2Fpbjs_partial_refresh_example.html&lpu=hotels.com", - "dealId": "", - "requestTimestamp": 1444844944105, - "responseTimestamp": 1444844944354, - "timeToRespond": 249, - "adUnitCode": "/19968336/header-bid-tag-0", - "bidder": "pubmatic", - "usesGenericKeys": true, - "size": "300x250", - "adserverTargeting": { - "hb_bidder": "pubmatic", - "hb_adid": "1139e34e14", - "hb_pb": "1.00" - } - }, - { - "bidderCode": "rubicon", - "width": "300", - "height": "250", - "statusMessage": "Bid available", - "adId": "130d3b0d9b", - "cpm": 0.795995, - "ad": "", - "ad_id": "3161645", - "sizeId": "15", - "requestTimestamp": 1444844944116, - "responseTimestamp": 1444844944396, - "timeToRespond": 280, - "adUnitCode": "/19968336/header-bid-tag-0", - "bidder": "rubicon", - "usesGenericKeys": true, - "size": "300x250", - "adserverTargeting": { - "hb_bidder": "rubicon", - "hb_adid": "130d3b0d9b", - "hb_pb": "0.50" - } - } - ] - }, - "/9968336/header-bid-tag1": { - "bids": [ - { - "bidderCode": "casale", - "width": 0, - "height": 0, - "statusMessage": "Bid returned empty or error response", - "adId": "108c0ba49d", - "requestTimestamp": 1444844944130, - "responseTimestamp": 1444844944223, - "timeToRespond": 93, - "cpm": 0, - "adUnitCode": "/19968336/header-bid-tag1", - "bidder": "casale" - }, - { - "bidderCode": "openx", - "width": "728", - "height": "90", - "statusMessage": "Bid available", - "adId": "14d7f9208f", - "ad_id": "537161420", - "cpm": 1.717, - "ad": "