Video Metrics

What makes a CTV impression valid? Understanding standards and verification

A valid CTV impression is an ad delivery that meets the minimum standards for a real ad exposure: the ad rendered on an active CTV device, the VAST impression beacon fired correctly, invalid traffic checks were passed, and the publisher was an authorised seller. Not every impression that appears in a CTV campaign report is valid by this standard. Understanding what separates a valid impression from a counted-but-questionable impression is essential for any advertiser buying CTV at scale.

The MRC standard for valid impressions in CTV

The Media Rating Council (MRC) defines a valid impression as one where:

  • The ad was served by an authorised publisher through legitimate ad infrastructure
  • The device receiving the ad is a real, human-operated device
  • The ad had an opportunity to be seen (in CTV, this means the screen was active and presenting the ad)
  • The impression was not generated by invalid traffic (bots, device emulators, non-human traffic patterns)

The MRC's CTV-specific guidance (updated in 2024) recognises that pixel-in-view measurement does not apply to full-screen TV environments. Instead, the MRC focuses on signal integrity, IVT detection, and supply chain validation as the basis for impression validity in CTV.

VAST error rates and impression validity

The most common source of invalid or questionable impressions in CTV is VAST delivery failure. The VAST impression beacon fires early in the ad delivery sequence — in some configurations, before the ad has fully loaded and begun playing. If the VAST impression fires but the ad fails to render (due to a network error, creative spec mismatch, or ad server timeout), the impression is counted but the ad was never seen.

Standard VAST error codes that indicate impression quality problems:

  • VAST Error 200 (Trafficking error): The player received an ad type it cannot display — often a creative format mismatch
  • VAST Error 301 (Wrapper timeout): The wrapper chain took too long to resolve — the ad may not have rendered before the viewer's content resumed
  • VAST Error 400 (Could not find media): The creative file was unreachable — the ad did not play
  • VAST Error 502 (Could not process response): The player could not parse the VAST response — ad not rendered

A campaign with a VAST error rate of 15% has roughly 15% of its counted impressions flagged as potentially non-delivered. The impression beacon fired; the ad may not have played. This is a validity problem, not a viewability problem — and it is distinct from completion rate measurement.

Acceptable VAST error rates for premium CTV inventory: below 5%. Rates of 10–20% are common in lower-quality programmatic CTV. Rates above 20% indicate a systematic technical problem on the publisher or creative side.

Invalid traffic (IVT) in CTV

CTV ad fraud and invalid traffic operate differently from desktop display fraud. The bot farms and click farms of display advertising do not directly translate — CTV does not have clicks. Instead, CTV IVT operates through:

Device ID spoofing

Fraudulent actors generate fake device IDs that mimic legitimate CTV devices (Roku, Fire TV, Apple TV, Android TV) and create synthetic ad request traffic from these fake devices. The bids are won, impressions are counted, completion events fire — all from servers, not real TVs. Detecting this requires device behaviour analysis: real devices have usage patterns (content switching, session lengths, timing distributions) that synthetic traffic does not replicate well.

App-ads.txt spoofing

Fraudulent inventory sellers claim to represent premium CTV publishers by spoofing their bundle IDs or app identifiers in bid requests. A bid request claiming to be from a major India OTT app may actually originate from a fraudulent server. App-ads.txt (the authorised seller file) is the primary defence — but it only works if buyers check it, and not all DSPs enforce it strictly.

Fake CTV traffic from mobile

Some fraud schemes use mobile devices or desktops to simulate CTV ad requests — reporting themselves as CTV inventory to command higher CTV CPMs while delivering ads on inferior environments. Device graph validation — confirming that the device making the request is actually a connected TV device — is necessary to catch this type of fraud.

Scale of CTV IVT

Industry estimates (DoubleVerify, IAS) suggest that 5–20% of programmatic CTV impressions globally show some form of invalid traffic. Premium, direct-sold CTV inventory has IVT rates near zero. Open programmatic CTV — particularly in emerging markets — has higher IVT exposure. India's growing CTV ecosystem, with many smaller publishers and limited verification infrastructure, is a higher-risk environment for IVT than mature markets like the US or UK.

Supply chain validation: app-ads.txt and sellers.json

App-ads.txt (for app-based CTV inventory) and sellers.json are the supply chain transparency tools that allow buyers to verify they are purchasing from authorised sellers.

App-ads.txt

Published by CTV app publishers, app-ads.txt lists every ad network, SSP, and exchange that is authorised to sell that publisher's inventory. A buyer whose DSP receives a bid request claiming to be from a publisher can check whether that SSP or exchange appears in that publisher's app-ads.txt file. If it doesn't, the inventory may be unauthorised or fraudulent.

In India: major publishers (JioCinema, Zee5, SonyLIV) maintain app-ads.txt files. Smaller regional OTT publishers often do not, or maintain incomplete files. Open programmatic buying without app-ads.txt enforcement means accepting unknown supply chain risk.

Sellers.json

Published by SSPs and ad exchanges, sellers.json lists all the publishers they represent and whether those publishers are direct sellers or intermediaries. This allows buyers to trace the full chain: publisher → SSP → exchange → DSP. Gaps in sellers.json coverage — publishers or resellers not listed — indicate supply chain opacity.

What India advertisers should demand for impression validity

India CTV measurement is self-reported by default. Publishers report impressions; advertisers receive those reports. Without active verification, advertisers are taking the publisher's word on delivery quality. Here is what to put in place:

Require app-ads.txt enforcement

Instruct your DSP to only purchase inventory from publishers listed in verified app-ads.txt files. This immediately removes a significant portion of unauthorised and potentially fraudulent supply from your buy. Most major DSPs can enforce this as a campaign-level setting.

Activate IVT measurement

DoubleVerify, IAS, and MOAT all offer CTV IVT measurement in India. Activate one of these for major campaigns. The cost is typically a fraction of media spend — worth it at any significant budget level. Review IVT rates by publisher and cut any publisher consistently exceeding 10% IVT.

Reconcile impressions across sources

Compare DSP-reported impressions against publisher-reported impressions. Discrepancies above 15% are common and expected due to measurement methodology differences. Discrepancies above 20–25% on a consistent basis warrant a direct conversation with the publisher about delivery reporting methodology.

Monitor VAST error rates

Pull VAST error code reports from your ad server. Set an alert threshold — if VAST error rates exceed 10% on any publisher or campaign, investigate before the campaign completes. VAST errors are fixable (creative spec adjustments, wrapper chain simplification) and addressing them in-flight recovers lost delivery.