NewAdVision is live on the Elemental TV Ad ServerRead the announcement →
Elemental TVAdVision
Creative intelligence · AdVision · Live

Every creative, understood before it serves

AdVision identifies the advertiser, categories, safety signals and message in an ad. Publishers use video analysis in the Creative Library to review creatives, set rules and report on delivery. The partner API analyzes both videos and static images.

API endpoint
POST /analyze/creative
advision.elementaltv.io
Inputs
Video (MP4 and other common formats) and static images (JPEG, PNG, GIF), submitted by URL
Taxonomies
IAB Content Taxonomy tier 1–2 · Sensitive categories, 18 values, versioned

What publishers get

For accounts with AdVision permission enabled in the ElementalTV App. AdVision runs on creatives from the demand sources you select — no setup per campaign.

See

•
Video creative metadata — advertiser name and domain, IAB categories, language, content type and whether several ads were stitched into one file, shown in the Creative Library next to the creative itself.
•
Safety flags — approved for families, acceptable quality, offensive content, unreasonable claims, political and child-directed, per creative; the metadata view shows political and COPPA detail when a creative qualifies.
•
Sensitive categories — inspect detected categories in View Metadata → AdVision. The 18 categories include alcohol, gambling, tobacco, weapons and health-related content; the row appears when categories are detected.
•
Filter the library — select one or more values in Sensitive Category to find creatives that match any selected category. Existing metadata, advertiser-domain and safety-flag filters remain available.
•
Report on it — group and filter Creative reports with 22 AdVision dimensions. The 18 new dimensions cover quality, family suitability, sensitive categories, political and child-directed attributes, language, content type, split ads, QR codes and advertiser brands.
•
QR metadata — View Metadata includes QR Code Detected alongside the other AdVision signals.

Control

•
Allow / Block profiles — use AdVision Sensitive Category in Allow / Block Metadata Profiles at Global, Supply Source or Ad Unit scope. Profiles also support the political, COPPA-relevant, offensive-content and unreasonable-claims flags.
•
Bid enrichment — outgoing bids carry AdVision's advertiser domain, advertiser, categories and language according to the attribute rules you set in Library Settings.
•
Your scope — choose which demand partners, supply sources and VAST systems participate.
•
Both delivery paths — the same metadata backs real-time bidding and server-side ad insertion.
•
Non-linear video — eligible videos collected from external non-linear VAST responses use the same analysis workflow. Images in the Creative Library can be previewed, but are stored without AdVision analysis.
•
Match analysis to the media — the library integration distinguishes different videos that reuse a creative ID and reuses analysis for the same media file. Account permissions and the selected analysis scope still apply.
Metadata informs; your rules decide. AdVision supplies classification data. The Ad Server applies your Allow / Block profiles and supported request category blocks. Automatic exchange-category checks depend on the connection; ask support to confirm coverage.

Reading Creative reports. Category and advertiser-domain dimensions reflect the stored AdVision result, even when it is not used to replace a demand partner's values. A creative can appear under several values, so those rows can add up to more than the overall total. Older analyses can lack QR or sensitive-category values, and older political or child-directed fields can show No without having been analyzed. Historical re-analysis is still in progress.

How to get started

For publishers on the Elemental TV Ad Server — from first email to first analyzed creative
Ask for AdVision. Email support@elementaltv.com with your account and what you want to control; we enable AdVision on your account.
Choose the scope. In Creative Library → Library Settings pick the participating demand partners, supply sources and VAST systems, and which AdVision attributes go into bid responses.
Let it run. Eligible linear and non-linear videos are analyzed as they arrive. Results appear in the Creative Library under View Metadata → AdVision; the tab shows processing, completed and failed states.
Set your rules. Add AdVision Sensitive Category or other AdVision conditions to Allow / Block Metadata Profiles at Global, Supply Source or Ad Unit scope.
What comes back for one creative — abridged
{ "creative_id": "your-id-123", "advertiser": "Example Outdoor Co.", "adomain": "example-outdoor.com", "adomain_confidence": 0.95, "categories": ["IAB17-15"], "language": "en", "sensitive_categories": [], "sensitive_categories_version": "0.1", "advision_approved_for_families": true, "acceptable_quality": true, "offensive_content": false, "unreasonable_claims": false, "split_ad": false, "duration": 30, "width": 1920, "height": 1080, "summary_text": "A golf-equipment retailer promotes a seasonal sale …", "transcription": "This weekend only, at Example Outdoor …", "secondary_brands": [ { "name": "…", "website_url": "…", "category": "…" } ] }

