30 Oct 2026 · 9 min read

AdCP for CTV: How Agents Buy Streaming TV Through the Protocol

Yes, AI agents can buy connected TV (CTV) through AdCP, the Ad Context Protocol published by AgenticAdvertising.org. Version 3.2, generally available since 30 September 2026, defines CTV as its own media channel and gives agents a task for each stage of a streaming buy: discovery, seller proposals, inventory holds, acceptance, creative and delivery reporting. What the protocol does not decide is which measurement counts, what the performance floors should be and who signs off, and those calls still sit with people.

TL;DR: An AdCP CTV buy moves from request_proposals through refine_proposals (which can turn a draft into an inventory hold) to accept_proposal, then sync_creatives for the video and get_media_buy_delivery for completed views and household reach. CTV specifics such as server-side ad insertion and ad-pod position sit on the seller's product, and AdCP's CTV creative profiles follow IAB Tech Lab's CTV Ad Portfolio. The judgement calls in a CTV deal, above all measurement and makegoods, remain human work.

What does AdCP count as CTV?

AdCP's Media Channel Taxonomy defines ctv as "Connected TV advertising delivered through streaming applications on television screens". The channel includes streaming apps, virtual MVPDs, free ad-supported streaming TV (FAST) and smart TV apps. Traditional broadcast and cable sit in a separate linear_tv channel, and video on phones, tablets and desktops is classed as olv.

The taxonomy describes channels as lightweight planning tags that "help buyers express intent, not enforce precise classification", so one property can carry several. The taxonomy's own example places YouTube under olv, social and ctv. For a buyer agent, the ctv tag narrows a search; it does not by itself prove where an ad will run.

How does a CTV buy map onto AdCP tasks?

The AdCP 3.2 task reference splits a media buy into discovery, planning, commitment, creative and reporting. For a streaming campaign the sequence looks like this:

  • Discovery: get_adcp_capabilities shows what the seller's agent supports, and list_products returns published CTV offers in around a second.

  • Planning: request_proposals sends a brief and asks the seller for draft media plans, a step the docs time at around 60 seconds.

  • Holds: refine_proposals either revises a draft or finalises it into a committed proposal backed by an inventory hold.

  • Commitment: accept_proposal turns negotiated terms into a media buy, while buy_products buys a published offer as listed.

  • Creative: sync_creatives uploads the video file or VAST tag and returns a review status for each creative.

  • Reporting: get_media_buys and get_media_buy_delivery return status, creative approvals and delivery metrics.

The older get_products and create_media_buy tasks remain as 3.x compatibility facades. How AdCP checks budgets and approvals before any of this runs is covered in how AdCP governance checks budgets, brand safety and human approval, so this piece stays on what changes when the channel is CTV.

A worked example shows where the human steps fall. Take a hypothetical buyer agent rehearsing a streaming brief in the kind of sparring environment Alkimi runs, where buyers and sellers set the rules their agents work to and test them against counterparty agents before real money moves. The agent sends the brief through request_proposals, asks for a revision of one draft plan, finalises it into a hold and then stops, because its mandate says a person approves before accept_proposal is called.

How do proposals and inventory holds work for a streaming deal?

For packaged or negotiated streaming inventory, request_proposals creates "immutable draft media-plan proposal snapshots from a brief", and sellers may answer asynchronously when planning needs "human sales-desk review". Each revision through refine_proposals returns a new proposal ID, so a buyer always knows which version of the plan it is looking at.

Finalising is the step that matters for scarce CTV inventory. According to the accept_proposal reference, a committed proposal means "the seller has locked the proposal's commercial terms and reserved its inventory" until the proposal expires. Acceptance quotes the proposal ID and a digest of its terms, the seller checks both along with the expiry, and the docs state that "stale or mismatched acceptance never applies different terms".

How does AdCP handle CTV creative?

AdCP's CTV creative guide uses the same two video formats as other channels: video_hosted for a finished file and video_vast for a VAST tag. The guide states that "SSAI/CSAI mode, app environment, ad-pod position, measurement availability, and inventory guarantees belong on the product or placement". The buyer agent reads those details from the seller's product, then supplies a creative that fits.

VAST versions are checked as an intersection: under the video guide, an asset's version must fall within both the product's accepted set and the seller's own. The same page warns that passing validation at upload "is a preflight of the tag's shape at that moment, not a guarantee about future responses". sync_creatives reports each creative as approved, pending review or rejected, with review "that takes hours/days" in some cases, so the flight start depends on the publisher's review rather than the agent's speed.

Beyond in-stream video, AdCP 3.2's CTV experience profiles follow IAB Tech Lab's CTV Ad Portfolio, which defines seven experiences: Linear, Menu, Pause, Screensaver, Overlay, Squeezeback and In-Scene. Linear CTV video needs no new modelling, and the other six are declared with a ctv_ad_experience value on an existing format. The page calls this "a creative-supply contract, not a restatement of IAB's OpenRTB signaling table", which keeps the two bodies of work complementary.

