Skip to main content
Carlos を紹介しよう。アムステルダムの中規模代理店 Pinnacle Media でプログラマティックを担当しています。クライアントの Bistro Oranje — オランダ全土に展開中のステーキハウスチェーン — は次のキャンペーンに有名人アスリートを起用したい。ストック映像でも似た人でもない。AIツールが広告に生成できるリアルな、ライセンスされたオランダ人アスリートの肖像と音声です。 問題は: 利用可能なタレントを見つけ、権利を交渉し、AI ツールの承認を取得し、使用状況を追跡する — これをすべてエージェント経由で、プログラマティックの速度で、どうやって行うか? このウォークスルーは Carlos をキャンペーンブリーフからライブ配信まで — そして途中で事態が変わったときに何が起こるかまで追う。 7ステップのワークフロー:
  1. ブリーフ — キャンペーンが必要なものを定義します
  2. 発見brand.json を取得して権利エージェントを見つける
  3. 検索get_rights で利用可能なタレントをクエリ
  4. 取得acquire_rights で拘束力のあるリクエストを送信
  5. 承認 — 承認、拒否、または保留パスを処理します
  6. 生成 — ブランドに沿った広告を作成して配信
  7. 管理 — キャンペーンを延長、一時停止、または中止します
Carlos at his desk reviewing the Bistro Oranje campaign brief, with restaurant brand imagery on one screen and athlete photos on another

ステップ1: ブリーフ

Bistro Oranje はオランダ全土にわたるサマーキャンペーンの顔としてオランダのオリンピックアスリートを求めています。動画広告、ディスプレイバナー、音声スポット。予算: 権利に EUR 5,000、プラスクリエイティブ制作費とメディア費用。キャンペーンは6月から8月まで。 Carlos はメディアバイイングで AdCP を使ったことがあります。権利ライセンスも同じ方法で機能する — バイヤーエージェントは権利エージェントと同じプロトコル、同じツールで話す。
Carlos が言うことプロトコルがそれを呼ぶもの
「フードブランド向けのオランダ人アスリートを見つけて」自然言語 query を含む get_rights
「肖像と音声でいくら?」get_rights レスポンスの pricing_options
「オランダのみで3ヶ月確定して」キャンペーン日程と国を含む acquire_rights
「クリエイティブツールが生成できるようにキーを送って」acquire_rights レスポンスの generation_credentials
「タレントの事務所がクリエイティブを承認する必要がある」approval_webhook 経由の creative-approval-request
「9月まで延長が必要」新しい end_date を含む update_rights
「タレントが怪我をした — すべて引き上げて」revocation_webhook への取り消し通知

ステップ2: ブランドを発見します

Carlos のバイヤーエージェントはすべての AdCP インタラクションが始まる場所から開始する: brand.json。エージェントは https://lotientertainment.com/.well-known/brand.json を取得し、アスリートのロスターを管理するタレントエージェンシーを見つける。 A buyer agent robot following a glowing trail from a restaurant website to a brand.json file floating in the air, revealing identity data like colors, logos, and tone rights_agent フィールドは MCP 呼び出しをする前に、バイヤーエージェントが知る必要があるすべてを伝える — ライセンス可能なもの、権利のタイプ、どこで。
{
  "$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"],
      "rights_agent": {
        "url": "https://rights.lotientertainment.com/mcp",
        "id": "loti_entertainment",
        "available_uses": ["likeness", "voice", "endorsement"],
        "right_types": ["talent"],
        "countries": ["NL", "BE", "DE"]
      }
    }
  ]
}
バイヤーエージェントは get_brand_identity も呼び出してビジュアルアセットとトーンガイドラインを取得します。これらはクリエイティブツールがアスリートを起用したブランドに沿った広告を生成する際に後で必要になります。
{
  "brand_id": "daan_janssen",
  "fields": ["logos", "colors", "tone", "visual_guidelines"]
}
これにより高解像度の写真、ブランドカラー、外見ガイドラインが返される — クリエイティブエージェントが正しく見える広告を生成するために必要なすべて。

ステップ3: タレントを検索します

