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

  • tmax is required and must be at least 100 milliseconds.
  • The device address is required in device.ip, or in device.ipv6 when there is no IPv4 address.
  • Site requests need site.domain or site.page. A request with neither is invalid.
  • Video needs at least one supported value in protocols. VPAID needs application/javascript in mimes together with api 1 or 2.
  • Several video impressions that form one ad pod must share the same podid. A dynamic pod signaled by poddur also needs podid and maxseq.
  • Index runs first-price auctions, and at 2 is not supported. Deals may use at 3 or exchange-defined values of 500 and above, with deal floors in dollars.
  • site.domain, site.page, and device.ua are truncated after 512 characters.

Documented extensions

PathMeaning
imp.ext.gpidGlobal placement ID of the ad slot.
imp.ext.dfp_ad_unit_codeAd server ad unit code, used when there is no GPID.
imp.ext.tidTransaction ID of the impression.
imp.ext.sidSeller-defined ID that appears in Index's client audit logs.
imp.ext.skadnSKAdNetwork data; keep skadnetlist.addl to 10 IDs or fewer.
imp.video.ext.rewardedRewarded video flag, 0 or 1.
source.ext.omidpnOpen Measurement partner name.
site.ext.inventorypartnerdomainInventory partner domain for authorization checks.
regs.ext.dsaDigital Services Act requirements.
user.ext.consentTCF consent string in its legacy location.
device.ext.ifviOS identifier for vendors.

What the validator checks for this profile

Validate against this contract

Open the tester with the Index Exchange supplier ingest profile, or run:

rtblint validate --profile index-exchange-seller request.json

Similar integrations