Checklist to integrate vehicle DOOH with ad exchanges: inventory mapping, OpenRTB fields, pilot testing, proof-of-play, pricing.

I’d start with one rule: an auction win isn’t a played ad. Before connecting vehicle screens to an ad exchange, I’d map screen IDs, set location and timing rules, and define which player records support billing.
Here’s my checklist for the connection:
I’d test a small fleet first, using at least 99% completion-record coverage for accepted plays as a pilot target - not a promised result. My launch rule: <u>verify delivery before scaling</u>, including during outages and location changes.
Assign stable IDs to each screen, player, vehicle, and fleet. Map them to the SSP’s IDs, and never reuse retired IDs. Register placement type, physical dimensions, resolution, orientation, brightness constraints, audio support, and market. Keep rooftop and in-cabin inventory separate, and use a consistent in-vehicle inventory taxonomy for taxi and rideshare screens.
Record accepted MIME types, codecs, file sizes, aspect ratios, and durations. Include loop length, number of positions, and share of voice, then match sellable capacity to the player playlist.
Use operating service areas, local hours, and time zones - not the garage address. Keep planned coverage separate from measured GPS location, including its timestamp, accuracy, and movement status. Document audience-estimation methods and the periods they cover separately from playback evidence.
Define maintenance windows, offline status, minimum connectivity, maximum acceptable latency, local cache duration, storage capacity, and approved fallback content. Expire stale availability automatically. Cached ads must still follow campaign dates and location rules. Once inventory uses a consistent format, map those fields to the exchange request.
Agree on who owns seller, publisher, account, buyer seat, deal, campaign, and creative IDs. Confirm the supported OpenRTB version. OpenRTB 2.6 includes a dedicated DOOH object and implementation guidance. If the partner uses a proprietary API, document it instead of assuming implementations work the same way.
Specify authentication, TLS, timeouts, rate limits, retries, and timestamp units. Also confirm whether the system sends one opportunity at a time or batches requests.
Use one field map for every partner connection, and make it the integration contract.
| Field group | Status | Purpose | Validation rules |
|---|---|---|---|
| Request identity | Required | Seller, publisher, account, seat, screen, player, vehicle, and request IDs | IDs must be unique, nonempty, correctly mapped, and stable across retries |
| Timing | Required | Request time, opportunity time, operating hours, time zone, and expiration | Use the agreed Unix format; reject stale, future-dated, or ambiguous timestamps |
| Location | Required or conditionally required | Latitude, longitude, accuracy, market, geofence, and moving-screen status | Validate coordinate ranges, timestamp freshness, accuracy thresholds, and permitted precision |
| Audience estimates | Optional but recommended | Estimated impressions, reach, frequency, methodology, and multiplier | Label modeled versus measured values and include a version or source date |
| Ad specifications | Required | Dimensions, orientation, duration, MIME types, codecs, file size, and audio rules | Match the registered capability matrix; reject unsupported duration, ratio, codec, or size |
| Floor price and currency | Required | Minimum acceptable CPM or other clearing price | Use a three-letter currency code, such as USD; define whether CPM includes fees |
| Response price and ad reference | Required in a bid response | Bid price, deal ID, creative ID, media URL, tracking URLs, and expiration | Confirm price currency, secure URLs, creative approval, and valid deal or campaign mapping |
| Proof-of-play | Required for reconciliation | Play ID, screen ID, creative ID, timestamp, duration, location, completion status, and error code | IDs must be idempotent; duration must meet the agreed tolerance; timestamps and locations must match the request |
Document the deal workflow with the partner. Define what each win, loss, playback, completion, and billing notification means, along with the IDs that connect it to the original request.
Treat a notification as valid only when it links to the original request ID, bid ID, deal ID, creative ID, and screen or vehicle ID. Agree on whether billing uses plays or estimated impressions, including any audience multiplier.
Run a pilot across screen types, hardware, operating schedules, and cellular coverage. Test creative validation, bid responses, downloads, playback commands, callbacks, and billing records together.
Simulate outages, stale GPS, full storage, file corruption, restarts, clock drift, duplicate callbacks, and expired deals. Set clear launch gates:
Verify fallback timing and rollback while keeping house content live. Use the pilot to validate the full bid-to-playback path before scaling.
DOOH Ad Exchange: From Bid to Verified Playback
Winning a bid allows delivery. It doesn’t prove playback. That proof must come from the player. A vehicle may leave the target area while the winning ad downloads.
Once inventory is mapped, each opportunity follows this bid-to-playback chain.
Set separate deadlines for bidding, asset retrieval, validation, and playback start. A download timeout or rejected ad must never count as a successful delivery. Use the next eligible bid only if its terms still allow delivery. Otherwise, play approved fallback content. Bill only against player evidence and agreed billing terms.
The same bid flow works differently depending on the deal type.
| Transaction type | Delivery selection | Delivery obligation |
|---|---|---|
| Open-auction RTB | An eligible bid wins the auction | Attempt delivery; no volume commitment by default |
| Private marketplace (PMP) | Deal access and priority rules determine eligibility | Follow the deal’s delivery terms; volume is committed only if explicitly agreed |
| Programmatic guaranteed | Reserved inventory is scheduled without an open auction for each slot | Meet contracted delivery and make-good terms |
A PMP is not automatically guaranteed. Rules can vary for priority, exclusivity, and unfilled inventory. Programmatic guaranteed automatically reserves agreed inventory, but each scheduled play still needs delivery checks. Define how missed or geographically ineligible plays will be rescheduled or made good. Don’t count them as fulfilled.
Once you’ve chosen the deal type, define the pricing and routing rules that determine what wins and what gets billed.
Set U.S.-dollar CPM floors by vehicle network, market, screen format, daypart, and targeting options. Use separate floors for rooftop LED screens and in-cabin tablets. A floor is the minimum acceptable bid - not a promised selling price.
Specify whether CPM billing uses estimated impressions, verified plays, or another unit. A screen play records delivery; audience impressions are modeled. Enroute View Media supports customizable CPM settings, but confirm which pricing controls each deployment supports.
Define gross revenue as the clearing value before deductions and net operator revenue as the amount left after fees and revenue shares. Document SSP and exchange fees, technology charges, refunds, and revenue shares. For each share, record its calculation base and payment timing.
State whether buyer-side charges are added to spend or deducted from proceeds. Don’t count them twice. Explain how applicable taxes are handled and how foreign-currency bids convert to dollars, including the exchange-rate source and conversion time. Keep clearing-price, fee, and adjustment fields for reconciliation. Don’t treat bid shading as an operator discount.
With pricing in place, choose a supply path that protects control and reporting quality.
Choose direct exchange access or SSP-mediated access based on net revenue, reporting quality, buyer access, and maintenance capacity - not headline CPM alone.
| Criterion | Direct exchange access | SSP-mediated access |
|---|---|---|
| Control | Direct control over screen IDs, floors, deals, and buyer access | Shared control under the SSP’s inventory model, policies, and account structure |
| Reach | Depends on connected buyers | May connect multiple demand sources through one relationship |
| Pricing | More granular exchange-specific pricing and routing | Simpler management, but potentially fewer floor, fee, and packaging options |
| Operations | More integration, testing, authentication, monitoring, and commercial work | Faster onboarding; continued configuration and reconciliation |
Use one screen ID across seller accounts, connections, and deal IDs. Check seller declarations, sellers.json, and OpenRTB SupplyChain data where applicable.
Keep one availability log keyed by screen, time window, and creative duration. Before enabling another connection, flag repeated opportunity requests, conflicting deal IDs, and overlapping exclusive reservations.
Next, set the campaign rules that determine which demand wins when multiple eligible requests compete.
Set contract priority across guaranteed deals, direct campaigns, PMPs, open-auction demand, and house ads. A higher auction bid must not displace reserved delivery.
Give every campaign a budget, hourly or daily pacing rule, flight dates, local time zone, eligible screens, and fallback behavior. Specify whether the budget represents gross spend or net operator revenue. Define share of voice by eligible plays or loop time, not audience reach. Use supported screen- or vehicle-level rotation limits without promising person-level frequency caps.
For guaranteed deals, record volume, unit, price, currency, dates, dayparts, market, format, duration, targeting, and reporting source. Name the party responsible for audience multipliers when estimated impressions determine billing.
Base availability on realistic uptime, route coverage, connectivity, and time in eligible zones. Address delivery risks with underdelivery thresholds, notice deadlines, cancellation terms, and remedies: refunds, credits, extensions, or makegoods. Require makegoods to match the original market, format, daypart, targeting, and approximate value unless the buyer approves a substitution.
Once pricing and routing are set, check delivery against player records. Each day, join exchange, platform, and player logs using campaign, creative, deal, screen, vehicle, and request IDs. Use proof-of-play logs for billing. Keep audience estimates in separate measurement fields.
Track request, bid, win, no-fill, play, completion, interruption, retry, and failure events in daily batches. Keep raw logs for investigations. Give each financial measure its own field: gross revenue, gross media spend, exchange and platform fees, data or measurement fees, refunds, makegoods, revenue share, and net revenue.
Record the audience methodology separately. Define what triggers billing and what each timestamp means. Preserve original time offsets, normalize reports to one U.S. time zone, and document the daylight saving time policy. Use a deduplication key for late uploads, and set deadlines for delayed events, corrections, makegoods, and invoices.
With reconciliation defined, test the limits specific to moving vehicles. Log request-time and playback-time locations separately so you can trace eligibility changes. Record GPS age, accuracy, and geofence status. Set a fixed fallback policy for stale readings in tunnels or areas with weak coverage.
Cache approved creatives and campaign rules, provide fallback content, and queue events locally during cellular outages. Recovered uploads must keep their original playback times and must not create duplicate charges.
For rooftop screens, check daylight visibility, viewing angle, brightness, and local vehicle screen rules. For tablets, check the power source, ignition cycles, and recovery after restarts. Record any resulting delivery failures and fallback playback for reconciliation.
Track availability changes caused by driver shifts, maintenance windows, opt-outs, fleet participation changes, and screen downtime - not just whether a screen is online. Before sending location or audience signals, review applicable U.S. requirements for privacy, notice, consent, access, deletion, and retention. The FTC treats precise geolocation as sensitive.
Run a limited-fleet pilot across routes, shifts, and connectivity conditions. Require duplicate-free billing and a coded reason for every failed play. Expand only after the pilot meets thresholds for completion, data age, duplicates, fallback playback, and revenue variance.
Confirm that your platform supports certified programmatic integrations with major demand-side platforms. Hardware must be mobile-ready, start and shut down with the ignition, and include rooftop screens rated above 4,000 nits.
You’ll also need exportable, GPS-stamped proof-of-play logs with timestamps, screen IDs, creative IDs, and duration. The platform must provide live device status, uptime monitoring, and reliable remote management.
Set a minimum CPM floor to protect the value of premium vehicle-based inventory while keeping bidding competitive. Hold high-demand placements for direct sales, and use programmatic channels to fill unsold inventory.
Connecting to multiple supply-side platforms (SSPs) can boost fill rates by 20–40%. Use real-time analytics to adjust your approach as market demand shifts and maximize engagement and revenue.
Use the platform’s proof-of-play (PoP) logs to check that billed amounts match ad delivery. Each valid entry must include the exact timestamp, GPS coordinates, screen or device ID, creative ID, and total play duration.
For missing or disputed records, retrieve detailed, exportable delivery reports through Enroute View Media’s secure white-label portal or API.
Need pricing details?