> ## 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 ブランドプロトコルの概念: ハウス、ブランド、ブランドエージェント、Keller アーキテクチャタイプ、brand.json の探索、解決フロー、ブランドアイデンティティがクリエイティブ生成とメディアバイにどう関わるか。

ブランドプロトコルは、ブランドが標準化された探索メカニズムを通じてアイデンティティを主張し、検証可能な信頼できる情報源を確立できるようにします。ブランドは既知の場所に `brand.json` ファイルをホストすることで、アイデンティティ、ブランド階層を宣言し、オプションで公式ブランドエージェントを指定できます。

## 目的

ブランドプロトコルは広告のバイサイドアイデンティティに対応し、プロパティプロトコルがセルサイドに提供するのと同様の明確さをもたらす。

| セルサイド   | バイサイド         | 説明                          |
| ------- | ------------- | --------------------------- |
| パブリッシャー | **ハウス**       | 法人組織（Nike, Inc.、P\&G）       |
| プロパティ   | **ブランド**      | 広告アイデンティティ（Nike、Air Jordan） |
| インベントリ  | **デスティネーション** | ランディングページ、アプリ               |

この並行構造により、AdCP においてブランドがファーストクラスの市民となります。

## 仕組み

ブランドはドメイン上の `/.well-known/brand.json` に `brand.json` ファイルをホストします。ファイルは4つの形式のいずれかを取ることができます。

1. **ブランドエージェント**: ブランド情報を提供する MCP エージェントを指します
2. **ハウスポートフォリオ**: すべてのブランドとプロパティを含む完全なブランド階層
3. **ハウスリダイレクト**: ポートフォリオを含むハウスドメインを指します
4. **権威ある場所**: ホストされた brand.json URL を指します

```mermaid theme={null}
sequenceDiagram
    participant Agent as バイヤーエージェント
    participant Domain as ブランドドメイン
    participant House as ハウスドメイン
    participant BrandAgent as ブランドエージェント (MCP)

    Agent->>Domain: GET /.well-known/brand.json
    alt ハウスリダイレクト
        Domain-->>Agent: { "house": "nikeinc.com" }
        Agent->>House: GET /.well-known/brand.json
        House-->>Agent: 完全なポートフォリオ（ハウス + ブランド）
    else ブランドエージェント
        Domain-->>Agent: { "brand_agent": { "url": "..." } }
        Agent->>BrandAgent: MCP: ブランドアイデンティティを取得
        BrandAgent-->>Agent: ブランドアイデンティティデータ
    else ハウスポートフォリオ
        Domain-->>Agent: 完全なポートフォリオ（ハウス + ブランド）
    end
```

## ブランドアーキテクチャ

プロトコルは Keller のブランドアーキテクチャモデルをサポートします。

| タイプ           | 説明                   | 例                       |
| ------------- | -------------------- | ----------------------- |
| `master`      | ハウスの主要ブランド           | Nike, Inc. の Nike       |
| `sub_brand`   | 親ブランド名を引き継ぐ          | Nike SB                 |
| `endorsed`    | 独立したアイデンティティ、親に支持される | Air Jordan "by Nike"    |
| `independent` | 独立して運営               | Nike, Inc. 傘下の Converse |

## 例: ハウスポートフォリオ

複数のブランドを持つハウスドメイン。

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
  "version": "1.0",
  "house": {
    "domain": "nikeinc.com",
    "name": "Nike, Inc.",
    "architecture": "hybrid"
  },
  "brands": [
    {
      "id": "nike",
      "names": [{"en": "Nike"}, {"zh": "耐克"}],
      "keller_type": "master",
      "properties": [
        {"type": "website", "identifier": "nike.com", "primary": true},
        {"type": "mobile_app", "store": "apple", "identifier": "com.nike.omega"}
      ]
    },
    {
      "id": "air_jordan",
      "names": [{"en": "Air Jordan"}, {"en": "Jordan"}],
      "keller_type": "endorsed",
      "parent_brand": "nike",
      "properties": [
        {"type": "website", "identifier": "jordan.com"},
        {"type": "website", "identifier": "jumpman23.com"}
      ]
    }
  ]
}
```

## 例: ブランドエージェント

ブランド情報を提供する MCP エージェントを持つブランド。

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
  "version": "1.0",
  "brand_agent": {
    "url": "https://agent.acme.com/mcp",
    "id": "acme_brand_agent"
  }
}
```

