check_governance
キャンペーンアクションの汎用ガバナンスチェック。オーケストレーター(バイヤーサイド)とセラーの両方がこのタスクを呼び出す —binding フィールドがコミットメントレベルを識別する:
| Binding | 呼び出し元 | 目的 | 主要フィールド |
|---|---|---|---|
proposed | オーケストレーター | セラーに送信する前のアドバイザリーチェック。予算はコミットされない。 | tool、payload |
committed | セラー | 実行前のバインディングチェック。計画された配信をプランに対して検証します。予算は後で report_plan_outcome 経由でコミットされます。 | media_buy_id、phase、planned_delivery |
plan_id で相関させる。その後のライフサイクルチェックでは、呼び出し元は継続性のために前回のレスポンスから governance_context を含めます。
バインディングレベル
Proposed(オーケストレーター)
オーケストレーターはツールコールをセラーに送信する前にbinding: "proposed" で呼び出す。これはアドバイザリーチェックだ — 予算はコミットされない。ガバナンスエージェントは意図された tool と payload をキャンペーンプランに対して評価します。
- オーケストレーターがセラーツールを呼び出すことを決定する(例:
create_media_buy) - オーケストレーターがツール名と完全なペイロードで
check_governanceを呼び出す approvedなら、オーケストレーターはツールコールをセラーに送信しますdeniedなら、オーケストレーターはツールコールを送信しませんconditionsなら、オーケストレーターはペイロードを調整してcheck_governanceを再呼び出ししますescalatedなら、オーケストレーターは人間のレビューを待ちながら停止します
Committed(セラー)
セラーはgovernance_agents を持つアカウント(sync_accounts 中に設定)のリクエストを処理する際に binding: "committed" で呼び出す。これはバインディングチェックだ — 承認されると予算がコミットされます。セラーはエージェント設定からの認証クレデンシャルを提示します。
コミット済みチェックは3つのフェーズを通じてメディアバイのライフサイクル全体をカバーする:
| フェーズ | タイミング | チェック内容 |
|---|---|---|
purchase | create_media_buy を確認する前 | 予算、ジオ、チャンネル、フライト日程、ポリシー |
modification | update_media_buy を確認する前 | 変更の大きさ、再配分、新しいパラメーター |
delivery | 配信中に定期的 | ペーシング、消化率、ジオドリフト、チャンネル分配 |
- レベル1: 購入のみ —
create_media_buyごとに1回の呼び出し。最小限の実行可能な統合。 - レベル2: + 変更 —
update_media_buyごとに1回の呼び出し。 - レベル3: + 配信レポート — アクティブな配信中に定期的な呼び出し。
ステータス値
| ステータス | 意味 | 呼び出し元のアクション |
|---|---|---|
approved | 計画通りに進める。 | expires_at 前に行動するか、再呼び出しします。 |
denied | 進めない。 | 上流の呼び出し元にエラーを返します。 |
conditions | 呼び出し元が調整を受け入れた場合に承認。 | 条件を適用し、調整されたパラメーターで check_governance を再呼び出しします。 |
escalated | 人間のレビューを待ちながら停止。 | 人間の解決を待つ。 |
期限切れ
expires_at はステータスが approved または conditions の場合に存在します。期限切れの承認は承認ではない — 呼び出し元は進む前に check_governance を再呼び出しする必要があります。
条件
ステータスがconditions の場合、呼び出し元は進む前に調整されたパラメーターで check_governance を必ず再呼び出しする必要があります。required_value を持つ条件はマシンアクション可能だ — 呼び出し元はプログラム的に値を適用できます。required_value を持たない条件はアドバイザリーだ — 呼び出し元は reason を解釈して適切に調整すべきです。
ガバナンスエージェントは同じアクションに対して3回の再呼び出しが失敗した後は conditions ではなく denied を返すべきだ(SHOULD)。これにより、セラーがキャンペーンプランの詳細を把握できないセラーサイドチェックにおいて、無限のネゴシエーションループを防ぐ。
エスカレーション
ステータスがescalated の場合、アクションは停止されます。escalation オブジェクトは理由、深刻度、人間の承認が必要かどうかを提供します。呼び出し元はエスカレーションが解決されるまで進んではなりません。
committed チェック(セラーサイド)の場合、escalated は運用上 denied と同等だ — セラーはバイヤーサイドの人間のレビューを待ちながらリクエストを無期限に保留できません。セラーは escalated を denied として扱い、オーケストレーターにエラーを返し、オーケストレーターがヒューマンインザループのフローを処理するようにすべきだ(SHOULD)。エスカレーションが解決された後、オーケストレーターはメディアバイを再開始し、セラーは新しいリクエストを受け取ります。
結果とのリンク
レスポンスにはcheck_id が含まれます。report_plan_outcome でこれを使って、結果を承認したガバナンスチェックにリンクします。
ガバナンスエージェントが利用不可の場合
ガバナンスエージェントが設定されており、呼び出し元がそれに到達できない場合(タイムアウト、ネットワークエラー)、呼び出し元は進んではならない(MUST NOT)。ガバナンスはゲートだ — ゲートに到達できない場合、デフォルトは停止です。呼び出し元はバックオフ付きでリトライし、上流に失敗を報告すべきだ(SHOULD)。配信ケイデンス
レスポンスにnext_check が存在することは、ガバナンスエージェントが継続的な配信レポートを期待しているシグナルです。セラーは next_check 時刻までに呼び出すべきだ(SHOULD)。ガバナンスエージェントは締め切りを守れなかった場合を次の配信チェックでの検出事項として扱うことがある(MAY)。
リクエスト
Proposed(オーケストレーターがセラーに送信する前にチェック)
check_governance 呼び出しで、ガバナンスエージェントは payload から必要なものを抽出します。レスポンスには不透明な governance_context 文字列が含まれ、呼び出し元はそれをプロトコルエンベロープに添付してこのメディアバイの後続のガバナンス呼び出しすべてに含めます。
Committed — 購入
Committed — 変更
Committed — 配信
レスポンス
approved(proposed)
expires_at 前にセラーへの create_media_buy 送信に進む。
approved(committed 購入 + 配信オプトイン)
next_check の存在はガバナンスエージェントがその時点から配信レポートを期待しているシグナルです。
approved(committed 配信)
next_check で次のガバナンスチェックをスケジュールします。
denied(proposed)
denied(committed 配信 — ジオドリフト)
conditions(committed 購入)
check_governance を再呼び出しする必要がある(MUST)。
conditions(committed 配信 — オーバーペーシング)
check_governance を再呼び出しする必要がある(MUST)。next_check はガバナンスエージェントが修正を確認できるよう、通常よりも早く設定されています。
escalated
フィールド
リクエスト
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
plan_id | string | Yes | キャンペーンガバナンスプラン識別子。 |
binding | enum | Yes | proposed(アドバイザリー、予算コミットなし)または committed(バインディング、承認されると予算コミット)。 |
caller | string (URI) | Yes | リクエストを行うエージェントの URL(proposed の場合はオーケストレーター、committed の場合はセラー)。 |
tool | string | Proposed | チェックされる AdCP ツール。proposed チェックに必須。 |
payload | object | Proposed | セラーに送信されるそのままのツール引数。proposed チェックに必須。 |
governance_context | string | No | 以前の check_governance レスポンスからの不透明なガバナンスコンテキスト。ガバナンスエージェントが継続性を維持できるよう、このメディアバイの後続のライフサイクルチェックに含めます。 |
media_buy_id | string | Committed | セラーのメディアバイ識別子。committed チェックに必須。 |
phase | enum | Committed | purchase、modification、または delivery。デフォルトは purchase。committed チェックに必須。 |
planned_delivery | object | Committed | 実際に配信されるもの。committed チェックに必須。計画された配信を参照。 |
delivery_metrics | object | Delivery | 実際の配信パフォーマンスデータ。phase が delivery の場合に必須。 |
delivery_metrics.audience_distribution | object | No | ベースラインに対するオーディエンスの人口統計構成。バイアス/公平性ドリフト検出に使用します。 |
delivery_metrics.audience_distribution.baseline | enum | Yes | 参照母集団: census(国内人口)、platform(プラットフォームのユーザーベース)、または custom。 |
delivery_metrics.audience_distribution.baseline_description | string | No | baseline が custom の場合のベースラインの説明(例: “US adults 18+ with broadband access”)。 |
delivery_metrics.audience_distribution.indices | object | Yes | 現在のレポート期間のインデックス値。キー形式: dimension:value(例: age:25-34、gender:female)。1.0 はベースラインとのパリティを意味する; 1.0 以上はオーバーインデックス; 1.0 以下はアンダーインデックス。 |
delivery_metrics.audience_distribution.cumulative_indices | object | No | すべてのレポート期間にわたるインデックス値。indices と同じ形式。ガバナンスエージェントが一期間のノイズとトレンドを区別するのに役立つ。 |
modification_summary | string | No | 変更内容の人間が読めるサマリー。modification フェーズに対して存在すべきだ(SHOULD)。 |
配信メトリクス
| フィールド | 型 | 説明 |
|---|---|---|
reporting_period | object | start と end タイムスタンプ(ISO 8601)を含むレポートウィンドウ。必須。 |
spend | number | レポート期間中の消化額。 |
cumulative_spend | number | メディアバイ開始以来の総消化額。 |
impressions | integer | レポート期間中のインプレッション数。 |
cumulative_impressions | integer | メディアバイ開始以来の総インプレッション数。 |
geo_distribution | object | 実際の地理的分布。キーは ISO 3166-1 alpha-2 コード、値はパーセンテージ。 |
channel_distribution | object | 実際のチャンネル分布。キーはチャンネル enum の値、値はパーセンテージ。 |
pacing | enum | ahead、on_track、または behind。 |
audience_distribution | object | ベースラインに対するオーディエンス構成。baseline(enum)、オプションの baseline_description(string、カスタムベースライン用)、indices(現在の期間)、オプションの cumulative_indices(全期間)を含みます。キーは dimension:value 文字列、値はインデックス数(1.0 はパリティ)。 |
レスポンス
| フィールド | 型 | 説明 |
|---|---|---|
check_id | string | このガバナンスチェックの一意識別子。結果をリンクするために report_plan_outcome で使用します。 |
status | enum | approved、denied、conditions、または escalated。 |
binding | enum | リクエストからエコーされます。ガバナンスエージェントがコミットメントレベルを理解したことを確認します。 |
plan_id | string | リクエストからエコーされます。 |
explanation | string | 決定の人間が読めるの説明。 |
findings | array | カテゴリごとに検出された問題。ステータスが denied、conditions、または escalated の場合に存在します。approved に対してアドバイザリーな検出事項として存在することもあります。各検出事項には category_id、severity、explanation、オプションで policy_id、details、confidence(0-1)、uncertainty_reason があります。 |
conditions | array | ステータスが conditions の場合に存在します。再呼び出し前に呼び出し元が行う必要がある調整。 |
mode | enum | このチェックが評価されたガバナンスモード(audit、advisory、または enforce)。監査証跡がアドバイザリーな拒否と強制された拒否を区別できるよう存在します。 |
categories_evaluated | string[] | このチェック中に評価されたガバナンスカテゴリ(例: budget_authority、geo_compliance、channel_compliance)。どの検証が実行されたかを確認するのに役立つ。 |
policies_evaluated | string[] | このチェック中に評価されたレジストリポリシー ID。 |
escalation | object | ステータスが escalated の場合に存在します。reason、severity、requires_human、オプションで approval_tier(解決に必要な組織の役割、例: "manager"、"director"、"legal")を含みます。 |
expires_at | string | ステータスが approved または conditions の場合に存在します。呼び出し元はこの時刻前に行動するか再呼び出しする必要があります。期限切れの承認は承認ではありません。 |
next_check | string | セラーが配信メトリクスで check_governance を次に呼び出すべきタイミング。ガバナンスエージェントが継続的な配信レポートを期待する場合に存在します。 |
governance_context | string | このメディアバイの不透明なガバナンスコンテキスト。ステータスが approved または conditions の場合に存在します。プロトコルエンベロープに添付し、後続のすべてのガバナンス呼び出しに含めます。この値を解釈するのは発行したガバナンスエージェントのみです。 |
エラーコード
| コード | 回復 | 説明 |
|---|---|---|
PLAN_NOT_FOUND | correctable | この ID のプランが存在しません。バイヤーがプランをまだ同期していない可能性があります。 |
CAMPAIGN_SUSPENDED | correctable | キャンペーンガバナンスが人間のレビューを待ちながら停止されています。 |
SELLER_NOT_RECOGNIZED | correctable | 呼び出し元 URL がプランの approved_sellers リストに含まれていません。 |
関連タスク
sync_plans— このガバナンスチェックが検証するプランreport_plan_outcome— アクションが確認された後に起きたことを報告しますget_plan_audit_logs— プラン状態と監査証跡を表示します