NEWVectors or files. Pick a path.Start →
    Video Understanding
    8 min read
    Updated 2026-10-30

    How Does Scene-Level Contextual Targeting Work for CTV?

    Scene-level contextual targeting picks a CTV ad by the scene that plays just before the ad break, read from the video's frames, audio and captions, with no data about the viewer. Each scene is classified when the stream is ingested, the categories are stored with timestamps, and at the break the signal is a lookup. How it differs from program-level targeting, what it reads, how it reaches the bid, and who sells it.

    Ethan Steininger
    By , Founder & CEO, Mixpeek
    CTV
    Contextual Advertising
    Scene-Level Targeting
    OpenRTB
    IAB Taxonomy
    Ad Tech

    How does scene-level contextual targeting work for CTV?



    Scene-level contextual targeting chooses a connected TV ad by the scene that plays right before the ad break. The stream is cut into scenes, each scene is classified from its frames, audio and captions, and the categories are stored with their start and end times. When the break comes, the system looks up the scene that ended at the cue and sends its categories to the auction, so a cookware ad can follow a kitchen scene inside a show whose genre is drama. It uses no data about the viewer, only what is on screen.

    What is the difference between program-level and scene-level targeting?



    Program-level targeting describes a whole show or episode: its genre, rating, network and language. IAS Total TV, for example, reports show, program, genre, rating and language for streaming inventory across Disney, NBCUniversal, Paramount and Prime Video (IAS). Scene-level targeting describes a moment inside it. A two-hour film labeled "drama" contains a dinner party, a car chase and a funeral, and each suits different advertisers. Program-level signals are cheaper to produce and enough for broad suitability. Scene-level signals matter when the ad should match what the viewer has just watched.

    What does a scene-level system read?



    The published systems read several modalities and combine them. Anoki's ContextIQ, for example, uses separate expert models for video, audio, the transcript and metadata such as objects, actions and emotion, and reports retrieval results on public benchmarks without joint training (arXiv paper). In practice a scene record carries:

  1. What is shown: objects, settings and actions from sampled frames.
  2. What is said: the transcript or captions for the scene.
  3. What is written on screen: titles, signs and graphics read by OCR.
  4. How it sounds: music, crowd noise or silence from the audio track.
  5. When it happens: the scene's start and end in the stream, which is what makes it addressable at a break.


  6. How does the system know which scene came before the break?



    Ad breaks in a stream are marked with cue messages, usually SCTE-35, which tell the ad insertion system where a break starts and how long it lasts (SCTE-35). Because every scene is stored with its timestamps, the scene before a break is the one whose end is closest to the cue's position. That is a lookup in an index built earlier. Nothing is classified while the auction waits.

    How do scene signals reach the bid?



    Classify at ingest, look up at the break. When the content is published or delivered, run the classification once and store the categories per scene. At the break, the server-side ad insertion system or the SSP reads the stored categories for the preceding scene and puts them in the bid request. In OpenRTB 2.6 they travel in the content object: cat carries the category IDs and cattax names the taxonomy they come from (OpenRTB 2.6; AdCOM category taxonomies). Vendors that sell the signal instead package it as a deal ID or a segment in the buyer's DSP.

    Which platforms offer scene-level contextual targeting for CTV?



  7. Anoki ContextIQ matches ads to scenes and is available through Index Exchange Marketplaces in
  8. existing SSP and DSP workflows (Index Exchange).
  9. Wurl's Content Intelligence Platform launched on September 15, 2026 with KERV for object-level
  10. recognition, Peer39 for pre-bid suitability and Viant's IRIS.TV, and integrates with Yahoo DSP, StackAdapt and Viant (Advanced Television).
  11. Developer APIs such as Mixpeek classify the stream itself and return categories per scene, for
  12. publishers, SSAI vendors and SSPs that want the signal for their own inventory.

    The best ad tech AI platforms list compares these with the program-level and brand suitability vendors.

    What does a scene search look like on real footage?



    This query runs against Mixpeek's public sample library, 67 Pexels and NASA clips cut into segments. A cookware advertiser asks for kitchen scenes. It needs no API key.
    curl -s -X POST https://api.mixpeek.com/v1/public/retrievers/footage-intelligence-sample/execute \
      -H 'Content-Type: application/json' \
      -d '{"inputs":{"query":"someone cooking in a kitchen"},"pagination":{"method":"offset","page_number":1,"page_size":3}}'
    Recorded on October 30, 2026, the top result was "A person is cooking food on a stove", seconds 7.0 to 13.0 of its clip, a close-up of a chef cooking meat in a pan. The next two were coffee being prepared: kitchen scenes, with weaker scores. Each result carries its start and end seconds, which is what lets a placement target the scene before a break. Scores move from query to query, so set a cutoff for each category from labeled examples before using them in an auction.

    What does scene-level targeting not do?



  13. It needs the stream in advance. Classification happens at ingest, so a live broadcast needs a
  14. pipeline that keeps pace with it, and a stream nobody indexed has no scene signal.
  15. It does not replace brand suitability. A scene that matches an ad can still be unsuitable for
  16. the brand; suitability rules are a separate decision layered on top.
  17. It does not verify delivery. Confirming where an impression ran is the job of a verification
  18. vendor's post-bid reporting.

    How does Mixpeek fit?



    Mixpeek reads your files where they already live, in S3, GCS or any bucket, cuts video into scenes and returns what each scene shows, says and displays, with timestamps, so a scene can be looked up at a break. It classifies against IAB Content Taxonomy 3.1 and ships open-source reference connectors for OpenRTB and Prebid. Try a classification on your own video in the IAB contextual classifier.

    Frequently Asked Questions



    Does scene-level contextual targeting need viewer data?



    No. It reads the content, so it works without device IDs, cookies or household graphs. The signal comes from what is on screen in the scene before the break.

    Is scene-level targeting the same as moment-based targeting?



    They describe the same idea: matching an ad to a specific moment in the content. Vendors use both names. What to check is the grain the product actually returns: a whole program, a fixed time window, or a scene cut at the content's own transitions.

    How are scene categories sent in an OpenRTB bid request?



    In the content object of OpenRTB 2.6: cat holds the category IDs and cattax names the taxonomy, taken from the AdCOM list of category taxonomies (OpenRTB 2.6). The IDs are read from the scene index at the break, so the auction never waits on a model.

    Can scene-level targeting work on live CTV?



    Yes, when classification keeps pace with the stream and each scene is indexed before the next break. On-demand content is simpler because every scene can be classified before it is ever served.

    Is program-level or scene-level targeting better for CTV?



    Program-level is enough for broad suitability and genre buys, and it is what most streaming publishers already expose. Scene-level is worth it when the ad should match the moment, such as a cookware ad after a kitchen scene, and when you can index the content before it airs.

    Key takeaways



  19. Scene-level targeting matches the ad to the scene before the break, read from frames, audio and
  20. captions, with no viewer data.
  21. Classify once at ingest, store categories per scene with timestamps, and look them up at the
  22. SCTE-35 cue.
  23. In OpenRTB 2.6 the categories travel in the content object as cat, with cattax naming the taxonomy.
  24. Anoki ContextIQ (through Index Exchange) and Wurl's Content Intelligence Platform sell the signal;
  25. developer APIs let publishers and SSAI vendors produce it for their own streams.

    Where to go next



    Why CTV bid requests lack content categories · best ad tech AI platforms · IAB taxonomy classification · video scene segmentation

    Sources



  26. ContextIQ: A Multimodal Expert-Based Video Retrieval System for Contextual Advertising (arXiv)
  27. Index Exchange: Anoki launches with Index Marketplaces
  28. Advanced Television: Wurl launches Content Intelligence Platform
  29. IAS launches Total TV solutions for connected TV
  30. SCTE-35
  31. OpenRTB 2.6 specification, Object: Content
  32. AdCOM 1.0, List: Category Taxonomies
  33. 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

    Video Understanding

    Why CTV bid requests lack content categories, and how to fill them

    Most CTV bid requests arrive with little or no content metadata because the publisher never classified the stream in IAB terms, privacy law limits show-level sharing, and some publishers hold their best show data back for direct deals. The fix is to classify each asset once at ingest from its frames, speech and on-screen text, store IAB Content Taxonomy 3.1 IDs keyed by content ID, and fill OpenRTB content.cat, cattax, genres and gtax by lookup when the request goes out.

    Read guide →
    Video Understanding

    We Can't Tell What Content Our CTV Ads Ran Next To. How Do We Find Out?

    If you cannot tell what content your CTV ads ran next to, the record was never written: most CTV impressions reach the buyer with an app ID at best, and no show, episode or scene. Ask sellers for show-level reporting in the deal, add the VAST [CONTENTID] and [MEDIAPLAYHEAD] macros to your impression trackers so each impression carries the content ID and the second it played at, and have whoever holds the video join those two values to a scene index of the content. Covers what each party can see, the macros, the join, and what to put in a deal.

    Read guide →
    Video Understanding

    Our Brand Safety Tool Flags Too Many False Positives on Video. How Do We Fix It?

    A brand safety tool over-flags video when it judges words instead of what the video shows, scores single frames out of context, applies one floor to every brand, and runs on a low default threshold against content that is rarely unsafe. Measure precision per category on a labeled sample of what got blocked, then fix the cause: score segments with picture, speech and on-screen text together, grade treatment as well as topic, and set tiers per brand. Covers the causes, how to measure them, a fix table, and where GARM stands since it shut down in 2024.

    Read guide →