Equativ supplier ingest
Equativ, formerly Smart AdServer, accepts supply through its public OpenRTB API. This profile covers what a supplier sends to Equativ and the bids Equativ returns.
Direction and version
Suppliers send bid requests to Equativ's OpenRTB API, and Equativ runs its auction and returns bids.
OpenRTB 2.6, with references to 2.5 fields, AdCOM 1.0, Native 1.2, and the IAB DSA extension. Native requests are JSON strings, and directpay is a JSON boolean.
The RTBlint profile equativ-supplier checks requests and responses against the published contract.
Rules beyond the OpenRTB spec
- Every request must identify the Equativ network through
publisher.idor a configuredext.network_id. Requests without it are discarded. - A request may carry at most 10 impressions, and a response returns at most 10 bids.
- Requests need
device,user, and a mappeduser.buyeruidthat holds the Equativ user ID. - Site requests need
site.domainandsite.page, and media objects need their MIME lists. - Video placement is required through
plcmtor the legacyplacement, andplcmtmay use values 1 to 9. - Equativ ignores a request whose width or height is exactly 0.
- In a request with several non-instream impressions, missing or differing placement IDs mean only the first impression is processed.
- Publisher
directpaymay appear only once per request. - A supply chain is required except for owned and operated inventory.
- The App table marks
app.bundlerequired, while the parent description only recommends an App ID or bundle ID.
Documented extensions
| Path | Meaning |
|---|---|
ext.network_id | Integer network ID, available on request as an alternative to publisher.id. |
site.publisher.ext.directpay | Google Open Bidding direct pay flag, sent once per request. |
imp.ext.bidder.plcmtuuid | Preferred Equativ placement ID. |
imp.ext.gpid | Global placement ID. |
imp.banner.ext.bidfloor | Per-format floor that overrides imp.bidfloor. |
imp.video.ext.rewarded | Obsolete rewarded flag; use imp.rwdd. |
device.ext.atts | App Tracking Transparency status. |
device.ext.ifa_type | Type of the advertising ID. |
site.ext.amp | AMP page flag. |
source.ext.omidpn | Open Measurement partner name. |
regs.ext.dsa | DSA requirements for the request. |
What the validator checks for this profile
openrtb.profile.equativ.app_identity_advisoryThe Equativ App table marks bundle required, but its parent description strongly recommends App ID or Bundle ID. Missing bundle is advisory while these source requirements conflict.openrtb.profile.equativ.bid_limitEquativ supplier responses contain at most ten bid objects.openrtb.profile.equativ.directpay_oncePublisher directpay can be sent only once in a request.openrtb.profile.equativ.impression_limitEquativ accepts at most ten impression objects in a supplier request.openrtb.profile.equativ.mio_first_onlyEquativ processes only the first non-instream impression when placement tag IDs are missing or differ. Unified requests also require account activation.openrtb.profile.equativ.network_idSupplier requests must provide the Equativ network identifier through publisher.id or the configured ext.network_id method.openrtb.profile.equativ.video_placementEquativ requires video placement information. Modern plcmt or documented legacy placement supplies it.openrtb.profile.equativ.zero_dimensionEquativ ignores requests with an explicitly zero width or height.
Loss and status codes
Validate against this contract
Open the tester with the Equativ supplier ingest profile, or run:
rtblint validate --profile equativ-supplier request.json