Digital out-of-home
A billboard cannot know who you are. It can know who walks past it.
Fixed at 50 out of 100
One band from the compiler, whatever audience detail the brief carries, because the vocabulary this channel compiles into cannot express more than this. Geography is the only thing that changes it, and it can only subtract: a city the UK table cannot map takes fifteen points off.
Statistical screen property: screens ranked by persona over-index (movement data), venue types + geo polygons + dayparts. Aggregated — outside UK GDPR scope for delivery.
Fixed. DOOH always grades 50 regardless of how well the persona matched, because the vocabulary supports no better claim. The ranking half of that rationale describes the intended design rather than shipped behaviour.
Naming a city the UK geography table cannot map costs 15 points here as it does everywhere else, and the rationale on the plan names the city rather than dropping it quietly. That penalty applies on top of the bands above.
What your audience actually becomes here
Each row is a table the compiler matches your persona against, with the provider behind it and the basis the lawful-basis manifest records. The language model extracts the semantics from your brief; these deterministic tables emit the identifiers, which is why a hallucinated segment cannot reach a buy.
Examples are drawn from the sandbox-scale slices of each taxonomy the platform ships with. The full exports load into the same shapes, so catalogue size does not change the compiler behaviour or the fidelity grade. Nothing here has yet run against a full production catalogue, because nothing has run live.
From one sentence to a DOOH targeting spec
Venue types are selected by matching the persona's terms against the OpenOOH catalogue, and audience segment ids come from the Vistar and Adsquare layers. Geography becomes postcode polygons rather than a radius, and dayparts narrow the buy to the hours the cohort is present — the commute on a brief carrying firmographics, and not on one that does not. What the compiler does not produce is a ranked screen list: that field comes back empty, and screens are chosen by venue type, segment and polygon.
The model never emits a vendor segment id. It extracts semantics from your brief — what kind of person, what interests, what geography, what intent — and deterministic registry code matches those against catalogue keywords to produce known identifiers. That is what makes a compiled plan auditable line by line, and what stops a hallucinated segment reaching a buy.
The fastest way to see this is a real brief compiled live in the session rather than a worked example.
Talk it throughThe rails that reach this channel
5 of the 25 connectors the platform registers touch DOOH. Each one is graded on our own evidence ledger, which is deliberately blunt: a mocked HTTP test proves a client was written, not that a vendor accepted the request, spent money, or returned real delivery.
StackAdaptBuying API
Client builtProgrammatic CTV, audio and DOOH through one GraphQL seat. The broadest single rail here.
- What has to happen next
- A contracted seat, then a controlled paid activation reconciled to a StackAdapt invoice.
- Getting access
- Live inventory browse is not available: the client deliberately reports that StackAdapt has no public inventory-browse API, so catalogues shown in the sandbox are sandbox catalogues.
Perion (Hivestack)Buying API
Client builtProgrammatic DOOH.
- What has to happen next
- Live activation requires hand-picked Hivestack unit ids: venue and postcode semantics have no verified vendor-id translation, and live creative submission and report pulls both fail closed. A compiled DOOH persona cannot drive this rail end to end today.
- Getting access
- Keys come through a commercial relationship rather than open self-serve signup.
Vistar MediaBuying API
StubDOOH and cinema supply. Sandbox planning data only.
- What has to happen next
- There is no live client. Forecast, activate, pause, creative submission, reporting and inventory listing all throw before any request. Vistar publishes no stable normalised reporting schema, and creative submission needs an advertiser domain, IAB categories, publisher scope and OpenRTB markup the current shape cannot carry.
- Getting access
- An approved trafficking seat plus separate bidder approval. Partner access, not developer signup.
CACIAudience data
StubAcorn classifications, intended for ranking cinema and DOOH catchments.
- What has to happen next
- A CACI data licence. No Acorn data is in the product: the stub's scores are deterministic pseudo-random output, and cinema venue ids are constructed from postcode districts rather than from a licensed catchment dataset.
AdsquareAudience data
StubConsent-attested movement data, intended for DOOH screen ranking.
- What has to happen next
- An Adsquare contract. There is no movement index in the product: the DOOH compiler emits an empty screen-ranking list, and hand-picked inventory carries a constant over-index of 1.0.
Named on this channel's compiled plans: Perion (Hivestack) · StackAdapt · Vistar Media. Across all 25 connectors, spend-tested stands at 0 and report-verified at 0, and a continuous-integration check keeps those two counts honest.
The whole supply matrix →What DOOH will take
Formats and the limits the product enforces on this channel. Where a limit is a schema constraint, over-long copy fails at the edge rather than being silently truncated on the way to a provider.
Portrait
1080×1920, rendered to a real SVG at the exact screen resolution.
Landscape
1920×1080.
Banner
1400×400.
Copy limit
Headline capped at seven words, enforced in code rather than advised. A DOOH headline nobody can read at 4mph is not creative, it is spend.
Asset production is charged separately and never blended into the media fee. The creative studio, in full
What DOOH can prove, and what it cannot
Proof of play comes from the seller. Causation is geo-lift, and out-of-home is the channel that design suits best, because the buy is already made by place. The sequential journey — saw the billboard, then got the CTV ad — is a real feature of the exposure ledger and it currently runs on sandbox exposure data only: no inbound ingest route for viewshed panels exists yet, so treat the journey view as a working mechanism awaiting live input rather than as evidence about your campaign.
Provider delivery, observed response, modelled estimates and powered causal evidence stay visibly separate on the report rather than being averaged into one number, and the geo-lift engine returns an underpowered verdict instead of a lift figure when the spend cannot carry the test. The four verbs, in full
Your own site's analytics, read through your token, so brand response is measured on data you already own and can audit.
GA4 as an alternative brand-response source where that is what the advertiser already runs.
Brand-lift survey panels, intended for the fourth measurement verb.
What this will not pretend past.
Every one of the seven channel pages carries one of these, in the same type. The best this channel scores is 50, graded geo-cohort-level, and the paragraph beside this is what that score does not cover.
UK DOOH was around £955m in 2025 on IAB and AA/WARC figures, taking a growing share of out-of-home, though OOH overall was still contracting in the Q2 2026 IPA Bellwether. Fifty out of a hundred means the screen is a reasonable statistical bet, not that the person in front of it is your buyer. Two harder limits: there is no movement-index ranking in the product, and no DOOH rail can be driven end to end from a compiled persona in live mode — Hivestack activation needs hand-picked unit ids because venue and postcode semantics have no verified vendor-id translation, and Vistar has no live client at all. Blindspot and AdQuick both have better screen-level inventory tooling than this does today.
If that limit is disqualifying for your budget, we would rather you heard it in the session than after the invoice.
Talk it throughThe same audience, compiled everywhere else
One audience definition, seven translations, seven published scores. A plan that funds two or three of these with enough weight to prove something beats one that puts a token line on all seven.
CTV & streaming TV
The one channel where a job title survives the translation almost intact.
3 bandsPaid search
One search plan. Two execution rails. Neither of them writes your keywords for you.
3 bandsPodcast & digital audio
You are not buying a person here. You are buying what they listen to.
fixed bandPaid social
Vendor-neutral until the moment of execution, then exactly as native as it needs to be.
3 bandsAddressable & linear TV
The fastest-growing channel on this list, and the one that needs the most paperwork.
fixed bandCinema
The lowest fidelity score on the site.
fixed bandSee what your audience compiles to on DOOH.
Forty-five minutes. Bring a real audience and we compile it live on DOOH and the other six, with the score and the lawful-basis manifest on screen.
Book a working sessionDesign-partner phase · the sandbox needs no card and no credentials · nothing here sells self-serve media
DOOH questions
Are you tracking people's phones?
No, and less than you might assume even in intent. The compiler records that DOOH delivery data is aggregate and outside UK GDPR scope, and where a consent-attested segment is referenced the lawful-basis manifest names the provider that attested it. Beyond that: the Adsquare movement-data contract does not exist yet, so no movement data reaches the product at all. Nothing in a DOOH plan identifies an individual.
Can I pick specific screens?
Yes, and on this channel it is the honest route rather than a fallback. Picking billboards, shows, channels and venues by hand is a first-class path through the product. There is no screen ranking to overrule: the compiler returns an empty ranking list, because the movement data that would order screens by persona over-index does not reach the product at all.