From a915b9b198070a7c6b04e80144477f7d2eadca69 Mon Sep 17 00:00:00 2001 From: Demetrio Girardi Date: Thu, 12 Mar 2026 12:11:42 -0700 Subject: [PATCH 01/11] prebid 11.0 release notes --- dev-docs/modules/bidViewable.md | 11 +- dev-docs/modules/bidViewableIO.md | 4 +- dev-docs/pb11-notes.md | 106 ++++++++++++++++++ dev-docs/publisher-api-reference/getEvents.md | 8 +- 4 files changed, 115 insertions(+), 14 deletions(-) create mode 100644 dev-docs/pb11-notes.md diff --git a/dev-docs/modules/bidViewable.md b/dev-docs/modules/bidViewable.md index 78fcb4285c..951d34879e 100644 --- a/dev-docs/modules/bidViewable.md +++ b/dev-docs/modules/bidViewable.md @@ -2,7 +2,7 @@ layout: page_v2 page_type: module title: Module - Bid Viewability - GAM -description: Triggers a BID_VIEWABLE event when a rendered bid is viewable according to Active View criteria +description: Triggers a 'bidViewable' event when a rendered bid is viewable according to Active View criteria module_code : bidViewability display_name : Bid Viewability - GAM enable_download : true @@ -18,7 +18,7 @@ sidebarType : 1 ## 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. +This optional module will trigger a `bidViewable` event which can be consumed by Analytics adapters. In addition, the winning bidder can implement an `onBidViewable` method to capture this event. Notes: @@ -48,7 +48,6 @@ The default logic used to find a matching Prebid.js bid for a GPT slot is | `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) | 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 @@ -56,11 +55,7 @@ The default logic used to find a matching Prebid.js bid for a GPT slot is pbjs.setConfig({ bidViewability: { enabled: true, - firePixels: true, - customMatchFunction: function(bid, slot){ - console.log('using custom match function....'); - return bid.adUnitCode === slot.getAdUnitPath(); - } + firePixels: true } }); ``` diff --git a/dev-docs/modules/bidViewableIO.md b/dev-docs/modules/bidViewableIO.md index 0d7ecc1ea7..2fbf445662 100644 --- a/dev-docs/modules/bidViewableIO.md +++ b/dev-docs/modules/bidViewableIO.md @@ -2,7 +2,7 @@ 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 +description: Triggers a `bidViewable` 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 @@ -17,7 +17,7 @@ sidebarType : 1 ## 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. +This optional module will trigger a `bidViewable` event which can be consumed by Analytics adapters. In addition, the winning bidder can implement an `onBidViewable` method to capture this event. Notes: diff --git a/dev-docs/pb11-notes.md b/dev-docs/pb11-notes.md new file mode 100644 index 0000000000..4bd4144560 --- /dev/null +++ b/dev-docs/pb11-notes.md @@ -0,0 +1,106 @@ +--- +layout: page_v2 +title: Prebid.js 11.0 Release Notes & Publisher API Changes +description: Description of the breaking changes included for Prebid.js 11.0 +sidebarType: 1 +--- + +# Prebid.js 11.0 Adapter Interface and Publisher API Changes + +{:.no_toc} + +This document describes the changes included for Prebid.js version 11.0. + +* TOC + {:toc} + +## Publisher Summary + +1. A number of obsolete modules have been removed (see list below). +2. Adpod is no longer supported. +3. PAAPI is no longer supported. +4. The `addAdUnits`, `bidAccepted`, and `seatNonBid` events have been removed. +5. The `storageControl` module now defaults to strict enforcement. +6. The way viewability is calculated and signaled has been overhauled. + + + +## Removed Modules + +The following modules have been removed from Prebid.js as part of the 11.0 release: + +{: .table .table-bordered .table-striped } + +| Module | Notes | +|:--------------------------------|:-------------------------------| +| `adpod` | | +| `categoryTranslation` | | +| `dfpAdServerVideo` | Use `gamAdServerVideo` instead | +| `dfpAdpod` | | +| `dmdIdSystem` | | +| `express` | | +| `freeWheelAdserverVideo` | | +| `gamAdpod` | | +| `intersectionRtdProvider` | | +| `optableBidAdapter` | | +| `paapi` | | +| `paapiForGpt` | | +| `topLevelPaapi` | | +| `quantcastBidAdapter` | | +| `quantcastIdSystem` | | +| `ringieraxelspringerBidAdapter` | | + +## Removed events + +The following events have been removed and will no longer trigger callbacks registered with [pbjs.onEvent](/dev-docs/publisher-api-reference/onEvent.html): + +* `addAdUnits`: this event carried no information besides the fact that `pbjs.addAdUnits` was called. `auctionInit` and `beforeRequestBids` contain the ad units involved in each auction. +* `bidAccepted`: use `bidResponse` instead. +* `seatNonBid`: use `pbsAnalytics` instead. + +## Strict storageControl enforcement + +The [storageControl](/dev-docs/modules/storageControl.html) module now defaults to strict enforcement; including it will cause undisclosed storage use to fail instead of just logging a warning. You may revert to warning only with + +```javascript +pbjs.setConfig({ + storageControl: { + enforcement: 'off' + } +}) +``` + + + +## Viewability overhaul + +A number of changes were aimed at standardizing two related problems: viewability of an ad unit at the time an auction starts; and viewability of an ad that was rendered on the page. + +### `adUnit.element` and `getAdUnitElement` + +Many adapters attempt to calculate the position of an ad unit on the page so that they can include that information in their bid request. To facilitate this, 11.0 adds a new `element` configuration option for ad units that can be used to specify the page element it corresponds to. For example: + +```javascript +pbjs.requestBids({ + adUnits: [{ + code: 'myAdUnit', + element: document.querySelector('#ad-container') + // ... + }] +}) +``` + +Adapters can retrieve the element using the `getAdUnitElement` utility function. If `element` is not specified for an ad unit it defaults to `document.getElementById(adUnit.code)`. + +### Viewability after rendering + +To determine viewability of an ad rendered on the page, publishers can choose one of two optional modules: + + - [`bidViewability`](/dev-docs/modules/bidViewable.md) only works with GPT ad units, and relies on its `impressionViewable` events; + - [`bidViewabilityIO`](/dev-docs/modules/bidViewableIO.md) approximates the same viewability criteria (IAB's MRC 50%) using [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API). + +When a bid is deemed viewable, both modules now: + + * fire a `bidViewable` event + * run the relevant adapter's `onBidViewable` method + * trigger "viewable-mrc50" (`event: 2`) event trackers in the bid's `eventtracker` array. diff --git a/dev-docs/publisher-api-reference/getEvents.md b/dev-docs/publisher-api-reference/getEvents.md index 6462ad9eb1..a374315d74 100644 --- a/dev-docs/publisher-api-reference/getEvents.md +++ b/dev-docs/publisher-api-reference/getEvents.md @@ -30,23 +30,23 @@ The available events are: | beforeRequestBids | Bids are about to be requested from adapters (added in 3.x) | Array of adunits in the auction | | beforeBidderHttp | bidder network request is about be triggered | Array of Bid request objects | | bidRequested | A bid was requested from a specific bidder | Bid request object | -| bidResponse | A bid response has arrived | Bid response object | +| bidResponse | A bid response has been added to an auction | Bid response object | | pbsAnalytics | Prebid Server has returned extra information for analytics adapters. | { [seatnonbid](/prebid-server/endpoints/openrtb2/pbs-endpoint-auction.html#seat-non-bid), auctionId, [atag](/prebid-server/developers/module-atags.html) } | -| seatNonBid | DEPRECATED - use pbsAnalytics instead. Prebid Server has returned nonbid information. Must be enabled in s2sConfig.extPrebid | None | +| seatNonBid | Removed in 11.0 - use `pbsAnalytics` instead. Prebid Server has returned nonbid information. Must be enabled in s2sConfig.extPrebid | None | | bidRejected | A bid was rejected | Bid response object | | bidAdjustment | A bid was adjusted | Bid response object | | bidWon | A bid has won | Bid response object | | bidTimeout | A bid timed out | Array of objects with timed out bids | | setTargeting | Targeting has been set | Hash of targeting values | | requestBids | Bids have been requested from adapters (i.e. pbjs.requestBids() was called) | The argument passed to [`requestBids`](https://docs.prebid.org/dev-docs/publisher-api-reference/requestBids.html), except that `adUnits` and `adUnitCodes` are always set and reflect the ad units involved in the auction. Event handlers may not modify `adUnitCodes`. | -| addAdUnits | Ad units have been added to the auction | None | +| addAdUnits | Removed in 11.0 - use `auctionInit` instead. Ad units have been added to the auction. Removed in 11.0. | None | | adRenderFailed| Ad rendering failed | Object containing 'reason' and 'message' | | adRenderSucceeded | Ad rendering succeeded| Object containing 'doc', 'bid', and 'adId'. 'doc' is the DOM root containing the ad and may be `null` if it was rendered in a cross-origin iframe. This event indicates that the render function did not generate an error, it does not guarantee that tracking for this event has occurred yet.| | auctionDebug | An error was logged to the console | Object containing 'type' and 'arguments' | | bidderDone | A bidder has signaled they are done responding | Bid request object | | bidderError | A bidder responded with an error | Object with the XMLHttpRequest error and the bid request object `{ error, bidderRequest }` | | tcf2Enforcement | There was a TCF2 enforcement action taken | `{ storageBlocked: ['moduleA', 'moduleB'], biddersBlocked: ['moduleB'], analyticsBlocked: ['moduleC'] }` | -| bidAccepted | A bid was accepted and is about to be added to auction | Bid response object | +| bidAccepted | Removed in 11.0 - use `bidResponse` instead. A bid was accepted and is about to be added to auction | Bid response object | | browserIntervention | The browser reported an intervention affecting a rendered creative (e.g., heavy-ad unload). | `{ bid, adId, intervention }` | The example below shows how these events can be used. From 506652013ed47df6ce39c3b80f0d507e7307b577 Mon Sep 17 00:00:00 2001 From: Demetrio Girardi Date: Thu, 12 Mar 2026 12:14:00 -0700 Subject: [PATCH 02/11] lint --- dev-docs/pb11-notes.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/dev-docs/pb11-notes.md b/dev-docs/pb11-notes.md index 4bd4144560..aa5ae45479 100644 --- a/dev-docs/pb11-notes.md +++ b/dev-docs/pb11-notes.md @@ -96,11 +96,11 @@ Adapters can retrieve the element using the `getAdUnitElement` utility function. To determine viewability of an ad rendered on the page, publishers can choose one of two optional modules: - - [`bidViewability`](/dev-docs/modules/bidViewable.md) only works with GPT ad units, and relies on its `impressionViewable` events; - - [`bidViewabilityIO`](/dev-docs/modules/bidViewableIO.md) approximates the same viewability criteria (IAB's MRC 50%) using [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API). +* [`bidViewability`](/dev-docs/modules/bidViewable.md) only works with GPT ad units, and relies on its `impressionViewable` events; +* [`bidViewabilityIO`](/dev-docs/modules/bidViewableIO.md) approximates the same viewability criteria (IAB's MRC 50%) using [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API). When a bid is deemed viewable, both modules now: - * fire a `bidViewable` event - * run the relevant adapter's `onBidViewable` method - * trigger "viewable-mrc50" (`event: 2`) event trackers in the bid's `eventtracker` array. +* fire a `bidViewable` event +* run the relevant adapter's `onBidViewable` method +* trigger "viewable-mrc50" (`event: 2`) event trackers in the bid's `eventtracker` array. From aeed5e45e9a809ed63a141d549e0cf629cf5d956 Mon Sep 17 00:00:00 2001 From: Demetrio Girardi Date: Thu, 12 Mar 2026 14:29:24 -0700 Subject: [PATCH 03/11] updates --- dev-docs/modules/bidViewable.md | 1 + dev-docs/modules/gpt-pre-auction.md | 2 +- dev-docs/pb11-notes.md | 27 ++++++++++++++++++- dev-docs/publisher-api-reference/setConfig.md | 18 +++++++++++++ .../setTargetingForGPTAsync.md | 2 +- 5 files changed, 47 insertions(+), 3 deletions(-) diff --git a/dev-docs/modules/bidViewable.md b/dev-docs/modules/bidViewable.md index 951d34879e..ee6782afa3 100644 --- a/dev-docs/modules/bidViewable.md +++ b/dev-docs/modules/bidViewable.md @@ -48,6 +48,7 @@ The default logic used to find a matching Prebid.js bid for a GPT slot is | `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) | REMOVED in 11.0; use [customGptSlotMatching](/dev-docs/publisher-api-reference/setConfig.html#customGptSlotMatching) instead. 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 diff --git a/dev-docs/modules/gpt-pre-auction.md b/dev-docs/modules/gpt-pre-auction.md index cab3e3489b..e7eb1e4991 100644 --- a/dev-docs/modules/gpt-pre-auction.md +++ b/dev-docs/modules/gpt-pre-auction.md @@ -49,7 +49,7 @@ Optional initialization parameters: {: .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) | | +| customGptSlotMatching | no | function | REMOVED in 11.0; use [customGptSlotMatching](/dev-docs/publisher-api-reference/setConfig.html#customGptSlotMatching) instead. GPT slot matching function should match the customSlotMatching function sent to [setTargetingForGptAsync](/dev-docs/publisher-api-reference/setTargetingForGPTAsync.html) | | | useDefaultPreAuction | no | boolean | (PBJS 6.5+) If true, use default behavior for determining GPID and PbAdSlot. Defaults to false. | true | | customPreAuction | no | function | (PBJS 6.5+) Custom function for defining the GPID and PbAdSlot. | | | customPbAdSlot | no | function | Custom PB AdSlot function. (Note, this function will be deprecated in the future.) | | diff --git a/dev-docs/pb11-notes.md b/dev-docs/pb11-notes.md index aa5ae45479..00ddaa18fb 100644 --- a/dev-docs/pb11-notes.md +++ b/dev-docs/pb11-notes.md @@ -20,7 +20,9 @@ This document describes the changes included for Prebid.js version 11.0. 2. Adpod is no longer supported. 3. PAAPI is no longer supported. 4. The `addAdUnits`, `bidAccepted`, and `seatNonBid` events have been removed. -5. The `storageControl` module now defaults to strict enforcement. +7. Bids whose `mediaType` does not match their request's `mediaTypes` are now rejected as invalid. +6. The `storageControl` module now defaults to strict enforcement. +6. [setTargetingForGPTAsync](/dev-docs/publisher-api-reference/setTargetingForGPTAsync.html) no longer takes a `customSlotMatching` argument; the configuration options `bidViewability.customMatchFunction` and `gptPreAuction.customGptSlotMatching` have been removed. The replacement is a single new configuration option `customGptSlotMatching`. 6. The way viewability is calculated and signaled has been overhauled. @@ -58,6 +60,21 @@ The following events have been removed and will no longer trigger callbacks regi * `bidAccepted`: use `bidResponse` instead. * `seatNonBid`: use `pbsAnalytics` instead. +## Stricter mediaType enforcement + +Bids that declare a `mediaType` not present in their ad unit's `mediaTypes` are now rejected as invalid. This validation can be turned off by setting `auctionOptions.rejectInvalidMediaTypes` to `false`. + +Bids that do not declare any `mediaType` are assumed to be `'banner'`; you may require an explicit mediaType with `auctionOptions.rejectUnknownMediaTypes`. If enabled, bids that do not set `mediaType` will also be rejected as invalid. For example: + +```javascript +pbjs.setConfig({ + auctionOptions: { + rejectInvalidMediaTypes: false, // allow bids on the wrong format + rejectUnknownMediaTypes: true // disallow bids that do not declare their format + } +}) +``` + ## Strict storageControl enforcement The [storageControl](/dev-docs/modules/storageControl.html) module now defaults to strict enforcement; including it will cause undisclosed storage use to fail instead of just logging a warning. You may revert to warning only with @@ -70,6 +87,14 @@ pbjs.setConfig({ }) ``` +## `customGptSlotMatching` + +A new configuration option `customSlotMatching` is replacing the following: + +* the second argument of [setTargetingForGPTAsync](/dev-docs/publisher-api-reference/setTargetingForGPTAsync.html); +* the `customGptSlotMatching` configuration option of [gptPreAuction](/dev-docs/modules/gpt-pre-auction.html); +* the `customMatchFunction` configuration option of [bidViewability](/dev-docs/modules/bidViewable.md). + ## Viewability overhaul diff --git a/dev-docs/publisher-api-reference/setConfig.md b/dev-docs/publisher-api-reference/setConfig.md index 801b453c6b..9198fc6979 100644 --- a/dev-docs/publisher-api-reference/setConfig.md +++ b/dev-docs/publisher-api-reference/setConfig.md @@ -1317,6 +1317,24 @@ pbjs.setConfig({ {: .alert.alert-warning :} In PBJS 4.29 and earlier, don't add the `ortb2` level here -- just `site` directly. Oh, and please upgrade. 4.29 was a long time ago. + + +### Custom GPT slot matching + +By default, Prebid matches ad units to GPT slots by code, i.e. a GPT `slot` corresponds to a Prebid `adUnit` if `slot.getAdUnitPath() === adUnit.code`. You can provide a custom matching function to override this, for example: + +```javascript +pbjs.setConfig({ + customGptSlotMatching: function(slot) { + return function(adUnitCode) { + return slot.getAdUnitPath() === adUnitCode + } + } +}) +``` + +`customGptSlotMatching` should be a function accepting a single GPT [Slot](https://developers.google.com/publisher-tag/reference#googletag.Slot). It should return another function accepting a single string representing an ad unit code. The inner function should return true if the givne slot matches the given ad unit code. + ### Auction Options diff --git a/dev-docs/publisher-api-reference/setTargetingForGPTAsync.md b/dev-docs/publisher-api-reference/setTargetingForGPTAsync.md index 16d682dfe3..e5c1c8822a 100644 --- a/dev-docs/publisher-api-reference/setTargetingForGPTAsync.md +++ b/dev-docs/publisher-api-reference/setTargetingForGPTAsync.md @@ -14,7 +14,7 @@ Set query string targeting on GPT ad units after the auction. | Param | Scope | Type | Description | | --- | --- | --- | -- | | [codeArr] | Optional | `array` | an array of adUnitCodes to set targeting for. | -| customSlotMatching | Optional | `function` | gets a GoogleTag slot and returns a filter function for adUnitCode. | +| customSlotMatching | Optional | `function` | REMOVED in 11.0; use [customGptSlotMatching](/dev-docs/publisher-api-reference/setConfig.html#customGptSlotMatching) instead. Gets a GoogleTag slot and returns a filter function for adUnitCode. | This function matches AdUnits that have returned from the auction to a GPT ad slot and adds the `hb_` targeting attributes to the slot so they get sent to GAM. From 846482410a561db69e7b62182af2dd5f5ce4165e Mon Sep 17 00:00:00 2001 From: Demetrio Girardi Date: Thu, 12 Mar 2026 14:32:39 -0700 Subject: [PATCH 04/11] lint --- dev-docs/pb11-notes.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dev-docs/pb11-notes.md b/dev-docs/pb11-notes.md index 00ddaa18fb..9bb92c26b6 100644 --- a/dev-docs/pb11-notes.md +++ b/dev-docs/pb11-notes.md @@ -20,10 +20,10 @@ This document describes the changes included for Prebid.js version 11.0. 2. Adpod is no longer supported. 3. PAAPI is no longer supported. 4. The `addAdUnits`, `bidAccepted`, and `seatNonBid` events have been removed. -7. Bids whose `mediaType` does not match their request's `mediaTypes` are now rejected as invalid. +5. Bids whose `mediaType` does not match their request's `mediaTypes` are now rejected as invalid. 6. The `storageControl` module now defaults to strict enforcement. -6. [setTargetingForGPTAsync](/dev-docs/publisher-api-reference/setTargetingForGPTAsync.html) no longer takes a `customSlotMatching` argument; the configuration options `bidViewability.customMatchFunction` and `gptPreAuction.customGptSlotMatching` have been removed. The replacement is a single new configuration option `customGptSlotMatching`. -6. The way viewability is calculated and signaled has been overhauled. +7. [setTargetingForGPTAsync](/dev-docs/publisher-api-reference/setTargetingForGPTAsync.html) no longer takes a `customSlotMatching` argument; the configuration options `bidViewability.customMatchFunction` and `gptPreAuction.customGptSlotMatching` have been removed. The replacement is a single new configuration option `customGptSlotMatching`. +8. The way viewability is calculated and signaled has been overhauled. From 6d93b8701c6504631b7831e393f7749b51bb7566 Mon Sep 17 00:00:00 2001 From: Demetrio Girardi Date: Thu, 12 Mar 2026 14:34:36 -0700 Subject: [PATCH 05/11] removal notes --- dev-docs/pb11-notes.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dev-docs/pb11-notes.md b/dev-docs/pb11-notes.md index 9bb92c26b6..555ce837b6 100644 --- a/dev-docs/pb11-notes.md +++ b/dev-docs/pb11-notes.md @@ -36,15 +36,15 @@ The following modules have been removed from Prebid.js as part of the 11.0 relea | Module | Notes | |:--------------------------------|:-------------------------------| | `adpod` | | -| `categoryTranslation` | | +| `categoryTranslation` | Adpod submodule | | `dfpAdServerVideo` | Use `gamAdServerVideo` instead | -| `dfpAdpod` | | +| `dfpAdpod` | Adpod submodule | | `dmdIdSystem` | | | `express` | | | `freeWheelAdserverVideo` | | -| `gamAdpod` | | +| `gamAdpod` | Adpod submodule | | `intersectionRtdProvider` | | -| `optableBidAdapter` | | +| `optableBidAdapter` | No longer useful without PAAPI | | `paapi` | | | `paapiForGpt` | | | `topLevelPaapi` | | From 9c43639763d9eb9413ea85165d8e484abbd4d707 Mon Sep 17 00:00:00 2001 From: Demetrio Girardi Date: Thu, 12 Mar 2026 14:39:45 -0700 Subject: [PATCH 06/11] adapter summary --- dev-docs/pb11-notes.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dev-docs/pb11-notes.md b/dev-docs/pb11-notes.md index 555ce837b6..aee0566449 100644 --- a/dev-docs/pb11-notes.md +++ b/dev-docs/pb11-notes.md @@ -25,6 +25,12 @@ This document describes the changes included for Prebid.js version 11.0. 7. [setTargetingForGPTAsync](/dev-docs/publisher-api-reference/setTargetingForGPTAsync.html) no longer takes a `customSlotMatching` argument; the configuration options `bidViewability.customMatchFunction` and `gptPreAuction.customGptSlotMatching` have been removed. The replacement is a single new configuration option `customGptSlotMatching`. 8. The way viewability is calculated and signaled has been overhauled. +## Adapter summary + +1. A new utility function, `getAdUnitElement`, should be used to link an ad unit / bid request / bid response to its DOM element. +2. DNT (`navigator.doNotTrack`) is no longer supported. The `getDNT()` utility function now always return `false`. +3. Typescript is now preferred over Javascript. New modules should provide types for their public interface. + ## Removed Modules From f0a78d87dbd42562bc5c4079a1b527b6f7a6ee9f Mon Sep 17 00:00:00 2001 From: Demetrio Girardi Date: Thu, 12 Mar 2026 14:40:09 -0700 Subject: [PATCH 07/11] grammar --- dev-docs/pb11-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/pb11-notes.md b/dev-docs/pb11-notes.md index aee0566449..1a9bc94deb 100644 --- a/dev-docs/pb11-notes.md +++ b/dev-docs/pb11-notes.md @@ -28,7 +28,7 @@ This document describes the changes included for Prebid.js version 11.0. ## Adapter summary 1. A new utility function, `getAdUnitElement`, should be used to link an ad unit / bid request / bid response to its DOM element. -2. DNT (`navigator.doNotTrack`) is no longer supported. The `getDNT()` utility function now always return `false`. +2. DNT (`navigator.doNotTrack`) is no longer supported. The `getDNT()` utility function now always returns `false`. 3. Typescript is now preferred over Javascript. New modules should provide types for their public interface. From 6b579cc56c766913316fb0b8b4ad89ac627c59d9 Mon Sep 17 00:00:00 2001 From: Demetrio Girardi Date: Thu, 12 Mar 2026 16:06:02 -0700 Subject: [PATCH 08/11] Update freeWheelAdserverVideo description --- dev-docs/pb11-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/pb11-notes.md b/dev-docs/pb11-notes.md index 1a9bc94deb..cebd85e801 100644 --- a/dev-docs/pb11-notes.md +++ b/dev-docs/pb11-notes.md @@ -47,7 +47,7 @@ The following modules have been removed from Prebid.js as part of the 11.0 relea | `dfpAdpod` | Adpod submodule | | `dmdIdSystem` | | | `express` | | -| `freeWheelAdserverVideo` | | +| `freeWheelAdserverVideo` | Adpod submodule | | `gamAdpod` | Adpod submodule | | `intersectionRtdProvider` | | | `optableBidAdapter` | No longer useful without PAAPI | From 60442747c02dfb026f36d4ffc1ae840478b28efb Mon Sep 17 00:00:00 2001 From: Demetrio Girardi Date: Thu, 12 Mar 2026 16:22:02 -0700 Subject: [PATCH 09/11] fix .md into .html Updated links in documentation for bidViewability and customMatchFunction to use the correct file extension. --- dev-docs/pb11-notes.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dev-docs/pb11-notes.md b/dev-docs/pb11-notes.md index cebd85e801..a0a9e83002 100644 --- a/dev-docs/pb11-notes.md +++ b/dev-docs/pb11-notes.md @@ -99,7 +99,7 @@ A new configuration option `customSlotMatching` is replacing the following: * the second argument of [setTargetingForGPTAsync](/dev-docs/publisher-api-reference/setTargetingForGPTAsync.html); * the `customGptSlotMatching` configuration option of [gptPreAuction](/dev-docs/modules/gpt-pre-auction.html); -* the `customMatchFunction` configuration option of [bidViewability](/dev-docs/modules/bidViewable.md). +* the `customMatchFunction` configuration option of [bidViewability](/dev-docs/modules/bidViewable.html). @@ -127,8 +127,8 @@ Adapters can retrieve the element using the `getAdUnitElement` utility function. To determine viewability of an ad rendered on the page, publishers can choose one of two optional modules: -* [`bidViewability`](/dev-docs/modules/bidViewable.md) only works with GPT ad units, and relies on its `impressionViewable` events; -* [`bidViewabilityIO`](/dev-docs/modules/bidViewableIO.md) approximates the same viewability criteria (IAB's MRC 50%) using [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API). +* [`bidViewability`](/dev-docs/modules/bidViewable.html) only works with GPT ad units, and relies on its `impressionViewable` events; +* [`bidViewabilityIO`](/dev-docs/modules/bidViewableIO.html) approximates the same viewability criteria (IAB's MRC 50%) using [`IntersectionObserver`](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API). When a bid is deemed viewable, both modules now: From 597ac309d2a65a083644d8661805a9aa4e077a2f Mon Sep 17 00:00:00 2001 From: Demetrio Girardi Date: Thu, 12 Mar 2026 16:22:51 -0700 Subject: [PATCH 10/11] fix customGptSlotMatching name --- dev-docs/pb11-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/pb11-notes.md b/dev-docs/pb11-notes.md index a0a9e83002..ddd26ee0b2 100644 --- a/dev-docs/pb11-notes.md +++ b/dev-docs/pb11-notes.md @@ -95,7 +95,7 @@ pbjs.setConfig({ ## `customGptSlotMatching` -A new configuration option `customSlotMatching` is replacing the following: +A new configuration option `customGptSlotMatching` is replacing the following: * the second argument of [setTargetingForGPTAsync](/dev-docs/publisher-api-reference/setTargetingForGPTAsync.html); * the `customGptSlotMatching` configuration option of [gptPreAuction](/dev-docs/modules/gpt-pre-auction.html); From 7dce83f60e6f30e0291d038d2534b96734ec3101 Mon Sep 17 00:00:00 2001 From: Patrick McCann Date: Fri, 13 Mar 2026 09:18:20 -0400 Subject: [PATCH 11/11] Add links to Prebid.js release notes --- dev-docs/release-notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/dev-docs/release-notes.md b/dev-docs/release-notes.md index 19e49c530f..e100083c1f 100644 --- a/dev-docs/release-notes.md +++ b/dev-docs/release-notes.md @@ -15,6 +15,7 @@ This page has links to release notes for each of the projects associated with Pr ## Prebid.js + [Release notes on GitHub](https://github.com/prebid/Prebid.js/releases) ++ [Prebid.js 11 Release Notes](/dev-docs/pb11-notes.html) + [Prebid.js 10 Release Notes](/dev-docs/pb10-notes.html) + [Prebid.js 9 Release Notes](/dev-docs/pb9-notes.html) + [Prebid.js 8 Release Notes](/dev-docs/pb8-notes.html)