What AdVision returns

Fields on a completed analysis — the authoritative list is the 200 response of POST /analyze/creative (partner API v1.3)
FieldPresenceWhat it tells you
advertiseralwaysPrimary advertiser or brand.
adomain · adomain_confidencealwaysAdvertiser domain, and a 0.0–1.0 confidence in it. A domain you already know can be passed in and is preferred.
categoriesalwaysIAB Content Taxonomy codes, tier 2 where possible (e.g. IAB2-3).
sensitive_categories · sensitive_categories_versionalwaysZero or more of 18 exchange-agnostic values — alcohol, gambling, sports betting, lottery, tobacco, vaping, firearms, weapons, sexual and reproductive health, pharmaceuticals, supplements, nudity, pornography, cosmetic procedures, body modification, cannabis, CBD. An empty array means none detected. Versioned so the enum can grow without surprises.
advision_approved_for_familiesalwaysFamily-safe gate.
offensive_content · unreasonable_claims · acceptable_qualityalwaysOffensive or NSFW material; claims a reviewer would flag; overall quality flag.
split_adalwaysSeveral distinct ads stitched into one creative.
language · content_typealwaysLanguage of the creative (ISO 639-1) and content type, e.g. advertisement.
duration · width · heightalwaysDuration in seconds (0 for a still image) and pixel dimensions.
transcription · summary_textalwaysSpoken and on-screen text, and a short summary of the ad.
secondary_brandsalwaysOther brands that appear in the creative, each with website and category.
is_political · political{}when detectedPolitical inventory: advertiser type (candidate, PAC, party, issue advocacy), the issues raised and the sentiment.
is_coppa · kids_content_score · coppa{}when detectedChild-directed inventory: a 0.0–1.0 kids-content score, child-directed flag, data-collection, personalization and social-signup cues, and the rule results behind them.

Political and COPPA blocks are attached on the same call only when the creative qualifies — no extra requests, and ordinary creatives carry no empty blocks. They are signals for your own review and rules, not a legal certification. New fields may be added over time; ignore keys you do not know.

For platforms and partners

The same analysis over one API — submit a URL, repeat the call until it completes

What we do

•
Fetch the creative from your URL and analyze the whole video — or the image — in one pass.
•
Return one flat JSON record per creative with the fields above; political and COPPA enrichment attached when detected.
•
Keep the result keyed by your creative id — the same call returns the stored record; force: true re-analyzes from scratch.
•
Isolate your data per API key and, if you pass one, per tenant id — several businesses can share one integration.

What you send

•
Your API key in the X-API-Key header — issued once, store it in a secret manager.
•
POST /analyze/creative with your creative id and a publicly reachable media URL — video or JPEG / PNG / GIF.
•
The same POST again every 15–30 seconds until it returns 200. A 202 means downloading or queued; keep polling.
•
Optional: the advertiser domain you already know (adomain) and your tenant_id.
One call, repeated until done
POST https://advision.elementaltv.io/analyze/creative X-API-Key: asv_… Content-Type: application/json { "creative_id": "your-id-123", "media_files": [ { "url": "https://cdn.example.com/spot.mp4" } ] } 202 { "creative_id": "your-id-123", "status": "downloading" } → poll again 202 { "creative_id": "your-id-123", "status": "queued" } → poll again 200 { "advertiser": "…", "adomain": "…", "categories": [ … ], … } → done

Pipelines that always need the political or COPPA block can call the dedicated /analyze/creative/political and /analyze/creative/coppa endpoints instead; same key, same body, same polling. Write to support@elementaltv.com for a key.

What is next

Shipping on the AdVision API first, then in the Ad Server

Sensitive-category controls and expanded Creative reports are available in the ElementalTV App. The Creative Library analyzes eligible linear and non-linear videos. The partner API also analyzes static images; bringing that image analysis into the library remains future work.

What we are building next

•
Image analysis in the Creative Library — extend the existing image preview with AdVision results.
•
Deep analysis for creative tooling — per-frame descriptions, timecodes and retrievable frames from one call.

Why it matters

•
Image analysis would bring static creatives into the same metadata review workflow as video.
•
Frame descriptions and timecodes would help creative teams find the moments that need attention.

Changelog

This page is kept current as AdVision evolves
All product updatesAnnouncements for every Elemental TV product live on updates.elementaltv.com.