Skip to main content
Brand Manifest は広告主を識別し、AdCP でブランドコンテキストを提供するための標準フォーマットです。パブリッシャーに 広告主が誰か を伝え(ポリシー順守とビジネス目的)、必要に応じてブランドガイドライン、アセット、商品カタログをクリエイティブ生成のために提供します。 ブランドマニフェストは JSON オブジェクトとしてインライン で渡すか、ホストされたマニフェストファイルへの URL 参照 で提供できます。

概要

ブランドマニフェストは、複雑な認可フローや繰り返しのデータ入力を不要にし、広告主を効率的に特定してブランドコンテキストを提供するために設計されています。次の情報を提供します。
  • 広告主のアイデンティティ: パブリッシャーが取引相手を把握(KYC/ポリシー準拠)
  • ブランドガイドライン: クリエイティブ生成のための色、フォント、トーン、ビジュアルアイデンティティ
  • アセットライブラリ: クリエイティブ組み立て用のロゴ、画像、動画
  • 商品カタログ: プロモーションターゲティング用の SKU や提供内容
  • 一貫した情報: すべてのリクエストで同じブランド情報を再利用

主な利点

  • 本人確認 (KYC): パブリッシャーが広告主を検証できます
  • プライバシーの透明性: 同意フロー用にプライバシーポリシーへのリンクを提供
  • 低フリクション: 名前または URL だけで開始し、必要に応じて拡張
  • キャッシュ可能: 同じブランドマニフェストを全リクエストで再利用
  • 標準化: すべての AdCP 実装で一貫したフォーマット
  • 柔軟: SMB からエンタープライズまで対応
  • AI 最適化: クリエイティブエージェントが取り込みやすい構造

ブランドマニフェストの渡し方

インライン JSON オブジェクト

ブランドマニフェストをリクエスト内に直接含めます。
{
  "brand_manifest": {
    "url": "https://bobsfunburgers.com",
    "name": "Bob's Fun Burgers",
    "colors": {
      "primary": "#FF6B35"
    }
  }
}

URL 文字列

ホストされたブランドマニフェストファイルを URL 文字列で参照します。
{
  "brand_manifest": "https://cdn.acmecorp.com/brand-manifest.json"
}
URL 先のマニフェストは brand-manifest.json スキーマに準拠している必要があります。 URL 参照のメリット:
  • 集中管理: ブランド情報を 1 か所で更新
  • バージョン管理: ガイドラインの変更履歴を追跡
  • ペイロード削減: 大きなマニフェストでも各リクエストが肥大化しません
  • CDN キャッシュ: エッジキャッシュで高速アクセス
  • 一貫性: すべてのキャンペーンとプラットフォームで同じマニフェスト

ユースケース

最小マニフェスト(営業エージェント / メディアバイのみ)

メディアバイに特化した営業エージェントを構築する場合、最小限のマニフェストを提供できます。ポリシー順守とビジネス目的のために広告主を示す必要はありますが、クリエイティブ生成や最適化機能を使わない限り詳細なブランド情報は不要です。 最小のインラインマニフェスト:
{
  "$schema": "https://adcontextprotocol.org/schemas/v2/core/brand-manifest.json",
  "name": "ACME Corporation",
  "url": "https://acmecorp.com"
}
URL を持つブランドならさらに簡潔に:
{
  "$schema": "https://adcontextprotocol.org/schemas/v2/core/brand-manifest.json",
  "name": "ACME Corporation",
  "url": "https://acmecorp.com"
}
最小のホスト型マニフェストを参照:
"https://acmecorp.com/.well-known/brand-manifest.json"
このミニマル構成で提供できるもの:
  • パブリッシャーの KYC / ポリシー順守のための広告主識別
  • レポーティングやトラッキングに必要な基本情報
  • 将来クリエイティブ生成が必要になった際の拡張性
