brand.json ファイルは、ブランドがアイデンティティを主張し、発見可能なブランド情報を確立するための標準的な手段を提供します。異なる公開モデルに対応するために 5 つのバリアントをサポートします。
brand.json はブランドアイデンティティデータの正準ソースです。ここで定義されるブランドオブジェクト(logos、colors、tone、tagline)は、AdCP 全体で使われる単一のブランド定義です。タスクはドメインと brand_id でブランドを参照します — システムは brand.json またはレジストリから完全なアイデンティティを解決します。Motivation
ホールドコのブランドアイデンティティは、親が所有する1 つの brand.json に存在しうる — すべての子の変更が親のファイルの編集を必要とします。Converse がロゴを更新したいなら、誰かが Nike, Inc. のファイルを編集します。ホールドコが 100 の子会社ブランドを運営するなら、100 のすべてのチームが同じモノリシックなドキュメントに集約します。ブランドチームは自分のアイデンティティを所有しますが、モノリシックな形状はコーポレート親に単一の運用チョークポイントを強制します。それはまた独立ブランドがそもそも公開することをブロックします — 他人のポートフォリオにリストされたブランドは、ドメイン管理がそれを証明できる場合でも、自身の正準データを主張するプロトコルレベルのパスを持ちません。 仕様は、ハウスが家族に誰がいるかの権威であり続けながら、子ブランドが自身の正準ドキュメントを公開できるようにすることでこれを解決します。インラインbrands[] は一級のオプションのままです(親がデータを所有)。brand_refs[] は、正準ドキュメントが別の場所に存在するポインター子を追加します(子がデータを所有)。ハウスは自由に混合します。階層は 1 レベルの深さです — ハウスのみが所有権を宣言し、ブランド自体は子を持てません。
File location
ブランドはbrand.json ファイルを次の場所にホストします。
Variants
brand.json ファイルは 5 つのバリアントをサポートします。
バリアント 1〜3 は互いに、およびバリアント 4〜5 と相互排他的です。バリアント 4 と 5 は合成します: House Portfolio(4)は
brand_refs[] を通じて Brand Canonical Document(5)を参照でき、Brand Canonical Document は house_domain を通じてハウスを指し返せます。2 つの半分がどう解決するかについては Mutual-assertion trust model を参照。
1. Authoritative Location Redirect
別の URL にホストされた brand.json を指します。- brand.json が中央でホストされている(例: サービスプロバイダーによって)
- CDN 配信が必要
- マネージドブランドサービス
redirect_reason: キャッシュ処理のための構造化シグナル(acquisition、rebrand、regional、legacy、consolidation、other)redirect_effective_at: リダイレクトが有効になった ISO タイムスタンプnote: 自由テキストの根拠
2. House Redirect
完全なブランドポートフォリオを含むハウスドメインを指します。region: ISO 3166-1 alpha-2 国コード(例: “CN”)redirect_reason: キャッシュ処理のための構造化シグナル(Redirect ergonomics を参照)redirect_effective_at: リダイレクトが有効になった ISO タイムスタンプnote: 自由テキストの根拠
- ブランドドメインがより大きなハウスに所有されている
- 地域/ローカライズドメインがメインハウスを指す
- レガシードメインが正準にリダイレクトする
Redirect ergonomics
両方のリダイレクトバリアントは、コンシューマーが古いキャッシュ状態に留まることなくリダイレクト遷移を処理できるよう、任意のredirect_reason と redirect_effective_at を受け入れます。
redirect_reason は enum です。
redirect_effective_at(ISO 8601 タイムスタンプ)はハードなキャッシュ不変条件です: キャッシュは、このタイムスタンプより前にキャッシュされた任意のエントリを古いものとして扱い、リダイレクトを通じて再取得しなければなりません(MUST)。上記の TTL 短縮ガイダンスは SHOULD です。このタイムスタンプは MUST であり、M&A や他の遷移中のキャッシュポイズニングに対する負荷を担う修正です。
これは、IAB Tech Lab の ads.txt(OWNERDOMAIN)と sellers.json(seller_type)の移行パターンに対する brand.json の類似物です。それらは歴史的に帯域外の調整に依存していました — 機械可読な遷移シグナルはありませんでした。redirect_reason + redirect_effective_at が brand.json についてそのギャップを閉じます。
例 — 買収リダイレクト:
3. Brand Agent
ブランド情報を提供する MCP エージェントを指定します。contact: 連絡先情報
4. House Portfolio
ハウスがブランドを公開します。ハウスは、インラインの子定義、自己公開するブランドへのポインター参照、または両方を運べます。brands[]— インラインの子定義。親がデータを所有。 独自のドメインを持たないサブブランド(Nike SB、内部プロダクトライン)や、ホールドコが中央で管理したいサブブランドに最適。brand_refs[]— ポインターエントリ。子が自身の正準ドキュメント(バリアント 5)でデータを所有。 自己公開権限を望む独自ドメインを持つサブブランド(Converse、Jordan)に最適。
brands[] または brand_refs[] の少なくとも 1 つが存在しなければなりません。
シンプルなハウス(インラインのみ):
brand_refs[] エントリの形状:
このエントリと子の
house_domain クレームの関係についての信頼セマンティクスは、下記 Mutual-assertion trust model で定義されます。
委任を伴うハウス(WPP):
ホールドコはブランド管理をエージェンシーネットワークに委任します。WPP plc はブランドを所有しますが、Ogilvy や BBH が実際に日々運営します。brand_refs[] エントリの managed_by は、これを所有ハウスによる一方的な宣言として捕捉します。リーフブランドはマネージャーを参照しません。UI はエージェンシービューのために BBH Sport を BBH の下でレンダリングします。信頼検証は BBH Sport → WPP のみをたどります。
managed_by はディレクトリフィールドであり、信頼フィールドではありません。 コンシューマーが実際に日々運営する主体でブランドをグループ化できるように存在します — エージェンシーネットワーク横断でインベントリをショッピングするときにバイヤー側 DSP が望む正準ビューです。コンシューマーは信頼や認可の決定に使ってはなりません(MUST NOT)。その線は依然としてリーフとハウス間の相互アサーションを通じて流れます。Conformance を参照。
5. Brand Canonical Document
ブランドが自身のアイデンティティ属性を所有する、ブランドごとの自己公開ドキュメント。ブランド自身の/.well-known/brand.json(または authoritative location redirect 経由)にホストされます。ブランドは house_domain を通じてハウスを宣言するか、単独で立つ(親ハウスなし — Patagonia、Liquid Death — フィールドを省略)ことができます。house_domain 関係の信頼セマンティクスは、下記 Mutual-assertion trust model で定義されます。
ハウス付き — Nike 傘下の Converse:
brands[] のインラインエントリと同じアイデンティティフィールドを運びます。
このバリアント固有のトップレベルフィールド:
他のすべてのブランドアイデンティティフィールドが適用されます(
logos、colors、fonts、tone、tagline、visual_guidelines、keller_type、parent_brand、properties[]、industries[]、target_audience、description、agents[]、contact、trademarks[]、data_subject_contestation など — 完全なフィールドリストは Brand definition を参照)。ドキュメントは、ハウス専用フィールド(house、brands、brand_refs、authorized_operators)やリダイレクトフィールド(authoritative_location、文字列としての house、region、note、redirect_reason、redirect_effective_at)を運んではなりません(MUST NOT)。
Mutual-assertion trust model
信頼は 2 つの層で解決します — ブランドアイデンティティ(logos、colors、tone、tagline など)とブランド関係(このブランドを誰が所有するか、誰がそれを代弁できるか)。2 つの層はきれいに分離します。アイデンティティは単一の TLS 提供ドキュメントから検証可能です。関係は両側が相互に応答することを必要とします。
主要な非対称性。 自身のドメインで検証済み TLS を持つリーフは、その親クレームが相互応答されているかどうかに関係なく、自身のアイデンティティ属性について権威を持ちます。相互アサーションがゲートするのは関係層です。素朴な「主張されたが未検証 ⇒ リーフを完全に無視」という読みは誤りです — リーフの logos/colors/tone は依然として本物です。
スタンドアロンは第三者クレームに勝る。
house_domain のない Brand Canonical Document はスタンドアロンです。他のハウスの brand_refs[] がそれをリストしていても、リーフの沈黙が決定的です: スタンドアロンとして扱い、第三者クレームは未検証メタデータのみです。規範的な記述については Conformance を参照。
検証はランタイムチェックです(クローラーが両方のドキュメントを取得して比較)。JSON スキーマはフィールドを独立して受け入れます。
Self-healing through notification
リーフのみのエッジケースは実際に一般的です — サブブランドチームが、親のポートフォリオチームが相互エントリを追加する時間を持つ前に、自身の正準ドキュメントを立ち上げます。今日これはブランドを行き詰まらせます: アイデンティティは良好ですが、メディアバイとガバナンス決定はブロックされます。 仕様は自己修復ループを定義します。ブランドエージェントなしのハウスの場合:- ハウスがその
brand.jsonのトップレベルで到達可能なcontact.emailを公開します。 - コンシューマーがリーフのみのエッジ — リーフが
house_domain: Aを主張し、A のbrand_refs[]がリーフを含まない — に遭遇したとき、コンシューマーは、リーフが相互応答を主張し検証待ちでブロックされていることを A のcontact.emailに通知すべきです(SHOULD)。 - ハウスチームがエントリを
brand_refs[]に追加します。次のクロール/再検証で、エッジは相互にアップグレードします。
verify_brand_claim をアドバタイズするブランドエージェントありのハウスの場合、コンシューマーは代わりにエージェントに直接尋ねます — 下記 Agent-augmented verification を参照。エージェントパスは、メールループが表現できるよりリッチな状態(pending_review、transferring、disputed、licensed_in)を表面化し、ハウスとリーフの両方がエージェントを公開する場合、静的ファイルのクロールなしに 2 つの署名付きエージェント呼び出しを通じて相互アサーションが完了します。
Agent-augmented verification
ブランドがブランドエージェント(variant 3、またはバリアント 4/5 のagents[] の type: "brand" エントリ)を公開する場合、エージェントに verify_brand_claim を通じて検証の質問ができます — claim_type(subsidiary / parent / property / trademark)を取り、ブランドの権威ある回答を返す単一のツールです。ブランドエージェントは、サーバーの背後に隠された brand.json です: 静的ファイルが運ぶのと同じデータに加え、静的ファイルが捕捉できないよりリッチな状態(pending_review、transferring、disputed、licensed_in、licensed_out)です。
信頼モデルは方向によって非対称です。 この非対称性がなければ、悪意ある、または誤ったハウスが所有していない子会社を主張し、署名だけの強さでコンシューマーに信頼を拡張させることができます。
ハウスとリーフの両方がブランドエージェントを公開する場合、相互アサーションはエージェント層で完了できます: パートナーがハウスに
claim_type: "subsidiary" で、リーフに claim_type: "parent" で verify_brand_claim を呼び出します。両方が owned → 相互アサーション、リアルタイム、両当事者による署名、クロール不要。これが信頼拡張の最もクリーンなパスです。
相互アサーションは 2 当事者間の一貫性を証明し、立場を証明しません。 攻撃者が制御するドメインの相互アサーションを行う 2 つのエージェントは、一致する owned レスポンスに署名できます。相互アサーションは、彼らが同意することのみを確認し、いずれかが基礎となるブランドに対して正当な権限を持つことは確認しません。最終的な信頼ゲートは依然としてドメイン管理 + TLS です — コンシューマー側で、コンシューマーがドメインを所有すると期待する法的/運用エンティティに対して検証されます。エージェント層での相互アサーションは下限です。コンシューマー側の立場チェック(ドメイン登録、実世界のアイデンティティ)は、高信頼の決定については依然として呼び出し元の責任です。
エージェントレスポンスはブランドの adcp_use: "response-signing" JWK の下で署名されます。完全なリクエスト/レスポンス形状とクレームタイプごとの詳細については、タスクリファレンス を参照。
Field resolution
継承/オーバーライドブロックはありません。各コンシューマー側の質問には単一の回答があります。
アイデンティティフィールド(
name、names、logos、colors、fonts、tone、voice、tagline、visual_guidelines、avatar): ブランドレベルの値が権威を持ちます。ハウスの値は参照されません。ブランドチームがブランドアイデンティティを所有します。
Authorized Operator Resolution
authorized_operators[] エントリは、ブランド、国、アクティビティ、時間でスコープできます。オペレーター関係を評価するコンシューマーは、現在時刻が valid_from より前、または valid_until 以降のとき、エントリを無視しなければなりません(MUST)。省略された有効性フィールドは、ハウスが機械可読な開始または終了境界を公開していないことを意味します。
scopes が省略された場合、コンシューマーはエントリを、リストされたブランドと国に対する後方互換の広範な認可として扱うべきです。scopes が存在する場合、オペレーターはリストされたアクティビティのみ、または明示的に all を含む場合はすべてのアクティビティについて認可されます。
authorized_operators[] はパブリッシャー側のインベントリ認可を置き換えません。委任またはネットワークインベントリについては、バイヤーは依然としてパブリッシャーの一致する adagents.json 認可を必要とします。ブランドファイルは誰がブランドまたはハウスを代表できるかを確立し、adagents.json は誰がパブリッシャーのインベントリを販売できるかを確立します。
コンプライアンスとガバナンスのフィールド: 解決される値はハウスレベルとブランドレベルの値の最も厳格なものです。ブランドはハウスのガバナンスアサーションを弱められません。より厳しい制約を追加できるだけです。次に適用されます。
data_subject_contestation— 両方の連絡先がデータ主体に提示されるべきです(SHOULD。コンシューマーはいずれかを使ってもよい。ブランドレベルはハウスレベルを置き換えない)compliance_policies、オーディエンス除外、規制カテゴリフラグ — 和集合として解決(より多くの制限が勝つ)
Acquisitions and reorganizations
既存のリダイレクトバリアントは M&A をネイティブに処理します。- ディール前:
dentsu.com/.well-known/brand.jsonは House Portfolio です。Dentsu ブランドの正準ドキュメントはhouse_domain: "dentsu.com"と言います。 - ディール成立: Dentsu の
brand.jsonが House Redirect →{ "house": "wpp.com" }に置き換えられます。WPP は買収したブランドを、運用継続のためのmanaged_by: "dentsu.com"とディール成立日に設定されたeffective_atとともにbrand_refs[]に追加します。 - ディール後: 依然として
house_domain: "dentsu.com"を指すリーフは、リダイレクトを通じて WPP に解決します。相互アサーション検証はリダイレクトチェーンをたどり(Conformance を参照)、保持されます。緊急のリーフ移行は不要です。
Adopting brand_refs[] for an existing portfolio
既存の House Portfolio パブリッシャー(今日インラインbrands[] 上)は移行する必要はありません。brand_refs[] は追加的でプルベースです — ブランドは、そのチームが自己公開を決定したときにのみ brands[] から移動します。
単一ブランドの移行パス:
- 子ブランドが自身のドメインで
/.well-known/brand.jsonを Brand Canonical Document として立ち上げ、house_domain: "<house>"を宣言します。 - ハウスチームが子のエントリを
brands[]から削除し、{ domain, brand_id, effective_at }をbrand_refs[]に追加します。brand_idは子が使う値に一致しなければなりません(MUST)。そうでなければ、クロス配列の一意性不変条件が将来の読者を助けません。 - クローラーが次のリフレッシュで相互アサーションを取得します。
contact.email にメールすべきです(SHOULD)。
AAO レジストリは今日両方の形状を消費し、brands[] から brand_refs[] に移動するブランドを再分類しません — brand_id が移行を通じた安定した識別子です。
Out of scope
単一ハウス、シングルホップの信頼モデルは、意図的に 4 つの形状をカバーしません。- 2 つの親を持つジョイントベンチャー(Disney 以前の Hulu、ファーマの JV、自動車パートナーシップ)。リーフは最大 1 つの
house_domainを持ちます。JV 構造は 1 つの正準親を選ぶか、持株エンティティを使わなければなりません。プロトコルは 2 親所有をモデル化しません。 - 不透明性を望む PE ロールアップとホワイトラベル取り決め。 相互アサーションは所有権を well-known URL で公開します。公開開示なしにブランドを運営したいホールドコは、既存のモノリシックな
brands[]形状(リーフドメインのクローラーに親を公開しない)を使えますが、相互アサーションは使えません。相互アサーションは不透明性を検証可能性と引き換えにします — それが設計です。 - 管轄ガバナンスの乖離(例: データ主体の争議ルールが米国親と異なるドイツの Marriott フランチャイジー)。最も厳格な解決は、ブランドレベルのパブリッシャーが制約を追加できるだけであることを意味します。規制の緩い管轄のブランドは、それに適用されないハウスレベルのルールを落とせません。回避策: ハウスが最も厳格な適用可能な地域ごとのルールを公開します。
- 静的な brand.json サーフェスとしての標準的なライセンス関係。
claim_type: "trademark"を伴うverify_brand_claimは、基礎となる関係が本物であるためlicensed_in/licensed_outを返せます — Marriott フランチャイジーはライセンスの下で MARRIOTT マークを使い、音楽カタログは領域ごとにライセンスアウトされ、管轄ライセンス分割(「CN でライセンス、他では自己管理」)は一般的です。ブランドエージェントは内部記録からこれらについて語れます。しかしbrand.json自体は、所有権のためのbrand_refs[]と並行する、標準的なライセンス関係の公開サーフェスをまだ持ちません。 既存の権利プロトコル(rights_agent、acquire_rights)は、標準的な宣言ではなくトランザクショナルなライセンス — ディールの交渉 — を処理します。このギャップは本物で、フォローアップとして追跡されています。verify サーフェスは、パートナーがそれらを消費する必要があるため状態を公開しますが、それらを支える静的ファイル基盤は権利プロトコルチームとともに別個の設計です。
brand.json はブランドアイデンティティのサーフェスです。コーポレート法務構造とライセンス関係の公開は、それぞれ独自の関心事です。
House definition
house オブジェクトはコーポレートエンティティを表します。Brand definition
brands 配列内の各ブランド:
Names Array
名前は言語コードでローカライズされます。Keller Types
マーケティング理論からのブランドアーキテクチャ分類:Extended color roles
colors オブジェクトは 5 つの標準ロール(primary、secondary、accent、background、text)を持ちますが、ブランドはより細かい粒度のために追加のロールを提供でき、また提供すべきです。スキーマは additionalProperties を通じて任意の追加カラーロールを受け入れます。
これらの拡張ロールは、クリエイティブエージェントが推測せずにテキスト階層とサーフェスレベルを区別するのに役立ちます。
Visual guidelines
visual_guidelines オブジェクトは、生成クリエイティブシステムがオンブランドのアセットを一貫して生成するために使える構造化ルールを提供します。これらはブランド定数です — キャンペーンごとに変わりません。
ビジュアルガイドラインは基本的なアイデンティティフィールド(
colors、fonts、logos)を補完します。colors はブランドパレットが何かを定義し、visual guidelines はそれをどう使うかを定義します。fonts はフォントファミリーを定義し、visual guidelines はタイプスケールを定義します。Photography
ブランド写真が選択または生成されるときにどう見えるべきかを制御します。Graphic style
ブランドグラフィックとイラストのビジュアル言語を定義します。flat_illustration、geometric、gradient_mesh、editorial_collage、hand_drawn、minimal_line_art、3d_render、isometric、photographic_composite。
Shapes
ビジュアルアイデンティティの一部として使われるブランドシェイプ:Iconography
アイコンスタイルシステムと使用ルール:Composition
オーバーレイ、テクスチャ、背景のレイアウトルール:none、subtle_grain、noise、paper、fabric、concrete。強度: low、medium、high。
背景タイプ: solid_color、gradient、blurred_photo、image、video、pattern、transparent。
Border radius
UI コンポーネントとレイアウト要素の名前付きボーダー半径プリセット。ボーダー半径は最も目立つブランド差別化要因の 1 つです — 大きな半径は温かく親しみやすく感じられ、小さいまたはゼロの半径は精密で編集的に感じられます。
5 つの標準レベルを超えて追加の名前付きプリセットを追加できます。
graphic_style.corner_radius はグラフィック/イラスト要素のデフォルト半径を定義します。border_radius は UI コンポーネントとレイアウト — ボタン、カード、入力、モーダル — の名前付きスケールを定義します。Elevation
要素がサーフェスから浮き上がって見える方法を定義する名前付きシャドウレベル。ブランドはエレベーションをアイデンティティとして使います — ドラマチックな多層シャドウを好むものもあれば、単一の拡散シャドウを使うものもあります。box-shadow 構文を使います。生成システムはこれらを直接適用できます。
追加の名前付きレベル(例:
dropdown、tooltip)を追加できます。
Spacing
一貫したレイアウトリズムのためのスペーシングシステム。ベースユニットと名前付きスケールにより、クリエイティブエージェントは推測せずに正しくスペースされたレイアウトを生成できます。scale オブジェクトは標準サイズ(xs、sm、md、lg、xl、2xl)をサポートし、追加の名前付き値(例: 3xl、section)を含められます。
Graphic elements
ブランドアイデンティティの一部である再利用可能な装飾的または構造的なビジュアル要素 — 破れた紙の端、ウォーターマーク、ディバイダー、背景パターン:Motion
動画、アニメーションディスプレイ、インタラクティブフォーマットのモーションとアニメーションルール:Logo placement
自動化されたクリエイティブ制作のためのロゴ配置とクリアスペースルール:Logo selection slots
ライトロゴカード、ダークロゴカード、プロファイルマーク、CTV エンドカード、コブランドロックアップ、マーケットプレイスリスティングなどの特定のサーフェスに対して、レンダラーが正しいロゴバリアントを選ぶ必要がある場合にlogos[].slots[] を使います。logos[].id は、可変のアセット URL に依存しない安定したターゲットをダウンストリームルールに与えます。
asset_group_id: "logo" を使います。プロダクトがそのスロットを format_options[].params.slots[].logo_slots[] で狭める場合、ビルダーは logos[].slots[] が要求されたスロットと交差する brand.json の logos[] から選択すべきです。フォーマットが required_logo_slots[] も宣言する場合、カバレッジの欠如は、黙って文章にフォールバックするのではなく、検証警告または承認マッピングとして表面化すべきです。
visual_guidelines.logo_usage_rules[] は、安定した logo_id に配置制約を適用できます。
Color constraints
アクセント専用の色、禁止された背景の組み合わせ、決して一緒に現れるべきでない色などの機械可読なカラー使用とペアリングルールのためにvisual_guidelines.color_constraints[] を使います。
color_ref は明示的な kind 識別子を使います: kind: "name" は colors{} のキーをルックアップし、kind: "value" はリテラルの hex カラーを運び、kind: "surface" は background、text、logo_background などのレイアウトサーフェスを識別します。
Mark lockups
コブランド、パートナー、スポンサー、プログラム、または副次マークのレイアウトルールのためにvisual_guidelines.mark_lockups[] を使います。これらのフィールドは、順序、スペーシング、セパレーター、サイズ比のガイダンスをクエリ可能にしながら、光学的バランシングをレイアウト/レンダーレビューに残します。
Tooling notes: ingesting brand books
ブランドガイド PDF からドラフトbrand.json を作成するツールは、アセット抽出とガイドライン解釈を分離すべきです。
決定的な抽出を使って候補アセット ID を生成します。
- 写真、モックアップ、ラスターアイコン、例のための埋め込み PDF 画像
- ベクターロゴ、マーク、カラースウォッチ、埋め込み画像ファイルでないロゴサンプルのためのレンダーページクロップ
logos[]、assets[]、colors、visual_guidelines ルールに分類します。モデルは既知の候補 ID にマップし戻すべきです。オリジナルのアセットバイトのソースとして扱うべきではありません。
ドラフト取り込み記録は、提案されたロゴエントリから証拠を指せます。
logos[] として直接公開しないでください。ソース PDF がホストされたアセット、オペレーター認可、または商標証拠を欠く場合、それはスキーマギャップではなく取り込み警告です。
Public hosted asset promotion
AAO ホストのブランドアセットは、レビュアーまたは検証済み所有者がパブリックなbrand.json 使用のためにプライベートアップロードを承認したケース用です。抽出のみでバイトが公開されることは決してありません。プライベート分析アーティファクトはパブリックアセット行とは別のままで、brand.json は承認後にのみパブリック URL を受け取ります。
推奨フロー:
- アップロードまたは抽出されたファイルを分析のためにプライベートに保存します。
- 正確な提案された
brand.jsondiff とともに候補をオペレーターに提示します。 - プロモーション前に明示的な承認を要求します。
- 承認されたバイトを安定したパブリック HTTPS URL にプロモートします。
- そのパブリック URL を
logos[]に書き込みます。
brand.json の外部で来歴メタデータを保持しなければなりません: オリジナルのファイル名、既知の場合のアップローダーユーザーと組織、ソースフロー、作成時刻、コンテンツタイプ、寸法、ハッシュ、パスが所有者証明・委任・コミュニティ提出のいずれか。モデレーションと所有者承認の状態は運用メタデータです。コンシューマーがそれらをパブリック URL からパースする必要はないはずです。
初期のプロモーション制限は意図的に保守的です: ロゴに必要な画像 MIME タイプのみを受け入れ(image/png、image/jpeg、image/webp、image/gif、およびサニタイズされた image/svg+xml)、アップロードを 5 MB に制限し、公開前にラスター寸法を検出し、SVG を積極的にサニタイズするか、サニタイザーがサーフェスで有効になるまで拒否します。プライベート署名付き URL、ファイルビューアーリンク、分析専用のオブジェクトパスは、公開された brand.json に現れてはなりません。
削除は URL を無関係なバイトに再利用するのではなく、パブリックアセット行をトゥームストーンすべきです。置換は新しいアセット URL を作成し、brand.json をそれを指すよう更新すべきです。以前に公開された URL は、キャッシュ安定性のために古い承認済みバイトを提供し続けるか、1 対 1 の後継がある場合は置換にリダイレクトするか、法的/セキュリティのテイクダウン後に 404 を返してもよいですが、同じ ID の下で異なるアセットを黙って提供してはなりません。
Colorways
色がどう連携するかを定義する名前付きカラーペアリング。クリエイティブブリーフが、すべての色を指定せずに「私の primary カラーウェイを使う」と参照できるようにします。Type scale
異なるテキストロールのサイズとウェイトを定義するタイポグラフィスケール:font フィールドは、ブランドの fonts オブジェクトで定義されたフォントロール("primary"、"secondary")を参照するか、フォントファミリー名を直接指定できます。
サイズがピクセルの場合、これらのサイズが設計された参照キャンバスを示すために base_width を使います。生成システムは他のキャンバスサイズについて比例的にスケールすべきです — 1080px 幅用に設計された 48px の見出しは、320px のモバイルリーダーボードで 14px にスケールします。
Asset libraries
管理されたアセットライブラリ(アイコンセット、イラストシステム、画像コレクション)への参照。URL は人間のアクセス用です — 人がブラウザで開けるブランドポータル、プレスキット、または DAM ランディングページ。color_guide は、ライブラリで使われるカラーパレットを生成システムに提供します — ライブラリ自体にアクセスせずにオンブランドのイラストやアイコンを生成するのに有用です。
Restrictions
ビジュアルの禁止事項とガードレール —tone.donts のビジュアル版。生成システムに何を避けるべきかを伝えます。
Trademarks
登録商標は、ハウスレベル(コーポレートマーク — 例: Nike, Inc. が所有する NIKE)またはブランドレベル(ブランド固有のマーク — 例: Converse が所有する CONVERSE)に現れます。両方の配列が有効なクレームです。それらの間の解決は和集合です。ライセンスイン / ライセンスアウト関係(MARRIOTT マークを使う Marriott フランチャイジー、領域ごとにライセンスされる音楽カタログなど)は、
claim_type: "trademark" を伴う verify_brand_claim を通じて今日ブランドエージェント経由でクエリ可能です。標準的なライセンス関係のための静的な brand.json 公開サーフェス(所有権のための brand_refs[] と並行する)は、権利プロトコルチームとともに将来の RFC です。下記の静的 trademarks[] 配列は所有権のみをカバーします。ライセンスの姿勢はエージェントから来ます。
クロス管轄の競合を持つホールドコ(異なる所有者の USPTO
CONVERSE 対 EUIPO CONVERSE)は、各登録を別個のエントリとして公開し、countries を使ってマークが適用される場所をスコープすべきです。
Property definition
プロパティはブランドに関連付けられたデジタルタッチポイントです。Property types
AdCP の property-type enum に一致します。websitemobile_appctv_appdesktop_appdoohpodcastradiostreaming_audio
Property relationships
プロパティはデフォルトでowned です — ブランドがプロパティを直接運営します。所有していないインベントリを販売するネットワークと SSP について、relationship フィールドは商業的取り決めを宣言します。
これは
sellers.json の AdCP 版です — オペレーターがどのパブリッシャーと連携するかの公開宣言です。委任またはネットワークパスについては、パブリッシャーが自身の adagents.json でエージェントの認可に一致する delegation_type を設定することで確認します。ファーストパーティインベントリについては、relationship: "owned" はオペレーターのインライン所有権宣言です。セルサイド実装は、オペレーターの brand.json クレームと、インベントリがパブリッシャー認可または委任の場合はパブリッシャーの一致する adagents.json 認可を必要とします。ステップバイステップのセルサイドパターンについては セラーセットアップ を、ネットワーク固有のガイダンスについては アドネットワーク を参照。
Resolution algorithm
ドメインを正準ブランドに解決するには:https://{domain}/.well-known/brand.jsonを取得します。- バリアントを確認します:
- authoritative_location: その URL から取得し、ステップ 2 から続行します。
- house(文字列): ハウスドメインから取得し、ステップ 2 から続行します。
- brand_agent: エージェント URL を返します — エージェントが権威を持ちます。
- House Portfolio(
houseオブジェクト +brands[]および/またはbrand_refs[]): インライン子については、properties[]またはidがクエリに一致するブランドを見つけます。ポインター子については、brand_refs[].domainをたどって一度解決します — たどったドキュメントは Brand Canonical Document でなければならず、決して別の House Portfolio であってはなりません(MUST)。 - Brand Canonical Document(トップレベルの
id+names): ドキュメントがブランドです。house_domainが存在する場合、ハウスのbrand.jsonを取得して、そのbrand_refs[]での相互応答を検証します(相互アサーション)。ハウス側自体が House Redirect の場合、比較する前にハウス側のリダイレクトチェーンをたどります。ブランドに存在しない場合、コーポレートレベルのフィールド(例:data_subject_contestation)をハウスから読みます。コンプライアンスフィールドについては、ハウスとブランドの最も厳格なものを解決します(Mutual-assertion trust model を参照)。
- 正準ブランド情報を返します。
Complete examples
Small Business
Enterprise with Agent
Multi-Brand Portfolio
Talent Agency with Rights
ライセンス可能な権利を持つアスリートブランドを管理するタレントエージェンシー:rights_agent フィールドは、MCP 呼び出しなしにクローラーに何がライセンス可能かを伝えます — 利用可能な用途、権利タイプ、国。バイヤーエージェントは「音声ライセンスに利用可能なオランダのアスリート」をレジストリで検索し、インデックスされた brand.json データからマッチを見つけられます。
Regional Domain Redirect
nike.cn/.well-known/brand.json 上:
Caching
推奨キャッシュ TTL:- 正準ファイル: 24 時間
- リダイレクトファイル: 24 時間
- 失敗したルックアップ: 1 時間
Conformance
これらの不変条件は、バリデーターとクローラーによって強制されなければなりません(MUST)。JSON スキーマはそれらを直接表現できません。 ポートフォリオ不変条件brand_idのクロス配列一意性。 特定のbrand_idは、同じハウスのbrands[]とbrand_refs[]の両方に現れてはなりません(MUST NOT)。パブリッシャーは 1 つを選ばなければなりません。brand_idの配列内一意性。 特定のbrand_idは、同じハウスのbrands[]内で一意で、brand_refs[]内で一意でなければなりません(MUST)。domainの配列内一意性。 各brand_refs[].domainは配列内で一意でなければなりません(MUST)。異なるbrand_id値で同じドメインを指す 2 つのエントリは未定義です — ハウスごと、ドメインごとに 1 つの正準ポインターしか存在できません。house_domainの配置。house_domainはbrands[]内のエントリに現れてはなりません(MUST NOT)。それは Brand Canonical Document のトップレベルフィールドです。インライン子は自身の親ポインターを運べません。
- 相互アサーションが関係信頼のエッジです。 コンシューマーは、一方的なクレームを通じて関係信頼(自動プロビジョニング、メンバー機能継承、課金可能なシート包含)を拡張してはなりません(MUST NOT)。相互アサーション(子の
house_domainが名付けられたハウスのbrand_refs[]エントリに一致)が正準の信頼エッジです。 - アイデンティティは TLS のみ。 リーフブランド自身のアイデンティティ属性(logos、colors、tone、tagline、visual_guidelines)は、相互アサーション状態に関係なく、リーフの TLS 提供ドキュメントのみに基づいて権威を持ちます。リーフのみの関係クレームはリーフのアイデンティティを無効にしません。
- ハウス側の House Redirect はたどらなければなりません(MUST)。 相互アサーションを検証するとき、名付けられたハウスの
brand.jsonが House Redirect の場合、コンシューマーはbrand_refs[]メンバーシップを比較する前にリダイレクトチェーン(3 ホップ制限まで)をたどらなければなりません(MUST)。そうでなければ、買収後のリーフが黙って信頼を失います。 - スタンドアロンは第三者クレームに勝る。
house_domainのない Brand Canonical Document は、それについての任意の第三者ハウスのbrand_refs[]クレームに関係なく、スタンドアロンです。リーフの沈黙が決定的です。(ここで一度述べられます。他の場所の記述的な文章はこの句に従います。) managed_byはディレクトリフィールドであり、信頼フィールドではありません。 コンシューマーは信頼や認可の決定にmanaged_byを使ってはなりません(MUST NOT)。managed_byによる集計(「BBH が管理するすべてを表示」)が意図された用途です — これは信頼アサーションではなく、ハウス横断の運用ディレクトリです。
- コンプライアンスフィールドは最も厳格なもの。 ガバナンスフィールド —
data_subject_contestation、compliance_policies、policy_categories、オーディエンス除外、規制カテゴリフラグ、およびハウスも公開するブランドレベルのdisclaimers[]を含む — について、解決される値はハウスレベルとブランドレベルの和集合/最も厳格なものです。ブランドレベルのパブリッシャーは、ハウスレベルのアサーションを弱めることに依存してはなりません(MUST NOT)。これは関係信頼とは異なります — 最も厳格なものは信頼ゲートではなく解決ルールです。 - エッジエイジング。 相互アサーションのエッジはエイジングされるべきです(SHOULD): コンシューマーは、パブリッシャー宣言の
brand_refs[].effective_at(または、ない場合はコンシューマーの最初の観察)と最後の成功した再検証の間のギャップがコンシューマーの選んだ TTL を超えるとき、エッジを一方的として扱うべきです(SHOULD)。AAO の参照クローラーは 180 日でエイジングします。コンシューマーは異なる選択をしてもかまいません(MAY)。
- リーフのみのエッジは通知をトリガーすべきです(SHOULD)。 コンシューマーが X 上の相互エントリなしに
house_domain: Xを主張するリーフに遭遇したとき、コンシューマーは、ハウスチームが相互応答を完了できるよう X のcontact.emailに通知すべきです(SHOULD)。通知する当事者は、フラッディングを避けるために{leaf, house}ペアごとにレート制限しなければなりません(MUST)。 - エージェント強化検証。 名付けられたハウスが
supported_tasksで関連するclaim_type(subsidiary / parent / property / trademark)とともにverify_brand_claimをアドバタイズするブランドエージェントを公開する場合、コンシューマーは、クロールベースの相互アサーション推論を実行することに加えてエージェントを呼び出すべきです(SHOULD)。信頼モデルは方向によって非対称です: 署名付きdisputed/not_oursは任意の相互応答クレームをオーバーライドします(拒否は一方的)。署名付きowned/pending_review/transferring/licensed_*は相互アサーション検証を置き換えません — 相互側が関係信頼を拡張する前に依然として確認しなければなりません。両側がブランドエージェントを持つ場合、相互アサーションは 2 つの署名付きエージェント呼び出し(ハウスのsubsidiary+ リーフのparent)を通じて完了します。クロールパスは、エージェントが到達不能またはunknownを返す場合のフォールバックです。メール通知の SHOULD は、ブランドエージェントのないハウスについて引き続き適用されます。完全な信頼表については Agent-augmented verification を参照。
Prior art
相互アサーションの信頼プリミティブは、IAB Tech Lab のads.txt と sellers.json の相互公開モデル — およびパターンがウェブバンドルからモバイルアプリにきれいに移行することを証明した app-ads.txt 拡張 — を反映しています。バイヤーは、両側が well-known URL で関係を公開する場合にのみ、セラーのリセラーとして信頼されます。同じ信頼形状、同じ非暗号的な「誰が誰について何を主張するか」の検証、部分的な公開に対する同じ一方的/未検証へのフォールバック。デプロイされた耐久性のある業界パターンです。
well-known URL に加えた構造化 JSON リソースディスカバリーの形状は ads.txt より前からあります — IETF の類似物については WebFinger(RFC 7033)と host-meta(RFC 6415)を参照。brand.json は RFC 8615 を通じてこの慣例を借用します。
AdCP 内では、プロベナンス検証者コントラクト(セラー公開 / バイヤー表明 / セラー確認)が、異なるフィールドファミリーに対して同じ構築ファミリーを使います。
Best practices
- シンプルに始める: 最小限の brand.json から始め、必要に応じて複雑さを追加する
- 子会社にはリダイレクトを使う: ブランドドメインをハウスドメインに指す
- すべてのプロパティをリストする: 地域ドメイン、アプリ、レガシードメインを含める
- 名前を最新に保つ: ローカライズされた名前と一般的なエイリアスを含める
- ビジュアルガイドラインは任意: 生成システムにオンブランドのアセットを一貫して生成させる必要があるときに追加する。カラーウェイと restrictions から始める — それらが最も高い即時のインパクトを持つ。
- ポートフォリオをリーンに保つ: 多くのブランドを持つハウスポートフォリオでは、必要なブランドにのみビジュアルガイドラインを含める。大きなポートフォリオのすべてのブランドに完全なビジュアルガイドラインを付けると、ファイルサイズが大幅に増加する。