Index Exchange supplier ingest
Index Exchange (Index or IX) also accepts OpenRTB requests directly from publishers and integrated supply partners. This supplier ingest contract has different required fields from the requests Index sends to DSPs.
Direction and version
Publishers and integrated partners send bid requests to Index. The profile covers the request only; Index's responses to sellers are outside it.
OpenRTB 2.6 with AdCOM 1.0 lists as the reference. Flags are 0 or 1 integers, and Native requests are JSON strings in imp.native.request.
The RTBlint profile index-exchange-seller checks requests against the published contract.
Rules beyond the OpenRTB spec
tmaxis required and must be at least 100 milliseconds.- The device address is required in
device.ip, or indevice.ipv6when there is no IPv4 address. - Site requests need
site.domainorsite.page. A request with neither is invalid. - Video needs at least one supported value in
protocols. VPAID needsapplication/javascriptinmimestogether withapi1 or 2. - Several video impressions that form one ad pod must share the same
podid. A dynamic pod signaled bypodduralso needspodidandmaxseq. - Index runs first-price auctions, and
at2 is not supported. Deals may useat3 or exchange-defined values of 500 and above, with deal floors in dollars. site.domain,site.page, anddevice.uaare truncated after 512 characters.
Documented extensions
| Path | Meaning |
|---|---|
imp.ext.gpid | Global placement ID of the ad slot. |
imp.ext.dfp_ad_unit_code | Ad server ad unit code, used when there is no GPID. |
imp.ext.tid | Transaction ID of the impression. |
imp.ext.sid | Seller-defined ID that appears in Index's client audit logs. |
imp.ext.skadn | SKAdNetwork data; keep skadnetlist.addl to 10 IDs or fewer. |
imp.video.ext.rewarded | Rewarded video flag, 0 or 1. |
source.ext.omidpn | Open Measurement partner name. |
site.ext.inventorypartnerdomain | Inventory partner domain for authorization checks. |
regs.ext.dsa | Digital Services Act requirements. |
user.ext.consent | TCF consent string in its legacy location. |
device.ext.ifv | iOS identifier for vendors. |
What the validator checks for this profile
openrtb.profile.index.ip_requiredIndex supplier requests require device.ip or device.ipv6.openrtb.profile.index.pod_id_mismatchIndex supplier requests with multiple video impressions require the same podid for a single ad pod.openrtb.profile.index.site_identityIndex supplier site requests require domain or page.openrtb.profile.index.tmax_minimumIndex supplier requests allow at least 100 milliseconds.openrtb.profile.index.video_protocolIndex requires at least one supported video protocol.openrtb.profile.index.vpaid_apiIndex requires VPAID API 1 or 2 with application/javascript video.
Validate against this contract
Open the tester with the Index Exchange supplier ingest profile, or run:
rtblint validate --profile index-exchange-seller request.json