> ## Documentation Index
> Fetch the complete documentation index at: https://adcp-docs-ja.pier1.co.jp/llms.txt
> Use this file to discover all available pages before exploring further.

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

> AdCP クリエイティブガバナンスは、セキュリティスキャン、AI プロベナンス検証、アクセシビリティコンプライアンスチェックを含む標準化されたクリエイティブ評価を提供します。

<Info>
  **AdCP 3.0 プロポーザル** - このプロトコルは AdCP 3.0 向けに開発中です。[GitHub Discussions](https://github.com/adcontextprotocol/adcp/discussions) でフィードバックを歓迎します。
</Info>

クリエイティブガバナンスは、専門のガバナンスエージェントによるクリエイティブの評価を標準化します。[プロパティガバナンス](../property/index)と同じ機能ベースのパターンを適用する — エージェントが評価できる機能を宣言し、クリエイティブマニフェストを受け取り、機能値を返します。

## 概要

クリエイティブガバナンスエージェントはクリエイティブを評価して機能値を返します。異なるエージェントが異なる機能を評価する:

| エージェントタイプ       | 機能の例                                                              | 機能タイプ       |
| --------------- | ----------------------------------------------------------------- | ----------- |
| **セキュリティスキャナー** | `auto_redirect`、`credential_harvest`、`cloaking`                   | バイナリ        |
| **クリエイティブ品質**   | `brand_consistency`、`platform_optimized`、`creative_quality_score` | 定量的、バイナリ    |
| **コンテンツ分類**     | `iab_casinos_gambling`、`iab_automotive`                           | バイナリ（信頼度付き） |

プロトコルは固定された機能タクソノミーを定義しません。ベンダーは [`get_adcp_capabilities`](/docs/protocol/get_adcp_capabilities) で評価するものを宣言し、カバレッジで競争します。

## 仕組み

### 1. エージェントが機能を宣言します

クリエイティブガバナンスエージェントはプロパティガバナンスと同じ機能定義パターンを使ってケイパビリティをアドバタイズする:

<CodeGroup>
  ```json セキュリティスキャナー theme={null}
  {
    "governance": {
      "creative_features": [
        {
          "feature_id": "auto_redirect",
          "type": "binary",
          "description": "Unauthorized navigation away from publisher context without user interaction",
          "methodology_url": "https://scanner.example.com/methodology"
        },
        {
          "feature_id": "credential_harvest",
          "type": "binary",
          "description": "Phishing techniques to gather user credentials or PII",
          "methodology_url": "https://scanner.example.com/methodology"
        },
        {
          "feature_id": "cloaking",
          "type": "binary",
          "description": "Creative masks or misrepresents content to evade detection",
          "methodology_url": "https://scanner.example.com/methodology"
        }
      ]
    }
  }
  ```

  ```json クリエイティブ品質プラットフォーム theme={null}
  {
    "governance": {
      "creative_features": [
        {
          "feature_id": "brand_consistency",
          "type": "quantitative",
          "range": { "min": 0, "max": 100 },
          "description": "Adherence to brand guidelines including logo placement, colors, and typography",
          "methodology_url": "https://quality.example.com/methodology"
        },
        {
          "feature_id": "platform_optimized",
          "type": "binary",
          "description": "Creative meets platform-specific best practices (aspect ratio, text overlay limits)",
          "methodology_url": "https://quality.example.com/methodology"
        }
      ]
    }
  }
  ```

  ```json コンテンツ分類器 theme={null}
  {
    "governance": {
      "creative_features": [
        {
          "feature_id": "iab_casinos_gambling",
          "type": "binary",
          "description": "Creative contains casinos or gambling content (IAB Content Taxonomy 3.1, ID 181)",
          "methodology_url": "https://categorizer.example.com/methodology"
        },
        {
          "feature_id": "iab_automotive",
          "type": "binary",
          "description": "Creative contains automotive content (IAB Content Taxonomy 3.1, ID 1)",
          "methodology_url": "https://categorizer.example.com/methodology"
        }
      ]
    }
  }
  ```
</CodeGroup>

オーケストレーターはクリエイティブを評価する前に `get_adcp_capabilities` でこれらの宣言を読む。必要な機能がエージェントの宣言にない場合、オーケストレーターは評価の途中で発見する代わりに、即座にギャップを表面化させる。

### 2. オーケストレーターがクリエイティブを評価します

オーケストレーターはクリエイティブマニフェストで [`get_creative_features`](./get_creative_features) を呼び出す:

```json theme={null}
{
  "creative_manifest": {
    "format_id": {
      "agent_url": "https://creative.adcontextprotocol.org",
      "id": "html5-display-300x250"
    },
    "assets": {
      "creative_html": {
        "url": "https://cdn.agency.com/creative/abc123.html"
      }
    }
  }
}
```

### 3. エージェントが機能値を返す

エージェントはクリエイティブを評価して機能値を返します。レスポンスの形状はエージェントタイプに関わらず同じだ:

```json theme={null}
{
  "results": [
    { "feature_id": "auto_redirect", "value": true, "confidence": 0.97 },
    { "feature_id": "credential_harvest", "value": false },
    { "feature_id": "cloaking", "value": false }
  ],
  "detail_url": "https://scanner.example.com/reports/ctx_abc123"
}
```

### 4. オーケストレーターが要件を適用します

オーケストレーターはバイヤー定義の要件に対して機能値を評価する — プロパティリストの機能要件と同じパターン:

* セキュリティ: `auto_redirect` が `true` なら拒否
* 品質: `brand_consistency` が 80 未満なら拒否
* 分類: `iab_casinos_gambling` が `true` でキャンペーンがギャンブルを除外しているなら拒否

## 設計原則

**機能 ID はスキーマの厳格さではなく厳密さを強制します。** IAB コンテンツタクソノミー 3.1 ID 181 を使って `iab_casinos_gambling` を宣言する分類エージェントは、どんなカスタムスキーマと同じくらい厳密だ — 規律はエージェントの方法論に存在し、ワイヤーフォーマットではありません。`iab_casinos_gambling: false` を要求するオーケストレーターは、エージェントがコンテンツをどのように検出したかに関わらず、バイナリの合否回答を得ます。機能 ID がコントラクトです。プロトコルがスキーマに依存しないことで、新しい IAB カテゴリやスキャン技術を追加してもプロトコル変更が不要です。

**信頼度はオプション、必須ではありません。** 機能結果の `confidence` フィールドはオプションです。セキュリティスキャナーは通常省略する — クリエイティブには資格情報収集パターンが含まれているかいないかです。分類エージェントはコンテンツ検出が確率的だから含める: クリエイティブには 94% の確率でギャンブルコンテンツが含まれているかもしれない。エージェントが何を開示するかを決定します。曖昧さを許容できないオーケストレーターは `value: false` を要求して信頼度を完全に無視する; 確率的な結果を閾値で扱いたいオーケストレーターはそれを使用します。これはプロパティガバナンスの `property-feature-value` に存在するのと同じフィールドです。

**オーケストレーターが強制する一貫性。** 分類エージェントに `iab_casinos_gambling` を要求するオーケストレーターは、クリエイティブが評価される前のケイパビリティチェック時に、エージェントがその機能をサポートするかどうかを発見します。サポートしない場合、オーケストレーターは早期に失敗してギャップを表面化させる。これはプロパティガバナンスの動作方法を反映する: IAS と DoubleVerify は異なるプロパティ機能を評価し、オーケストレーターはどの機能が必要かを決定して対応するようにルーティングします。プロトコルスキーマで固定された機能セットを義務付けると、すべての新しい IAB カテゴリやカスタムブランド要件がプロトコルの改訂を必要とします。プロトコルは執行メカニズムを定義し、オーケストレーターは要件を定義します。

**不透明な詳細インテリジェンス。** ワイヤー上の機能値は合否（バイナリ）またはスコア（定量的）だ。検出方法論、脅威インテリジェンス、詳細なスコアリングブレークダウンはベンダーのアクセス制御された `detail_url` と `methodology_url` の背後に留まる。

## マルチエージェントコラボレーション

クリエイティブガバナンスの評価は通常、複数の専門エージェントが並行して動作する — プロパティガバナンスがサステナビリティ、品質、スーツアビリティエージェントに使うのと同じパターン。

| エージェント            | 返される機能                                   | オーケストレーターの要件             |
| ----------------- | ---------------------------------------- | ------------------------ |
| セキュリティスキャナー       | `auto_redirect`、`cloaking`               | どれかが `true` ならブロック       |
| クリエイティブ品質プラットフォーム | `brand_consistency`、`platform_optimized` | スコアが閾値未満ならブロック           |
| コンテンツ分類器          | `iab_casinos_gambling`、`iab_automotive`  | 除外されたカテゴリが `true` ならブロック |

各エージェントは同じ `get_creative_features` タスクを使用します。オーケストレーターはそれらを並行して呼び出し、独立した結果セットを収集し、すべてに対して要件を適用します。どのエージェントも他のエージェントについて知る必要はない。

これにより、バイヤーは以下が可能になる:

* 既存のエージェントや評価プロトコルを変更せずに新しい専門エージェントを追加します
* エージェントタイプごとに異なる信頼度閾値を適用します
* 他のエージェントの評価ロジックを変更せずに1つのベンダーを別のベンダーに置き換える

オーケストレーターの機能要件 — プロトコルスキーマではない — が、特定のキャンペーンにとって「完全な」クリエイティブガバナンスが何を意味するかを定義します。

```mermaid theme={null}
flowchart TB
    subgraph Orchestrator["オーケストレーター"]
        O1[各エージェントで get_creative_features を呼び出す]
        O2[結果を集計する]
        O3[機能要件を適用する]
    end

    subgraph Agents["クリエイティブガバナンスエージェント"]
        SEC["セキュリティスキャナー<br/>auto_redirect<br/>cloaking<br/>credential_harvest"]
        QUA["クリエイティブ品質<br/>brand_consistency<br/>platform_optimized"]
        CAT["コンテンツ分類器<br/>iab_casinos_gambling<br/>iab_automotive"]
    end

    Creative["クリエイティブマニフェスト"] --> O1
    O1 --> SEC
    O1 --> QUA
    O1 --> CAT
    SEC --> O2
    QUA --> O2
    CAT --> O2
    O2 --> O3
```

## 価格

評価に課金するクリエイティブガバナンスエージェントは、他の AdCP ベンダーサービスと同じベンダー価格パターンを使います。バイヤーが `get_creative_features` リクエストで `account` を提供する場合、レスポンスには `pricing_option_id`、`vendor_cost`、`currency`、任意で `consumption` の詳細（例: LLM ベースのスキャンにおける `tokens`）が含まれます。

バイヤーは、課金の照合のために `standards_id` と `pricing_option_id` を伴う [`report_usage`](/docs/accounts/tasks/report_usage) で利用をレポートします。これは [クリエイティブエージェント](/docs/creative/specification#pricing)、[シグナルエージェント](/docs/signals/specification)、[コンテンツ標準](/docs/governance/content-standards/index)が使うのと同じ「発見・実行・レポート」ループです。

課金するガバナンスエージェントは [Accounts プロトコル](/docs/accounts/overview) を実装しなければなりません（MUST）。

## 非同期評価

評価に時間がかかる場合（例: マルウェアスキャンのためのサンドボックス実行）、エージェントは `status: "working"` を返し、標準の Webhook メカニズムで結果を配信します。カスタムステータス値や Webhook イベントは不要 — 既存の[非同期タスクパターン](/docs/building/by-layer/L3/async-operations)がこれを処理します。
