Governance protocol by role
Governance in AdCP is a shared control loop. The buyer-side governance agent decides whether a planned or executed action is allowed. The buyer agent obtains and carries the governance context. The seller verifies that context before executing work and reports outcomes back into the audit trail.Roles
| Role | Responsibility |
|---|---|
| Buyer agent | Builds the plan, calls governance, and attaches governance context to seller requests |
| Governance agent | Evaluates intent and execution against plan, policy, budget, and authority |
| Seller agent | Verifies signed governance context before execution and reports confirmed outcomes |
| Human reviewer | Handles exceptions, overrides, and ambiguous policy decisions when required |
Buyer-side flow
- Create or update the campaign plan with
sync_plans. - Call
check_governancefor the intent phase before asking a seller to execute. - Attach the returned governance context to the seller request.
- When execution details come back, call
check_governanceagain for the execution phase if the workflow requires it. - Poll or subscribe to outcomes and preserve the governance audit trail.
Seller-side flow
- Receive a request with governance context.
- Verify the signed governance context before execution.
- Bind the token to the expected plan, caller, seller, phase, and operation.
- Reject missing, expired, revoked, replayed, or mismatched signed context with
PERMISSION_DENIED. - Report confirmed delivery or spend through
report_plan_outcomewhen the seller is responsible for outcome reporting.
GOVERNANCE_DENIED only when the buyer-side governance agent returned an actual denial for the planned or executed action.
check_governance payload discipline
The most common implementation bug is sending a partial check that omits the fields needed for the phase. Intent checks normally need:plan_idcaller- proposed seller or operator identity
- budget and pacing intent
- targeting and policy-relevant constraints
- products or package references when already selected
plan_idcaller- seller identity
- concrete package, creative, targeting, dates, and budget being executed
- delivery or execution metrics when checking a delivery phase
- prior governance context or correlation identifier when the task requires continuity
What to test
- A valid plan passes intent check.
- A seller swap fails unless the plan authorizes that seller.
- A budget increase fails until
sync_plansupdates the plan. - A replayed governance token fails.
- An expired or revoked token fails.
- A delivery report outside the authorized plan fails or produces an audit finding.
Practice prompt
Design a governance test for this case:Pinnacle Media wants to buy a family-safe CTV package for Nova Snacks. The buyer plan caps spend at USD 75,000 and allows only two approved sellers. A seller returns a higher-budget package with a different seller identity.Expected answer:
- Buyer updates or rejects the plan before execution.
- Governance intent check should deny the unapproved seller or over-budget package.
- Seller must not execute on a context bound to the original seller or budget.
- Audit logs should show the denial reason and the attempted execution facts.