Skip to main content

IAB Categories

Valossa AI classifies video content using the IAB (Interactive Advertising Bureau) Content Taxonomy, enabling contextual advertising and content profiling at both the video level and within time-based sections.

Supported Standards

Valossa supports 510 different IAB Content Taxonomy categories based on:

  • IAB Content Taxonomy version 2.2 (primary)
  • Some categories from versions 1 and 2 of the standard

For the full list of IAB categories, see the IAB Tech Lab Content Taxonomy v2.2.

Detection Types

IAB category data is available through two detection types:

Detection TypeScopeHas OccurrencesDescription
topic.iabEntire videoNoIAB categories that describe the overall video content
topic.iab.sectionTime-based sectionsYesIAB categories for specific sub-sections of the video, with time codes

There is also topic.general which provides non-IAB topic classifications for the entire video.

Language Support

IAB categories are inferred from visual information and spoken language. The source modalities depend on the video's language setting:

  • English (en-US): Scene-level IAB 2.2 from speech + OCR + visual combined
  • Other languages: Scene-level IAB 2.2 from visual content only
  • All languages: Video overview IAB 2.1 categories from audio-visual topics

See Supported Languages for the complete language-feature matrix.

Reading IAB Categories

Video-Level Categories (topic.iab)

{
"t": "topic.iab",
"label": "Personal Finance",
"ext_refs": {
"iab": {
"labels_hierarchy": ["Personal Finance"],
"id": "IAB13"
}
}
}

Section-Level Categories (topic.iab.section)

{
"t": "topic.iab.section",
"label": "Business and Finance",
"occs": [
{
"id": "2266",
"ss": 32,
"se": 46,
"shs": 2,
"she": 4,
"c": 0.214,
"a": {
"sources": ["speech"],
"ad_score": {
"max": 0.214,
"s_max": 32.0
}
}
}
],
"a": {
"sources": ["speech"],
"ad_score": {
"max": 0.214,
"s_max": 32.0
}
},
"ext_refs": {
"iab": {
"labels_hierarchy": ["Business and Finance"],
"id": "52",
"iab_taxonomy_version": "2.2",
"is_scd_category": false
}
}
}

Key Fields in ext_refs.iab

FieldDescription
idIAB category identifier
labels_hierarchyArray of category labels from broad to specific
iab_taxonomy_versionVersion of the IAB taxonomy (e.g., "2.2")
is_scd_categoryBoolean indicating if this is a Special Category Data (SCD) category

Special Category Data (SCD)

For IAB taxonomy version 2.2, each category includes an is_scd_category boolean field. SCD categories relate to sensitive matters relevant to consumer privacy in advertising contexts.

"ext_refs": {
"iab": {
"labels_hierarchy": ["Sensitive Topics", "..."],
"id": "...",
"iab_taxonomy_version": "2.2",
"is_scd_category": true
}
}

Use this field to filter out sensitive categories when building ad targeting pipelines.

Ad Score

The Ad Score feature (available with Valossa AdScout subscriptions) provides a numeric suggestion for matching specific advertisements to specific video sections.

Ad Score data appears in the ad_score field within both topic.iab.section occurrences and detection-level attributes:

FieldDescription
ad_score.maxMaximum Ad Score value for this category
ad_score.s_maxTime position (seconds) where the maximum Ad Score occurs

The Ad Score helps answer: "How suitable is this video section for placing an ad in this IAB category?"

Code Example

Python: Extract IAB Categories

import json

with open("core_metadata.json", "r") as f:
metadata = json.load(f)

# Video-level IAB categories
for det_type, det_ids in metadata["detection_groupings"]["by_detection_type"].items():
if det_type.startswith("topic.iab"):
for det_id in det_ids:
detection = metadata["detections"][det_id]
iab_info = detection["ext_refs"]["iab"]
print(f"Type: {detection['t']}")
print(f" Label: {detection['label']}")
print(f" IAB ID: {iab_info['id']}")
print(f" Hierarchy: {' > '.join(iab_info['labels_hierarchy'])}")

# Check for SCD
if iab_info.get("is_scd_category"):
print(" WARNING: Special Category Data")

# Check for Ad Score
if "a" in detection and "ad_score" in detection.get("a", {}):
ad = detection["a"]["ad_score"]
print(f" Ad Score: {ad['max']} at {ad['s_max']}s")