rtd: fall back to global routing for unknown bidders#295
Open
MO-Thibault wants to merge 1 commit into
Open
Conversation
When defaultEIDSources routes EIDs to bidder-specific fragments (e.g. smartadserver.com → smartadserver), the RTD module was creating new entries in ortb2Fragments.bidder for bidders that don't exist in the auction. Prebid.js then generates eidpermissions with empty bidder arrays, causing PBS to reject the request: "Invalid request: request.ext.prebid.data.eidpermissions[0] missing or empty required field: bidders" Fix: only merge to bidders that already exist in ortb2Fragments.bidder. Unknown bidders fall back to global routing instead of creating phantom bidder entries. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
defaultEIDSourcesdoesn't exist in the current auction, route EIDs globally instead of creating phantom bidder entriesProblem
defaultEIDSourcesmaps EID sources to specific bidders (e.g.smartadserver.com→smartadserver). When those bidders don't exist in the publisher's Prebid config, the RTD module creates new entries inortb2Fragments.bidderfor non-existent bidders. Prebid.js then generateseidpermissionswith"bidders": [], and PBS rejects the request:Affected customers: Unwind, Arena, MediaCo, MyCode, DDM — any publisher using ID5 enrichment where the enriched EID sources (smartadserver, gumgum, triplelift, etc.) don't match their PBS bidder config.
Fix
One-line change in the merge phase of
handleRtd(): checkroute in reqBidsConfigObj.ortb2Fragments.bidderbefore merging per-bidder. Unknown bidders fall back to global routing.Before: blindly creates
ortb2Fragments.bidder[route]→ phantom bidder → empty eidpermissions → PBS errorAfter: only merges to existing bidders; unknown routes merge to
ortb2Fragments.global→ EIDs available to all bidders, no phantom entriesTest plan
defaultEIDSourcesand a publisher missing smartadserver bidder: noeidpermissionswith empty bidders in PBS payloaduser.ext.eidsinstead🤖 Generated with Claude Code