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
}
ResponseWhen
200 + bid with VAST in admAn 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
401Missing or unknown X-Rtb-Api-Key, or the seat is switched off
429Seat rate limit exceeded
404Inbound 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 rates

Outbound: 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