Audience Targeting in DOOH: The IAB Taxonomy, Segtax=600, and the Real Segments Buyers Actually Bid On
DOOH audience targeting used to mean "fitness centers in Houston" or "bars in Brooklyn between 6pm and 9pm." Geographic + venue. That was the whole stack.
The Trillboards audience layer is structurally different. Every impression carries the IAB Audience Taxonomy 1.1 segment array (segtax=4) alongside the Trillboards segtax=600 namespace for CV-unique signals. DSPs can target with two-namespace precision — "Pets owners at pet stores in California during weekend mornings" is a single OpenRTB predicate expressed across five fields. The demand-side benefit is cleaner attribution; the supply-side benefit is 20-40% premium clearing CPMs on inventory carrying the full signal payload.
This page is the consolidated reference for the audience targeting
surface. The taxonomy package is open source
(@trillboards/iab-taxonomy).
The OpenRTB encoding is the standard user.data array with segtax
markers. The per-segment observation data is published daily at
/data/audiences/iab/ and
/data/audiences/attributes/.
Live network data
The audience signal layer as of the latest snapshot:
- 0 active screens emitting the IAB Audience Taxonomy segment array
- 0 countries covered by the signal pipeline
- 0 venue categories with characteristic audience signatures
- IAB AT 1.1 dictionary: 230+ leaf segments, observation counts published daily
The two-namespace targeting stack
IAB Audience Taxonomy 1.1 (segtax=4)
The industry-standard segment library. Trillboards ships every leaf node that has been observed on the network in the last 30 days as a dedicated page at /data/audiences/iab/. Each leaf page shows:
- The full taxonomy path (root → branch → leaf)
- 30-day observation count across the Trillboards network
- Top 3-5 venue categories where the segment fires most often
- Top US cities for the segment
- Cross-references to the buyer-side documentation
High-volume segments observed across the network:
- Pets (IAB 690) — cross-references the pet-store venue category, veterinary clinics, and grooming services
- Auto Intender (IAB 688) — cross-references auto-repair shops, oil change shops, gas stations, and tire shops
- Sports Fans (IAB 686) — cross-references bars, restaurants, sports bars, and bowling alleys
- Foodies (IAB 692) — cross-references coffee shops, restaurants, and bakeries
- Tech Early Adopters (IAB 685) — cross-references coffee shops, coworking spaces, and airport lounges
- Health & Wellness (IAB 691) — cross-references fitness centers, gyms, and yoga studios
- Travel Enthusiasts (IAB 693) — cross-references airport lounges and hotel lobbies
- Beauty & Personal Care (IAB 694) — cross-references hair salons, barbershops, and nail salons
The complete IAB AT 1.1 leaf catalog with observation counts and venue co-occurrences is at /data/audiences/iab/.
Trillboards Segtax=600 Namespace
The Trillboards-specific namespace covers CV-unique signals that have no IAB equivalent. Every signal is constrained to a small enum to keep the bid-request payload size bounded and DSP-side decoding predictable:
audience_group_composition — describes the social structure in front of the screen at observation time. Enum values:
- solo — individual viewer
- pair — two viewers, often couple or friend-pair
- small_group — three to five viewers, often friend-group or family
- mixed_group — larger heterogeneous gathering
- family_unit — detected family pattern (parents + children)
- coworkers — business-attire group
audience_intent_stage — describes the inferred purchase journey position. Enum values:
- awareness — passive browsing
- consideration — comparison shopping
- decision — active purchase mode
- post_purchase — follow-up engagement
- unknown — signal not extractable
audience_attire_archetype — describes the dominant attire pattern. Enum values:
- business — business-formal or business-casual
- casual — everyday casual wear
- athleisure — athletic-leisure crossover
- formal — evening / event formalwear
- uniform — workplace uniforms
- streetwear — urban streetwear
- outdoor — outdoor / activewear
audience_activity_macro — describes the dominant activity context. Enum values:
- commuting — transit + commuter venues
- dining — food + beverage venues
- shopping — retail venues
- leisure — entertainment + recreation
- waiting — service queues (auto, medical, salon)
- working — coworking + office contexts
- transit — airport / station / hub
The full Trillboards attribute catalog with per-attribute, per-value observation counts is at /data/audiences/attributes/.
How the signals get into the bid request
The on-device CV pipeline runs continuously while the screen is active. It observes faces, attention vectors, group structures, and attire patterns, runs them through the Trillboards classification stack, and produces aggregate-only labels.
When the device fires its periodic OpenRTB 2.6 bid request to the
Trillboards SSP, the signals ride the standard user.data array:
user: {
data: [
{
id: "iab-at-1.1",
ext: { segtax: 4 },
segment: [
{ id: "690", value: "Pets" },
{ id: "692", value: "Foodies" }
]
},
{
id: "trillboards-600",
ext: { segtax: 600 },
segment: [
{ id: "audience_group_composition:family_unit" },
{ id: "audience_intent_stage:decision" },
{ id: "audience_activity_macro:shopping" }
]
}
]
}
DSPs reading the bid request use the segtax extension to disambiguate.
A DSP that understands only IAB AT 1.1 reads the segtax=4 entry and
ignores the segtax=600 entry. A DSP that understands both reads them
both. Backward compatibility is guaranteed by the OpenRTB extension
mechanism — older DSPs see standard fields, newer DSPs see the full
matrix.
Aggregate-only is the contract, not the convenience
Every Trillboards data publication — this page, every /data/* sub-page, every signal in every bid request — is aggregate-only by construction. The aggregate-only enforcement lives in code:
lib/seo-data.ts#assertAggregateOnly()validates every helper's return shape against an explicit denylist of 86 columns that would leak per-screen, per-device, per-partner, or per-user identity. Any helper that accidentally projects one of those columns fails the build.- The CV pipeline never persists per-person biometric templates. Face data is consumed at the embedding level (a 128-dim vector that the attribute classifier reads); the raw face crop is not stored.
- The OpenRTB bid request carries observation-aggregate signals only. Per-person identifiers never enter the request payload.
The result is that buyers (Viant, T-Vision, AdExchanger committee members, IAB DOOH working group) can verify the data uniqueness claim by reading any /data/* page and confirming there are no per-screen, per- partner, or per-user identifiers anywhere in the published surface.
Audience targeting across the venue topology
The audience-segment × venue-category cross-correlation is the heart of the targeting surface. The patterns are stable across the network:
At coffee shops: Foodies (IAB 692) fires on 78% of impressions; Tech Early Adopters (IAB 685) fires on 31%; audience_attire_archetype=casual fires on 64%; audience_activity_macro=working fires on 42%.
At bars and sports bars: Sports Fans (IAB 686) fires on 56% of impressions; Foodies (IAB 692) fires on 38%; audience_group_composition=small_group fires on 47%; audience_activity_macro=leisure fires on 71%.
At fitness centers and gyms: Health & Wellness (IAB 691) fires on 89% of impressions; Sports Fans (IAB 686) fires on 43%; audience_attire_archetype=athleisure fires on 83%.
At pet stores and veterinary clinics: Pets (IAB 690) fires on 91% of impressions; audience_group_composition= family_unit fires on 38%; audience_intent_stage=decision fires on 47%.
At auto-repair shops and oil change shops: Auto Intender (IAB 688) fires on 73% of impressions; audience_activity_macro= waiting fires on 81%; audience_intent_stage=consideration fires on 52%.
At hair salons and barbershops: Beauty & Personal Care (IAB 694) fires on 84% of impressions; audience_activity_macro= waiting fires on 78%.
At airport lounges and hotel lobbies: Travel Enthusiasts (IAB 693) fires on 67% of impressions; Tech Early Adopters (IAB 685) fires on 41%; audience_attire_archetype=business fires on 54%.
Geographic concentration of audience signals
Audience segments cluster geographically. Pets (IAB 690) over-indexes in California, Texas, Florida, and the Pacific Northwest. Tech Early Adopters (IAB 685) over-indexes in Bay Area cities, Boston, Seattle, Austin, and New York. Sports Fans (IAB 686) over-indexes in markets with active major-league teams.
The full geographic × segment cross-correlation is computed daily and published via the per-segment pages at /data/audiences/iab/, each of which lists its top 5-10 US cities by observation count. The per-state DOOH market data is at /data/locations/ with one page per US state and one page per top-500 US city.
Frequently asked questions
The FAQ block above covers the buyer-side and operator-side questions most relevant to audience targeting. For the underlying programmatic mechanics (OpenRTB protocol, waterfall, settlement), see the Programmatic DOOH hub page. For the venue-side perspective on what signals each venue category naturally emits, see the venue catalog.
Related Trillboards data surfaces
- IAB segment dictionary — 230+ IAB AT 1.1 leaf segments observed across the network
- Trillboards attributes — segtax=600 attire / intent / activity / group composition
- Venue catalog — every venue with characteristic audience signature
- Location atlas — state and city DOOH market data
- Demand ecosystem — DSP
- SSP support for the audience taxonomy
- Audience signals workflow — how signals flow from device to DSP
- Brand-safety categories — IAB content category controls (orthogonal to audience targeting)
- State of DOOH 2026: Audience Archetypes — the annual research chapter on audience patterns