brand.json ファイルは、ブランドがアイデンティティを主張し、発見可能なブランド情報を確立するための標準化された方法を提供します。異なるユースケースに対応するため、相互に排他的な4つのバリアントをサポートします。
brand.json はブランドアイデンティティデータの正規ソースです。ここで定義されるブランドオブジェクト(ロゴ、カラー、トーン、タグライン)は AdCP 全体で使用される単一のブランド定義です。タスクはドメインと brand_id でブランドを参照する — システムは brand.json またはレジストリから完全なアイデンティティを解決します。
ファイルの場所
ブランドは brand.json ファイルを次の場所にホストする:
https://example.com/.well-known/brand.json
RFC 8615 の well-known URI 慣例に従う。
バリアント
brand.json ファイルは相互に排他的な4つのバリアントをサポートする:
1. 権威ある場所へのリダイレクト
別の URL にホストされた brand.json を指す:
{
"$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
"authoritative_location": "https://adcontextprotocol.org/brand/abc123/brand.json"
}
使用場面:
- brand.json が中央集権的にホストされている場合(例: サービスプロバイダーによる)
- CDN 配布が必要な場合
- マネージドブランドサービス
2. ハウスリダイレクト
完全なブランドポートフォリオを含むハウスドメインを指す:
{
"$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
"house": "nikeinc.com",
"note": "Regional site - see house for brand portfolio"
}
オプションフィールド:
region: ISO 3166-1 alpha-2 国コード(例: “CN”)
note: 説明テキスト
使用場面:
- ブランドドメインがより大きなハウスに所有されている場合
- 地域/ローカライズされたドメインがメインハウスを指す場合
- レガシードメインが正規ドメインにリダイレクトする場合
3. ブランドエージェント
ブランド情報を提供する MCP エージェントを指定します:
{
"$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
"version": "1.0",
"brand_agent": {
"url": "https://agent.acme.com/mcp",
"id": "acme_brand_agent"
}
}
オプションフィールド:
ブランドがエージェントを持つ場合、エージェントがブランドアイデンティティデータの権威あるソースとなります。
4. ハウスポートフォリオ
すべてのブランドとプロパティを含む完全なブランド階層:
{
"$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"}],
"keller_type": "master",
"properties": [
{"type": "website", "identifier": "nike.com", "primary": true}
]
}
]
}
ハウス定義
ハウスオブジェクトは法人組織を表します:
| フィールド | 型 | 必須 | 説明 |
|---|
domain | string | Yes | ハウスのプライマリドメイン |
name | string | Yes | 表示名 |
names | array | No | ローカライズされた名前 |
architecture | enum | No | branded_house、house_of_brands、または hybrid |
ブランド定義
brands 配列内の各ブランド:
| フィールド | 型 | 必須 | 説明 |
|---|
id | string | Yes | ブランド識別子(小文字英数字とアンダースコア) |
names | array | Yes | ローカライズされた名前(以下参照) |
keller_type | enum | No | master、sub_brand、endorsed、independent |
parent_brand | string | No | 親ブランドの id |
properties | array | No | ブランドが所有するデジタルプロパティ |
brand_agent | object | No | ブランドアイデンティティデータを提供するエージェント { url, id } |
rights_agent | object | No | 権利ライセンスエージェント { url, id, available_uses, right_types, countries } |
logos | array | No | ブランドロゴアセット |
colors | object | No | ブランドカラーパレット |
fonts | object | No | ブランドタイポグラフィ |
tone | object | No | ブランドの声とメッセージガイドライン(voice、attributes、dos、donts) |
tagline | string | No | ブランドのタグラインまたはスローガン |
visual_guidelines | object | No | 生成クリエイティブシステム向けの構造化ビジュアルルール |
名前配列
名前は言語コードでローカライズされます:
{
"names": [
{"en": "Nike"},
{"en": "The Swoosh"},
{"zh": "耐克"},
{"ja": "ナイキ"}
]
}
言語ごとに複数のエントリが許可されます(エイリアス用)。
Keller タイプ
マーケティング理論によるブランドアーキテクチャの分類:
| タイプ | 説明 | 例 |
|---|
master | ハウスの主要ブランド | Nike, Inc. の Nike |
sub_brand | 親ブランド名を引き継ぐ | Nike SB |
endorsed | 独立したアイデンティティ、親に支持される | ”by Nike” の Air Jordan |
independent | ハウスから独立して運営 | Converse |
ビジュアルガイドライン
visual_guidelines オブジェクトは、生成クリエイティブシステムがブランドに沿ったアセットを一貫して制作するために使用できる構造化ルールを提供します。これらはブランド定数 — キャンペーンごとに変わりません。
ビジュアルガイドラインは基本的なアイデンティティフィールド(colors、fonts、logos)を補完します。Colors はブランドパレットが 何であるか を定義し、ビジュアルガイドラインはその 使い方 を定義します。Fonts はフォントファミリーを定義し、ビジュアルガイドラインはタイプスケールを定義します。
ブランドの写真が選択または生成される際の見た目をコントロールする:
{
"photography": {
"realism": "natural",
"lighting": "soft daylight",
"color_temperature": "warm",
"contrast": "medium",
"depth_of_field": "medium",
"subject": {
"people": {
"age_range": "25-45",
"diversity": "mixed",
"mood": ["confident", "relaxed"]
},
"product_focus": "in-use",
"setting": "outdoor"
},
"framing": {
"subject_position": "center-left",
"crop_style": "waist-up",
"perspective": "eye-level"
}
}
}
| フィールド | 型 | 説明 |
|---|
realism | enum | natural、stylized、hyperreal、abstract |
lighting | string | 照明スタイルの説明 |
color_temperature | enum | warm、neutral、cool |
contrast | enum | low、medium、high |
depth_of_field | enum | shallow、medium、deep |
subject | object | 被写体ガイドライン(人物、製品フォーカス、設定) |
framing | object | カメラフレーミングルール(位置、クロップ、視点) |
preferred_aspect_ratios | array | 推奨アスペクト比(例: ["16:9", "4:5", "1:1"]) |
tags | array | 追加のスタイル記述子 |
グラフィックスタイル
ブランドのグラフィックとイラストのビジュアル言語を定義します:
{
"graphic_style": {
"style_type": "flat_illustration",
"stroke_style": "rounded",
"stroke_weight": "2px",
"corner_radius": "12px"
}
}
スタイルタイプ: flat_illustration、geometric、gradient_mesh、editorial_collage、hand_drawn、minimal_line_art、3d_render、isometric、photographic_composite。
| フィールド | 型 | 説明 |
|---|
style_type | enum | flat_illustration、geometric、gradient_mesh、editorial_collage、hand_drawn、minimal_line_art、3d_render、isometric、photographic_composite |
stroke_style | enum | rounded、square、mixed、none |
stroke_weight | string | ストローク幅(例: 2px) |
corner_radius | string | 角丸要素のコーナー半径(例: 12px) |
tags | array | 追加のスタイル記述子 |
シェイプ
ビジュアルアイデンティティの一部として使用されるブランドシェイプ:
{
"shapes": {
"primary_shape": "circle",
"secondary_shapes": ["rounded_rectangle", "diagonal_wave"],
"usage": {
"max_per_layout": 2,
"overlap_allowed": true
}
}
}
| フィールド | 型 | 説明 |
|---|
primary_shape | string | プライマリブランドシェイプ(例: circle、rounded_rectangle、hexagon) |
secondary_shapes | array | ブランドのビジュアル語彙のセカンダリシェイプ |
usage.max_per_layout | integer | レイアウトあたりの最大シェイプ数 |
usage.overlap_allowed | boolean | シェイプの重なりを許可するか |
アイコノグラフィー
アイコンスタイルシステムと使用ルール:
{
"iconography": {
"style": "outline",
"stroke_weight": "2px",
"corner_style": "rounded",
"usage": {
"max_per_frame": 3,
"size_ratio": "1:8"
}
}
}
| フィールド | 型 | 説明 |
|---|
style | enum | outline、filled、duotone、flat、glyph、hand_drawn |
stroke_weight | string | アイコンストローク幅(例: 2px) |
corner_style | enum | rounded、square、mixed |
usage.max_per_frame | integer | クリエイティブフレームあたりの最大アイコン数 |
usage.size_ratio | string | アイコンとレイアウトのサイズ比(例: 1:8) |
コンポジション
オーバーレイ、テクスチャー、バックグラウンドのレイアウトルール:
{
"composition": {
"overlays": {
"gradient_style": "linear",
"gradient_direction": "45deg",
"opacity": "70%"
},
"texture": {
"style": "subtle_grain",
"intensity": "low"
},
"backgrounds": {
"types_allowed": ["solid_color", "gradient", "image"]
}
}
}
テクスチャースタイル: none、subtle_grain、noise、paper、fabric、concrete。強度: low、medium、high。
バックグラウンドタイプ: solid_color、gradient、blurred_photo、image、video、pattern、transparent。
グラフィックエレメント
ブランドアイデンティティの一部である再利用可能な装飾的または構造的ビジュアルエレメント — 破れた紙の端、ウォーターマーク、ディバイダー、バックグラウンドパターン:
{
"graphic_elements": [
{
"name": "Paper Tear",
"type": "frame",
"description": "Torn paper edge used as section dividers and photo frames. Use primarily vertical orientation.",
"orientation": "vertical",
"colors": ["#a75230", "#f6f1f1", "#fba007"],
"max_per_layout": 2
},
{
"name": "Location Sketch Watermark",
"type": "watermark",
"description": "Light hand-drawn building sketch behind content, visible through the logo area",
"colors": ["#a75230"]
}
]
}
| フィールド | 型 | 必須 | 説明 |
|---|
name | string | Yes | エレメント名 |
type | enum | No | border、divider、frame、watermark、pattern、texture_overlay、decorative |
description | string | No | レイアウトでのエレメントの使用方法 |
orientation | enum | No | horizontal、vertical、any |
colors | array | No | このエレメントに使用できるカラー |
max_per_layout | integer | No | レイアウトあたりの最大インスタンス数 |
モーション
動画、アニメーションディスプレイ、インタラクティブフォーマット向けのモーションとアニメーションルール:
{
"motion": {
"transition_style": "dissolve",
"animation_speed": "moderate",
"easing": "ease-in-out",
"text_entrance": "fade",
"pacing": "lingering",
"kinetic_typography": false
}
}
| フィールド | 型 | 説明 |
|---|
transition_style | enum | cut、dissolve、slide、wipe、zoom、fade |
animation_speed | enum | slow、moderate、fast |
easing | string | デフォルトのイージング関数(例: ease-in-out、spring、linear) |
text_entrance | enum | fade、typewriter、slide_up、slide_left、scale、none |
pacing | enum | lingering、moderate、fast_cuts |
kinetic_typography | boolean | アニメーション/キネティックタイポグラフィを許可するか |
tags | array | 追加のモーションスタイル記述子 |
ロゴ配置
自動クリエイティブ制作のためのロゴ配置とクリアスペースルール:
{
"logo_placement": {
"preferred_position": "bottom-left",
"min_clear_space": "0.5x",
"min_height": "40px",
"background_contrast": "any"
}
}
| フィールド | 型 | 説明 |
|---|
preferred_position | enum | top-left、top-center、top-right、bottom-left、bottom-center、bottom-right、center |
min_clear_space | string | ロゴ高さの倍数(例: 0.5x、1x)または固定値(例: 16px)としての最小クリアスペース |
min_height | string | 判読性のための最小ロゴ高さ(例: 40px) |
background_contrast | enum | light_only、dark_only、any |
カラーウェイ
カラーが一緒にどう機能するかを定義する名前付きカラーペア。クリエイティブブリーフで「プライマリカラーウェイを使用して」と参照できるようになり、各カラーを個別に指定する必要がない:
{
"colorways": [
{
"name": "primary",
"foreground": "#FFFFFF",
"background": "#FF6600",
"accent": "#0066CC",
"cta_foreground": "#FFFFFF",
"cta_background": "#0066CC"
},
{
"name": "inverted",
"foreground": "#FF6600",
"background": "#FFFFFF",
"accent": "#0066CC",
"border": "#FF6600"
}
]
}
| フィールド | 型 | 必須 | 説明 |
|---|
name | string | Yes | カラーウェイ名(例: "primary"、"inverted"、"dark") |
foreground | hex color | Yes | テキスト/前景色 |
background | hex color | Yes | 背景色 |
accent | hex color | No | アクセントカラー |
cta_foreground | hex color | No | コールトゥアクションのテキスト色 |
cta_background | hex color | No | コールトゥアクションのボタン色 |
border | hex color | No | ボーダー色 |
channels | array | No | このカラーウェイが適用されるチャンネル(例: ["online"]、["print", "pos"])。ユニバーサルカラーウェイの場合は省略。 |
タイプスケール
異なるテキストの役割のサイズとウェイトを定義するタイポグラフィスケール:
{
"type_scale": {
"base_width": "1080px",
"heading": {
"font": "primary",
"size": "48px",
"weight": "700",
"line_height": "1.1"
},
"subheading": {
"font": "primary",
"size": "24px",
"weight": "600",
"line_height": "1.3"
},
"body": {
"font": "secondary",
"size": "16px",
"weight": "400",
"line_height": "1.5"
},
"caption": {
"font": "secondary",
"size": "12px",
"weight": "400",
"line_height": "1.4"
},
"cta": {
"font": "primary",
"size": "18px",
"weight": "700",
"text_transform": "uppercase",
"letter_spacing": "0.05em"
}
}
}
font フィールドはブランドの fonts オブジェクトで定義されたフォントの役割("primary"、"secondary")を参照するか、フォントファミリー名を直接指定できます。
サイズがピクセルの場合、これらのサイズが設計された参照キャンバスを示すために base_width を使用します。生成システムは他のキャンバスサイズに比例してスケーリングする — 1080px 幅向けに設計された 48px の見出しは、320px のモバイルリーダーボードでは 14px にスケーリングされます。
アセットライブラリ
管理されたアセットライブラリ(アイコンセット、イラストシステム、画像コレクション)への参照。URL は人間アクセス用 — ブランドポータル、プレスキット、ブラウザで開ける DAM ランディングページ。
{
"asset_libraries": [
{
"name": "Brand Illustrations v2",
"type": "illustration_system",
"url": "https://brand.example.com/illustrations",
"description": "Flat illustration system with defined color guide",
"color_guide": {
"roles": ["base", "shadow_1", "shadow_2", "highlight_1", "highlight_2", "stroke"],
"palettes": [
{
"name": "orange",
"colors": {
"base": "#FF6600",
"shadow_1": "#CC5200",
"shadow_2": "#993D00",
"highlight_1": "#FF8533",
"highlight_2": "#FFB380",
"stroke": "#662900"
}
}
]
}
}
]
}
| フィールド | 型 | 必須 | 説明 |
|---|
name | string | Yes | アセットライブラリの表示名 |
type | enum | 推奨 | icon_set、illustration_system、image_library、video_library、template_library |
url | string (URI) | Yes | アセットライブラリへの URL(人間アクセス用) |
description | string | No | ライブラリの内容と使用方法の説明 |
color_guide | object | No | ライブラリで使用されるカラーロールとパレット |
color_guide は生成システムにライブラリで使用されるカラーパレットを提供する — ライブラリにアクセスせずにブランドに沿ったイラストやアイコンを制作するのに役立つ。
ビジュアルの禁止事項とガードレール — tone.donts のビジュアル版。生成システムに避けるべきことを伝える:
{
"restrictions": [
"Never place text over the product",
"Do not use black backgrounds",
"No stock photography of people on phones",
"No split-screen layouts"
]
}
プロパティ定義
プロパティはブランドが所有するデジタルタッチポイントだ:
| フィールド | 型 | 必須 | 説明 |
|---|
type | enum | Yes | プロパティタイプ(以下参照) |
identifier | string | Yes | ドメインまたはアプリ ID |
store | enum | No | アプリストア(apple、google など) |
region | string | No | ISO 国コードまたは global |
primary | boolean | No | プライマリプロパティか? |
プロパティタイプ
AdCP の property-type enum に準拠:
website
mobile_app
ctv_app
desktop_app
dooh
podcast
radio
streaming_audio
解決アルゴリズム
ドメインを正規ブランドに解決するには:
https://{domain}/.well-known/brand.json を取得
- バリアントを確認:
- authoritative_location: その URL から取得し、ステップ2から継続
- house(文字列): ハウスドメインから取得し、ステップ2から継続
- brand_agent: エージェント URL を返す(エージェントがブランド情報を提供)
- house(オブジェクト)+ brands: プロパティ内でドメインを検索
- ハウスポートフォリオの場合、クエリドメインをプロパティに含むブランドを見つける
- 正規ブランド情報を返す
最大リダイレクト深度: 3 ホップ。
完全な例
小規模ビジネス
{
"$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
"version": "1.0",
"house": {
"domain": "bobsburgers.com",
"name": "Bob's Burgers LLC"
},
"brands": [
{
"id": "bobs_burgers",
"names": [{"en": "Bob's Burgers"}],
"keller_type": "master",
"properties": [
{"type": "website", "identifier": "bobsburgers.com", "primary": true}
],
"logos": [
{ "url": "https://bobsburgers.com/logo.svg", "tags": ["icon"] }
],
"colors": { "primary": "#FF6B35" }
}
]
}
エージェント付きエンタープライズ
{
"$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
"version": "1.0",
"brand_agent": {
"url": "https://brand-agent.enterprise.com/mcp",
"id": "enterprise_brand_agent"
},
"contact": {
"name": "Enterprise Brand Team",
"email": "brand@enterprise.com"
}
}
マルチブランドポートフォリオ
{
"$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": "耐克"}, {"ja": "ナイキ"}],
"keller_type": "master",
"properties": [
{"type": "website", "identifier": "nike.com", "primary": true},
{"type": "website", "identifier": "nike.cn", "region": "CN"},
{"type": "mobile_app", "store": "apple", "identifier": "com.nike.omega"}
]
},
{
"id": "air_jordan",
"names": [{"en": "Air Jordan"}, {"en": "Jordan"}, {"en": "Jumpman"}],
"keller_type": "endorsed",
"parent_brand": "nike",
"properties": [
{"type": "website", "identifier": "jordan.com", "primary": true},
{"type": "website", "identifier": "jumpman23.com"},
{"type": "mobile_app", "store": "apple", "identifier": "com.nike.snkrs"}
]
},
{
"id": "converse",
"names": [{"en": "Converse"}],
"keller_type": "independent",
"properties": [
{"type": "website", "identifier": "converse.com", "primary": true}
]
}
],
"contact": {
"name": "Nike Brand Team",
"email": "brand@nike.com"
}
}
権利付きタレントエージェンシー
ライセンス可能な権利を持つアスリートブランドを管理するタレントエージェンシー:
{
"$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
"version": "1.0",
"house": {
"domain": "lotientertainment.com",
"name": "Loti Entertainment",
"architecture": "house_of_brands"
},
"brands": [
{
"id": "daan_janssen",
"names": [{"en": "Daan Janssen"}],
"description": "Dutch Olympic speed skater, 2x gold medalist",
"industries": ["sports"],
"logos": [
{
"url": "https://cdn.lotientertainment.com/janssen/headshot.jpg",
"variant": "primary"
}
],
"brand_agent": {
"url": "https://rights.lotientertainment.com/mcp",
"id": "loti_entertainment"
},
"rights_agent": {
"url": "https://rights.lotientertainment.com/mcp",
"id": "loti_entertainment",
"available_uses": ["likeness", "voice", "endorsement"],
"right_types": ["talent"],
"countries": ["NL", "BE", "DE"]
}
}
]
}
rights_agent フィールドは MCP 呼び出しなしにクローラーにライセンス可能なものを伝える — 利用可能な用途、権利タイプ、国。バイヤーエージェントはレジストリで「音声ライセンスに利用可能なオランダ人アスリート」を検索し、インデックス化された brand.json データからマッチを見つけることができます。
地域ドメインリダイレクト
nike.cn/.well-known/brand.json に:
{
"$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
"house": "nikeinc.com",
"region": "CN"
}
キャッシュ
推奨キャッシュ TTL:
- 正規ファイル: 24時間
- リダイレクトファイル: 24時間
- 失敗した検索: 1時間
ベストプラクティス
- シンプルに始める: 最小限の brand.json から始め、必要に応じて複雑さを追加します
- 子会社にはリダイレクトを使用する: ブランドドメインをハウスドメインに向ける
- すべてのプロパティをリストアップする: 地域ドメイン、アプリ、レガシードメインを含めます
- 名前を最新に保つ: ローカライズされた名前と一般的なエイリアスを含めます
- ビジュアルガイドラインはオプション: 生成システムがブランドに沿ったアセットを一貫して制作する必要がある場合に追加します。カラーウェイと制限から始める — これらは即座に最大の効果を発揮します。
- ポートフォリオを簡潔に保つ: 多くのブランドを持つハウスポートフォリオでは、必要なブランドにのみビジュアルガイドラインを含めます。大きなポートフォリオのすべてのブランドに完全なビジュアルガイドラインを含めると、ファイルサイズが大幅に増加します。