Contextual Advertising and Targeting Insights | Peer39 Blog

From Program-Level Reporting to Program-Level Optimization

Written by David Simutis | Oct 9, 2026, 6:29:29 PM

Show-level reporting has become one of the more welcome developments in programmatic CTV. Buyers who spent years doing the manual work to match impressions to Deal IDs can now see which programs their impressions ran against, a level of visibility that has vastly improved the quality of post-buy analysis and conversations with clients.

But a limitation remains: timing. A report that arrives after the budget is spent explains what happened but cannot change it. Most teams review show-level data at the end of a flight, learn that a handful of programs drove the outcomes, and apply that learning to the next campaign, which by then has a different audience and a different flight window.

A more useful implementation uses program-level data in the optimization loop while the campaign is still running.

Connecting programs to outcomes

Actionable program-level data, consistently resolved and connected to campaign results, turns data into intelligence.

Resolving, however, can be difficult. Peer39's analysis of industry-wide bid requests shows that approximately 60% of CTV bid requests carry no usable program-level content signal, and most of the remainder include a single self-declared label. Show-level reporting depends on identifying the program from authenticated signals rather than from whatever the bid request declares.

Once an impression maps to a verified program, it can be matched to the outcomes the buyer already measures, such as completion or site visits. Each program carries its own performance record rather than inheriting the average of the app it ran in.

What changes when signals arrive in flight

With a joined dataset that refreshes during delivery, a buyer can move budget toward the groups of programs where outcomes are strong and away from programs that deliver impressions without results.

The same finding can also be turned into a pre-bid control, so the next impression is bought with the lessons already applied instead of waiting for the next flight. For example, Peer39's award-winning mirroring approach, which applies channel- and program-level pre-bid filters to broad Run of Network deals, drove a 19% lower cost-per-visit compared with efficiency-focused PMPs.

In practice, reporting describes a campaign after the fact. Decisioning treats each program as an input that can be raised or lowered while budget remains.

Why this matters for performance CTV

Performance CTV is where similar-looking inventory diverges most. At the app level, programs from the same publisher share a name and a supply path, and often a price. Completion rate does little to separate them: across genres and program types it clusters tightly between 95% and 100%, with drama at 98.39%, comedy at 98.74%, and action and adventure at 96.65%. On weekends, live sports completes at nearly the same rate as off-air background content that posts 100% completion with little evidence of viewing.

Device mix shows a further split. Live sports and episodic series deliver overwhelmingly on TV screens, while documentaries, lifestyle programming, and off-air content show a much higher share of tablet impressions despite similarly high completion. Optimization engines that feed app names and completion rates treat these programs as equivalent; ones that feed program-level data can price them differently.

What buyers should look for

Moving from show-level measurement to show-level decisioning depends on a few checks, arranged here by effort.

Low effort: fast checks anyone can do Check whether reporting shows program name alongside app name, and what share of delivery carries program-level signals. If more than half lacks it, optimization is working from incomplete inputs.

Medium effort: questions for data partners Ask whether programs are resolved from authenticated signals or from self-declared metadata, and whether outcomes can be joined using program-level data rather than only at the app or deal level.

Higher effort: patterns observable at scale Test whether program-level signals are available early enough to influence bidding within the same flight. A holdout comparison of program-informed and app-level optimization on similar budgets will show whether the signal changes results.

Frequently asked questions

What is the difference between show-level reporting and show-level optimization in CTV? Show-level reporting identifies which programs an impression ran against after a campaign ends. Show-level optimization uses that same program-level data while the campaign is still running, so budget can shift toward stronger-performing programs before the flight closes.

Why doesn't CTV completion rate tell buyers much about ad quality? Completion rates cluster tightly between 95% and 100% across most genres and program types, including background content with little evidence of active viewing. Because the metric doesn't vary much, it fails to separate genuinely engaging programs from filler content.

How much CTV inventory lacks usable program-level signal? Peer39's analysis of industry-wide bid requests found that approximately 60% of CTV bid requests carry no usable program-level content signal, and most of the rest include only a single self-declared label.

What should buyers ask their CTV data partners? Whether programs are resolved from authenticated signals or self-declared metadata, and whether campaign outcomes can be joined to program-level data in time to influence bidding within the same flight, not just in a post-buy report.

Reporting will remain necessary, and the next gain comes from moving the same data upstream, into decisions made while budget is still available. Peer39's program-level signals are built for that step.

Get the full report here.