From 67d89d742749a05e118efd60b110e8dea50952fb Mon Sep 17 00:00:00 2001 From: Patrick McCann Date: Tue, 13 Jun 2023 11:51:41 -0400 Subject: [PATCH 01/12] Update release-notes.md --- 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 66da5c0fcd..108c7d80ad 100644 --- a/dev-docs/release-notes.md +++ b/dev-docs/release-notes.md @@ -14,6 +14,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 8 Release Notes](/dev-docs/pb8-notes.html) + [Prebid.js 7 Release Notes](/dev-docs/pb7-notes.html) + [Prebid.js 6 Blog Post](https://prebid.org/blog/prebid-6-0-release/) + [Prebid.js 5 Blog Post](https://prebid.org/blog/prebid-5-0-release/) From 907240cb6a2ac6703ebb7578b52a9ea7d75f49df Mon Sep 17 00:00:00 2001 From: Patrick McCann Date: Tue, 13 Jun 2023 11:52:44 -0400 Subject: [PATCH 02/12] Create pb8-notes.html --- dev-docs/pb8-notes.html | 81 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 dev-docs/pb8-notes.html diff --git a/dev-docs/pb8-notes.html b/dev-docs/pb8-notes.html new file mode 100644 index 0000000000..e85ea06b88 --- /dev/null +++ b/dev-docs/pb8-notes.html @@ -0,0 +1,81 @@ +--- +layout: page_v2 +title: Prebid 8.0 Release Notes & Publisher API Changes +description: Description of the breaking changes included for Prebid 8.0 +sidebarType: 1 +--- + +# Prebid 8.0 Bidder Interface and Publisher API Changes +{:.no_toc} + +This document describes the changes included for Prebid.js version 8.0. + +* TOC +{:toc} + +## Publisher Summary + +1. Be aware that a number of modules have been removed. See below for the list. +2. setConfig of 'publisherDomain' is no longer supported. Use setConfig({pageUrl: "URL"}) instead. +3. setConfig of 'fpd' is no longer supported. Use setConfig({ortb2: ...}) instead. +4. Please ensure your Prebid Server provider is running a relatively recent version of Prebid Server. Prebid.js 7 will not work with PBS-Go before 0.66 or PBS-Java before 1.55. + +Details on all of these below. + +## Removed Modules + +The following modules have been removed from Prebid.js as part of the 7.0 release. Publishers building with one of them will need to point to its replacement or remove the module from their build. + +{: .table .table-bordered .table-striped } + +| Module | Replacement | +|:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| AdLive Bid Adapter +| Akamai ID Submodule | rearchitected to use RTD module +| AppNexus Analytics Adapter +| DistrictM DMX Bid Adapter | replaced by Sharethrough +| FLOC ID submodule +| Halo ID & RTD submodules | replaced by Hadron +| NextRoll ID submodule +| OneVideo Bid Adapter | replaced by YahooSSP +| Sortable Adapters +| TrustX Bid Adapter | now an alias of Grid +| UserId Targeting Module + +## Adapter Interface + +Following the precedent of Prebid 5, bidders must read additional values from the ad unit, global config, or the ortb2 object. Bidders may still take these values as parameters, but must also support the Prebid conventions; publishers do not want to set these values multiple times, one for each bid parter. Publishers can now rely on certain parameters no longer needing to be set in bidder configuration, including (a) the instl flag on an ad unit, (b) the position parameter, and (c) the banned categories (bcats). Bidders should consider that if they are accepting any openrtb field in their configuration, they should also check the ortb2 object for that parameter. + +In the Prebid 5 release notes, it was noted that publishers should no longer use publisherDomain as a setConfig parameter, and instead prefer PageURL. Adapters no longer read from this location. Also, the object presented to bidders with the page url and that page's referring page url has been re-implemented. Our goal was that adapters can rely on ortb2.site.page and ortb2.site.ref, with flags for when top is not reached, the canonical link is used, setConfig('pageUrl') is used, or when window.location.href is used for ortb2.site.page. Many bidders had disparate logic for this and the refererInfo.referer had different meanings in different contexts. + +Also, Bid Adapters (not other types of modules) no longer have access to the storage manager unless explicitly allowed by the publisher. We believe bidding functionality should rarely (if ever) need this access and that this extra functionality included in bid adapters must be consented to by the installer in their configuration. The following bid adapters' unit tests were affected by this change: Adagio, Adnuntius, AP Stream, Concert, Conversant, Craft, Criteo, E-Planning, Invibes, Kargo, Quantcast, Trion, Unicorn, and Vidazoo. Adapters simply setting a random identifier in the first party local storage or cookie should consider if the popular shared id user id submodule can fully achieve this functionality for them. See storageAllowed in the [BidderSettings Reference](/dev-docs/publisher-api-reference/bidderSettings.html#2-bidder-setting-attributes) + +Adapters are no longer allowed to return alternate bidder codes unless allowed by the publisher. See allowAlternateBidderCodes in the [BidderSettings Reference](/dev-docs/publisher-api-reference/bidderSettings.html#2-bidder-setting-attributes). + +Finally, adapters known to use HTTP-1 bidding endpoints may now have notices appended to their documentation. + +## Regulatory and Consent Strings + +TCF1 is no longer supported by the Consent Management (GDPR) module. The Consent Management USP module now defaults to framework 'iab' and will work without configuration if installed and a functioning `__uspapi()` exists on the page. + +## First Party Data + +Support has been removed for `setConfig('fpd')`, `config.getLegacyFpd`, `config.convertAdUnitFpd` and related relics of legacy first party data. Publishers should use the methods described in [First Party Data]({{site.baseurl}}/features/firstPartyData.html). + +First party data can also now be set on a specific auction. This is useful for example on infinite scroll pages when contextual segments change, or when the publisher wishes to express the context of an instream video ad but not the display advertising. As part of this change the ortb2 object is now made a part of bid requests, instead of necesitating a getConfig call by an adapter. This has led to slight changes in many dozens of bid adapters and substantial changes to all of the RTD adapters. + +## Prebid Server Adapter + +An undocumented feature "Stored Auction Response" has been deprecated. + +The Prebid Server committee moved the ortb2 location of bidder parameters from `imp[].ext.BIDDER` to `imp[].ext.prebid.bidder.BIDDER`. PBS versions before PBS-Go 0.66 (April 2019) and PBS-Java 1.55 (Feb 2021) are not compatible with Prebid 7+. + +## Build changes + +In later 6.x versions, an improvement in the build process introduced some undesirable behavior for users loading the library twice on the same pageview to the same global library name. If you load Prebid.js twice on a page using the same global, the second load is now prevented. + + +## Further Reading + ++ [Publisher API Reference](/dev-docs/publisher-api-reference.html) ++ [First Party Data](/features/firstPartyData.html) From f94cbd5e3c9c8ee0c41ccd6f8f577e8ef2af6835 Mon Sep 17 00:00:00 2001 From: Patrick McCann Date: Wed, 14 Jun 2023 12:53:08 -0400 Subject: [PATCH 03/12] Update pb8-notes.html --- dev-docs/pb8-notes.html | 60 ++++++++++++++++------------------------- 1 file changed, 23 insertions(+), 37 deletions(-) diff --git a/dev-docs/pb8-notes.html b/dev-docs/pb8-notes.html index e85ea06b88..723029b089 100644 --- a/dev-docs/pb8-notes.html +++ b/dev-docs/pb8-notes.html @@ -16,59 +16,48 @@ ## Publisher Summary 1. Be aware that a number of modules have been removed. See below for the list. -2. setConfig of 'publisherDomain' is no longer supported. Use setConfig({pageUrl: "URL"}) instead. -3. setConfig of 'fpd' is no longer supported. Use setConfig({ortb2: ...}) instead. -4. Please ensure your Prebid Server provider is running a relatively recent version of Prebid Server. Prebid.js 7 will not work with PBS-Go before 0.66 or PBS-Java before 1.55. + Details on all of these below. ## Removed Modules -The following modules have been removed from Prebid.js as part of the 7.0 release. Publishers building with one of them will need to point to its replacement or remove the module from their build. +The following modules have been removed from Prebid.js as part of the 8.0 release. Publishers building with one of them will need to point to its replacement or remove the module from their build. {: .table .table-bordered .table-striped } | Module | Replacement | |:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| AdLive Bid Adapter -| Akamai ID Submodule | rearchitected to use RTD module -| AppNexus Analytics Adapter -| DistrictM DMX Bid Adapter | replaced by Sharethrough -| FLOC ID submodule -| Halo ID & RTD submodules | replaced by Hadron -| NextRoll ID submodule -| OneVideo Bid Adapter | replaced by YahooSSP -| Sortable Adapters -| TrustX Bid Adapter | now an alias of Grid -| UserId Targeting Module - -## Adapter Interface +| Google Analytics Adapter | Recommend publishers explore the Generic Analytics Adapter +| Inmar Bid Adapter +| Inskin Bid Adapter +| MASS Deal Rendering Module | Replaced by documentation on bids back handler +| AOL Bid Adapter | Reach out to Yahoo +| CPEX ID submodule | CzechAdId Module +| PubcommonID module | SharedID Userid Submodule +| OpenX Analytics module +| Zeus Prime Module +| Captify RTD module | pending integration updates +| Realvu Analytics module | pending integration updates +| TrustPID userid submodule | Utiq userid submodule +| OpenX ORTB Bid Adapter | OpenX Bid Adapter -Following the precedent of Prebid 5, bidders must read additional values from the ad unit, global config, or the ortb2 object. Bidders may still take these values as parameters, but must also support the Prebid conventions; publishers do not want to set these values multiple times, one for each bid parter. Publishers can now rely on certain parameters no longer needing to be set in bidder configuration, including (a) the instl flag on an ad unit, (b) the position parameter, and (c) the banned categories (bcats). Bidders should consider that if they are accepting any openrtb field in their configuration, they should also check the ortb2 object for that parameter. +## Transaction identifiers are now reliable and opt in -In the Prebid 5 release notes, it was noted that publishers should no longer use publisherDomain as a setConfig parameter, and instead prefer PageURL. Adapters no longer read from this location. Also, the object presented to bidders with the page url and that page's referring page url has been re-implemented. Our goal was that adapters can rely on ortb2.site.page and ortb2.site.ref, with flags for when top is not reached, the canonical link is used, setConfig('pageUrl') is used, or when window.location.href is used for ortb2.site.page. Many bidders had disparate logic for this and the refererInfo.referer had different meanings in different contexts. +Following the [OpenRTB 2.6 spec](https://github.com/InteractiveAdvertisingBureau/openrtb2.x/blob/main/2.6.md) and the [imp.ext.tid] (https://github.com/InteractiveAdvertisingBureau/openrtb/blob/master/extensions/community_extensions/per-imp-tids.md) community extensions, several fields in Prebid have equivalents in OpenRTB. -Also, Bid Adapters (not other types of modules) no longer have access to the storage manager unless explicitly allowed by the publisher. We believe bidding functionality should rarely (if ever) need this access and that this extra functionality included in bid adapters must be consented to by the installer in their configuration. The following bid adapters' unit tests were affected by this change: Adagio, Adnuntius, AP Stream, Concert, Conversant, Craft, Criteo, E-Planning, Invibes, Kargo, Quantcast, Trion, Unicorn, and Vidazoo. Adapters simply setting a random identifier in the first party local storage or cookie should consider if the popular shared id user id submodule can fully achieve this functionality for them. See storageAllowed in the [BidderSettings Reference](/dev-docs/publisher-api-reference/bidderSettings.html#2-bidder-setting-attributes) +$.id, the top level id, is now unique to each bid request. It may come from a bidder `getUUID` call or from the `bidderRequestId`. +$.imp.ext.tid is the same for each bidder and differs for each slot in the auction. It is the request object `transactionId`. It can be set by the publisher to sync with other header bidding libraries on the page. +$.source.tid is the same for each bidder and differs for each auction. We understand from buyer platform members that it is losing utility in favor of `imp.ext.tid`. It is the request object `auctionId`. It can be set by the publisher to sync with other header bidding libraries on the page. +$.source.schain.nodes[0].rid is not generated by the Prebid.js core library nor the schain module and may vary unexpectedly. We don't recommend anyone rely on it as a stand in for the seller on the page's request identifier currently. -Adapters are no longer allowed to return alternate bidder codes unless allowed by the publisher. See allowAlternateBidderCodes in the [BidderSettings Reference](/dev-docs/publisher-api-reference/bidderSettings.html#2-bidder-setting-attributes). +These identifiers are extremely powerful for discrepency reconciliation, ad quality investigations, consent audits, and a huge range of other applications. They also allow data appended to different requests (eg dealIds) to be commingled downstream. For this reason, our publisher committee and Prebid.org counsel have decided to require publisher opt in to their inclusion in the bid stream. This meant Prebid engineering changed every openrtb request in the project to potentially transmit a null in these fields. Todo comments were added to bid adapters not using OpenRTB that send them over the wire to confirm they can accept null values. -Finally, adapters known to use HTTP-1 bidding endpoints may now have notices appended to their documentation. -## Regulatory and Consent Strings +## Activity Controls TCF1 is no longer supported by the Consent Management (GDPR) module. The Consent Management USP module now defaults to framework 'iab' and will work without configuration if installed and a functioning `__uspapi()` exists on the page. -## First Party Data - -Support has been removed for `setConfig('fpd')`, `config.getLegacyFpd`, `config.convertAdUnitFpd` and related relics of legacy first party data. Publishers should use the methods described in [First Party Data]({{site.baseurl}}/features/firstPartyData.html). - -First party data can also now be set on a specific auction. This is useful for example on infinite scroll pages when contextual segments change, or when the publisher wishes to express the context of an instream video ad but not the display advertising. As part of this change the ortb2 object is now made a part of bid requests, instead of necesitating a getConfig call by an adapter. This has led to slight changes in many dozens of bid adapters and substantial changes to all of the RTD adapters. - -## Prebid Server Adapter - -An undocumented feature "Stored Auction Response" has been deprecated. - -The Prebid Server committee moved the ortb2 location of bidder parameters from `imp[].ext.BIDDER` to `imp[].ext.prebid.bidder.BIDDER`. PBS versions before PBS-Go 0.66 (April 2019) and PBS-Java 1.55 (Feb 2021) are not compatible with Prebid 7+. ## Build changes @@ -76,6 +65,3 @@ ## Further Reading - -+ [Publisher API Reference](/dev-docs/publisher-api-reference.html) -+ [First Party Data](/features/firstPartyData.html) From a97ea30c4b2923d594f09fd187323ec20ed10882 Mon Sep 17 00:00:00 2001 From: Patrick McCann Date: Wed, 14 Jun 2023 13:46:15 -0400 Subject: [PATCH 04/12] Update pb8-notes.html --- dev-docs/pb8-notes.html | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/dev-docs/pb8-notes.html b/dev-docs/pb8-notes.html index 723029b089..bb937e3744 100644 --- a/dev-docs/pb8-notes.html +++ b/dev-docs/pb8-notes.html @@ -41,6 +41,10 @@ | Realvu Analytics module | pending integration updates | TrustPID userid submodule | Utiq userid submodule | OpenX ORTB Bid Adapter | OpenX Bid Adapter +| Synacor Bid Adapter | IMDS Bid Adapter +| AdGeneration Bid Adapter +| EMX Bid Adapter | Cadent Bid Adapter +| Rubicon Analytics Adapter | Magnite Analytics Adapter ## Transaction identifiers are now reliable and opt in @@ -53,15 +57,27 @@ These identifiers are extremely powerful for discrepency reconciliation, ad quality investigations, consent audits, and a huge range of other applications. They also allow data appended to different requests (eg dealIds) to be commingled downstream. For this reason, our publisher committee and Prebid.org counsel have decided to require publisher opt in to their inclusion in the bid stream. This meant Prebid engineering changed every openrtb request in the project to potentially transmit a null in these fields. Todo comments were added to bid adapters not using OpenRTB that send them over the wire to confirm they can accept null values. - ## Activity Controls -TCF1 is no longer supported by the Consent Management (GDPR) module. The Consent Management USP module now defaults to framework 'iab' and will work without configuration if installed and a functioning `__uspapi()` exists on the page. +Activity controls were very recently released, and are even more powerful in Prebid 8. `transmitTid` is a new control added. + +Also, in order to allow publishers to better comply with regulations around precise location, bid adapters must read location from the global, not from their own parameters. + +RTD Modules were also updated to require that they do not have bidder specific handling, and that all their bid enrichment data is routed through the global. This will make those enrichments subject to the data controller module settings as well as activity controls. +Several activity control translation modules will be released in the near future, translating consent strings into suppressed behaviors and restricted information in the library. Your contributions on these modules and feedback are very welcome. -## Build changes +## Size Mapping -In later 6.x versions, an improvement in the build process introduced some undesirable behavior for users loading the library twice on the same pageview to the same global library name. If you load Prebid.js twice on a page using the same global, the second load is now prevented. +Labels users should be careful to examine the new size mapping module. We moved it out of core to improve the build size. See https://github.com/prebid/Prebid.js/issue/9597 +## Misc changes -## Further Reading +`auctionInit` event payload is now less bloated. See https://github.com/prebid/Prebid.js/pull/9897 +Bidder `categoryTranslation` is no longer in core. See https://github.com/prebid/Prebid.js/pull/9898 +`bidderCode` can no longer come from the bid response, as this was breaking aliasing. See https://github.com/prebid/Prebid.js/pull/9905 +`onBidWon` was often listened to by client side bid adapters and would get fired when a server side bid was won. This has been cleaned up. See https://github.com/prebid/Prebid.js/pull/9919 +`ext.prebid.floorMin` has been dropped in favor of `ext.prebid.floors.floorMin` as a parameter on the PBS Bid adapter call See https://github.com/prebid/Prebid.js/pull/9899 +`bidResponse` is emitted immediately after adding the bidResponse instead of immediately before. See https://github.com/prebid/Prebid.js/pull/9847 +PBS bid adapter now supports native javascript trackers. See https://github.com/prebid/Prebid.js/pull/9900 +`NO_BID` events no longer occur on bid rejections and zero-cpm bids. See https://github.com/prebid/Prebid.js/pull/9902 From 1996dfcf020ff7cff3a7d5c754073d7a0823fb80 Mon Sep 17 00:00:00 2001 From: Demetrio Girardi Date: Wed, 14 Jun 2023 11:20:13 -0700 Subject: [PATCH 05/12] Update pb8-notes.html typo --- dev-docs/pb8-notes.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/pb8-notes.html b/dev-docs/pb8-notes.html index bb937e3744..3c1031395b 100644 --- a/dev-docs/pb8-notes.html +++ b/dev-docs/pb8-notes.html @@ -55,7 +55,7 @@ $.source.tid is the same for each bidder and differs for each auction. We understand from buyer platform members that it is losing utility in favor of `imp.ext.tid`. It is the request object `auctionId`. It can be set by the publisher to sync with other header bidding libraries on the page. $.source.schain.nodes[0].rid is not generated by the Prebid.js core library nor the schain module and may vary unexpectedly. We don't recommend anyone rely on it as a stand in for the seller on the page's request identifier currently. -These identifiers are extremely powerful for discrepency reconciliation, ad quality investigations, consent audits, and a huge range of other applications. They also allow data appended to different requests (eg dealIds) to be commingled downstream. For this reason, our publisher committee and Prebid.org counsel have decided to require publisher opt in to their inclusion in the bid stream. This meant Prebid engineering changed every openrtb request in the project to potentially transmit a null in these fields. Todo comments were added to bid adapters not using OpenRTB that send them over the wire to confirm they can accept null values. +These identifiers are extremely powerful for discrepancy reconciliation, ad quality investigations, consent audits, and a huge range of other applications. They also allow data appended to different requests (eg dealIds) to be commingled downstream. For this reason, our publisher committee and Prebid.org counsel have decided to require publisher opt in to their inclusion in the bid stream. This meant Prebid engineering changed every openrtb request in the project to potentially transmit a null in these fields. Todo comments were added to bid adapters not using OpenRTB that send them over the wire to confirm they can accept null values. ## Activity Controls From ba0660aa0e845b1886e39fae4c055ac7bd7bda00 Mon Sep 17 00:00:00 2001 From: Patrick McCann Date: Wed, 14 Jun 2023 14:24:44 -0400 Subject: [PATCH 06/12] Update pb8-notes.html --- dev-docs/pb8-notes.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dev-docs/pb8-notes.html b/dev-docs/pb8-notes.html index 3c1031395b..e482ff10eb 100644 --- a/dev-docs/pb8-notes.html +++ b/dev-docs/pb8-notes.html @@ -16,6 +16,9 @@ ## Publisher Summary 1. Be aware that a number of modules have been removed. See below for the list. +2. Transaction identifiers are reliable but opt in. +3. Size Mapping pulled into its own module +4. Activity control interface defines behavior suppression, including RTD, Geo, and TIDs Details on all of these below. From 2a71664363a8c69aa4ed31ddea39c5383e4322dc Mon Sep 17 00:00:00 2001 From: Patrick McCann Date: Wed, 14 Jun 2023 14:25:59 -0400 Subject: [PATCH 07/12] Update pb8-notes.html --- dev-docs/pb8-notes.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/pb8-notes.html b/dev-docs/pb8-notes.html index e482ff10eb..d19dc9b63d 100644 --- a/dev-docs/pb8-notes.html +++ b/dev-docs/pb8-notes.html @@ -56,7 +56,7 @@ $.id, the top level id, is now unique to each bid request. It may come from a bidder `getUUID` call or from the `bidderRequestId`. $.imp.ext.tid is the same for each bidder and differs for each slot in the auction. It is the request object `transactionId`. It can be set by the publisher to sync with other header bidding libraries on the page. $.source.tid is the same for each bidder and differs for each auction. We understand from buyer platform members that it is losing utility in favor of `imp.ext.tid`. It is the request object `auctionId`. It can be set by the publisher to sync with other header bidding libraries on the page. -$.source.schain.nodes[0].rid is not generated by the Prebid.js core library nor the schain module and may vary unexpectedly. We don't recommend anyone rely on it as a stand in for the seller on the page's request identifier currently. +$.source.schain.nodes[0].rid is not generated by the Prebid.js core library nor the schain module and may vary unexpectedly. These identifiers are extremely powerful for discrepancy reconciliation, ad quality investigations, consent audits, and a huge range of other applications. They also allow data appended to different requests (eg dealIds) to be commingled downstream. For this reason, our publisher committee and Prebid.org counsel have decided to require publisher opt in to their inclusion in the bid stream. This meant Prebid engineering changed every openrtb request in the project to potentially transmit a null in these fields. Todo comments were added to bid adapters not using OpenRTB that send them over the wire to confirm they can accept null values. From 410e0c9a1cea23d87f18f7650af32d8fba82b062 Mon Sep 17 00:00:00 2001 From: Patrick McCann Date: Wed, 14 Jun 2023 14:27:43 -0400 Subject: [PATCH 08/12] Update pb8-notes.html --- dev-docs/pb8-notes.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/pb8-notes.html b/dev-docs/pb8-notes.html index d19dc9b63d..d07dba4284 100644 --- a/dev-docs/pb8-notes.html +++ b/dev-docs/pb8-notes.html @@ -58,7 +58,7 @@ $.source.tid is the same for each bidder and differs for each auction. We understand from buyer platform members that it is losing utility in favor of `imp.ext.tid`. It is the request object `auctionId`. It can be set by the publisher to sync with other header bidding libraries on the page. $.source.schain.nodes[0].rid is not generated by the Prebid.js core library nor the schain module and may vary unexpectedly. -These identifiers are extremely powerful for discrepancy reconciliation, ad quality investigations, consent audits, and a huge range of other applications. They also allow data appended to different requests (eg dealIds) to be commingled downstream. For this reason, our publisher committee and Prebid.org counsel have decided to require publisher opt in to their inclusion in the bid stream. This meant Prebid engineering changed every openrtb request in the project to potentially transmit a null in these fields. Todo comments were added to bid adapters not using OpenRTB that send them over the wire to confirm they can accept null values. +These identifiers are extremely powerful for discrepancy reconciliation, ad quality investigations, consent audits, and a huge range of other applications. They also allow data appended to different requests (eg dealIds) to be commingled downstream. For this reason, our publisher committee and Prebid.org counsel have decided to require publisher opt in to their inclusion in the bid stream. This meant Prebid engineering changed every openrtb request in the project to potentially transmit a null in these fields. Todo comments were added to bid adapters not using OpenRTB that send them over the wire to confirm they can accept null values. Publishers can use `pbjs.setConfig({enableTIDs: true})` to opt in. ## Activity Controls From cd46447234ace36415df89f3664fcddf03219c37 Mon Sep 17 00:00:00 2001 From: Patrick McCann Date: Wed, 14 Jun 2023 14:53:56 -0400 Subject: [PATCH 09/12] Update pb8-notes.html --- dev-docs/pb8-notes.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-docs/pb8-notes.html b/dev-docs/pb8-notes.html index d07dba4284..3a33566503 100644 --- a/dev-docs/pb8-notes.html +++ b/dev-docs/pb8-notes.html @@ -34,7 +34,7 @@ | Google Analytics Adapter | Recommend publishers explore the Generic Analytics Adapter | Inmar Bid Adapter | Inskin Bid Adapter -| MASS Deal Rendering Module | Replaced by documentation on bids back handler +| MASS Deal Rendering Module | Replaced by (documentation) [https://github.com/prebid/prebid.github.io/issues/4535] | AOL Bid Adapter | Reach out to Yahoo | CPEX ID submodule | CzechAdId Module | PubcommonID module | SharedID Userid Submodule From 266da78cc0a130d63868f3da69852447a5c962c1 Mon Sep 17 00:00:00 2001 From: bretg Date: Wed, 14 Jun 2023 15:12:01 -0400 Subject: [PATCH 10/12] Rename pb8-notes.html to pb8-notes.md --- dev-docs/{pb8-notes.html => pb8-notes.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename dev-docs/{pb8-notes.html => pb8-notes.md} (100%) diff --git a/dev-docs/pb8-notes.html b/dev-docs/pb8-notes.md similarity index 100% rename from dev-docs/pb8-notes.html rename to dev-docs/pb8-notes.md From 285243532d842cb90186afdaf21282ca835517ca Mon Sep 17 00:00:00 2001 From: bretg Date: Wed, 14 Jun 2023 15:26:33 -0400 Subject: [PATCH 11/12] wordsmithing --- dev-docs/pb8-notes.md | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/dev-docs/pb8-notes.md b/dev-docs/pb8-notes.md index 3a33566503..7309f51e36 100644 --- a/dev-docs/pb8-notes.md +++ b/dev-docs/pb8-notes.md @@ -1,11 +1,11 @@ --- layout: page_v2 -title: Prebid 8.0 Release Notes & Publisher API Changes -description: Description of the breaking changes included for Prebid 8.0 +title: Prebid.js 8.0 Release Notes & Publisher API Changes +description: Description of the breaking changes included for Prebid.js 8.0 sidebarType: 1 --- -# Prebid 8.0 Bidder Interface and Publisher API Changes +# Prebid.js 8.0 Bidder Interface and Publisher API Changes {:.no_toc} This document describes the changes included for Prebid.js version 8.0. @@ -17,10 +17,9 @@ This document describes the changes included for Prebid.js version 8.0. 1. Be aware that a number of modules have been removed. See below for the list. 2. Transaction identifiers are reliable but opt in. -3. Size Mapping pulled into its own module +3. Size Mapping has been pulled into its own module 4. Activity control interface defines behavior suppression, including RTD, Geo, and TIDs - Details on all of these below. ## Removed Modules @@ -28,7 +27,6 @@ Details on all of these below. The following modules have been removed from Prebid.js as part of the 8.0 release. Publishers building with one of them will need to point to its replacement or remove the module from their build. {: .table .table-bordered .table-striped } - | Module | Replacement | |:-----------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | Google Analytics Adapter | Recommend publishers explore the Generic Analytics Adapter @@ -51,18 +49,18 @@ The following modules have been removed from Prebid.js as part of the 8.0 releas ## Transaction identifiers are now reliable and opt in -Following the [OpenRTB 2.6 spec](https://github.com/InteractiveAdvertisingBureau/openrtb2.x/blob/main/2.6.md) and the [imp.ext.tid] (https://github.com/InteractiveAdvertisingBureau/openrtb/blob/master/extensions/community_extensions/per-imp-tids.md) community extensions, several fields in Prebid have equivalents in OpenRTB. +Following the [OpenRTB 2.6 spec](https://github.com/InteractiveAdvertisingBureau/openrtb2.x/blob/main/2.6.md) and the [imp.ext.tid](https://github.com/InteractiveAdvertisingBureau/openrtb/blob/master/extensions/community_extensions/per-imp-tids.md) community extensions, several fields in Prebid have equivalents in OpenRTB. -$.id, the top level id, is now unique to each bid request. It may come from a bidder `getUUID` call or from the `bidderRequestId`. -$.imp.ext.tid is the same for each bidder and differs for each slot in the auction. It is the request object `transactionId`. It can be set by the publisher to sync with other header bidding libraries on the page. -$.source.tid is the same for each bidder and differs for each auction. We understand from buyer platform members that it is losing utility in favor of `imp.ext.tid`. It is the request object `auctionId`. It can be set by the publisher to sync with other header bidding libraries on the page. -$.source.schain.nodes[0].rid is not generated by the Prebid.js core library nor the schain module and may vary unexpectedly. +- $.id, the top level id, is now unique to each bid request. It may come from a bidder `getUUID` call or from the `bidderRequestId`. +- $.imp.ext.tid is the same for each bidder and differs for each slot in the auction. It is the request object `transactionId`. It can be set by the publisher to sync with other header bidding libraries on the page. +- $.source.tid is the same for each bidder and differs for each auction. We understand from buyer platform members that it is losing utility in favor of `imp.ext.tid`. It is the request object `auctionId`. It can be set by the publisher to sync with other header bidding libraries on the page. +- $.source.schain.nodes[0].rid is not generated by the Prebid.js core library nor the schain module and may vary unexpectedly. -These identifiers are extremely powerful for discrepancy reconciliation, ad quality investigations, consent audits, and a huge range of other applications. They also allow data appended to different requests (eg dealIds) to be commingled downstream. For this reason, our publisher committee and Prebid.org counsel have decided to require publisher opt in to their inclusion in the bid stream. This meant Prebid engineering changed every openrtb request in the project to potentially transmit a null in these fields. Todo comments were added to bid adapters not using OpenRTB that send them over the wire to confirm they can accept null values. Publishers can use `pbjs.setConfig({enableTIDs: true})` to opt in. +These identifiers are extremely powerful for discrepancy reconciliation, ad quality investigations, consent audits, and a huge range of other applications. They also allow data appended to different requests (eg dealIds) to be commingled downstream. For this reason, our publisher committee and Prebid.org counsel have decided to require publisher opt-in to their inclusion in the bid stream. This means Prebid engineering changed every openrtb request in the project to potentially transmit a null in these fields. Comments were added to bid adapters not using OpenRTB that send them over the wire to confirm they can accept null values. Publishers can use `pbjs.setConfig({enableTIDs: true})` to opt-in. ## Activity Controls -Activity controls were very recently released, and are even more powerful in Prebid 8. `transmitTid` is a new control added. +[Activity controls](/dev-docs/activity-controls.html) were very recently released, and are even more powerful in Prebid.js 8. `transmitTid` is a new control added. Also, in order to allow publishers to better comply with regulations around precise location, bid adapters must read location from the global, not from their own parameters. @@ -72,15 +70,15 @@ Several activity control translation modules will be released in the near future ## Size Mapping -Labels users should be careful to examine the new size mapping module. We moved it out of core to improve the build size. See https://github.com/prebid/Prebid.js/issue/9597 +Users of the [label](/dev-docs/conditional-ad-units.html) feature should be careful to examine the new size mapping module. We moved it out of core to improve the build size. See https://github.com/prebid/Prebid.js/issue/9597 ## Misc changes -`auctionInit` event payload is now less bloated. See https://github.com/prebid/Prebid.js/pull/9897 -Bidder `categoryTranslation` is no longer in core. See https://github.com/prebid/Prebid.js/pull/9898 -`bidderCode` can no longer come from the bid response, as this was breaking aliasing. See https://github.com/prebid/Prebid.js/pull/9905 -`onBidWon` was often listened to by client side bid adapters and would get fired when a server side bid was won. This has been cleaned up. See https://github.com/prebid/Prebid.js/pull/9919 -`ext.prebid.floorMin` has been dropped in favor of `ext.prebid.floors.floorMin` as a parameter on the PBS Bid adapter call See https://github.com/prebid/Prebid.js/pull/9899 -`bidResponse` is emitted immediately after adding the bidResponse instead of immediately before. See https://github.com/prebid/Prebid.js/pull/9847 -PBS bid adapter now supports native javascript trackers. See https://github.com/prebid/Prebid.js/pull/9900 -`NO_BID` events no longer occur on bid rejections and zero-cpm bids. See https://github.com/prebid/Prebid.js/pull/9902 +- `auctionInit` event payload is now less bloated. See https://github.com/prebid/Prebid.js/pull/9897 +- Bidder `categoryTranslation` is no longer in core. See https://github.com/prebid/Prebid.js/pull/9898 +- `bidderCode` can no longer come from the bid response, as this was breaking aliasing. See https://github.com/prebid/Prebid.js/pull/9905 +- `onBidWon` was often listened to by client side bid adapters and would get fired when a server side bid was won. This has been cleaned up. See https://github.com/prebid/Prebid.js/pull/9919 +- `ext.prebid.floorMin` has been dropped in favor of `ext.prebid.floors.floorMin` as a parameter on the PBS Bid adapter call See https://github.com/prebid/Prebid.js/pull/9899 +- `bidResponse` is emitted immediately after adding the bidResponse instead of immediately before. See https://github.com/prebid/Prebid.js/pull/9847 +- PBS bid adapter now supports native javascript trackers. See https://github.com/prebid/Prebid.js/pull/9900 +- `NO_BID` events no longer occur on bid rejections and zero-cpm bids. See https://github.com/prebid/Prebid.js/pull/9902 From 612c37980287a837665467e8880325d7f7ae18fc Mon Sep 17 00:00:00 2001 From: bretg Date: Wed, 14 Jun 2023 15:36:50 -0400 Subject: [PATCH 12/12] added links --- dev-docs/pb8-notes.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/dev-docs/pb8-notes.md b/dev-docs/pb8-notes.md index 7309f51e36..99af1aef9b 100644 --- a/dev-docs/pb8-notes.md +++ b/dev-docs/pb8-notes.md @@ -70,15 +70,15 @@ Several activity control translation modules will be released in the near future ## Size Mapping -Users of the [label](/dev-docs/conditional-ad-units.html) feature should be careful to examine the new size mapping module. We moved it out of core to improve the build size. See https://github.com/prebid/Prebid.js/issue/9597 +Users of the [label](/dev-docs/conditional-ad-units.html) feature should be careful to examine the new size mapping module. We moved it out of core to improve the build size. See [https://github.com/prebid/Prebid.js/issue/9597](https://github.com/prebid/Prebid.js/issue/9597) ## Misc changes -- `auctionInit` event payload is now less bloated. See https://github.com/prebid/Prebid.js/pull/9897 -- Bidder `categoryTranslation` is no longer in core. See https://github.com/prebid/Prebid.js/pull/9898 -- `bidderCode` can no longer come from the bid response, as this was breaking aliasing. See https://github.com/prebid/Prebid.js/pull/9905 -- `onBidWon` was often listened to by client side bid adapters and would get fired when a server side bid was won. This has been cleaned up. See https://github.com/prebid/Prebid.js/pull/9919 -- `ext.prebid.floorMin` has been dropped in favor of `ext.prebid.floors.floorMin` as a parameter on the PBS Bid adapter call See https://github.com/prebid/Prebid.js/pull/9899 -- `bidResponse` is emitted immediately after adding the bidResponse instead of immediately before. See https://github.com/prebid/Prebid.js/pull/9847 -- PBS bid adapter now supports native javascript trackers. See https://github.com/prebid/Prebid.js/pull/9900 -- `NO_BID` events no longer occur on bid rejections and zero-cpm bids. See https://github.com/prebid/Prebid.js/pull/9902 +- `auctionInit` event payload is now less bloated. See [https://github.com/prebid/Prebid.js/pull/9897](https://github.com/prebid/Prebid.js/pull/9897) +- Bidder `categoryTranslation` is no longer in core. See [https://github.com/prebid/Prebid.js/pull/9898](https://github.com/prebid/Prebid.js/pull/9898) +- `bidderCode` can no longer come from the bid response, as this was breaking aliasing. See [https://github.com/prebid/Prebid.js/pull/9905](https://github.com/prebid/Prebid.js/pull/9905) +- `onBidWon` was often listened to by client side bid adapters and would get fired when a server side bid was won. This has been cleaned up. See [https://github.com/prebid/Prebid.js/pull/9919](https://github.com/prebid/Prebid.js/pull/9919) +- `ext.prebid.floorMin` has been dropped in favor of `ext.prebid.floors.floorMin` as a parameter on the PBS Bid adapter call See [https://github.com/prebid/Prebid.js/pull/9899](https://github.com/prebid/Prebid.js/pull/9899) +- `bidResponse` is emitted immediately after adding the bidResponse instead of immediately before. See [https://github.com/prebid/Prebid.js/pull/9847](https://github.com/prebid/Prebid.js/pull/9847) +- PBS bid adapter now supports native javascript trackers. See [https://github.com/prebid/Prebid.js/pull/9900](https://github.com/prebid/Prebid.js/pull/9900) +- `NO_BID` events no longer occur on bid rejections and zero-cpm bids. See [https://github.com/prebid/Prebid.js/pull/9902](https://github.com/prebid/Prebid.js/pull/9902)