You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Core builds every demand source's request as an OpenRTB 2.6 bid request and reads every answer as an OpenRTB bid response, in auction/openrtb.rs, openrtb.rs, the auction endpoints and the EID helpers, and the generated OpenRTB types are a crate of their own that core depends on. A demand source on another protocol cannot be an auction module without translating to OpenRTB first, and a change in what OpenRTB carries is a change in core.
crates/auction-protocol/openrtb exists for the plain OpenRTB demand implementation, so the standard already has a crate, and core still holds the protocol.
What changes
Core keeps a neutral auction. The facts core routes to a demand source (the slots, the formats, the resolved permission state, the identifiers the request may carry) and what it takes back (bids, with the creative, the price and the seat) are core's types and name no protocol.
OpenRTB is a protocol module. The request builder, the response reader and the EID formatting move to crates/auction-protocol/openrtb, which depends on the generated types crate, and a demand implementation that speaks OpenRTB depends on that crate, as one vendor crate may depend on another where no released package offers the functionality.
The endpoints are protocol-neutral. The auction endpoints call the protocol module the selected demand sources use, and read nothing of OpenRTB themselves.
Why
The seam (#1094) made each demand source a module, and left them all speaking the one protocol core knows. A standard is a vendor as much as a product is, and the auction protocol is the largest standard core still carries.
What breaks
A demand source implemented against the OpenRTB types keeps working through the protocol crate. A deployment's settings do not change.
Where it is
A series on the stack, as a draft on the fork, jwrosewell#40, on top of the 51Degrees client hints middleware (fork pull request 39). The series will say what of the generated types crate moves with it.
Activity