Carlos のエージェントが権利エージェントで get_rights を呼び出す。Carlos は平易な言語で必要なものを説明します。ドロップダウンメニューなし、カテゴリーコードなし — エージェントが意図を理解します。 A catalog display showing talent cards with availability indicators, pricing tags, and geographic coverage maps, like a talent agency's digital showcase リクエスト:
{
  "query": "Dutch athlete available for food and restaurant brands in the Netherlands, budget around EUR 5000 for 3 months",
  "uses": ["likeness", "voice"],
  "buyer_brand": {
    "domain": "bistrooranje.nl"
  },
  "countries": ["NL"],
  "right_type": "talent",
  "include_excluded": true
}
include_excluded: true フラグは権利エージェントに、そのままではライセンスできないタレントも理由と代替案とともに返すよう求める。このフラグなしでは、レスポンスには利用可能なタレントのみが含まれます。 レスポンスは Daan Janssen を92%マッチとして返す — オランダ国籍、フードカテゴリーに競合なし、予算に合致。2つの価格オプション: インプレッションあたり EUR 3.50 の CPM、または10万インプレッション上限付き EUR 1,500/月の定額制。レスポンスはまた、オランダのフードカテゴリーで独占権があるため Emma van Dijk が除外されており、代替マーケットの代替案が提示されていることを示します。
{
  "rights": [
    {
      "rights_id": "loti_dj_talent_2026",
      "brand_id": "daan_janssen",
      "name": "Daan Janssen",
      "description": "Dutch Olympic speed skater, 2x gold medalist. Available for food, lifestyle, and fitness brands.",
      "right_type": "talent",
      "match_score": 0.92,
      "match_reasons": [
        "Dutch nationality matches geographic request",
        "No food category exclusivity conflicts",
        "Budget aligns with available pricing options"
      ],
      "available_uses": ["likeness", "voice", "endorsement"],
      "countries": ["NL", "BE", "DE"],
      "exclusivity_status": {
        "available": true,
        "existing_exclusives": [
          "Exclusive commitment in sportswear category (NL, BE, DE)"
        ]
      },
      "pricing_options": [
        {
          "pricing_option_id": "dj_cpm_likeness_voice",
          "model": "cpm",
          "price": 3.50,
          "currency": "EUR",
          "uses": ["likeness", "voice"],
          "description": "Likeness and voice, per-impression pricing"
        },
        {
          "pricing_option_id": "dj_flat_monthly",
          "model": "flat_rate",
          "price": 1500,
          "currency": "EUR",
          "uses": ["likeness", "voice"],
          "period": "monthly",
          "impression_cap": 100000,
          "overage_cpm": 4.00,
          "description": "Monthly flat rate with 100K impression cap"
        }
      ],
      "content_restrictions": [
        "No depiction in competitive sports contexts",
        "Alcohol adjacency prohibited",
        "Creative approval required for video formats"
      ]
    }
  ],
  "excluded": [
    {
      "brand_id": "emma_van_dijk",
      "name": "Emma van Dijk",
      "reason": "Exclusive commitment in food and beverage category (NL)",
      "suggestions": [
        "Available for food brands in BE and DE markets",
        "Exclusivity expires 2026-12-31 — available in NL from January 2027"
      ]
    }
  ]
}
Carlos のエージェントは Daan Janssen の2つの価格オプションを確認します。インプレッションごとのモデルはボリュームが予測できない場合に機能します。定額月額制は計画されたキャンペーンに適している — EUR 1,500/月・10万インプレッション上限は3ヶ月のキャンペーン全体で EUR 4,500、予算内。 excluded 配列は Emma van Dijk がオランダのフードブランドで利用できないことを示しているが、代替案は彼女がベルギーとドイツで利用可能、または2027年1月からオランダでも利用可能であることを Carlos のエージェントに伝える。代替案がある拒否は実行可能 — エージェントは調整して再試行できます。

ステップ4: 権利を取得します

