Commerce Grid supplier ingest

Commerce Grid is a Criteo product, documented as Criteo Commerce Grid. Its custom server-to-server guide defines the OpenRTB request a supplier sends to it.

Direction and version

Publishers and resellers send server-to-server bid requests to Commerce Grid endpoints. The profile covers the request only.

Built on OpenRTB 2.6, with some 2.5 references. Flags are integers, and Native requests may be an object or a serialized string in imp.native, imp.native.request, or imp.native.request_native.

The RTBlint profile commerce-grid checks requests against the published contract.

Rules beyond the OpenRTB spec

  • Requests need device, user, source, a supply chain, and at least one currency in cur.
  • A network ID is required, either as a URL query parameter or in site.publisher.ext.networkId or app.publisher.ext.networkId.
  • source.ext.sourcetype and source.ext.sourceorigin are required and use Commerce Grid's documented codes.
  • Banner impressions list their sizes in format, even for a single size.
  • Send only one of wlang and wlangb.
  • Native requests need privacy set to 1, and metric values must be between 0 and 1.
  • imp.ext.skadn.sourceapp must match app.bundle.
  • badv should list 100 domains or fewer, bcat supports only cattax 1, and regs.us_privacy is four characters.
  • test, bseat, allimps, audio, and iframebuster are not supported, and secure is always treated as 1.

Documented extensions

PathMeaning
source.ext.sourcetype1 not header bidding, 2 client-side header bidding, 3 server-side header bidding.
source.ext.sourceoriginRequest origin: 1 own tag, 2 other SSP, 3 Amazon TAM, 4 EBDA, 5 Prebid, 6 Index header bidding, 7 other.
imp.ext.gpidGlobal placement ID; Criteo's notes call it mandatory while its table says recommended.
imp.ext.bidder.uidAd unit mapping ID.
imp.ext.publisher_sub_idSub-publisher ID for reporting breakdowns.
imp.ext.skadnSKAdNetwork data.
site.publisher.ext.networkIdCommerce Grid network ID, also accepted on app.publisher.
user.ext.consentTCF consent string in its legacy location.
regs.ext.gppGPP string in its legacy location.

What the validator checks for this profile

Validate against this contract

Open the tester with the Commerce Grid supplier ingest profile, or run:

rtblint validate --profile commerce-grid request.json

Similar integrations