Two parts of this flow are rolling out. Saying your agent is ready from the
Agent page or with
save_agent, and automatic certification runs after you
say so, are not available to every account yet. Until they are, ask Apostra
support to certify your agent. The rest of this page describes how
certification works once a run starts, and that part is live.What a pass unlocks
One passed use case completes the Successful transaction go-live step for every Source that uses your agent. That is the step a seller’s Storefront needs before it can go live with a third-party sales agent. See Storefront readiness.- A pass counts for the agent a Source was using when the run happened. It does not follow a Source that is later moved to a different agent.
- A pass stands until a later result for the same use case and product family fails. An inconclusive result never removes a pass.
- Certification does not publish your agent, grant Partner Program status or replace a seller’s credentials, account mapping and health checks. Those stay separate.
How a developer starts
Every agent lives in your organization’s Developer account. See Create an agent in a Developer account. Certification buys go through a seller Source that uses your agent, so an agent needs a Source before it can be certified.- If your organization runs its own storefront, connect the agent to it as a Source. See Build a sales agent.
- If you build an agent for other companies to use, ask Apostra support to start. Apostra arranges the connection today, and your agent is certified through the seller Source that uses it.
- Set
certificationRequestedon the agent with V3save_agent, or say it from the Agent page. This is the rolling-out step above. Until it reaches your account, ask Apostra support. - Apostra checks the agent-wide baseline, then runs a certification buy for each use case the agent declares, on each matching product family.
- Results appear on the Agent page under Live certification, and in the V3
getread of the agent. Each use case shows Passed, Failed or Inconclusive, when it was last judged and a reason when it did not pass.
What makes an agent ready
An agent is ready for certification when two things are true. The agent-wide baseline holds, and the agent has a sandbox account that serves through your ad server.The agent-wide baseline
Apostra reads these from yourget_adcp_capabilities response and the products
your agent returns. They apply to the whole agent, not to one use case.
- AdCP 3.
adcp.major_versionsincludes 3, and responses validate against the version Apostra negotiates. - A billing model Apostra supports.
supported_billingincludesagentoroperator, or both. - A creative kind Apostra supplies. At least one product accepts
display_tag,video_vastoraudio_daast, or declares legacyformat_ids.
A sandbox account that serves
Before each buy, Apostra calls yoursync_accounts with its certification test
identity: for example brand acmeoutdoor.example, operator
pinnacle-agency.example and sandbox: true. Apostra asks for a billing model
your agent offers: agent first, then operator, then advertiser.
Your agent is ready when:
sync_accountsaccepts that identity and returns the account asstatus: "active"withsandbox: trueand anaccount_id. Apostra uses thataccount_idfor the creative and the buy, and never falls back to a default account.- Buys on that sandbox account serve through your real ad server, at no cost to Apostra. The sandbox account that serves through your ad server is the test line. You do not set up a separate test placement or name a trafficking contact.
account.require_operator_auth: true cannot be certified yet.
They are skipped as seller_operator_auth_unsupported.
Channels Apostra’s tracker cannot observe, such as linear TV, radio and print,
certify on your reports instead. See Use cases.
Use cases
Apostra reads your products and capabilities to decide which use cases apply. You do not maintain the list. A use case your agent does not declare does not apply, and one it declares but has not passed cannot take buys yet.
The extra checks the spec lists for cost per completed view, conversions,
signals and TMP are being added. Today a run for those use cases is judged on
the standard checks.
A use case is also split by product family. Display on one ad server and display
on another are two families, and each needs its own certification buy.
Programmatic and non-programmatic DOOH are always separate families.
What each check judges
Stopping and change checks (a paused buy goes quiet, a creative swap takes
effect) are not part of the first buy. Apostra runs them later to keep
certification current.
Seller-reported channels skip the tracker checks. They pass on the buy going
live and on reports arriving on the schedule your agent declares in
reporting_capabilities.
Test buy size
Each certification buy is capped at USD 10, and each run is capped at USD 50. A buy’s budget is the smallest USD pricing option on the product: a flat-rate option uses its fixed price, any other option uses its minimum spend per package, and an option with no minimum uses the USD 10 cap. Apostra never rounds a minimum down. A product whose smallest option is above USD 10 is skipped asbudget_exceeds_per_buy_cap.
The buy runs for three days and asks for about 15 impressions an hour, which
gives roughly 1,000 impressions to compare and three daily reports. Your sandbox
decides whether money moves. Apostra does not pay for test impressions.
How long it takes
Plan for about three days of serving, plus the reports that are due after the flight. Apostra re-reads the evidence every hour, so tracker hits and reports that arrive late update the result without anyone starting a new run. Apostra compares totals against the settled report about 72 hours after each period, so the final comparison can arrive after the flight ends.Results
Each use case and product family has one latest result.
A skipped family never produced a buy. It is shown as inconclusive with its skip
reason. It does not fail the use case, stops no running buys and cannot certify.
A later run judges the family again.
Skip reasons
Skip reasons describe what stopped the buy before it was sent.Your sandbox account
Your agent’s response to the buy
Budget
Agents that sell only through briefs
An agent that lists no wholesale products and declaresmedia_buy.supports_proposals: true is certified through a brief. Apostra sends
one brief for display with a tag and one for VAST video, each with a USD 10
budget and a three-day flight, and buys the first proposal that serves the use
case.
Apostra’s side
A product with no declared AdCP channels is skipped before any family is built
(
missing_channels). That is a finding with the products named, not a failure.
Declare channels on the product, or applies_to_channels on each format
option.
How certification is kept
Certification is continuous, and evidence has to stay fresh.- Fresh evidence. Most checks need a pass from the past seven days. The report check follows your reporting cadence instead, so a product that reports monthly stays certified between reports.
- Real buys count. A real buy for a use case produces the same observations as a certification buy. While one is live, its traffic is the evidence. When none is, Apostra runs a synthetic buy on your sandbox account.
- A failure blocks new buys only. When a check fails on live traffic, the use case cannot take new buys, and Apostra tells you what it saw and how to fix it. Buys already running are never paused automatically. The use case recovers as soon as live traffic passes again, with no re-registration step. The step that keeps new buys away from a failed use case is rolling out.