Prebid.js 8.0 Bidder Interface and Publisher API Changes

This document describes the changes included for Prebid.js version 8.0.

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 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

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.

Module Replacement
Google Analytics Adapter Recommend publishers explore the Generic Analytics Adapter
Inmar Bid Adapter  
Inskin Bid Adapter  
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
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
Synacor Bid Adapter IMDS Bid Adapter
AdGeneration Bid Adapter  
EMX Bid Adapter Cadent Aperture MX Bid Adapter
Rubicon Analytics Adapter Magnite Analytics Adapter

Transaction identifiers are now reliable and opt in

Following the OpenRTB 2.6 spec and the imp.ext.tid 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.

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.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.

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.

Additionally, bidder aliases should now have their own gvl id if a user has the consent management module.

Size Mapping

Users of the label feature should be careful to examine the new size mapping module. We moved it out of core to improve the build size. See github.com/prebid/Prebid.js/issue/9597

Misc changes