Introduction
On July 1st, 2025, Prebid.js 10 was officially released. This new major version is a significant step forward-cleaning up deprecated modules, simplifying APIs, and introducing support for modern tools. Publishers planning to upgrade should be aware of several important changes in targeting, user identity, and overall infrastructure setup.
Core Changes in Prebid.js 10
A number of outdated modules have been removed and replaced with updated equivalents. The long-used sendTargetingKeys method is no longer supported, requiring new targeting approaches in native ads. Similarly, the legacy pbadslot parameter has been fully replaced by ortb2Imp.ext.gpid.
Methods such as getBidResponses and getNoBidsForAdUnitCode now return arrays, and bid response helpers have been streamlined. For example, getHighestUnusedBidResponseForAdUnitCode returns null if no matching bid is found.
TypeScript Support and Build Requirements
Prebid.js now officially supports TypeScript, providing better type safety for larger projects. To build the library, Node.js 20 or newer is required – older versions will no longer be compatible.
Targeting, Storage, and User ID
Targeting rules have been tightened. By default, losing bids can no longer set custom keys, while new storage transparency mechanisms ensure compliance with privacy and e-privacy regulations.
The User ID module has been updated with additional options: enforceStorageType now warns if a submodule uses the wrong storage type (with stricter enforcement planned for the future), while autoRefresh and retainConfig give more control over identity refresh and persistence. Importantly, the bid.userId field is no longer populated—publishers should switch to userIdAsEids or user.ext.eids.
API and Module Updates
Several API adjustments simplify the ecosystem. The ADPOD module has been deprecated, and methods such as createBid, statusMessage, and getStatusCode() have been removed from bid objects. Modules previously starting with dfp have been renamed to gam, requiring updates to build configurations. The PBS adapter now requires an explicit endpoint, and legacy pbadslot support has been fully removed.
In addition, all public API methods now generate debug log messages, and banner media type parameters are validated more strictly against imp[].banner.