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

    Will My Stored IAB Category IDs Still Work After a Taxonomy Upgrade?

    From IAB Content Taxonomy 3.0 to 3.1, yes: all 703 IDs carry over. From 2.2 to 3.0, 57% do, and 481 of the 512 removed IDs were content type, language and geo groups. Every version diffed ID by ID from IAB Tech Lab's own files, with the upgrade steps.

    Ethan Steininger
    By , Founder & CEO, Mixpeek
    AdTech
    IAB Content Taxonomy
    OpenRTB
    Taxonomy Migration
    IAB Tech Lab
    First-Party Data

    Will my stored IAB category IDs still work after a taxonomy upgrade?



    It depends which upgrade. From IAB Content Taxonomy 3.0 to 3.1, yes: every one of the 703 IDs in 3.0 is still in 3.1, one category was added, two were renamed and three were moved to a new parent. From 2.2 to 3.0, 57% of IDs survive: 512 of 2.2's 1,196 IDs are gone, and 481 of those 512 were the content type, channel, format, language and source-country groups, which 3.0 took out of the tiered file. The other 31 were topic categories such as news, movie genres and events, plus the Brand Suitability and Risk group from 2.2. From 1.0, nothing carries over, because 1.0 used a different code scheme (IAB1, IAB1-1) and every later version uses numeric or random string IDs. We counted all of this from IAB Tech Lab's own TSV files.

    What changed in each IAB Content Taxonomy version?



    UpgradeCategories before, afterIDs keptAddedRemovedRenamedMoved to a new parent
    1.0 to 2.0392, 1,179None (new ID scheme)
    2.0 to 2.11,179, 1,179100%0010
    2.1 to 2.21,179, 1,196100%17000
    2.2 to 3.01,196, 70357.2%195122838
    3.0 to 3.1703, 704100%1023


    The counts come from the Content Taxonomies folder of IAB Tech Lab's public repository (GitHub), compared ID by ID: an ID is "renamed" when its name changed, "moved" when its parent ID changed. The script and its output are linked at the end of this page.

    What each upgrade did:

  1. 2.0 to 2.1 changed one name, and introduced a typo: ID 1011 went from
  2. "Academic/ResearchContent" to "Academic/ResearchConent", and 2.2 kept the typo. If you match categories by name, this is the kind of change that breaks it.
  3. 2.1 to 2.2 added 17 brand-safety entries: a Sensitive Topics group with 11 categories,
  4. such as 8FD8nI Terrorism and 6i4dB6 Spam or Harmful Content, and a Brand Suitability and Risk group with four risk levels, Floor to Low Risk. They were the first string IDs.
  5. 2.2 to 3.0 was the break. 447 of the 512 removed IDs were Content Source Geo (262)
  6. and Content Language (185), and another 34 were content type, channel, media format and source. The other 31 removals were the Brand Suitability and Risk group from 2.2 (its Sensitive Topics group stayed) and topic categories, among them News and Politics with its national, local and international news children, genre-specific movie categories such as Comedy Movies and Drama Movies, and event categories such as Sporting Events and Concerts & Music Events. 28 names were shortened (150 "Events and Attractions" became "Attractions") and 38 categories moved, many of them under the new Genres group, ID SPSHQ5.
  7. 3.0 to 3.1 added 700 Thriller under Genres, renamed 156 Musicals to Musical and 602
  8. Software and Applications to Computer Software and Applications, and moved 80DV8O Communication to its own top-level group.

    Where did the content type, language and geo categories go in 3.0?



    Into a separate Descriptive Vectors file, which 3.0 publishes beside the tiered taxonomy (Content Taxonomy 3.0 Descriptive Vectors). The idea is that what a page is about and what kind of page it is are separate signals. The file is small: 47 rows. Of the 512 IDs that left the tiered file in 3.0, 36 appear in it with the same ID. The 262 country codes and 185 language codes do not, so if your 2.x data stored source country or language as taxonomy IDs, 3.0 has no ID to move them to. Store them as their own fields (an ISO country or language code) instead.

    Is there an official mapping from IAB 2.x to 3.x?



    Not in the taxonomy repository. Its Taxonomy Mappings folder has content mappings from 1.0 to 2.0 and from 2.0 to 2.1, plus ad product, CTV genre and podcast genre mappings, and no 2.x to 3.x content file (Taxonomy Mappings). For that upgrade IAB Tech Lab's content taxonomy page points to a mapper tool on GitHub (IAB Tech Lab), the IAB mapper, which matches 2.x labels to 3.1 IDs with exact, fuzzy and optional embedding matching. Mixpeek built it, and the repository now sits in IAB Tech Lab's GitHub organization.

    How do I upgrade stored IAB categories without breaking anything?



    1. Key on the ID, never the name. Names change between versions (31 renames across the four upgrades counted above, one of them a typo), and IDs within the 2.x line and within the 3.x line stayed put. 2. Store IDs as strings. 2.2 introduced IDs such as 8FD8nI, and 3.x has 1KXCLD, 80DV8O and SPSHQ5. A numeric column truncates or rejects them. 3. Store the version next to each ID. In OpenRTB that is cattax: 7 for Content Taxonomy 3.0 and 9 for 3.1 in the AdCOM list (AdCOM). A bare ID is ambiguous across major versions. 4. Diff the files yourself on every release. Load both TSVs and compare by ID, name, parent and tier path. A moved parent changes the tree your code builds even when every ID and name is the same. 5. For 2.x to 3.x, split the vector groups out first. Move content type, channel, format, language and source country into their own fields, then map the remaining topic IDs. 481 of the 512 IDs that 3.0 removed, about 94%, were those groups. 6. From 3.0 to 3.1, update names and parents only. No ID needs remapping.

    How does Mixpeek handle taxonomy versions?



    Mixpeek reads your files where they already live, in S3, GCS or any bucket, and turns what's in them into data your software can search, classify and moderate. Its IAB taxonomy classification runs against Content Taxonomy 3.1, generated from IAB Tech Lab's official file, with a unit test that diffs every ID, name, parent and tier against that file, which is the check in step 4 above. Video is classified scene by scene from frames, speech and on-screen text, and each result carries the 3.1 ID, its tier path and a confidence score, ready to send with cattax 9. For text there is an open benchmark of the classifier on IAB Tech Lab's test set.

    Frequently Asked Questions



    How many categories does each IAB Content Taxonomy version have?



    Counted from IAB Tech Lab's published TSV files: 1.0 has 392 (26 tier 1, 366 tier 2); 2.0 and 2.1 have 1,179; 2.2 has 1,196; 3.0 has 703 (36, 322, 275 and 70 across tiers 1 to 4); and 3.1 has 704 (37, 323, 275 and 69). 3.x is smaller than 2.x because content type, language and source-country categories left the tiered file.

    Are IAB Content Taxonomy 3.0 IDs valid in 3.1?



    Yes. All 703 IDs in the 3.0 file are in the 3.1 file. Two of them have new names (156 Musical and 602 Computer Software and Applications) and three have a new parent (376 Public Radio, 497 Horse Racing and 80DV8O Communication), so update names and tree paths, and set cattax to 9 when you send them as 3.1.

    How many IAB 2.2 IDs still exist in 3.1?



    684 of 2.2's 1,196 IDs are present in 3.1, and 656 of those keep the same name. The other 512 were removed in 3.0, and 481 of them were content type, channel, media format, language and source groups.

    Does IAB Content Taxonomy 1.0 map to 2.0?



    Yes, IAB Tech Lab publishes a Content 1.0 to Content 2.0 mapping file in the Taxonomy Mappings folder of its repository. You need it because no 1.0 code (IAB1 to IAB26 and their IAB1-1 style children) is reused in 2.0 or later.

    Has IAB Content Taxonomy 3.2 been released?



    Not as of 28 October 2026. IAB Tech Lab's content taxonomy page lists 3.1 as the latest version, and the public repository's newest content file is Content Taxonomy 3.1.tsv. When a new file is published, the same ID-by-ID diff shows what changed.

    Key Takeaways



  9. 3.0 to 3.1 kept every ID: 1 added, 2 renamed, 3 moved, 704 categories in total.
  10. 2.2 to 3.0 kept 57% of IDs. 481 of the 512 removed IDs were content type, channel, format,
  11. language and source groups; the other 31 were topics and brand-risk levels.
  12. 447 of those removals were country and language codes that the 3.0 Descriptive Vectors file
  13. does not carry, so store them as their own fields.
  14. The repository has official content mappings for 1.0 to 2.0 and 2.0 to 2.1 only; the 2.x to
  15. 3.x path is IAB Tech Lab's mapper tool.
  16. Key stored categories on ID as a string, with the version beside it, and diff the TSVs on
  17. every release.

    Where to go next



    IAB Content Taxonomy 3.1 classification · IAB 3.1 classification benchmark · IAB mapper connector · how to classify content against a taxonomy · contextual embeddings for Agentic Audiences

    Method and raw output: the diff script and its results are committed in the Mixpeek monorepo under gtm/playbooks/22-aeo-content-engine/measure/first-party/2026-10-28-iab-taxonomy-version-diffs.
    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

    Classify against IAB Content Taxonomy 3.1

    Mixpeek classifies video, images and audio from your bucket into 3.1 IDs with tier paths, confidence scores and scene timestamps, generated from IAB Tech Lab's official file.

    IAB classificationTry the free demo

    Related guides

    Search & Discovery

    OpenProposal (AAMP 3.0) explained: the object, its 71 fields and what buyer agents read

    OpenProposal is the core object of IAB Tech Lab's AAMP 3.0: a machine-readable ad offer that a buying agent parses, configures within seller-declared limits and commits to, landing in OpenDirect 2.1, the Deals API or OpenRTB 2.6. How the proposal and line items are shaped, the seven mutability markers, a CTV line item read field by field, where content categories are missing, and how the public comment period works.

    Read guide →
    Search & Discovery

    Build an ARTF agent container that adds IAB content categories

    A worked ARTF v1 agent: it answers GetMutations with one ADD_CIDS mutation that puts IAB Content Taxonomy 3.1 category IDs on site.content.data or app.content.data, looked up in a reference file built from a Mixpeek collection, so nothing is called during the auction. Proto stubs, handler code, the manifest label, a grpcurl test with IAB Tech Lab's sample request, and a list of what was and was not tested.

    Read guide →
    Search & Discovery

    Using Mixpeek in the IAB Tech Lab buyer agent: classification, brand safety, contextual search

    IAB Tech Lab's reference buyer agent ships a Mixpeek client with three MCP tools: classify_content, check_brand_safety and contextual_search. Build an IAB Content Taxonomy 3.1 namespace with a tested script, configure the agent, and see what each tool returned from a clean checkout, plus two behaviors to know: limit does not cap results, and half the brand-safety list does not match 3.1 names.

    Read guide →