キャンペーンガバナンスプロトコル
キャンペーンガバナンスは、バイサイドの広告トランザクションの自動検証を提供します。AI エージェントが自律的にメディアを購入するとき、キャンペーンガバナンスは独立したレビュー層として機能し、すべてのアクションを承認済みプラン、ブランドポリシー、予算制限、コンプライアンス要件に対して検証します。
問題
AI エージェントがブリーフを解釈し、セラーを選び、メディアバイを交渉し、人間が見ていない中でライブにする — これが「ノーアイズ」問題だ: 自律エージェントが、購入が承認されたものと一致するかどうかの独立したチェックなしに実際の財務コミットメントを行います。 既存の AdCP ガバナンスドメインは、広告がどこに配信されるか(プロパティガバナンス)、どのコンテンツが隣接するか(コンテンツスタンダード)、どのクリエイティブが安全か(クリエイティブガバナンス)、ブランドが誰か(ブランドプロトコル)を解決します。しかしどれも何が購入されてなぜかを統治しません。 バイサイドにガバナンス層がないと:- エージェントが承認された予算を超えたり、承認されたパラメーター外に支出を再配分したりする可能性があります
- エージェントがブリーフを誤解する可能性がある — ブリーフが「Mexico」と言っているのに「New Mexico」で購入します
- ターゲティングがブランドポリシーに違反したり差別的なパターンを生み出したりする形でドリフトする可能性があります
- セラーのレスポンスがリクエストされたものと異なっていても、自動検証がない
- コンプライアンスポリシーが断片化されている — すべてのキャンペーンプランに自然言語文字列としてコピー&ペーストされており、標準ライブラリがなく、ポリシーを定義する者とキャンペーンを実行する者の分離もない
業界の先例
キャンペーンガバナンスは、今日のアドテックに手動プロセスとして存在するパターンを形式化する:| 手動プロセス | キャンペーンガバナンスの相当物 |
|---|---|
| エージェンシートレーディングデスクの QA | IO に対する自動検証 |
| DSP のプリビッドルール | 予算権限とターゲティングコンプライアンスチェック |
| 広告主の承認ワークフロー | 高リスクアクションの人間エスカレーション |
| ポストキャンペーン監査 | セラーの検証とデリバリー検証 |
| コンプライアンスレビュー | 管轄ごとの規制チェック |
仕組み
オーケストレーターはsync_plans でキャンペーンプランをプッシュし、セラーに送信するすべてのアクションの前に binding: "proposed" で check_governance を呼び出す。セラーは実行前に binding: "committed" で check_governance を独立して呼び出す。セラーのレスポンスを受け取った後、オーケストレーターは report_plan_outcome を呼び出してループを閉じる。ガバナンスエージェントは試みられたアクションだけでなく、確認された結果から予算を追跡します。
キャンペーンガバナンスには3つの当事者が参加する:
- オーケストレーターはアクションをセラーに送信する前にプランに対して検証する(バイヤーサイドのガバナンスループ)。
- セラーはバイヤーのガバナンスエージェントをプランデリバリーパラメーターで呼び出すことで、独立して購入をチェックする(セラーサイドのガバナンスチェック)。
- ガバナンスエージェントは同じキャンペーンプランに対して、オーケストレーターの意図されたアクションとセラーの計画されたデリバリーの両方を検証します。
職務分離
キャンペーンガバナンスはポリシーを定義する者とキャンペーンを実行する者の間に自動化された分離を強制する:- ポリシーチームはポリシーレジストリから適用可能なコンプライアンスポリシーを選択し、ブランド固有のルールを設定し、ブランドのコンプライアンスプロファイルを維持します。この設定は個々のキャンペーンプランではなく、ブランドレベル(brand.json 内)に存在します。
- 購買チーム(またはエージェンシー)はオーケストレーターを操作し、キャンペーンプランを作成し、メディアバイを実行します。プランはキャンペーンコンテキスト(予算、チャンネル、フライト日程、承認市場)を指定し、必要に応じて追加のレジストリポリシーやキャンペーン固有のルールを参照できます。
- ガバナンスエージェントはブランドのコンプライアンス設定から適用可能なポリシーを解決し、それらに対してすべてのオーケストレーターアクションを検証します。
policy_ids と custom_policies で追加ポリシーを重ねられるが、ブランドのベースラインは常に適用されます。規制が変更されると、ポリシーチームはブランド設定を一度更新し、すべてのアクティブなキャンペーンが自動的に変更を取り込む。
ポリシー解決
ガバナンスエージェントはプランのブランド参照を通じて適用可能なポリシーを解決する:- プランには
brand.domain(必須)とオプションでcountries/regions(このキャンペーンの承認市場)が含まれます - ガバナンスエージェントはブランドプロトコルでブランドを解決し、コンプライアンス設定を取得します
- ブランド設定は ID でポリシーレジストリから標準化されたポリシーを参照し、ブランド固有のカスタムポリシーを含みます
- ガバナンスエージェントはこれらのポリシーとプランの承認市場を交差させる — それらの市場に適用可能なポリシーのみがこのプランでアクティブになります
- 解決されたポリシーセットが
check_governanceで評価されるもの - 承認市場外をターゲットにするメディアバイは、ポリシーコンプライアンスに関わらず拒否されます
ガバナンスループ
すべてのセラーインタラクションは前後パターンに従う:- 前: オーケストレーターは送信する予定のツールとペイロードで
binding: "proposed"でcheck_governanceを呼び出す。ガバナンスエージェントはステータスを返します。 - 実行: 承認された場合、オーケストレーターは
plan_idとgovernance_contextを含めてセラーにアクションを送信します。 - チェック: アカウントに
governance_agentsがある場合、セラーはbinding: "committed"とそのplanned_delivery(実際に実行するもの)でcheck_governanceを呼び出す。ガバナンスエージェントは承認または拒否します。 - 後: オーケストレーターはセラーのレスポンスで
report_plan_outcomeを呼び出す。ガバナンスエージェントは状態を更新し、不一致にフラグを立てる。
get_products)、購入(create_media_buy、update_media_buy)、定期的なデリバリーレポーティングに適用されます。
計画されたデリバリー
セラーがメディアバイを確認するとき、実際に配信するものを説明するplanned_delivery オブジェクトを返す — 使用するジオターゲティング、チャンネル、フライト日程、フリークエンシーキャップ、予算。これはバイヤーがリクエストしたものと異なる場合がある(例: セラーが追加のフリークエンシーキャップを適用したり、利用可能なインベントリに合わせてジオを調整したりする場合)。
planned_delivery は2つの目的を果たす:
- ガバナンスチェック: セラーはバイヤーのガバナンスエージェントに
planned_deliveryを送信し、キャンペーンプランと一致することを確認します。これにより、セラーがバイヤーが承認しなかったものを配信することを防ぐ。 - 不一致の検出: バイヤーは
planned_deliveryを元のリクエストと比較し、report_plan_outcomeで差異にフラグを立てることができ、デリバリーが始まる前に設定のドリフトをキャッチします。
セラーサイドのガバナンスチェック
バイヤーサイドのガバナンスには信頼の制限がある: オーケストレーターが自身のコンプライアンスを証明します。LLM エージェントはガバナンスの承認を幻覚したり、検証をスキップしたり、検証されたものを誤って表現したりする可能性があります。お金を使っているエージェントが、そのお金を使うことが OK かどうかをチェックするエージェントでもあることは信頼できません。 セラーサイドのガバナンスチェックがこれを解決します。バイヤーはアカウントを同期するときにgovernance_agents(認証情報付きの URL)を登録します。セラーが create_media_buy を受け取ると、配信する予定のものでガバナンスエージェントを呼び出す。ガバナンスエージェントはプランに対してチェックし、approved、denied、または conditions を返します。
これは誤解もキャッチします。ブリーフが「Mexico」と言っていてセラーが「New Mexico」と解釈した場合、ガバナンスエージェントはプランに対するジオの不一致を見て、ライブになる前にバイを拒否します。
Webhook はメディアバイのライフサイクル全体をカバーする:
- 購入:
create_media_buyを確認する前に POST — このバイは承認されているか? - 変更:
update_media_buyを確認する前に POST — この変更は OK か? - デリバリー: デリバリー中に定期的に POST — デリバリーはまだ軌道に乗っているか?
採用パス
キャンペーンガバナンスはバイヤーのポリシーチームがガバナンスエージェントで設定する3つの動作モードをサポートする:| モード | 動作 | 使用する場合 |
|---|---|---|
audit | すべてのチェックをログに記録し、絶対にブロックしません。添付された結果とともに常に approved を返します。 | 最初のロールアウト。執行を有効にする前にキャリブレーションの信頼を築く。 |
advisory | 実際のステータス(denied、conditions、escalated)を返すが、セラーはすべてのレスポンスを非ブロッキングとして扱います。 | 事後の人間レビュー。ガバナンスエージェントが意見を表明し、人間がそれに基づいて行動します。 |
enforce | denied または escalated でブロックします。進む前に解決を要求します。 | 本番ガバナンス。デフォルト。 |
audit モードで開始してガバナンスがフラグを立てるものを確認します。advisory に移行してリアルキャンペーンで結果をテストします。信頼が確立されたら enforce に切り替える。これは直接購入する単一ブランドと、35のブランドと複数のエージェンシーパートナーを持つホールディングカンパニーの両方で同じように機能します。
小規模ブランドの場合
直接購入するブランド(エージェンシーなし、ポリシーチームなし)でも以下が得られます:- キャンペーンプランからの自動予算制限とジオ執行
- ポリシーレジストリからのコンプライアンスカバレッジ — レジストリポリシーはコミュニティが管理しており、ブランドごとの設定は不要
- ガバナンスチェックを介したセラーサイドの検証
get_plan_audit_logsによる完全な監査証跡
authority_level: "agent_limited" と reallocation_threshold を設定します。ガバナンスエージェントが残りを処理します。
マルチエージェンシーとホールディングカンパニーの設定
プランは、プランに対してどのエージェントが実行できるかをスコープする委任をサポートする — 権限レベル、予算制限、市場、有効期限で。ブランドはヨーロッパ市場向けに1つのエージェンシーにfull 権限を、北米向けに別のエージェンシーに execute_only 権限を委任できます。
複数ブランドを管理するホールディングカンパニーの場合、ポートフォリオガバナンスはクロスブランドの制約を定義します: 総ポートフォリオ支出上限、共有ポリシー執行、個々のブランドプランが上書きできない企業レベルの除外。
信頼の発見
ガバナンスの結果には「これは確実に GDPR に違反する」(0.95)と「これはオーディエンスセグメントの解決方法によっては違反する可能性がある」(0.6)を区別するオプションの信頼スコア(0〜1)が含まれます。これによりブランドが適切に対応できる — 高信頼の結果は自動解決でき、中信頼の結果は人間レビューのためにフラグが立てられます。ドリフト検出
監査ログにはトレンド指標を持つ集計メトリクス(エスカレーション率、自動承認率、人間オーバーライド率)が含まれます。エスカレーション率の低下は、システムが適切にキャリブレートされているか、監督が侵食されていることを意味するかもしれない。トレンドを表面化させることで、組織がその判断を下せる。ライフサイクルフェーズ
キャンペーンガバナンスは3つのフェーズにわたってステートフルだ:| フェーズ | タイミング | 検証される内容 |
|---|---|---|
| 探索 | get_products 前 | 検索意図がプランと一致、承認されたセラーからのプロダクト、価格が適切 |
| 購入 | create_media_buy / update_media_buy 前 | 予算が制限内、ターゲティングが準拠、フライト日程が一致、クリエイティブアサインメントが適切 |
| デリバリー | 定期レポーティング | ペーシングがパラメーター内、支出率が一貫、デリバリーメトリクスが軌道に乗っている |
検証カテゴリ
| カテゴリ | チェック内容 |
|---|---|
budget_authority | 承認された制限内の支出、セラーごとの集中度、再配分の規模 |
strategic_alignment | チャンネルミックス、オーディエンスの一致、パブリッシャー品質ティア、ブリーフの一貫性 |
bias_fairness | 保護カテゴリのターゲティング、オーディエンス構成、不均衡な影響。プランの policy_categories で定義された restricted_attributes に対してオーディエンスセレクターを照合する |
regulatory_compliance | ブランドのコンプライアンス設定とプランの承認国/地域から解決された管轄固有の規制 |
seller_verification | 設定の正確さ、未開示の変更、デリバリーの妥当性 |
brand_policy | ブランド設定とポリシーレジストリから解決されたブランドレベルのコンプライアンスポリシー — 競合他社の分離、カテゴリ隣接、カスタムブランドルール |
get_adcp_capabilities でどのカテゴリを評価するかを宣言します。
ステータス
すべてのガバナンスチェックは構造化されたステータスを返します:| ステータス | 意味 | 呼び出し元のアクション |
|---|---|---|
approved | すべてのチェックに合格 | 進める |
denied | ハードポリシーに違反 | 進まない; ユーザーに報告する |
conditions | 特定の変更で合格できる | 条件を適用し、check_governance を再呼び出しする |
escalated | 人間のレビューが必要 | 一時停止して人間の承認者に通知する |
info— 監査のためにログに記録。承認レスポンスの助言的な結果に使用。warning— 人間がレビューすべき。アクションが許可されているが注意が必要な場合の承認レスポンスに使用。critical— アクションがブロックされます。人間の承認が必要な場合のエスカレートレスポンスに使用。
escalated の場合、呼び出し元は深刻度に関わらず進んではなりません。非ブロッキングの懸念は findings が付いた approved ステータスを使用します。
人間のエスカレーションは既存の AdCP HITL メカニズムと統合します。エスカレートされたアクションはプロトコルエンベロープで input-required ステータスを返し、人間が標準の context_id 継続で解決するまでオーケストレーターは一時停止します。
他のガバナンスドメインとの関係
キャンペーンガバナンスは既存のドメインと構成する — それらを重複させない:| ドメイン | 関係 |
|---|---|
| プロパティガバナンス | キャンペーンガバナンスはオーケストレーターがプロパティリストを正しく使用しているかを検証する(例: バイパスしていないか)。プロパティガバナンスがリストを提供します。 |
| コンテンツスタンダード | キャンペーンガバナンスはコンテンツスタンダード参照がメディアバイに含まれていることを検証します。コンテンツスタンダードが実際のコンテンツ評価を処理します。 |
| クリエイティブガバナンス | キャンペーンガバナンスはクリエイティブアサインメントがフォーマット要件と一致することを検証します。クリエイティブガバナンスがクリエイティブ自体をスキャンします。 |
| ブランドプロトコル | キャンペーンガバナンスはブランドプロトコルを通じてブランドのコンプライアンス設定を解決します。ブランドのポリシーチームが brand.json にコンプライアンスポリシーを設定し、ガバナンスエージェントが自動的に適用します。 |
次のステップ
安全モデル
三者信頼モデル、職務分離、構造的制御がエージェンティックな広告を安全にする仕組み。
仕様
データモデル、検証ロジック、ケイパビリティ宣言、オーケストレーター統合パターン。
タスク
タスクリファレンス:
sync_plans、check_governance、report_plan_outcome、get_plan_audit_logs。