Index Exchange DSP
Index Exchange, also written as Index or IX, runs a sell-side ad exchange. This profile covers the requests Index sends to demand-side platforms and the responses DSPs return. Supply sent into Index is the separate index-exchange-seller profile.
Direction and version
Index sends bid requests to DSPs, and DSPs return bid responses to Index.
The DSP guide does not pin one OpenRTB version; it describes 2.6 fields with AdCOM 1.0 lists and Native 1.2. Flags are 0 or 1 integers, and Native requests are JSON strings in imp.native.request.
The RTBlint profile index-exchange checks requests and responses against the published contract.
Rules beyond the OpenRTB spec
- Index prices requests in USD:
curandbidfloorcurare always USD. - Second-price auctions (
at2) are not supported. Deals useat1 or 3, where 3 is a fixed price. - Responses need
adomainunless the impression is passed on, and each advertiser domain is limited to 128 characters. seatbid.seatis required by default and holds a numeric seat ID. Index can turn the requirement off for a DSP.- Banner creative dimensions must match one of the fixed sizes offered in
imp.banner.format. - Native markup in
admmust be wrapped in an outernativeobject. - A SKAdNetwork response must use a network ID the request offered, and
bid.ext.skadn.itunesitemmust matchbid.bundle. - When billing notices are enabled,
burlmust contain${AUCTION_PRICE}, and only impressions tracked throughburlare billable. - Deal discounts in
imp.pmp.deals[].ext.discare fractions from 0.01 to 1.0, and probability metrics inimp.metricrun from 0.0 to 1.0. - DSA names in
bid.ext.dsaare limited to 100 characters. If the request is secure andadmloads insecure content, Index discards the impression.
Documented extensions
| Path | Meaning |
|---|---|
source.ext.sourceType | How the request reached Index: 1 not header bidding, 2 client-side, 3 server-side. |
source.ext.sourceOrigin | Where the request came from, such as direct, another SSP, Amazon TAM, Google Open Bidding, Prebid, or the IX wrapper. |
source.ext.omidpn | Open Measurement partner name. |
imp.pmp.deals[].ext.disc | Discount applied to the deal. |
imp.ext.skadn | SKAdNetwork request data; raw network IDs preferably go in skadnetlist.addl. |
device.ext.ifv | iOS identifier for vendors. |
device.ext.atts | App Tracking Transparency status. |
regs.ext.dsa | Digital Services Act requirements. |
user.ext.consent | TCF consent string in its legacy location. |
user.eids[].ext.rtipartner | Name of the identity provider. |
bid.ext.skadn | SKAdNetwork response data. |
bid.ext.dsa | DSA transparency returned by the buyer. |
What the validator checks for this profile
openrtb.profile.index.adomain_expectedIndex expects adomain unless the impression is passed on; that exception needs integration context.openrtb.profile.index.adomain_lengthIndex advertiser domains allow at most 128 characters.openrtb.profile.index.banner_size_unofferedThe banner creative dimensions must match an offered fixed format.openrtb.profile.index.currencyIndex's published DSP requests use USD.openrtb.profile.index.deal_discountIndex deal discounts are fractions from 0.01 through 1.0.openrtb.profile.index.dsa_lengthIndex DSA names allow at most 100 characters.openrtb.profile.index.metric_probabilityIndex probability metrics must be from 0.0 through 1.0.openrtb.profile.index.native_wrapperIndex native bid markup requires an outer native object.openrtb.profile.index.seat_expectedIndex normally requires seat, but can disable it per DSP; account configuration is unavailable.openrtb.profile.index.skad_bundleSKAdNetwork itunesitem must match bid.bundle.openrtb.profile.index.skad_networkThe SKAdNetwork response network must match an offered request ID.
Validate against this contract
Open the tester with the Index Exchange DSP profile, or run:
rtblint validate --profile index-exchange 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
- InMobi DSP
- Magnite DV+ xAPI
- Microsoft Monetize bidder
- MobileFuse in-app bidding
- MobileFuse SDK bidding
- Sovrn request
- Unity Exchange
- Vungle Exchange
- Yandex SDK bidding