PubMatic OpenWrap wire contract

OpenWrap is PubMatic's header bidding wrapper, and its server side runs in PubMatic's public fork of Prebid Server with custom request and response fields. This profile follows that fork at a pinned commit. PubMatic's full exchange contract sits behind a partner login and is not covered.

Direction and version

OpenWrap clients such as wrapper tags, SDKs, and video players send requests to PubMatic's OpenWrap server, which runs a Prebid Server auction and returns the response.

OpenRTB 2.6 types from the Prebid Server Go codebase. Go boolean fields need JSON true or false, integer fields keep their signed 64, 32, or 8-bit limits, and a few response keys are camelCase.

The RTBlint profile pubmatic-openwrap checks requests and responses against the published contract.

Rules beyond the OpenRTB spec

  • Wrapper settings such as ext.wrapper.profileid and ext.wrapper.versionid are integers, while ext.wrapper.supportdeals is a JSON boolean.
  • Custom fields must match their published Go types. Nulls are accepted where Go's JSON decoder accepts them, and unknown keys stay open.
  • bid.ext.video.skip is a 0 or 1 flag.
  • Legacy regs.ext.gdpr, regs.ext.us_privacy, and user.ext.consent are accepted.
  • Raw OpenWrap requests are not held to normalized Prebid Server bidder fields, because OpenWrap middleware fills bidder configuration, targeting, and account settings first.
  • Profile IDs, placement settings, and ad-pod defaults can come from the account database, so their absence in a raw request is not an error.

Documented extensions

PathMeaning
ext.wrapper.profileidOpenWrap profile ID.
ext.wrapper.versionidVersion of the OpenWrap profile.
ext.wrapper.kvCustom key-values.
ext.adpodRequest-level ad-pod defaults and cross-pod exclusions.
imp.ext.bidderPer-bidder settings, including keywords and deal tiers.
imp.ext.gpidGlobal placement ID.
imp.video.ext.adpodAd-pod settings for a video impression.
bid.ext.netecpmNet eCPM of the bid.
bid.ext.origbidcpmusdOriginal bid CPM in USD.
bid.ext.dspidID of the DSP that bid.
bid.ext.crtypeCreative type of the bid.

What the validator checks for this profile

Validate against this contract

Open the tester with the PubMatic OpenWrap wire contract profile, or run:

rtblint validate --profile pubmatic-openwrap request.json

Similar integrations