Carlos はオプションを確認して定額月額制を選ぶ。バイヤーエージェントが acquire_rights を送信する — 拘束力のある契約上のリクエスト。 Two robots, a buyer agent and a brand agent, shaking hands over a glowing contract document with terms floating above it — dates, geography, and pricing Carlos のエージェントは定額月額制の価格オプション、キャンペーン日程(6月から8月)、取り消しとプッシュ通知のウェブフック、安全な再試行のための冪等性キーを含む acquire_rights を送信します。
{
  "rights_id": "loti_dj_talent_2026",
  "pricing_option_id": "dj_flat_monthly",
  "buyer": {
    "domain": "bistrooranje.nl"
  },
  "campaign": {
    "description": "Summer steakhouse campaign featuring Daan Janssen in video, display, and audio ads promoting Bistro Oranje locations across the Netherlands",
    "uses": ["likeness", "voice"],
    "countries": ["NL"],
    "format_ids": [
      { "agent_url": "https://creatives.pinnaclemedia.com", "id": "video_16x9_30s" },
      { "agent_url": "https://creatives.pinnaclemedia.com", "id": "display_300x250" }
    ],
    "estimated_impressions": 250000,
    "start_date": "2026-06-01",
    "end_date": "2026-08-31"
  },
  "revocation_webhook": {
    "url": "https://api.pinnaclemedia.com/webhooks/revocation",
    "auth": {
      "type": "bearer",
      "token": "whk_pinnacle_abc123"
    }
  },
  "push_notification_config": {
    "url": "https://api.pinnaclemedia.com/webhooks/rights-updates",
    "auth": {
      "type": "bearer",
      "token": "whk_pinnacle_def456"
    }
  },
  "idempotency_key": "bistro-dj-summer-2026-v1"
}
3つの結果が考えられます。 Carlos のエージェントはクリエイティブの制作を開始するために必要なすべてを取得します: Midjourney(肖像)と ElevenLabs(音声)のキー、すべての広告の法的開示テキスト、タレントの承認のためにクリエイティブを送信するリンク。月間上限の10万インプレッションは3ヶ月の条件にわたる合計キャンペーン上限の30万に変換されます。
{
  "rights_id": "loti_dj_talent_2026",
  "status": "acquired",
  "brand_id": "daan_janssen",
  "terms": {
    "pricing_option_id": "dj_flat_monthly",
    "amount": 1500,
    "currency": "EUR",
    "period": "monthly",
    "uses": ["likeness", "voice"],
    "impression_cap": 100000,
    "overage_cpm": 4.00,
    "start_date": "2026-06-01",
    "end_date": "2026-08-31"
  },
  "generation_credentials": [
    {
      "provider": "midjourney",
      "rights_key": "rk_mj_dj_2026_bistro_7f3a9b",
      "uses": ["likeness"],
      "expires_at": "2026-09-01T00:00:00Z"
    },
    {
      "provider": "elevenlabs",
      "rights_key": "rk_el_dj_2026_bistro_4e8c1d",
      "uses": ["voice"],
      "expires_at": "2026-09-01T00:00:00Z"
    }
  ],
  "restrictions": [
    "No depiction in competitive sports contexts",
    "Alcohol adjacency prohibited",
    "Creative approval required for video formats"
  ],
  "disclosure": {
    "required": true,
    "text": "Features AI-generated likeness of Daan Janssen, used under license from Loti Entertainment."
  },
  "approval_webhook": {
    "url": "https://rights.lotientertainment.com/api/creative-approval",
    "auth": {
      "type": "bearer",
      "token": "appr_loti_dj_2026_9x4k"
    }
  },
  "usage_reporting_url": "https://rights.lotientertainment.com/api/usage",
  "rights_constraint": {
    "rights_id": "loti_dj_talent_2026",
    "rights_agent": {
      "url": "https://rights.lotientertainment.com/mcp",
      "id": "loti_entertainment"
    },
    "valid_from": "2026-06-01T00:00:00Z",
    "valid_until": "2026-09-01T00:00:00Z",
    "uses": ["likeness", "voice"],
    "countries": ["NL"],
    "impression_cap": 300000,
    "right_type": "talent",
    "verification_url": "https://rights.lotientertainment.com/verify/loti_dj_talent_2026"
  }
}

