Skip to main content
ロボットアームが「$50,000」と書かれた赤く光る BUY ボタンに手を伸ばしています。人間は誰もおらず、薄暗い部屋では警告ランプが点滅し、確認されていない書類が積み上がっている AI エージェントが広告に 50,000 ドルを使おうとしています。人間は誰もその計画を確認していません。予算をチェックするシステムもない。インベントリをフィルタリングするポリシーもない。エージェントには認証情報、ブリーフ、そして BUY ボタンがあります。 Jordan は Pinnacle Agency のキャンペーンオペレーションマネージャーです。これは彼女にとっての悪夢です。テクノロジーが失敗したからではなく、誰も責任を負っていないからです。責任をソフトウェアに委任することはできません。 彼女はエージェントを遅らせたいわけではありません。クロスプラットフォームキャンペーンの管理において、エージェントはチームより速く、より徹底しています。しかし Acme Outdoor のためにエージェントがメディアを購入するとき、それが予算内に収まり、承認済みのパブリッシャーで掲載され、カナダのプライバシー規制を満たしていることを確認する必要があります。何かが権限を超えた場合、事後ではなく、お金が動く前に人間に確認が取られることを確認したい。 AdCP のガバナンスシステムはひとつの原則に基づいている: 人間の判断はシステム設計に組み込まれなければなりません、後から付け足すのではなく。監督はアーキテクチャ上のものであり、システムはそれなしに動作できません。 このウォークスルーでは、Jordan が Sam の 50,000 ドルのキャンペーンに対してガバナンスを設定し、それが機能する様子を追う。

三者モデル

人間が頂点でポリシーを設定し、その下に三つのエージェント(オーケストレーターが提案、ガバナンスが検証、セラーが履行)が配置された三角図。職務分離を示す線で結ばれている AdCP のガバナンスが機能するのは、人間が境界を定義し、単一の当事者がワークフロー全体を制御できないからだ:
当事者役割できないこと
オーケストレーターキャンペーン計画を提案し、購買を実行する自らの支出限度を設定したり、自らの計画を承認したりすること
ガバナンスエージェントポリシーに照らして計画を検証し、予算を追跡する購買を実行したり、キャンペーンを変更したりすること
セラーメディア購買を履行し、配信をレポートするガバナンスの決定を覆したり、予算を変更したりすること
お金を使うエージェントは、ルールを設定するエージェントではありません。これは三者が互いをチェックするというものではなく、人間が定義したポリシーがすべての取引を管理し、どのエージェントも人間が与えた権限の外で行動できない構造です。

ステップ 1: 計画を登録します

購買ロボットが光るキャンペーン計画書を作成し、盾のエンブレムが付いたセキュリティデスクの後ろに座るガバナンスロボットに手渡します。ガバナンスロボットは計画書を丁寧に確認している Sam のオーケストレーターが購買を実行する前に、Jordan のガバナンス設定はキャンペーン計画を登録することを要求する:
const plan = await governance.syncPlans({
  plans: [{
    plan_id: "acme-q2-trail-pro",
    brand: { domain: "acmeoutdoor.com" },
    objectives: "Q2 Trail Pro 3000 launch across sports and outdoor lifestyle publishers",
    budget: { total: 50000, currency: "USD", authority_level: "agent_limited" },
    flight: { start: "2026-04-01T00:00:00Z", end: "2026-06-30T23:59:59Z" },
    countries: ["US", "CA"]
  }]
});
ガバナンスエージェントはこの計画を把握しました。適用されるポリシー(ブランドセーフティルール、予算制限、米国とカナダの規制要件、brand.json に記載された Acme Outdoor のブランド固有の制限)を解決します。 お金はまだ動いていません。計画は登録されたが、実行はされていません。 authority_level: "agent_limited" に注目してほしい。これは Jordan が選択した設定です。オーケストレーターはしきい値までの購買を実行できるが、それより大きいものは人間の承認が必要になることを意味します。この境界は人間の決定であり、技術的なデフォルトではありません。エージェントはそれを変更できません。
ガバナンスエージェントは複数のソースからポリシーを取得します:
  • 予算制限: エージェントの権限レベル(agent_limited はトランザクションごとに上限あり)
  • ブランドセーフティ: Acme Outdoor の brand.json が承認済みおよび除外されたパブリッシャーカテゴリを指定
  • 規制: 米国とカナダの法域により COPPA、PIPEDA、および州のプライバシー規則が適用
  • 業界: AgenticAdvertising.org のポリシーレジストリが標準化された規制を提供
Jordan はこれらのポリシーを一度設定しました。これらはこのブランドのすべてのキャンペーンに自動的に適用されます。

ステップ 2: 支出前にチェックします