色やフォント、ロゴ、商品カタログ、トーンなどはユースケースに必要になるまで省略できます。

SMB / スポットのクリエイティブ生成

小規模ビジネスや単発キャンペーンでクリエイティブ生成が必要な場合、URL 付きの最小マニフェストで十分なコンテキストを提供できます。
{
  "$schema": "https://adcontextprotocol.org/schemas/v2/core/brand-manifest.json",
  "name": "Bob's Fun Burgers",
  "url": "https://bobsfunburgers.com"
}
クリエイティブエージェントは URL からブランド情報を推測し、ロゴ、色、スタイルをサイトから取得できます。

エンタープライズ / 確立されたブランド

明確なガイドラインを持つブランドは、CDN 上にマニフェストをホストします。 https://cdn.acmecorp.com/brand-manifest.json でホストする例:
{
  "$schema": "https://adcontextprotocol.org/schemas/v2/core/brand-manifest.json",
  "url": "https://acmecorp.com",
  "name": "ACME Corporation",
  "logos": [
    {
      "url": "https://cdn.acmecorp.com/logo-square-dark.png",
      "tags": ["dark", "square"],
      "width": 512,
      "height": 512
    },
    {
      "url": "https://cdn.acmecorp.com/logo-horizontal-light.png",
      "tags": ["light", "horizontal"],
      "width": 1200,
      "height": 400
    }
  ],
  "colors": {
    "primary": "#FF6B35",
    "secondary": "#004E89",
    "accent": "#F7931E",
    "background": "#FFFFFF",
    "text": "#1A1A1A"
  },
  "fonts": {
    "primary": "Helvetica Neue",
    "secondary": "Georgia"
  },
  "tone": "professional and trustworthy",
  "tagline": "Innovation You Can Trust",
  "product_catalog": {
    "feed_url": "https://acmecorp.com/products.rss",
    "feed_format": "google_merchant_center"
  },
  "industry": "technology",
  "target_audience": "business decision-makers aged 35-55"
}
リクエストでの参照:
{
  "brand_manifest": "https://cdn.acmecorp.com/brand-manifest.json"
}

複数 SKU を持つ小売

大規模小売は商品フィードやアセットライブラリを提供できます。
{
  "$schema": "https://adcontextprotocol.org/schemas/v2/core/brand-manifest.json",
  "url": "https://bigretail.com",
  "name": "BigRetail",
  "product_catalog": {
    "feed_url": "https://bigretail.com/catalog.xml",
    "feed_format": "google_merchant_center"
  },
  "disclaimers": [
    {
      "text": "Prices and availability subject to change",
      "context": "pricing",
      "required": true
    }
  ]
}

URL を持たないブランド

ホワイトレーベル商品やローカルビジネス、B2B ブランドなど URL を持たないブランドでは、名前だけで識別できます。
{
  "$schema": "https://adcontextprotocol.org/schemas/v2/core/brand-manifest.json",
  "name": "Great Value",
  "colors": {
    "primary": "#0071CE",
    "secondary": "#FFC220"
  },
  "tone": "affordable and trustworthy"
}
名前のみブランドの一般例:
  • ホワイトレーベル/ストアブランド(例: “Great Value”, “Kirkland”)
  • サイトを持たないローカルビジネス
  • 公開サイトのない B2B ブランド
  • 親会社の URL 配下にあるサブブランド

ブランドマニフェストのスキーマ

Brand Manifest Reference(共用型)

スキーマ URL: /schemas/v2/core/brand-manifest-ref.json ブランドマニフェスト参照は次のいずれかを受け付ける共用型です。
  1. インラインオブジェクト: ブランドマニフェストの完全な JSON オブジェクト
  2. URL 参照: manifest_url フィールドでホストされたマニフェストを指すオブジェクト

Brand Manifest Object

スキーマ URL: /schemas/v2/core/brand-manifest.json インライン提供でも URL 先でも同じブランドマニフェストオブジェクトの構造です。