What delivery reporting does a CTV buyer agent get?

get_media_buy_delivery reports views, completed views and completion rate (completed views divided by impressions), alongside reach and frequency. Reach must state its unit, and households is one of the permitted units. Reach must also declare a window, because "without it, buyers must not sum reach across rows".

Who counts is a separate question. AdCP products can carry measurement terms, which set out "who counts the billing metric and what happens when thresholds are breached (makegoods)", and performance standards covering viewability, invalid traffic, completion, brand safety and attention. Buyers can propose different terms when the buy is created.

Which CTV terms still need a person?

The protocol carries terms; it does not choose them. Four decisions in a CTV buy still call for human judgement:

  • Which measurement counts for billing, and how much variance between the two sides' counts is acceptable.

  • The performance floors, such as completion and viewability thresholds, and the remedy if delivery falls short.

  • The reach definition: whether household reach suits the brief, and over what window.

  • Creative suitability for each app environment and ad-pod position.

Benchmark evidence suggests the floors are where agents most need supervision. In the Concourse Bench v1 study, a live benchmark of AI media-buying agents, 95 of the 110 contracts in completed buys promised viewability floors below 70%. Specific clauses worth reserving for people are listed in CTV deal terms an AI agent should never agree without human approval.

One workable model is earned autonomy, a five-step ladder: Observe, Recommend, Draft, Human-approved action and Bounded automatic action. A CTV buyer agent might be trusted to draft plans and finalise holds early on, with accept_proposal kept at human-approved action until its record on measurement terms is clear. AdCP itself groups buying, acceptance and creative sync as "complex operations with potential human approval", which leaves room for that step.

Where do AAMP and IAB Tech Lab's CTV work sit alongside AdCP?

IAB Tech Lab's AAMP (Agentic Advertising Management Protocols) is the umbrella for its agentic work, with repositories for Agentic Direct, reference buyer and seller agents, OpenProposal, a registry agent example, the Agentic Real Time Framework (ARTF) and Agentic Audiences. The ARTF reference implementation includes deal activation and adjustment and builds on OpenRTB 2.6.

OpenProposal, the core object in AAMP 3.0, is described in its repository as "the descriptive specification for what is being bought and sold, engineered so a buying agent can parse and evaluate it at machine speed". It is a public draft open for comment. For CTV it addresses the same proposal stage that AdCP handles with request_proposals, starting from IAB Tech Lab's object model.

IAB Tech Lab's established CTV standards sit underneath both: AdCP's experience profiles take their vocabulary from the CTV Ad Portfolio, and ARTF works with OpenRTB 2.6. Some CTV sellers have said they will accept buyer agents through both protocols, as the CTV agentic buying FAQ records.

Where does this leave CTV buyers?

AdCP gives a CTV buy a complete task path, and the parts it leaves open are the ones that were always judgement calls. Agents can take on the discovery, revisions, creative trafficking and reporting that people least enjoy, while people keep the measurement terms and approve the deals that matter. Linear broadcast follows different rules, covered in can AI agents buy linear TV.

Alkimi is neutral on standards: it can work with agents built on AdCP or AAMP, with or without a DSP, and it has filed comments and change requests on the OpenProposal draft. Its Concourse benchmark tests any buying agent without asking which standard it uses, and its Gym trains and spars any agent regardless of protocol.

The Marketplace in the same suite is neutral and keeps humans as approvers at the deal level. It records agreed terms in a DealSheet, written at agreement, timestamped, held by both parties and retrievable by either side independently.

Frequently asked questions

Can AI agents buy CTV through AdCP?

Yes, AdCP 3.2 defines a ctv channel and tasks for discovery, proposals, inventory holds, acceptance, creative and delivery reporting. Which of those tasks a seller supports is declared through get_adcp_capabilities.

Does AdCP support pause ads and other CTV formats?

AdCP 3.2 models six on-glass experiences from IAB Tech Lab's CTV Ad Portfolio, including pause, overlay and squeezeback. Each is declared with a ctv_ad_experience value on an existing creative format.

Can an AdCP buyer agent hold CTV inventory before committing?

Yes, refine_proposals can finalise a draft into a committed proposal backed by an inventory hold until it expires. accept_proposal then consumes that hold and creates the media buy.

Does AdCP report household reach for CTV?

Delivery reports can include reach with a declared unit, and households is one of the permitted units. The report must also state a reach window, otherwise buyers should not add reach across rows.

Do AAMP and AdCP both apply to CTV buying?

AAMP, from IAB Tech Lab, and AdCP, from AgenticAdvertising.org, are separate open efforts that both cover the deal workflow CTV relies on. Some CTV sellers have said they will accept buyer agents through both.

Further reading

All articles

Speak to the team

Customise your demo

You don't need to plug in your agent, the demo walks you through the steps.