ガバナンスロボットが三つの検査パネルを並べて確認しています。予算(ほぼ上限に達した棒グラフ)、ブランドセーフティ(緑のチェックマーク)、コンプライアンス(緑のチェックマーク)。予算パネルが警告として琥珀色に輝いている オーケストレーターが購買の準備ができたとき、実行前に check_governance を呼び出す:
const check = await governance.checkGovernance({
  plan_id: "acme-q2-trail-pro",
  binding: "proposed",
  caller: "https://orchestrator.pinnacle-agency.example",
  tool: "create_media_buy",
  phase: "purchase",
  payload: {
    seller: "https://streamhaus.example",
    amount: 25000,
    currency: "USD"
  }
});
ガバナンスエージェントは提案されたアクションを適用可能なすべてのポリシーに照らして評価する:
チェックステータス詳細
予算が計画限度内か合格利用可能な $50K のうち $25K
予算がエージェント権限内か警告エージェントはトランザクションあたり最大 $20K まで承認済み
ブランドセーフティ合格StreamHaus は承認リスト上にある
規制コンプライアンス合格ターゲティングは米国・カナダの要件を満たす
クリエイティブの出所合格すべてのクリエイティブに必要なメタデータが含まれている
レスポンスは合否ではなく、重大度レベル(mustshouldmay)と信頼スコアを持つ構造化された結果を返します。オーケストレーターは何が合格し、何が失敗し、その理由を正確に把握できます。

ステップ 3: エスカレーション

ガバナンスロボットが琥珀色の旗を掲げ、キャンペーン計画を光るパスに沿って人間のレビュアーへ転送します。黒髪の女性がガラスのデスクに座り、フラグが立てられた書類を思慮深く確認している 25,000 ドルのトランザクションはエージェントの 20,000 ドルの権限制限を超えています。ガバナンスエージェントは must の重大度でフラグを立てる。オーケストレーターは解決なしに進めることができません。 これは失敗ではなく、設計通りにシステムが機能しているということです。エージェントはチェックを覚えておく必要はない。アーキテクチャがそれを必要とするのです。監督は手続き的なものではなく、構造的なものです。 二つの選択肢がある:
  1. トランザクションを削減して 20,000 ドル以下にします
  2. 人間にエスカレーションして承認を得ます
オーケストレーターはエスカレーションを行います。Jordan はフラグが立てられた計画を完全なコンテキスト(エージェントが何を購入したいか、なぜフラグが立てられたか、どのポリシーがそれを引き起こしたか)とともに受け取ります。
{
  "check_id": "chk-q2-ctv-001",
  "status": "escalated",
  "binding": "proposed",
  "plan_id": "acme-q2-trail-pro",
  "explanation": "Budget authority exceeded. Human approval required.",
  "findings": [
    {
      "category_id": "budget",
      "policy_id": "budget-authority-limit",
      "severity": "must",
      "explanation": "Transaction amount $25,000 exceeds agent authority limit of $20,000.",
      "confidence": 1.0
    }
  ],
  "escalation": {
    "reason": "Transaction exceeds agent_limited authority",
    "severity": "must",
    "requires_human": true
  }
}

ステップ 4: 人間による承認

Jordan がキャンペーン計画に緑の承認印を押し、「週次レポート必須」と書かれた黄色の条件タグを添付しています。承認された計画はガバナンスロボットを通って開いた台帳へと流れている Jordan は計画を確認し、承認します。ただし条件付きで: エージェントはフライト終了時ではなく、毎週配信をレポートしなければなりません。 彼女は単に承認を押しているわけではありません。コンテキストを確認し、リスクを評価し、エージェントが要求しなかった制約を追加することで判断を行使しました。これは人間が責任の主体であり続けることです。エージェントが提案し、人間が決定しました。 この承認はガバナンスシステムに記録されます。ガバナンスエージェントは計画の委任を更新し、オーケストレーターはこの特定のトランザクションに対して一時的な権限を持つようになります。ただし追加されたレポート制約付きで。ガバナンスエージェントは誰が、いつ、どのような条件で承認したかを記録します。

ステップ 5: 監視下でキャンペーンが稼働します

広告が看板・スマートフォン画面・テレビに表示されている都市景観。その上では、ガバナンスロボットが監視塔からティールのビームで場面をスキャンしながら、メトリクスが上方へストリームしている キャンペーンが稼働中です。ガバナンスは購買時点で終わらない。承認済みの計画に対して配信を監視し続ける:
  • 予算追跡: report_plan_outcome のデータが入ってくると、ガバナンスエージェントは実際の支出をコミット済み予算と照合して追跡します
  • ドリフト検出: 配信が計画から逸れた場合(間違ったパブリッシャー、予期しないクリエイティブ、予算超過)、ガバナンスはフラグを立てる
  • ポリシー更新: フライト途中で新しい規制が発効した場合、ガバナンスはそれをアクティブな計画に適用します
