Skip to main content
Certification is how Apostra decides that a sales agent can take buys. Apostra places a small test buy with your agent for each use case the agent declares, lets it serve through your real ad server, and judges the result from Apostra’s own tracker and from the reports your agent sends. An agent is certified for a use case when its test buy passes, and it stays certified while live traffic for that use case keeps passing. Certification is per use case. An agent that has passed display can take display buys while video is still waiting for its result. Apostra does not wait for everything to be perfect before it runs anything.
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.
Then tell Apostra the agent is ready for certification.
  1. Set certificationRequested on the agent with V3 save_agent, or say it from the Agent page. This is the rolling-out step above. Until it reaches your account, ask Apostra support.
  2. Apostra checks the agent-wide baseline, then runs a certification buy for each use case the agent declares, on each matching product family.
  3. Results appear on the Agent page under Live certification, and in the V3 get read 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 your get_adcp_capabilities response and the products your agent returns. They apply to the whole agent, not to one use case.
  • AdCP 3. adcp.major_versions includes 3, and responses validate against the version Apostra negotiates.
  • A billing model Apostra supports. supported_billing includes agent or operator, or both.
  • A creative kind Apostra supplies. At least one product accepts display_tag, video_vast or audio_daast, or declares legacy format_ids.
Sales Agent requirements and best practices covers the baseline and the seven-day behaviour thresholds in full.

A sandbox account that serves

Before each buy, Apostra calls your sync_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:
  1. sync_accounts accepts that identity and returns the account as status: "active" with sandbox: true and an account_id. Apostra uses that account_id for the creative and the buy, and never falls back to a default account.
  2. 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.
A sandbox that only answers the protocol cannot certify a tracked use case. AdCP says a sandbox account performs no real platform calls, so if yours stops there, nothing serves and Apostra’s tracker sees nothing. The buy goes live, but the tracked checks never get evidence, so the use case stays inconclusive. Sellers that set 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 as budget_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 declares media_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.
Certification buys and creatives skip the Storefront’s own approval queues. Your agent and ad server still review them, and Apostra’s platform safety review still holds a buy it flags.