16 Oct 2026 · 7 min read
How Does AdCP Governance Check Budgets, Brand Safety and Human Approval Before an Agent Buys?
AdCP governance is the part of the Ad Context Protocol that stops a buying agent from committing money until a separate governance agent has checked the action against a campaign plan a person approved. check_governance tests each buy against the plan's budget, markets, dates, sellers and policies. Anything beyond the authority a person granted is held for human review, and every approval is issued as a signed token and written to an audit log. The documentation calls the principle behind this Embedded Human Judgment: oversight built into the architecture, not added afterwards.
TL;DR. According to the AdCP documentation, campaign governance splits a media buy between an orchestrator that proposes buys, a governance agent that validates them and a seller that fulfils them, and none of the three can approve its own action. Humans set the boundaries in advance through sync_plans, including a reallocation_threshold above which budget moves need human approval. Approvals travel as signed tokens that sellers verify before committing, and get_plan_audit_logs shows who approved what and when. Campaign governance is still marked experimental in AdCP 3.x.
What is AdCP governance?
AdCP governance is a set of protocol tasks that check an agent's actions against human-defined rules before money moves. AdCP is published and governed by AgenticAdvertising.org. Of the six governance domains its documentation describes, campaign governance is the one that sits directly in front of spending.
Its core idea is separation of duties. The orchestrator cannot set its own limits, the governance agent cannot buy, and the seller cannot override a governance decision. As the documentation puts it: "The agent that spends money isn't the agent that sets the rules."
What does check_governance check before an agent buys?
check_governance is the validation gate both sides of an AdCP buy call. The orchestrator runs an intent check, sending the tool it plans to call, such as create_media_buy, with the full payload; no budget is committed. The seller then runs an execution check against what it will actually deliver, in a purchase, modification or delivery phase. Execution checks are binding: if the governance agent denies, the seller must not proceed.
Budget is only one test. The governance agent resolves policies from the brand's configuration, including approved and excluded publisher categories in brand.json, and from the policy registry, a shared library of machine-readable rules covering regulations such as COPPA, GDPR and UK HFSS. Because the orchestrator does not hold the policies, it cannot skip them.
A check returns approved, denied or conditions. An approval carries an expiry time, and "A lapsed approval is no approval." conditions is a counterproposal, not an authorisation. If the governance agent cannot be reached, the caller must not proceed: "when the gate is unreachable, the default is halt."
When does an AdCP agent have to escalate to a human?
An AdCP agent escalates when an action falls outside the authority set in the plan. The documentation separates that authority into two dimensions. The reallocation_threshold is operational: it caps how much budget the agent may move between sellers or channels without asking, and zero means every reallocation needs approval. The human_review_required flag is regulatory: the governance agent sets it when a resolved policy demands human review, as under GDPR Article 22 or EU AI Act Annex III, however generous the threshold.
Plans can also carry delegations limiting which agents may act, with what authority and budget. When review is needed, check_governance goes asynchronous, the caller sees statuses such as submitted and working, and the task resolves to approved or denied once the person acts.
What is a signed approval token in AdCP?
A signed approval token is the governance_context returned with an approved verdict. From AdCP 3.0 the governance agent must sign it as a compact JWS under the AdCP JWS profile. The seller verifies it before committing. According to the documentation, it binds the approval to a specific plan, seller, phase and transaction, so an approval for one seller cannot be reused at another or replayed later.
Regulators or auditors can verify the token "without cooperating with the governance vendor that issued it". Sellers that have not yet built verification must still store and forward the token unchanged.
What does get_plan_audit_logs record?
get_plan_audit_logs returns the governance history for a plan or portfolio: budget authorised, committed and remaining, counts of each verdict, and how many checks needed human review. Each escalation is listed with its check ID, reason, resolution (such as approved_by_human) and timestamp.
Two details matter to a later reviewer. Each check entry records the mode in force (audit, advisory or enforce), so an approval that could have blocked is distinguishable from one logged by an agent that never blocks. Drift metrics, such as escalation rate, are tracked against organisation-set thresholds, so a quiet decline in human review gets noticed.
What is the Embedded Human Judgment principle?
Embedded Human Judgment, or EHJ, is the accountability framework behind AdCP governance. Its five principles hold that humans remain accountable, automation must not mean abdication, optimisation is not intelligence, oversight must be architectural rather than procedural, and efficiency does not override legitimacy. Its plainest line: "Responsibility cannot be delegated to software."
An escalation must show the reviewer the recommended action, a confidence score, the uncertainty and the rule that triggered it. EHJ, the documentation says, is not "a UI approval system bolted on afterward".
What does an AdCP approval flow look like in practice?
A hypothetical UK homeware brand registers a quarterly plan through sync_plans with an illustrative £120,000 budget, the UK as its only market, three approved sellers and a reallocation_threshold of £10,000 in this example.
Midway through the flight, the orchestrator proposes moving a hypothetical £18,000 from display into an existing video buy, and calls check_governance with the update_media_buy payload. In this example the move exceeds the threshold, so the check goes asynchronous and the brand's trading lead sees the proposal and the rule it tripped.
She approves with a condition, capping the move at an illustrative £15,000. The orchestrator receives approved, a signed governance_context and an expiry time, and sends the reduced update before it lapses. The seller verifies the token, runs a modification-phase check and commits only on approval. Budget is committed only when the orchestrator reports the confirmed amount through report_plan_outcome.
When finance later asks who authorised the extra spend, get_plan_audit_logs shows the escalation, reason, resolution and time.
What does AdCP governance not settle?
AdCP governance records whether a buyer's agent had authority to act. It does not, on its own, give buyer and seller one agreed record of the commercial terms. The AdCP documentation states that payments, legal agreements, settlement, disputes, credits and makegoods remain account or platform integrations unless the relevant AdCP contract is explicitly present. See also how the AdCP protocol works for buyers.
That shared record is the gap marketplaces work on. Alkimi runs a neutral marketplace that works within IAB Tech Lab's AAMP framework today and is being built to be AdCP compatible; agreed deals are recorded on a shared DealSheet both parties hold, with humans keeping approval rights at the deal level.
Frequently asked questions
Does every AdCP media buy need human approval?
No. With a governance agent configured, every commitment-bearing action must be checked through check_governance, but only actions beyond the plan's thresholds, or under policies requiring human review, go to a person.
What happens if the AdCP governance agent is unavailable?
The caller must not proceed. The default is to halt, retry with backoff and report the failure upstream.
Is AdCP campaign governance final?
Not yet. Campaign governance is experimental in AdCP 3.x and may change with at least six weeks' notice. The current general release is 3.2.
What is audit mode in AdCP governance?
A governance agent setting in which every check is evaluated but always returns approved, with findings attached. Organisations typically move from audit to advisory to enforce as policies are calibrated.
Who is accountable when an agency agent buys under AdCP governance?
The brand. EHJ states that delegating execution to an agency or agent operator does not transfer governance authority.