ステップ5: 承認と拒否

すべてのリクエストがすぐに承認されるわけではありません。プロトコルは他の2つのパスを処理します。 Split panel showing two paths: left side has a golden key credential being handed over for an approved request; right side shows a rejected stamp with two branches — one looping back with a lightbulb for suggestions, another with a final X

承認待ち

一部のリクエストは人間のレビューが必要 — タレントのマネジメント、法務チーム、またはアスリート本人。権利エージェントは推定タイムラインとともに pending_approval を返します。
{
  "rights_id": "loti_dj_talent_2026",
  "status": "pending_approval",
  "brand_id": "daan_janssen",
  "detail": "Video format requests require creative concept review by talent management",
  "estimated_response_time": "48h"
}
決定が下されると、権利エージェントが push_notification_config URL にウェブフックを送信します。バイヤーエージェントはポーリングしません。

代替案付きの拒否(実行可能)

リクエストがそのままでは対応できないが、バイヤーが調整できる場合、拒否に suggestions が含まれます。その存在がシグナル — 代替案がある場合、拒否は修正可能です。
{
  "rights_id": "loti_dj_talent_2026",
  "status": "rejected",
  "brand_id": "daan_janssen",
  "reason": "Requested dates conflict with an existing exclusivity commitment in the food category for this market",
  "suggestions": [
    "Available in NL from 2026-09-01 onward",
    "Available immediately in BE and DE markets",
    "Consider likeness-only (without voice) — available at reduced rate"
  ]
}
Carlos のエージェントは修正できる — 日程をずらす、地域を変える、または音声権利を外す — そして再送信します。

代替案なしの拒否(最終)

代替案がない場合、そのタレントとキャンペーンの組み合わせに対して拒否は最終的です。
{
  "rights_id": "loti_dj_talent_2026",
  "status": "rejected",
  "brand_id": "daan_janssen",
  "reason": "This request does not meet the talent's current licensing criteria"
}
suggestions フィールドなし。バイヤーエージェントは次に進む。理由が意図的に曖昧な場合がある — 事務所はプライベートなビジネスロジックを公開することなくバイヤーエージェントが結果を理解するのに十分なサニタイズされた理由を提供します。
この時点で Carlos はタレントをライセンスしてクリエイティブを生成する準備ができています。次のセクションは取得後の生成、配信、ライフサイクル管理について説明します。

自分で試す

バイヤー認定プログラムを通じてプロトコルをハンズオンで学ぶ。

広告主向け

バイヤーの視点から権利ライセンスがどのように機能するか。

ステップ6: 生成と配信

資格情報を手に入れた Carlos のクリエイティブツールが動き始める。Midjourney の資格情報が肖像を生成します。ElevenLabs の資格情報が音声を生成します。各プロバイダーは生成時に rights_key を検証する — 資格情報自体が認可です。 Carlos reviewing AI-generated ads on his screen — a display banner and video still featuring the licensed athlete, with a verification badge and shield icon

クリエイティブ承認

動画フォーマットでは、コンテンツ制限により配信前の承認が必要です。クリエイティブエージェントが完成した広告を approval_webhook に送信します。
{
  "rights_id": "loti_dj_talent_2026",
  "creative_id": "bistro_summer_video_01",
  "creative_url": "https://cdn.pinnaclemedia.com/creatives/bistro_summer_video_01.mp4",
  "creative_format": {
    "agent_url": "https://creatives.pinnaclemedia.com",
    "id": "video_16x9_30s"
  },
  "description": "30-second video spot featuring Daan Janssen recommending Bistro Oranje summer menu"
}

クリエイティブマニフェストの権利制約

ライセンスされたタレントを使用するすべてのクリエイティブは、マニフェスト内に acquire_rights レスポンスの rights_constraint を含む — バイヤーは手動で構築しません。単一の広告は異なる権利保有者からのタレント肖像と音楽を組み合わせることができ、それぞれ異なる有効期間と地理的制限を持ちます。ダウンストリームの参加者(SSP、検証ベンダー)は配信前に付与がまだアクティブであることを確認するために verification_url にアクセスします。

