Magnite DV+ xAPI
Magnite, formerly the Rubicon Project, runs the DV+ sell-side platform, and xAPI is DV+'s server API for requesting bids. Magnite publishes the xAPI OpenRTB extensions as a public protobuf model on GitHub. Magnite Streaming and SpringServe use separate protocols.
Direction and version
A calling ad server or platform sends requests to Magnite's DV+ xAPI endpoint, and Magnite returns the bid response. Some request extensions are passed on to DSPs.
A proto2 extension model on top of the IAB OpenRTB 2.x protobuf (com.iabtechlab.openrtb.v2), used in JSON with Magnite fields mostly under ext.rp. The JSON integration guide is behind a login, so flags are accepted as JSON booleans or as 0 and 1 integers.
The RTBlint profile magnite checks requests and responses against the published contract.
Rules beyond the OpenRTB spec
- Supplied xAPI extensions must match the public model's field types and integer widths, including the nested window, floor, proxy demand, and targeting messages.
- Request lists are bounded:
ext.rp.badvid(blocked advertiser IDs) holds at most 20 entries andext.rp.baindid(blocked industry IDs) at most 50. - Impression trackers in
bid.ext.rp.imptrackersmust use HTTPS when the impression is secure. - A returned creative must match what the impression offered: its media format, API framework, banner MIME type, and DV+ size ID from
imp.banner.ext.rp.size_idorimp.banner.ext.rp.alt_size_ids. - Banner
ext.rp.mimeisapplication/javascriptortext/html. - Proxy bids in
imp.ext.rp.proxydemandare USD CPM, gross by default, and are recorded as house bids without revenue. pmptier3 means PMP and 4 means First Right; 1 and 2 are reserved.- The response time in
ext.rp.timeis rounded up to a multiple of 10 milliseconds. - The model marks several fields deprecated, including banner
usenurl, floordpf, the videoskipandskipdelayextensions, and the DigiTrustuser.ext.dtidentifier.
Documented extensions
| Path | Meaning |
|---|---|
ext.rp.zone_id | DV+ zone ID for the request. |
imp.ext.rp.zone_id | DV+ zone ID for the impression. |
imp.ext.rp.floors | Floors with price, PMP tier, and priority. |
imp.ext.rp.proxydemand | House or proxy bids with a market rate. |
imp.ext.rp.target | Key-value targeting for the impression. |
imp.ext.gpid | Global placement ID. |
imp.banner.ext.rp.size_id | DV+ size ID of the primary banner size. |
imp.banner.ext.rp.alt_size_ids | Alternate DV+ size IDs the slot accepts. |
site.ext.rp.site_id | DV+ site ID. |
site.publisher.ext.rp.account_id | DV+ account ID of the publisher. |
device.ext.ipmask | Asks Magnite to mask the IP address before sending it to DSPs. |
regs.ext.s22580 | Flag for California Business and Professions Code section 22580. |
source.ext.ssreq | Marks a server-side ad insertion request. |
bid.ext.rp.advid | DV+ advertiser ID of the creative. |
bid.ext.rp.size_id | DV+ size ID of the returned banner. |
What the validator checks for this profile
openrtb.profile.magnite.api_not_offeredThe referenced impression does not offer the Magnite creative API framework.openrtb.profile.magnite.array_limitMagnite xAPI the field permits at most the field entries.openrtb.profile.magnite.deprecatedThe public Magnite xAPI model marks this extension field deprecated; no account-side behavior is inferred.openrtb.profile.magnite.insecure_trackerMagnite xAPI requires HTTPS impression trackers when the referenced impression is secure.openrtb.profile.magnite.media_not_offeredThe Magnite xAPI creative format was not offered by the referenced impression.openrtb.profile.magnite.mime_mismatchThe Magnite banner response MIME type differs from the requested markup format.openrtb.profile.magnite.size_not_offeredThe Magnite banner size ID was not included in the explicit primary or alternate size IDs.openrtb.profile.magnite.type_invalidThe supplied Magnite xAPI extension does not match its public field type or integer width.
Validate against this contract
Open the tester with the Magnite DV+ xAPI profile, or run:
rtblint validate --profile magnite request.json
Similar integrations
- Adform OpenRTB handler
- AppLovin ALX DSP response
- BidSwitch buyer 5.7
- Digital Turbine Exchange
- Display & Video 360
- Equativ bidder contract
- Google Authorized Buyers
- Index Exchange DSP
- InMobi DSP
- Microsoft Monetize bidder
- MobileFuse in-app bidding
- MobileFuse SDK bidding
- Sovrn request
- Unity Exchange
- Vungle Exchange
- Yandex SDK bidding