エージェントはブランドの代わりにブランドアイデンティティデータ（ロゴ、カラー、トーン）を提供します。

## 例: ハウスリダイレクト

ハウスを指すブランドドメイン。

```json theme={null}
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
  "house": "nikeinc.com"
}
```

## 解決フロー

任意のドメインが与えられると、プロトコルは正規ブランドに解決します。

```
jumpman23.com
  -> /.well-known/brand.json を取得
  -> { "house": "nikeinc.com" }
  -> nikeinc.com/.well-known/brand.json を取得
  -> "jumpman23.com" に一致するプロパティを brands[] で検索
  -> Air Jordan ブランドのプロパティで発見
  -> 結果: { house: "nikeinc.com", brand_id: "air_jordan" }
```

## ブランド解決ソース

ブランドアイデンティティを解決する3つの方法があり、それぞれ同じデータ構造を返します。

| ソース                                                   | 仕組み                                            | 使用タイミング                            |
| ----------------------------------------------------- | ---------------------------------------------- | ---------------------------------- |
| [`resolve_brand`](#mcp-tools)                         | `/.well-known/brand.json` を取得してブランドアイデンティティを抽出 | ブランドが `brand.json` ファイルを公開している場合   |
| [ブランドエンリッチメント](/docs/registry/index#brand-resolution) | Brandfetch から取得してアイデンティティをレジストリに保存             | `brand.json` が利用できない場合、エンリッチメントが必要 |
| [レジストリ検索](/docs/registry/index#brand-resolution)      | レジストリからコミュニティまたはエンリッチされたアイデンティティを返す            | ブランドが既に登録されている場合                   |

ソースに関わらず、結果はブランドアイデンティティであり、ブランド参照（`{ "domain": "...", "brand_id": "..." }`）経由で任意の AdCP タスクから参照できます。

## ユースケース

### クリエイティブ生成

クリエイティブエージェントがブランドアセットを必要とする場合。

1. brand.json 経由でドメインを正規ブランドに解決
2. ブランドアイデンティティデータを取得（brand.json、エージェント、またはレジストリから）
3. ブランドに沿ったクリエイティブを生成

### ブランド検証

ブランドの主張を検証する場合。

1. 主張されたドメインから brand.json を取得
2. 必要に応じてハウスへのリダイレクトを追う
3. ポートフォリオにブランドが存在することを確認

### レポーティングロールアップ

ブランドパフォーマンスを集計する場合。

1. すべてのブランドドメインを正規 ID に解決
2. 企業レベルのレポーティングのためにハウスでグループ化
3. オプションでサブブランドを含める/除外します

## リクエスト内のブランドコンテキスト

AdCP タスクはブランドをドメインとオプションの brand\_id で識別する `brand` 参照を受け付けます。システムは実行時にこの参照を完全なブランドアイデンティティに解決します。

```json theme={null}
{
  "brand": {
    "domain": "acmecorp.com",
    "brand_id": "tide"
  }
}
```

単一ブランドのドメインでは `brand_id` はオプション。

```json theme={null}
{
  "brand": {
    "domain": "acmecorp.com"
  }
}
```

ブランドアイデンティティデータは `brand.json` またはレジストリから解決される — インラインで渡されない。

## キャッシュ

ブランド情報は変更頻度が低い（ロゴ更新、ガイドライン改定）。推奨キャッシュ設定。

* **HTTP ヘッダー**: 標準的な `ETag`、`Last-Modified`、`Cache-Control` ヘッダーを使用
* **デフォルト TTL**: 検証済み brand.json ファイルは24時間
* **失敗した検索**: 再試行前に1時間キャッシュ
* **last\_updated フィールド**: 鮮度チェック用の brand.json 内の情報タイムスタンプ

エージェントは brand.json ファイルを取得する際に HTTP キャッシュヘッダーを尊重すべきです。

## ブランドプロトコルのタスク

ブランドプロトコルを実装するエージェントは `get_adcp_capabilities` で `supported_protocols: ["brand"]` を宣言します。実装する具体的なタスクが役割を定義します。

| エージェントのケイパビリティ | タスク                             | 例                           |
| -------------- | ------------------------------- | --------------------------- |
| DAM            | `get_brand_identity`            | エンタープライズブランドポータル、アセット管理     |
| 権利管理           | `get_rights` + `acquire_rights` | タレントライセンス、音楽シンク、ストックメディア    |
| 両方             | すべてのブランドタスク                     | アイデンティティと権利を管理するタレントエージェンシー |

### get\_brand\_identity

静的な brand.json より豊富で、より動的で、よりアクセス制御されたブランドアイデンティティデータを返します。コアアイデンティティ（ハウス、名前、説明、ロゴ）は常にパブリック。（`sync_accounts` 経由で）リンクされたアカウントはそのベースラインの上に深いデータを取得できる: 高解像度アセット、音声合成設定、トーンガイドライン、権利の可用性。

### brand.json 経由の権利探索

ライセンス可能な権利を持つブランドは brand.json に `rights_agent` を宣言します。これにより MCP 呼び出しなしに権利がクロール可能でインデックス化可能になります。

```json theme={null}
{
  "id": "daan_janssen",
  "names": [{"en": "Daan Janssen"}],
  "description": "Dutch Olympic speed skater, 2x gold medalist",
  "rights_agent": {
    "url": "https://rights.lotientertainment.com/mcp",
    "id": "loti_entertainment",
    "available_uses": ["likeness", "voice", "endorsement"],
    "right_types": ["talent"],
    "countries": ["NL", "BE", "DE"]
  }
}
```

`brand_agent` はアイデンティティデータ（ロゴ、トーン、アセット）を提供します。`rights_agent` はライセンス（探索、価格、取得）を提供します。同一エージェントでも異なるエージェントでも可。

### get\_rights

ブランドエージェントのロスター全体でライセンス可能な権利を検索します。価格付きのマッチを返します。探索は自然言語ファースト — タクソノミーなし、LLM がクエリから意図を解釈します。

### acquire\_rights

権利をクリアするための拘束力のある契約リクエスト。バイヤーは `get_rights` から `pricing_option_id` を選択し、キャンペーン詳細を提供します。条件、LLM プロバイダー向けの生成資格情報、開示要件を返します。

### 生成資格情報

権利管理エージェントは LLM プロバイダー（Midjourney、ElevenLabs など）と連携してスコープ付きの資格情報を発行します。権利エージェントがパーミッションを設定し、プロバイダーが生成時に適用します。任意のクリエイティブエージェントが資格情報を使用できます。

### クリエイティブのライフサイクル

クリエイティブマニフェストはオプションの `rights` 配列を持つ — 各エントリは異なる権利保有者からの権利制約。単一のクリエイティブはタレントの肖像 + 音楽ライセンスを組み合わせることができ、それぞれ異なる有効期間と国の制限を持ちます。v1 では権利制約は情報メタデータ。

使用状況は `report_usage` を通じて権利エージェントに `rights_id` フィールドとともに報告され、上限追跡と請求に使用されます。

## MCP ツール

ブランドプロトコルはプログラマティックアクセス用の MCP ツールを提供します。

| ツール                    | 説明                     |
| ---------------------- | ---------------------- |
| `resolve_brand`        | ドメインを正規ブランドアイデンティティに解決 |
| `validate_brand_json`  | ドメインの brand.json を検証   |
| `validate_brand_agent` | ブランドエージェントの到達可能性をテスト   |

## 詳細を学ぶ

<CardGroup cols={2}>
  <Card title="brand.json 仕様" icon="code" href="/docs/brand-protocol/brand-json">
    brand.json ファイル形式の完全な技術仕様。
  </Card>

  <Card title="get_brand_identity" icon="id-card" href="/docs/brand-protocol/tasks/get_brand_identity">
    ブランドエージェントからブランドアイデンティティデータを取得します。
  </Card>

  <Card title="get_rights" icon="scale-balanced" href="/docs/brand-protocol/tasks/get_rights">
    価格付きでライセンス可能な権利を検索します。
  </Card>

  <Card title="acquire_rights" icon="handshake" href="/docs/brand-protocol/tasks/acquire_rights">
    契約上のクリアランスで権利を取得します。
  </Card>
</CardGroup>