必須フィールド

url または name のいずれかが必須(両方指定してもよい)。
FieldTypeDescription
urlstring (uri)ブランドの主要 URL。コンテキストやアセット探索に利用
namestringブランドまたは事業者名(URL がない場合は必須)

任意フィールド

FieldTypeDescription
namestringブランドまたは事業者名
privacy_policy_urlstring (uri)消費者同意フローのためのプライバシーポリシー URL
logosLogo[]セマンティックタグ付きのブランドロゴアセット
colorsColorsブランドカラーパレット(hex)
fontsFontsブランドのタイポグラフィガイドライン
tonestringブランドボイスやメッセージトーン
taglinestringブランドタグラインやスローガン
assetsAsset[]明示的なアセットとタグを含むブランドアセットライブラリ
product_catalogProductCatalogEC 広告主向けの商品カタログ情報
disclaimersDisclaimer[]クリエイティブに必要な免責文言
industrystring業界・業種
target_audiencestring主なターゲットオーディエンスの説明
contactContactブランドの連絡先情報
metadataMetadataバージョンと更新履歴の管理

Logo オブジェクト

{
  url: string;           // ロゴアセットの URL
  tags?: string[];       // セマンティックタグ(例: "dark", "light", "square", "horizontal")
  width?: number;        // ロゴ幅(ピクセル)
  height?: number;       // ロゴ高さ(ピクセル)
}
一般的なタグ: "dark", "light", "square", "horizontal", "vertical", "icon", "wordmark", "lockup"

Colors オブジェクト

{
  primary?: string;      // プライマリブランドカラー (#RRGGBB)
  secondary?: string;    // セカンダリカラー (#RRGGBB)
  accent?: string;       // アクセントカラー (#RRGGBB)
  background?: string;   // 背景色 (#RRGGBB)
  text?: string;         // 文字色 (#RRGGBB)
}

Fonts オブジェクト

{
  primary?: string;      // メインフォントファミリー名
  secondary?: string;    // サブフォントファミリー名
  font_urls?: string[];  // ウェブフォントファイルへの URL
}

Disclaimer オブジェクト

{
  text: string;          // 免責文
  context?: string;      // 適用される文脈(例: "financial_products", "health_claims")
  required?: boolean;    // 表示が必須か(デフォルト: true)
}

Asset オブジェクト

{
  asset_id: string;                  // このアセットの一意 ID
  asset_type: string;                // アセット種別(image, video, audio, text など)
  url: string;                       // CDN ホストのアセットファイル URL
  tags?: string[];                   // アセット探索用タグ(例: "holiday", "lifestyle")
  name?: string;                     // 人が読みやすいアセット名
  description?: string;              // アセットの説明や利用メモ
  width?: number;                    // 画像/動画の幅(ピクセル)
  height?: number;                   // 画像/動画の高さ(ピクセル)
  duration_seconds?: number;         // 動画/音声の尺(秒)
  file_size_bytes?: number;          // ファイルサイズ(バイト)
  format?: string;                   // ファイル形式(例: "jpg", "mp4")
  metadata?: Record<string, any>;    // アセット固有の追加メタデータ
}

ProductCatalog オブジェクト

{
  feed_url: string;                  // 商品カタログフィードの URL
  feed_format?: string;              // フォーマット: "google_merchant_center" | "facebook_catalog" | "openai_product_feed" | "custom"
  categories?: string[];             // カタログで利用可能な商品カテゴリ
  last_updated?: string;             // カタログの最終更新日時 (ISO 8601)
  update_frequency?: string;         // 更新頻度
  agentic_checkout?: AgenticCheckout; // 任意のチェックアウトエンドポイント設定
}

AgenticCheckout オブジェクト

{
  endpoint: string;                  // チェックアウトセッション API のベース URL
  spec: string;                      // チェックアウト API 仕様(例: "openai_agentic_checkout_v1")
  supported_payment_providers?: string[]; // 決済プロバイダー(例: ["stripe", "adyen"])
}

