DOOH Brand Safety: The IAB Content Category Stack and the Multi-Layer Filter Protecting Every Impression
Brand safety in DOOH is structurally different from web display. On a web page, the publisher's content is the brand environment — an article about cooking is a safe environment for a cookware ad, an article about crime is a riskier environment for a luxury-brand ad. The advertiser controls "what content surrounds my ad."
On a DOOH screen, the brand environment is the physical venue. The creative IS the only content on the screen. The venue operator controls "what creative subject matter is allowed to appear on my screen." The polarity is inverted.
This page is the consolidated reference for the Trillboards brand-safety stack — the IAB Content Taxonomy 3.0 codes the system enforces, the three filtering layers (pre-bid + post-bid + CV pixel), the per-venue category controls, and the per-screen advertiser denylist that lets operators block named competitors.
Live network data
The Trillboards brand-safety pipeline as of the latest snapshot:
- 0 active screens protected by the multi-layer brand-safety filter
- 0 venue categories with characteristic brand-safety profiles
- IAB Content Taxonomy 3.0 (segtax=7): 2,000+ leaf categories supported
The full IAB content category catalog with per-category creative count and recent classification distribution is at /data/brand-safety/. The end-to-end workflow is documented at /data/demand-ecosystem/brand-safety-workflow/.
The three filtering layers
Layer 1: Pre-bid filter
Before the SSP fans the bid request out to demand partners, it attaches two filtering arrays to the request payload:
bcat— a list of blocked IAB content category codesbadv— a list of blocked advertiser domains
The bcat list is computed by combining the network-level defaults
with the per-venue category filter the operator has configured. The
badv list is the per-screen advertiser denylist.
Demand partners receive the bid request with the filters attached. DSPs that comply with the OpenRTB protocol filter their candidate creatives against the lists before submitting a bid; non-compliant DSPs get their bids dropped at Layer 2.
The pre-bid filter is the first and most efficient line of defense. It prevents the demand partner from wasting time bidding creative that will be rejected on arrival.
Layer 2: Post-bid filter
Inbound bid responses are validated against the same filter list. A
creative that arrives with an IAB content category in the bcat list,
or with an advertiser domain in the badv list, gets the bid dropped
before the creative URL is returned to the device.
This catches non-compliant DSPs and DSPs whose internal creative classification disagrees with the SSP-side classification. The disagreement gets logged for downstream moderation review — if the same DSP repeatedly bids creative with mismatched classifications, the SSP-side classification is treated as authoritative and the DSP gets a structured feedback report.
Layer 3: CV pixel scan
The third layer runs DURING playback. The on-device CV pipeline scans the creative pixel-by-pixel against a model trained on the IAB content taxonomy, plus the venue's brand-safety profile. If the visual content disagrees with the metadata-level classification, the kiosk transitions to house content for the remainder of the slot and flags the creative for moderation review.
The CV scan catches metadata-mismatched creatives that slipped past the first two layers — typically because the demand partner's own classification is wrong (a creative tagged "sports apparel" that's actually beer-themed) rather than malicious intent. The scan runs in parallel with playback so it does not add latency.
The IAB Content Taxonomy 3.0
Trillboards enforces brand safety using IAB Content Taxonomy 3.0 (segtax=7 in OpenRTB extension parlance). The taxonomy has 2,000+ leaf nodes organized hierarchically — for example:
- Content → Healthy Living → Fitness & Exercise → Crossfit
- Content → Automotive → Auto Repair → Oil Change
- Content → Food & Drink → Alcoholic Beverages → Beer
- Content → Personal Finance → Insurance → Auto Insurance
- Content → Politics & Government → Political Campaigns
Venue operators select from the categories actually observed on the network at /data/brand-safety/. Each category leaf page shows the 30-day creative count, the classification distribution, and the venue categories where the creative subject matter is most appropriate.
Network-level default blocks
Every Trillboards screen inherits the network-level default block list out of the box. The defaults:
- Political — political campaigns, political-issue advocacy, candidates, ballot measures. Blocked network-wide because most venue operators do not want political content on their screens and because campaign-finance regulations vary by jurisdiction.
- Gambling — casinos, sports betting, online poker, lottery promotions. Blocked network-wide because of jurisdictional variation; operators in legal-gambling jurisdictions can opt in.
- Alcohol — beer, wine, spirits, RTD beverages. Blocked by default at venues where local law restricts alcohol advertising (e.g., near schools, places of worship). Operators at bars, restaurants, and venues serving alcohol opt in.
- Adult — adult content, adult dating, adult products. Blocked network-wide.
- Weapons + Ammunition — firearms, ammunition, gun accessories, knives intended as weapons. Blocked network-wide.
- Hate Speech — discriminatory content, hate groups, supremacist movements. Blocked network-wide.
- Competing-Network Operators — direct competitors to Trillboards (the other DOOH platforms). Blocked network-wide to protect the inventory's positioning.
The defaults are conservative on purpose. Venues that want broader inventory deliberately opt into specific categories rather than inheriting an open-by-default configuration.
Per-venue category controls
On top of the network defaults, each venue operator configures their own IAB content category filter. The controls are at /data/brand-safety/ with one page per IAB content category showing the current creative count and the venues where the category is appropriate.
Common per-venue configurations:
- Coffee shops near schools — block QSR competitors, block auto, block alcohol, block financial services aggressive credit pitches
- Bars and sports bars — opt into alcohol, opt into gambling (sports betting in legal jurisdictions), block direct competitor bars
- Fitness centers — block QSR, block alcohol, block junk food, opt into supplements + activewear
- Hair salons and barbershops — block direct competitor salons, block beauty competitor brands (per-screen if the salon has a beauty brand exclusive)
- Pet stores and veterinary clinics — block direct competitor pet brands (if the venue carries a specific brand)
- Auto repair shops and oil change shops — block direct competitor auto shops, opt into auto-parts + tires + insurance
- Childcare centers — block alcohol, block gambling, block political, block adult-adjacent dating + relationship apps, block restrictive financial pitches
Per-screen advertiser denylist
The most granular control is the per-screen advertiser denylist. Each screen can carry a list of advertiser domains the venue operator explicitly blocks. The denylist is enforced at the SSP layer before the bid leaves the SSP — the blocked advertiser never even sees the inventory in their DSP.
Common denylist use cases:
- Exclusivity contracts — a coffee shop with a Pepsi exclusivity blocks Coca-Cola, Dr Pepper, RC, and other cola competitors
- Local competition — a hair salon blocks the three other salons within a half-mile radius
- Strategic exclusion — a corporate cafeteria blocks every category of competitor relevant to the company's own product line
Operators manage the denylist via the dashboard with auto-suggested competitors based on the venue's category and geographic profile.
The creative moderation pipeline
Every creative is classified before it enters the auction. The pipeline runs in two passes:
- Automated classification — Vertex AI Gemini multimodal pass on the creative's video + audio + text content, producing IAB content category tags, brand-safety scores, and advertiser-brand identification.
- Manual review — creatives flagged by the automated pass (low-confidence classifications, brand-safety-borderline content, advertiser-brand mismatches with the OpenRTB bid metadata) are escalated to manual review.
Pre-approved creatives are stored in the creative cache and served without re-classification. The CV pixel scan still runs on every play, so a pre-approved creative that gets misused (e.g., the same creative ID re-pointed to different bytes) gets caught at Layer 3.
The classification engine is documented at /data/demand-ecosystem/brand-safety-workflow/.
How the moderation feedback loop reaches advertisers
When a creative gets blocked at any layer, the SSP emits a structured feedback report to the originating demand partner. The report includes:
- The IAB content category mismatch (e.g., "creative tagged as 'sports' but classified as 'alcohol' by our pipeline")
- The venue's blocked-category list
- The per-screen denylist context where applicable
Demand partners use the feedback to tune their own creative classification and targeting. Repeated mismatches from the same demand partner trigger the SSP-side classification to be treated as authoritative for all future bids from that partner — effectively a moderation-based reputation system.
Operator reporting and post-play remediation
The earner dashboard shows per-screen, per-day, per-creative playback history with the IAB content category for each creative. Operators can:
- View any creative — thumbnail + classification + the bid metadata
- Report a creative — escalates to manual review, runs within hours
- Block a creative — immediate blocklist at the screen level, effective within seconds
- Block an advertiser — adds to the per-screen advertiser denylist, effective on the next bid round
The reporting + remediation tools mean operators have agency over their screen's content even after the multi-layer filter has done its job.
Brand-safety by venue category
Different venue categories have characteristic brand-safety profiles. The defaults adapt to the venue's foot-traffic demographic, the expected dwell pattern, and the operator's competitor exclusions:
- Childcare centers — most-restrictive defaults, ~40 IAB categories blocked, no exceptions for alcohol, gambling, political, or dating
- Medical clinics — restrictive defaults, block pharma competing with on-site practice, block political + gambling, opt into health-and-wellness
- Veterinary clinics — restrictive defaults, block competing veterinary chains, opt into pet products + insurance
- Coffee shops — moderate defaults, block direct QSR competitors, block aggressive financial pitches
- Restaurants — moderate defaults, block direct competitor restaurants, opt into alcohol if licensed
- Bars and sports bars — permissive defaults, opt into alcohol + gambling (sports betting in legal jurisdictions), block direct competitor bars
- Liquor stores — alcohol-permissive, block direct competitor brands, opt into tobacco
- Fitness centers — health-aligned defaults, block junk food + competing fitness chains, opt into supplements + activewear
- Gyms — health-aligned, identical profile to fitness centers
- Yoga studios — wellness-focused, block alcohol + caffeine-heavy beverages, opt into athleisure + meditation apps
- Auto repair shops — automotive-aligned defaults, block direct competitor auto shops, opt into insurance + parts + tires
- Oil change shops — identical auto-aligned profile to repair shops
- Tire shops — identical auto-aligned profile, plus tire-brand denylist support
- Gas stations — automotive-permissive, opt into auto + convenience store SKUs, block direct competitor chains
- Salons and barbershops — beauty-aligned defaults, block direct competitor salons, opt into hair care + beauty SKUs
- Nail salons — beauty-aligned profile, block direct competitors
- Pet stores — pet-aligned defaults, block direct competitor pet brands when the venue carries a specific brand
- Laundromats — permissive defaults, block alcohol, opt into household + cleaning products
- Convenience stores — moderate defaults, block direct competitor chains, opt into beverages + snacks
- Grocery stores — moderate defaults, opt into all CPG categories, block direct competitor grocery chains
- Hotel lobbies — premium defaults, block competing hotel chains, opt into travel + tourism + business services
- Airport lounges — premium-only, block competing airlines + lounges, opt into business + travel + luxury
- Movie theaters — entertainment-aligned, block competing entertainment, opt into film + streaming + restaurant
- Bowling alleys — family + leisure aligned, opt into food + beverage + entertainment
- Shopping malls — retail-permissive, opt into most CPG + retail, block competing mall operators
- College campuses — age-appropriate, block alcohol, gambling, predatory financial services; opt into education + entertainment + retail
The full per-venue, per-category brand-safety profile is at /data/venues/ with each venue page showing its current blocked-category list and the venue's default brand-safety configuration.
Frequently asked questions
The FAQ block above covers the operator-side and buyer-side questions most relevant to brand safety. For the auction mechanics that feed the filtering layers, see the programmatic DOOH hub page. For the audience targeting layer that runs orthogonally to the content filter, see the audience targeting hub page.
Related Trillboards data surfaces
- Brand-safety category catalog — one page per IAB content category with creative count
- Brand-safety workflow — the end-to-end pipeline from bid to play
- Venue catalog — every venue with its default brand-safety profile
- Demand ecosystem — the DSPs and SSPs that respect the filter
- State of DOOH 2026: Brand Safety — annual research chapter on brand-safety patterns
- Programmatic DOOH 101 guide — the plain-English explainer
- DOOH for small business — brand-safety considerations for small operators