NEWVectors or files. Pick a path.Start →
    Search & Discovery
    8 min read
    Updated 2026-07-14

    Brand Safety vs Brand Suitability: How AI Classifies Video for Advertisers

    Safety is a universal floor; suitability is a per-brand tolerance curve over graded risk tiers — and the GARM-style taxonomy remains the reference for both even after the organization wound down. How multimodal classification actually works on video (visual + speech + on-screen text + adjacency), why treatment beats topic, why moderation APIs can't express per-brand tiers, and the query-time reclassification pattern that avoids re-paying analysis.

    Brand Safety
    Brand Suitability
    Content Moderation
    AdTech
    Video Classification

    The Short Answer



    Brand safety and brand suitability are different decisions, made at different granularities. Brand SAFETY is a floor: content no advertiser should ever appear against (illegal content, terrorism, CSAM) — binary, universal, non-negotiable. Brand SUITABILITY is a per-brand tolerance curve: legitimate content that is fine for one advertiser and wrong for another — a war documentary is acceptable inventory for a streaming service and unacceptable for a children's cereal, so it needs tiered risk classification (high/medium/low) across sensitive categories, not a yes/no. The GARM Brand Safety Floor + Suitability Framework remains the industry's de-facto taxonomy for both — the organization behind it wound down in 2024, but the framework's category and tier definitions are still what platforms, verification vendors, and IAB Tech Lab's human-labeled benchmarks classify against.

    What does the framework actually classify?



    The GARM-style taxonomy defines roughly a dozen sensitive-content categories — adult content, arms and ammunition, crime, death and injury, online piracy, hate speech, military conflict, obscenity, illegal drugs, spam, terrorism, and sensitive social issues — and, for each, a floor (never monetize) plus three graded risk tiers. The tier is a judgment about TREATMENT, not just topic: news reporting on a shooting, a documentary about one, and glorification of one are the same category at three different risk levels. That treatment-sensitivity is what makes suitability classification genuinely hard for machines — topic detection alone over-blocks journalism (starving news publishers of revenue, the classic false-positive failure) and under-blocks glorification.

    How does AI classify video for suitability?



    Text pages are one signal; video is four. Production systems decompose each video into parallel channels and classify their combination:

    SignalWhat it carriesExample failure if skipped
    Visual frames/scenesViolence, weapons, nudity, alcohol, distressing imageryA muted fight scene passes an audio-only check
    Speech (ASR transcript)Profanity, hate speech, drug references, tone of discussionA calm-looking talking-head video discussing self-harm
    On-screen text (OCR)Slurs in memes, captions, lower-thirdsText-in-image hate content invisible to visual classifiers
    Metadata + contextTitle, description, channel history, adjacencyA compilation channel whose individual clips look benign
    Each channel produces category scores; a fusion step maps the combination onto floor/high/medium/low per category; per-brand profiles then threshold those tiers (the cereal brand blocks medium-risk conflict; the streaming service allows it). For video specifically, ADJACENCY matters as much as content: what plays in the seconds before and after an ad slot — which is why scene-level classification with timestamps beats whole-video labels. The decomposition pipeline is the same architecture as multimodal content moderation generally; the difference is graded output instead of binary policy calls.

    Why can't I just use a moderation API for suitability?



    Three mismatches. Moderation APIs return POLICY categories (violates/doesn't), not per-brand risk tiers — you can't express "medium-risk debated social issues are fine for us" through a binary endpoint. They classify at upload time against one static ruleset, while suitability standards and brand tolerances change — reclassifying a large catalog usually means re-paying full analysis (systems that classify at query time over an already-indexed catalog sidestep the reprocessing bill). And most operate per-file, while suitability for video advertising needs scene-level timestamps for adjacency decisions. If your buyer is a trust-and-safety team, a moderation API or NSFW detector fits; if your buyer is an ad platform, publisher, or agency, you're in suitability territory — the vendor conversation is different (see the best ad-tech AI platforms).

    How does this work on Mixpeek?



    Mixpeek treats suitability as a classification problem over an indexed catalog rather than a per-upload verdict. Videos are decomposed at ingest — scenes, transcripts, on-screen text, faces, objects — into a searchable index; taxonomy classification then assigns categories and tiers against YOUR taxonomy (GARM-style or bespoke), and because classification runs over stored features, changing a threshold or adding a category re-scores the catalog without re-running extraction. The same index answers adjacency queries ("what is in the 10 seconds around every mid-roll slot?"), powers video compliance monitoring, and stays searchable for everything else the archive is for — suitability becomes one taxonomy among several rather than a separate vendor silo. Rates for the underlying indexing are on pricing; the classify-at-query-time pattern is documented in the NSFW list's economics FAQ.
    Managed Mixpeek

    Put multimodal search to work

    Connect a bucket and Mixpeek runs the whole multimodal search pipeline for you: extraction, indexing, and search over your own objects. No models to wire up, nothing to host.

    Start with Managed
    MVS · bring your own

    Already have vectors?

    Keep your embeddings on your own cloud and run dense, sparse, and BM25 search directly on object storage. From $25/mo.

    Start with MVS

    Run this on your own data

    Point Mixpeek at the storage you already have and search your video, images, audio, and documents the way this guide describes. Build starts at $25/mo for up to 1M vectors.

    Search your own archive, freeRead Docs

    Related guides

    Search & Discovery

    How Do AI Agents Search Big Datasets by Navigating Clusters? (Hierarchical Cluster Search)

    Flat vector search returns top-k against one query vector, which breaks down when an agent does not know the right query, the corpus is huge and diverse, or the task is exploratory. Agentic hierarchical cluster search gives the agent a map instead: a cluster hierarchy (themes -> sub-clusters -> records) it navigates coarse-to-fine, scoring its goal against a few dozen centroids and drilling into the matching branch before running a precise retrieval at the leaf. When it beats flat ANN, the navigation loop, the cost math, the honest limits, and how to build it from clustering + composite clustering + a cluster-scoped retriever.

    Read guide →
    Search & Discovery

    How Do I Automatically Classify Content Against a Taxonomy?

    Auto-classifying images, video, documents, and audio into predefined categories at scale: the four viable methods in 2026 (zero-shot, embedding-similarity, trained head, LLM) and when each wins, how taxonomy classification differs from discovered taxonomies and metadata extraction, classifying non-text content by decomposing signals, taxonomy design rules, and the query-time reclassification pattern that avoids re-paying analysis when categories change.

    Read guide →
    Search & Discovery

    How Do I Filter Vector Search Results by Location? (Radius, Bounding Box, Polygon)

    Filter vector-search and retriever results by geographic location with three operators in an attribute_filter stage — geo_radius (within N meters), geo_bounding_box, and geo_polygon. Exact request shapes, the lat/lon-vs-GeoJSON lon-first gotcha, when to use each operator, combining geo with semantic search and metadata for location-aware RAG, and honest scope (a precise scan over your retrieved set, not a planet-scale geo index).

    Read guide →