まず、オーケストレーターがセラーが購買を受け入れ、予算をコミットしたことをレポートする:
await governance.reportPlanOutcome({
  plan_id: "acme-q2-trail-pro",
  governance_context: check.governance_context,
  check_id: "chk-q2-ctv-001",
  outcome: "completed",
  seller_response: {
    media_buy_id: "mb-streamhaus-001",
    committed_budget: 25000
  }
});
次に、配信データが入ってくると、オーケストレーターはガバナンスがコミット済み予算に対して実際の支出を追跡できるよう配信結果をレポートする:
await governance.reportPlanOutcome({
  plan_id: "acme-q2-trail-pro",
  governance_context: check.governance_context,
  outcome: "delivery",
  delivery: {
    media_buy_id: "mb-streamhaus-001",
    reporting_period: {
      start: "2026-04-01T00:00:00Z",
      end: "2026-06-30T23:59:59Z"
    },
    impressions: 887000,
    spend: 24850
  }
});
25,000 ドルの購買が予算をコミットし、実際の配信は 24,850 ドルになりました。ガバナンスエージェントは台帳を更新し、50,000 ドルの計画予算のうち残り 25,150 ドルが次の購買に利用可能になります。

ステップ 6: 監査証跡

決定ノード(計画作成、チェックフラグ、人間確認、承認、起動、配信)を示す水平なタイムラインリボン。ガバナンスロボットが三人の人間チームに詳細なログブックを提示している 六ヶ月後、Acme Outdoor の調達チームが尋ねる: 「あの 25,000 ドルの CTV 購買を誰が承認したのか?」Jordan は完全な意思決定履歴を取得します:
const audit = await governance.getPlanAuditLogs({
  plan_ids: ["acme-q2-trail-pro"],
  include_entries: true
});
すべてのイベントが順序通りに:
  1. 計画登録 — オーケストレーターが 50,000 ドルの予算で計画を同期
  2. ガバナンスチェック — 25,000 ドルの購買がエージェント権限超過でフラグ
  3. エスカレーション — Jordan が確認し、週次レポート条件付きで承認
  4. 購買実行 — StreamHaus のメディア購買を作成
  5. 配信レポート — 実際の支出 24,850 ドル、88.7 万インプレッション
  6. 予算更新 — 残り 25,150 ドル
すべての決定、すべての承認、すべての結果が構造化され、タイムスタンプが付き、帰属可能です。説明責任には読み取り可能性が必要です。これはサーバーに埋もれたログファイルではなく、将来のどの時点でも「誰がこれを決定し、なぜか?」という問いに答えるために設計された一級の監査記録です。

クロール、ウォーク、ラン

Jordan は完全な強制から始めなかった。監査モードから始めた:
モード動作使用タイミング
監査すべてをログに記録し、何もブロックしない初回デプロイ — ワークフローを妨げずにガバナンスがフラグを立てるものを把握する
アドバイザリ違反を警告するが、ブロックしない信頼を構築する — 強制前に警告をレビューしてポリシーを調整する
強制違反をブロックし、解決を要求する本番環境 — ガバナンスに実効性を持たせる
彼女は二週間監査モードで運用しました。ログをレビューし、誤検知を減らすためにポリシーを調整しました。シグナルを信頼したときにアドバイザリに移行しました。システムを信頼したときに強制に移行しました。
三ステップの図。提案(点線のアウトライン、仮説的チェック)、実行(実線のタグ、予算予約)、コミット済み(台帳が実際の支出を記録)を示している予算追跡には三つのフェーズがある:
  1. 提案済み: check_governance が金額が計画内に収まるかどうかを評価します。お金は予約されない — これは仮説的なチェックです。
  2. 実行: セラーがキャンペーンを実行します。ガバナンスエージェントは承認済み金額を予約済みとして追跡するが、実際の支出は異なる場合があります。
  3. コミット済み: report_plan_outcome が実際の金額を記録します。ガバナンスエージェントは実際の数値で台帳を更新します。
25,000 ドルの購買が 24,850 ドルで配信される場合があります。ガバナンスはその差を追跡し、残りの 150 ドルを解放します。
組み込まれた人間の判断このウォークスルーのすべてのステップは Embedded Human Judgment マニフェスト の原則を反映しています。AI エージェントが自律的に動作するとき、人間が説明責任の主体であり続けることを保証するフレームワークです。五つの原則を読む →

プロトコルドメイン

ガバナンスプロトコルは五つのドメインをカバーする:

ポリシーレジストリ

すべてのガバナンスドメインが利用する、標準化された広告規制と業界標準のコミュニティ管理ライブラリ。

プロパティガバナンス

プロパティリスト、コンプライアンスフィルタリング、adagents.json を通じたパブリッシャー認可で広告掲載先を管理。

コンテンツ標準

キャリブレーションベースのコンテンツ評価と検証を通じた、プライバシーを保護するブランド適合性。

クリエイティブガバナンス

get_creative_features を通じた専門エージェントによるセキュリティスキャン、クリエイティブ品質、コンテンツ分類。

キャンペーンガバナンス

承認済みプラン、予算、ブランドコンプライアンス設定に対するバイサイドトランザクションの自動検証。

さらに深く学ぶ