使用状況報告

インプレッションは請求と上限管理のために権利エージェントに報告されます。 条件のインプレッション上限(月間10万)はデフォルトではソフト上限です。キャンペーンがそれを超えた場合、追加インプレッションは overage_cpm レート(EUR 4.00)で請求されます。権利エージェントは累積使用状況を追跡し、上限に近づいたらバイヤーに通知できます。

ステップ7: ライフサイクルは続く

権利は静的ではありません。キャンペーンは変化し、契約は延長され、時には問題が起こる。 Timeline view showing the full rights lifecycle: an active campaign with an impression counter ticking, a pause and update midstream, and a revocation alert notification appearing on Carlos's screen

権利の更新

キャンペーン途中で Bistro Oranje は9月まで延長したい。Carlos のエージェントが update_rights を呼び出す。
{
  "rights_id": "loti_dj_talent_2026",
  "end_date": "2026-09-30",
  "impression_cap": 150000,
  "idempotency_key": "bistro-dj-extend-sept-v1"
}
レスポンスには更新された条件と新しい有効期限で再発行された生成資格情報が含まれます。古い資格情報は重複期間中も機能し続ける — クリエイティブ配信に隙間はない。 キャンペーンを一時停止する必要がある場合(タレントの怪我、ブランドの問題、季節的な休止)、エージェントは paused: true を設定できます。資格情報は停止されます。再開するには paused: false を設定します。

自然な有効期限切れ

キャンペーンが終了して valid_until に達すると、資格情報は自動的に期限切れとなります。生成リクエストは機能しなくなります。どちらの側のアクションも不要。

取り消し

タレントの事務所が権利を取り消す必要がある場合 — スキャンダル、契約違反、法的問題 — バイヤーの revocation_webhook に取り消し通知を POST します。
{
  "notification_id": "rev_loti_dj_2026_001",
  "rights_id": "loti_dj_talent_2026",
  "brand_id": "daan_janssen",
  "reason": "Rights revoked due to updated talent representation terms",
  "effective_at": "2026-07-15T18:00:00Z"
}
バイヤーは受領を確認します。通知の配信に失敗した場合、権利エージェントは自動的に再試行します。 effective_at が将来の時刻の場合、バイヤーはクリエイティブ配信を終了するための猶予期間を持ちます。現在の時刻の場合、取り消しは即時 — 今すぐ配信を停止します。 部分的な取り消しもサポートされています。通知に revoked_uses が含まれている場合、それらの使用のみ取り消されます。付与の残りはアクティブのままです。

確認できたこと

ブランドプロトコルは探索(brand.json)からライセンス(get_rightsacquire_rights)、ライフサイクル管理(update_rights、取り消しウェブフック)まで権利を処理します。すべてのステップでバイヤーエージェントがすでに使用している同じ MCP トランスポートを使用します。権利制約はクリエイティブと一緒に伝わる — サプライチェーンのすべての参加者が配信前に検証できます。
Bistro Oranje のキャンペーンが7月の途中で、Daan Janssen がベルギーのフードブランドを含む新しいスポーツウェアの独占契約に署名したことがわかった。Carlos のキャンペーンはオランダのみで実施されています。Carlos は何かする必要があるか?なぜか?考えるべきこと: 権利付与における地理的スコーピング、既存の独占権と新しい独占権の違い、Carlos の acquire_rights 条件の countries フィールドが実際にカバーするもの。

さらに深く

brand.json 仕様

brand.json ファイル形式の完全な技術仕様。

広告主向け

バイヤーの視点から権利ライセンスがどのように機能するか。

権利保有者向け

AdCP がタレント権利を保護してマネタイズする方法。

ブランドエージェントの構築

アイデンティティと権利を提供するブランドエージェントを実装します。

get_rights

価格と空き状況付きでライセンス可能なタレントを検索します。

acquire_rights

拘束力のあるリクエストを送信して生成資格情報を受け取ります。

update_rights

既存の権利付与を変更する — 延長、一時停止、調整。

認定

バイヤー認定を取得してプロトコルをハンズオンで学ぶ。