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

    IAB Content Taxonomy 3.1 classification benchmark: Mixpeek on IAB Tech Lab's test set

    Mixpeek's IAB Content Taxonomy 3.1 text classifier run on IAB Tech Lab's open 704-page benchmark, next to IAB Tech Lab's published runs of EmbeddingGemma, Qwen3 and BGE-M3. Top-1 and top-5 accuracy, accuracy by category tier, a coverage-versus-precision threshold table, the full method and its limits.

    AdTech
    IAB Content Taxonomy
    Benchmark
    Contextual
    Embeddings
    IAB Tech Lab

    What we measured



    IAB Tech Lab publishes a small, open benchmark for classifying content into IAB Content Taxonomy 3.1: iab-taxonomy-classifier (Apache-2.0). It has 704 synthetic web pages, one written for each 3.1 category, and scores a classifier by whether the page's own category comes back first (top-1) or in the first five (top-5). IAB Tech Lab ran several open embedding models on Cloudflare Workers AI and published the results in the same repository.

    On 2026-10-19 we ran the same 704 pages, scored the same way, through a Mixpeek retriever built for IAB 3.1 text classification. This page reports what came back, including where it lost.

    Results



    ClassifierEmbedding sizeTop-1Top-5Source
    EmbeddingGemma-300M (IAB Tech Lab run)76875.0%94.5%IAB Tech Lab data
    EmbeddingGemma-300M (IAB Tech Lab run)51274.0%94.9%IAB Tech Lab data
    Mixpeek IAB 3.1 retriever (multilingual-e5-large-instruct)102472.7%93.8%method
    EmbeddingGemma-300M (IAB Tech Lab run)25672.0%92.8%IAB Tech Lab data
    Qwen3-Embedding-0.6B (IAB Tech Lab run)102470.3%91.1%IAB Tech Lab data
    BGE-M3 (IAB Tech Lab run)102465.9%88.8%IAB Tech Lab data
    EmbeddingGemma-300M (IAB Tech Lab run)12864.8%85.4%IAB Tech Lab data


    The IAB Tech Lab rows are read from the summary files in the repository's data folder. Mixpeek: 512 of 704 correct at top-1, 660 of 704 within the top five.

    In 627 of the 704 pages (89.1%), Mixpeek's first result was at least in the right tier 1 category, so most misses land on a neighbouring category in the same branch (method).

    Where it misses: tier 1 pages



    Accuracy depends heavily on how deep the page's category sits:

    Category tier of the pagePagesTop-1 correctSource
    Tier 1 (for example "Attractions")375 (13.5%)method
    Tier 2323233 (72.1%)method
    Tier 3275218 (79.3%)method
    Tier 46956 (81.2%)method


    A page written to illustrate a broad tier 1 category almost always describes something specific. The test page for "Attractions" is about a suspension bridge, a botanical garden and an arts district, and the classifier returned "Parks & Nature" and "Historic Site and Landmark Tours". Flat matching across all 704 categories will usually prefer the specific child. If your system needs tier 1 labels, read them from the path of the top result (89.1% correct here) rather than asking for an exact tier 1 match (method).

    Threshold or top-N?



    A classifier has to decide when to return a label at all. Raising the minimum score on the top result trades coverage for precision:

    Minimum score on the top resultPages that get a labelOf those, top-1 correctSource
    0.7699.1%73.1%method
    0.7891.8%74.9%method
    0.8069.7%77.2%method
    0.8239.6%81.7%method
    0.8414.5%90.2%method


    These scores are on this model's scale. Other embedding models score on very different ranges (IAB Tech Lab's README notes EmbeddingGemma's scores ran roughly 0.24 to 0.66), so a threshold never transfers between models. Pick it per model, on a labelled sample of your own content, for the precision your buyers need.

    Method



  1. Data: data/synthetic-content.ndjson from IAB Tech Lab's repository, all 704 records. Each page is classified from title + "\n\n" + body, as IAB Tech Lab's script does.
  2. Categories: the 704 categories of IAB Content Taxonomy 3.1 from IAB Tech Lab's published file, each embedded as "Name. Category path: Tier 1 > Tier 2 ...". IAB Tech Lab's script embeds "Name: Tier 1 > Tier 2 ...", the same information in a slightly different template.
  3. Classifier: one Mixpeek collection of the 704 categories embedded with multilingual-e5-large-instruct (1024 dimensions) and a retriever with one feature_search stage. The same setup is in Using Mixpeek in the IAB Tech Lab buyer agent, with a script to build it.
  4. Scoring: top-1 and top-5 as in IAB Tech Lab's summaries, with no minimum score; the threshold table above reports the minimum score separately.


  5. Limits, stated plainly:

  6. Synthetic text only. Every page was written by a language model to illustrate one category. Real pages mix topics and have navigation, ads and boilerplate around the article.
  7. One run, one configuration. No tuning, no instruction prefix on the query, no reranking. A reranking or taxonomy-aware stage could move these numbers either way.
  8. Text only. This benchmark has no video or audio. Mixpeek classifies video per scene and audio from transcripts; measuring those needs labelled media, which is the next phase.
  9. One oddity in the published IAB Tech Lab results. The summary file for bge-base-en-v1.5 at 768 dimensions reports exactly the same counts as EmbeddingGemma at 768 (528 and 665 correct), while its per-page results file picks a different first category on all but 55 pages. We left bge-base-en-v1.5 out of the table.


  10. What comes next



    This run leaves three questions open: how accuracy holds on real labelled pages instead of synthetic ones, on video and audio, and as embeddings are shortened to fit a bid request. The next phase of this benchmark covers video and audio with human labels and accuracy against embedding size. This page will be updated with a dated changelog entry when it does.

    Changelog



  11. 2026-10-19: first run, text, 704 pages.


  12. Frequently Asked Questions



    How accurate is Mixpeek at IAB Content Taxonomy 3.1 classification?



    On IAB Tech Lab's open 704-page synthetic text benchmark, 72.7% top-1 and 93.8% top-5 on 2026-10-19, with 89.1% of first results in the correct tier 1 category. That is below IAB Tech Lab's best published run (EmbeddingGemma-300M at 768 dimensions, 75.0% and 94.5%) and above its Qwen3-Embedding-0.6B and BGE-M3 runs (IAB Tech Lab data, method).

    What is the IAB Tech Lab taxonomy classifier benchmark?



    An open repository from IAB Tech Lab with 704 synthetic pages, one per Content Taxonomy 3.1 category, and a script that classifies each page by embedding similarity and reports top-1 and top-5 accuracy. It is licensed Apache-2.0 and includes the results of several embedding models.

    Why is tier 1 accuracy so low?



    Pages written for a broad tier 1 category describe specific things, so a classifier matching against all 704 categories usually returns a more specific child. Read tier 1 from the top result's path instead; that was correct for 89.1% of pages (method).

    What threshold should I use for IAB classification?



    It depends on the model and the precision you need. With this model, a minimum top score of 0.80 labelled 69.7% of pages at 77.2% precision, and 0.84 labelled 14.5% at 90.2% (method). Scores are not comparable across models, so calibrate on a labelled sample of your own content.

    Sources



  13. IAB Tech Lab iab-taxonomy-classifier (data, scripts and published results)
  14. IAB Tech Lab taxonomy files
  15. Using Mixpeek in the IAB Tech Lab buyer agent
  16. 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 archiveRead Docs

    Related guides

    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

    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 to comment before the October 22, 2026 deadline.

    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 →