AdCP タスクとの連携

create_media_buy

クリエイティブ生成用のコンテキストを渡すため、メディアバイ作成にブランドマニフェストを含めます。
{
  "buyer_ref": "campaign_2024_q1",
  "promoted_offering": "ACME Pro Widget",
  "brand_manifest": {
    "url": "https://acmecorp.com",
    "name": "ACME Corporation",
    "tone": "professional and innovative"
  },
  "packages": [...],
  "budget": {...}
}

build_creative

クリエイティブ生成の指針としてブランドマニフェストを渡します。
{
  "message": "Create a native ad highlighting our new product launch",
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "display_native"
  },
  "brand_manifest": {
    "url": "https://acmecorp.com",
    "logos": [
      {
        "url": "https://cdn.acmecorp.com/logo-square.png",
        "tags": ["square", "dark"]
      }
    ],
    "colors": {
      "primary": "#FF6B35",
      "secondary": "#004E89"
    },
    "tone": "professional and trustworthy"
  }
}

ベストプラクティス

1. シンプルに始め、必要に応じて拡張

まずは URL だけで開始し、サイトからの推論で足りない場合にのみフィールドを追加します。
// ✅ 最初の一歩
{
  "url": "https://mybrand.com"
}

// ✅ 必要に応じて詳細を追加
{
  "url": "https://mybrand.com",
  "logos": [...],
  "colors": {...}
}

2. ロゴにはセマンティックタグを使います

タグで適切なロゴバリエーションを選択しやすくします。
{
  "logos": [
    {"url": "...", "tags": ["dark", "square"]},      // 明るい背景向け
    {"url": "...", "tags": ["light", "square"]},     // 暗い背景向け
    {"url": "...", "tags": ["dark", "horizontal"]},  // 横長レイアウト
    {"url": "...", "tags": ["icon"]}                 // 小さな掲出向け
  ]
}

3. ブランドマニフェストをキャッシュして再利用

ブランドカードはキャッシュを前提に設計されています。URL 文字列を使うと自動的にキャッシュ可能です。
// ホストされたマニフェストを参照(URL でキャッシュ可能)
const brandManifestUrl = "https://cdn.acmecorp.com/brand-manifest.json";

// リクエスト間で再利用 - エージェント側でキャッシュできる
await createMediaBuy({ brand_manifest: brandManifestUrl, ... });
await buildCreative({ brand_manifest: brandManifestUrl, ... });
await buildCreative({ brand_manifest: brandManifestUrl, ... }); // 同じマニフェストで別クリエイティブ
インラインマニフェストを自分でキャッシュしても構いません。
const brandManifest = {
  name: "My Brand",
  url: "https://mybrand.com",
  logos: [...],
  colors: {...}
};

// キャッシュ済みマニフェストを再利用
await buildCreative({ brand_manifest: brandManifest, ... });

4. プライバシーと同意の取り扱い

ブランドマニフェストはプライバシーポリシーへのリンクを提供することで、AI プラットフォームが同意フローを実施しやすくします。

役割

  • データ共有の同意: 広告主(ブランド)がユーザーのデータを受け取る際に必要な明示的同意を得ます
  • 透明性: プラットフォームがブランドのプライバシーポリシーを提示できます
  • 信頼: ユーザーが自分のデータがどう扱われるか理解した上で取引できます

AI アシスタントとのデータ連携例

AI アシスタントがユーザーの代わりに広告主とやり取りする(フライト予約や購入など)場合、プラットフォームはブランドマニフェストのプライバシーポリシー URL を使って:
  1. 明示的同意を提示: 「Delta とデータを共有してもよいですか? [プライバシーポリシーを表示]」
  2. 情報に基づく選択を提供: ユーザーがデータ提供前に取り扱いを確認できます
  3. 機械可読な規約を支援: MyTerms/IEEE P7012 と併用し、自動化されたプライバシー交渉をサポート

