OpenRTB 2.6 Integration
LtvAdx speaks OpenRTB for CTV video in two directions: exchanges and SSPs can send bid requests to LtvAdx demand (inbound), and LtvAdx can fan an ad opportunity out to external DSPs (outbound).
Inbound: send bid requests to LtvAdx
An admin creates a seat for your exchange; the API key is shown once. Send each request with it in the X-Rtb-Api-Key header:
POST https://ads.ltvadx.com/rtb/bid
X-Rtb-Api-Key: YOUR_SEAT_KEY
Content-Type: application/json
{
"id": "req-abc123",
"imp": [{
"id": "1",
"tagid": "LTVADX_CHANNEL_ID", // your LtvAdx channel id
"video": { "mimes": ["video/mp4"], "minduration": 15, "maxduration": 30 },
"bidfloor": 8.00,
"bidfloorcur": "USD"
}],
"device": { "devicetype": 3, "ifa": "…" },
"user": { "id": "HOUSEHOLD_ID" },
"tmax": 100
}| Response | When |
|---|---|
| 200 + bid with VAST in adm | An LtvAdx line item won and clears your floor |
| 204 (no body) | No bid: no eligible line item, floor not cleared, bidfloorcur not USD, channel not resolved, or the winner is a direct-sold campaign |
| 401 | Missing or unknown X-Rtb-Api-Key, or the seat is switched off |
| 429 | Seat rate limit exceeded |
| 404 | Inbound RTB disabled on the ad server |
imp.tagid must carry the LtvAdx channel id. No-bids are a bare 204 — LtvAdx does not send an nbr reason code.
Seat management (admin)
POST https://api.ltvadx.com/api/v1/rtb/exchanges # create a seat — API key returned once
GET https://api.ltvadx.com/api/v1/rtb/exchanges # list seats (keys masked)
PATCH https://api.ltvadx.com/api/v1/rtb/exchanges/{id}/toggle # switch a seat on or off (new seats start off)
POST https://api.ltvadx.com/api/v1/rtb/exchanges/{id}/rotate-key # issue a new key
PATCH https://api.ltvadx.com/api/v1/rtb/exchanges/{id}/rates # set the seat's fee ratesOutbound: fan-out to external DSPs
When no LtvAdx line item is eligible, or the winner is an open-auction line item, the ad server can send an OpenRTB 2.6 video request (devicetype 3, schain with LtvAdx as a node) to every configured DSP bid endpoint at once. Responses after the deadline (100 ms by default) are dropped. A DSP bid wins only if it beats the open-auction winner's CPM; its VAST is returned with one LtvAdx signed impression pixel added.
Current limits of outbound RTB
- DSP endpoints are set in the ad server's configuration by our team — not from the dashboard.
- The channel's RTB setting is not read by the ad server yet; fan-out is on or off for the whole ad server.
- Win (
nurl), loss (lurl) and billing (burl) notices are not fired. - Consent (
regs) is not populated on outbound requests.
Sandbox DSP
A mock bidder for integration tests:
POST https://api.ltvadx.com/api/v1/rtb/sandbox/dsp/bid # returns a test bid GET https://api.ltvadx.com/api/v1/rtb/sandbox/dsp/ping # health check
Reporting
GET https://api.ltvadx.com/api/v1/rtb/reports/performance GET https://api.ltvadx.com/api/v1/rtb/reports/win-rate GET https://api.ltvadx.com/api/v1/exchange/summary | /supply-health | /bid-landscape