プライバシーポリシー付きの例

{
  "$schema": "https://adcontextprotocol.org/schemas/v2/core/brand-manifest.json",
  "name": "Delta Airlines",
  "url": "https://delta.com",
  "privacy_policy_url": "https://delta.com/privacy"
}

MyTerms の検出

IEEE P7012 (MyTerms) を実装する広告主の場合、AI プラットフォームは広告主ドメイン(例: /.well-known/myterms)から機械可読なプライバシー規約を検出できます。ブランドマニフェストの privacy_policy_url は人が読めるフォールバック兼、明示的同意の提示先として機能します。

エージェント主導のコマース連携

ブランドマニフェストの product_catalog フィールドにより、AI コマースプラットフォームと統合できます。AI エージェントは商品を探索し、ユーザーの代わりに購入を完了できます。

OpenAI Commerce

OpenAI の Commerce 仕様 を実装するマーチャント向けに、ブランドマニフェストがブリッジとなります。
{
  "$schema": "https://adcontextprotocol.org/schemas/v2/core/brand-manifest.json",
  "name": "Shop Example",
  "url": "https://shopexample.com",
  "privacy_policy_url": "https://shopexample.com/privacy",
  "product_catalog": {
    "feed_url": "https://shopexample.com/products.jsonl.gz",
    "feed_format": "openai_product_feed",
    "update_frequency": "daily",
    "agentic_checkout": {
      "endpoint": "https://api.shopexample.com/checkout_sessions",
      "spec": "openai_agentic_checkout_v1",
      "supported_payment_providers": ["stripe", "adyen"]
    }
  }
}
OpenAI Commerce で重要なフィールド:
FieldDescription
feed_format: "openai_product_feed"OpenAI Product Feed 仕様 に準拠していることを示す
agentic_checkout.endpointOpenAI Agentic Checkout API のベース URL
agentic_checkout.specチェックアウト仕様のバージョン識別子

フィードフォーマットの対応付け

既存の Google Merchant Center フィードがある場合、主要フィールドの対応は次の通りです。
OpenAI FieldGoogle Merchant CenterNotes
item_idid1 対 1 で対応
titletitle1 対 1 で対応
descriptiondescription1 対 1 で対応
urllink1 対 1 で対応
brandbrand1 対 1 で対応
pricepriceOpenAI は数値 + 通貨コードを使用
availabilityavailability同じ列挙値
image_urlimage_link1 対 1 で対応
is_eligible_searchN/AOpenAI 固有のフラグ
is_eligible_checkoutN/AOpenAI 固有のフラグ

進化とバージョニング

ブランドカードは metadata.version フィールドでバージョン管理します。
{
  "$schema": "https://adcontextprotocol.org/schemas/v2/core/brand-manifest.json",
  "name": "Brand Name",
  "url": "https://brand.com",
  "metadata": {
    "version": "2.1",
    "updated_date": "2024-03-15T10:00:00Z"
  }
}
バージョン更新の目安:
  • Patch (2.0.1): タイポ修正、連絡先更新
  • Minor (2.1.0): 新しいアセット追加、色の更新
  • Major (3.0.0): 完全なリブランディング、アイデンティティ刷新

brand_guidelines からの移行

build_creative で従来の brand_guidelines を使っている場合: Before (旧仕様):
{
  "brand_guidelines": {
    "colors": ["#FF6B35", "#004E89"],
    "fonts": ["Helvetica Neue"],
    "tone": "professional"
  }
}
After (Brand Manifest):
{
  "brand_manifest": {
    "url": "https://brand.com",
    "colors": {
      "primary": "#FF6B35",
      "secondary": "#004E89"
    },
    "fonts": {
      "primary": "Helvetica Neue"
    },
    "tone": "professional"
  }
}

関連ドキュメント