> ## 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.

# AI アシスタント向け TMP

> TMP が従来のアドサーバーなしに AI チャットとアシスタントのサーフェスの収益化をどう可能にするか。

# AI アシスタント向け TMP

AI アシスタントは根本的に新しい広告サーフェスを表します。従来の意味でのインプレッションはありません — スポンサーコンテンツは会話レスポンスに織り込まれます。アドサーバーはありません — プラットフォームの言語モデルがレスポンスを生成します。そしてバイヤーに「この会話で何がスポンサーされるべきか？」を尋ねる標準プロトコルはありません。

TMP がそのプロトコルを提供します。

## 今日どう機能するか

会話を収益化するほとんどの AI プラットフォームは次のいずれかです:

* 単一のアドネットワークと提携しすべての収益化決定を委譲する
* 特定の広告主に結びついた独自のスポンサーシップロジックを構築する
* 会話をまったく収益化しない

AI プラットフォームが、どのバイヤーエージェントが関連するパッケージを持つかを発見し、特定の会話コンテキストで何をアクティベートするかを彼らに尋ね、彼らの好みをレスポンスに組み込む — すべてユーザープライバシーを保護しながら — 標準的な方法はありません。

## Context Match

ユーザーが会話でメッセージを送るとき、AI プラットフォームはレスポンスを生成する前に Context Match リクエストを送ります:

```json theme={null}
{
  "type": "context_match_request",
  "request_id": "ctx-a1b2c3d4",
  "property_rid": "01916f3a-f8cb-7000-8000-000000000050",
  "property_id": "chatplatform-assistant",
  "property_type": "ai_assistant",
  "placement_id": "chat-inline-recommendation",
  "seller_agent_url": "https://chatplatform.example",
  "artifact_refs": [
    { "type": "custom", "value": "turn:b3c9e2" }
  ],
  "context_signals": {
    "topics": ["479", "483", "592"],
    "taxonomy_source": "iab",
    "taxonomy_id": 7,
    "sentiment": "positive",
    "keywords": ["sneakers", "running", "recommendations"],
    "language": "en",
    "content_policies": ["csbs"],
    "summary": "User asking for sneaker recommendations for running and casual wear"
  },
  "geo": { "country": "US" }
}
```

会話ターンは一時的です — バイヤーが独立して解決できる公開参照はないため、`artifact_refs` は通常不透明なターン識別子（例: `turn:b3c9e2`）に限られます。プラットフォームは、バイヤーが生の会話を見ずに関連性を評価できるよう、事前計算された分類器出力（トピック、センチメント、キーワード、summary）を伴う `context_signals` を送ります。ユーザーアイデンティティは存在しません。プラットフォームは、コンテンツを直接評価するバイヤー向けに完全な会話を `artifact` として送ることもできます — コンテンツ標準評価に使われるのと同じアーティファクトスキーマ。

バイヤーエージェントはオファーで応答します:

```json theme={null}
{
  "type": "context_match_response",
  "request_id": "ctx-a1b2c3d4",
  "offers": [
    {
      "package_id": "pkg-sneaker-reco",
      "brand": { "domain": "apexathletics.example.com", "brand_id": "apex_runners" },
      "price": { "amount": 12.50, "currency": "USD", "model": "cpm" },
      "summary": "Apex Classic Low + Runner X — free shipping this month",
      "creative_manifest": {
        "format_id": { "agent_url": "https://chatplatform.example.com", "id": "sponsored_recommendation" },
        "assets": {
          "headline": { "content": "Trending for spring" },
          "body": { "content": "Apex Classic Low — clean lines, tons of colorways. Free shipping this month." },
          "product_catalog": { "catalog_id": "catalog-sneakers", "ids": ["sku-classic-low", "sku-runner-x"] }
        }
      },
      "macros": {
        "click_url": "https://apexathletics.example.com/classic-low?utm_source=chatplatform"
      }
    }
  ],
  "signals": {
    "segments": ["sneaker_enthusiast"],
    "targeting_kvs": [{ "key": "product_affinity", "value": "sneakers" }]
  }
}
```

バイヤーのオファーは `package_id`（必須）と任意フィールド: `brand`、`price`、`summary`、`creative_manifest`、`macros` を含みます。AI アシスタントについては、クリエイティブマニフェストはリアルタイムパスでインラインで送れるほど小さいです。マニフェストは、プラットフォームが会話に織り込めるテキストと参照するカタログアイテムを運びます。`summary` は、スポンサーコンテンツを組み込むかを決める前にプラットフォームが関連性を判断するのを助けます。

## Identity Match

プラットフォームはセッショントークンとプラットフォームの `seller_agent_url` を伴う Identity Match リクエストを送ります。バイヤーは `seller_agent_url` からアクティブなパッケージセットを解決します。プラットフォームが（下記のように）`package_ids` を明示的に送るとき、構成は現在のページと独立でなければなりません（MUST） — all-active（プラットフォームでのこのバイヤーのすべてのアクティブパッケージ）または fuzzed（バイヤーが黙って落とす合成の存在しない ID でパディングされたランダムサンプル）のいずれか。ページ固有のサブセットは禁止されています — それはバイヤーがパッケージセットを比較してこのリクエストを context match と相関させることを許します:

```json theme={null}
{
  "type": "identity_match_request",
  "request_id": "id-e5f6g7h8",
  "seller_agent_url": "https://ai-assistant.example",
  "identities": [
    { "user_token": "tok_session_k2f8", "uid_type": "publisher_first_party" }
  ],
  "package_ids": ["pkg-sneaker-reco", "pkg-fashion-native", "pkg-athletic-wear", "pkg-outdoor-gear", "pkg-accessories-promo", "pkg-seasonal-sale"]
}
```

バイヤーは適格なパッケージの ID と TTL で応答します。バイヤーはフリークエンシーキャップ、オーディエンスメンバーシップ、その他のシグナルから適格性を計算します — 理由はパブリッシャーにとって不透明です。

```json theme={null}
{
  "type": "identity_match_response",
  "request_id": "id-e5f6g7h8",
  "eligible_package_ids": [
    "pkg-sneaker-reco",
    "pkg-athletic-wear",
    "pkg-outdoor-gear",
    "pkg-seasonal-sale"
  ],
  "serve_window_sec": 120
}
```

プラットフォームはこれらの結果をローカルで交差させます: context match オファーと `eligible_package_ids` リストの両方に現れたパッケージのみがアクティベートされます。

## アクティベーション

AI プラットフォームは TMP 結果をそのレスポンス生成に組み込みます:

* オファーのクリエイティブマニフェスト（ヘッドライン、ボディテキスト、カタログアイテム）が言語モデルに利用可能なコンテキストの一部になる。マニフェストはオファーにインライン — 別途フェッチ不要。
* プラットフォーム自身の関連性モデルが、会話フローと編集ポリシーに応じて、スポンサーコンテンツをどう統合するか **how** — 直接のおすすめ、控えめなメンション、別個のスポンサーカードとして — を決める。
* 不適格なパッケージ（Identity Match から）は生成コンテキストから除外される。
* オファー `summary` は、スポンサーコンテンツが会話に適合するかをプラットフォームの関連性モデルが決めるのを助ける。

TMP はプラットフォームにどのスポンサーコンテンツが利用可能で関連性があるか **what** を伝えます。プラットフォームはそれをどう提示するか **how** を決めます。これは正しい関心の分離です — バイヤーは自身のキャンペーンを知り、プラットフォームは自身のユーザー体験を知ります。

## なぜこれが重要か

AI アシスタントは、web とモバイルが数十年かけて構築したインフラを欠く新しい広告サーフェスです。TMP は提供します:

* **標準バイヤー統合**: TMP を話す任意のバイヤーエージェントが、TMP をサポートする任意の AI プラットフォームでパッケージをアクティベートできる。プラットフォームごとのあつらえ統合なし。
* **デフォルトでプライバシー**: 会話コンテンツは生のテキストとしてプラットフォームを決して離れない。バイヤーは分類されたシグナルとトピック ID を見る。ユーザーのアイデンティティは別のリクエストで扱われる。
* **プラットフォームの編集制御**: プラットフォームがスポンサーコンテンツを会話にどう織り込むかを決める。TMP は入力を提供し、プラットフォームが体験を制御する。
* **マルチバイヤーサポート**: プラットフォームは複数のバイヤーエージェントからのパッケージを同時にアクティブにできる。TMP ルーターがファンアウトを扱う。プラットフォームが選択を扱う。

## フロー例

```
User message: "What are the best sneakers for spring?"
  → Platform classifies: topic=shopping.fashion.sneakers, sentiment=positive
  → Platform sends Context Match to TMP Router
  → Router fans out to buyer agents
  → Apex Athletics agent: offer for Classic Low + Runner X, free shipping, inline creative manifest
  → Spring Retailer agent: no offers (context doesn't match fashion-native targeting)
  → Router returns merged response

  → (300ms later) Platform sends Identity Match with ALL buyer's active packages
  → Response: eligible_package_ids includes pkg-sneaker-reco, serve_window_sec: 120
  → Router caches eligibility

  → Platform joins: pkg-sneaker-reco offer is eligible
  → Platform includes offer's creative manifest in generation context
  → Language model generates response:
    "Great question! The Apex Classic Low is trending for spring —
     clean lines, tons of colorways, and they're offering free
     shipping right now. The Runner X is also a solid pick
     if you want more cushion..."
  → Sponsored content label applied per platform policy
```

## 課金と測定

**インプレッションの定義。** インプレッションは、プラットフォームの LLM がクリエイティブマニフェストをユーザーへのレスポンスに組み込むときに起こります。これは web のビューアブルインプレッションに類似します — コンテンツがレンダリングされ提示されました。

**エンゲージメントイベント。** スポンサープロダクトについてのフォローアップ質問（「どこで買える？」「どんな色がある？」）はエンゲージメントイベントです。プラットフォームはこれらを追跡し `get_media_buy_delivery` 経由でレポートします。

**クリックスルー。** レスポンスがプロダクト URL を含みユーザーがそれにナビゲートする場合、これはクリックイベントです。プラットフォームはクリエイティブマニフェストのアセットからの URL を使ってクリックスルーを追跡します。

**課金モデル。** ほとんどの AI アシスタントパッケージは CPM（cost per thousand impressions）または CPA（cost per action）を使います。プラットフォームは他のサーフェスと同様に `get_media_buy_delivery` 経由で配信をレポートします。

**測定の課題。** ビューアビリティが標準化されている（MRC）web とは異なり、AI アシスタントインプレッションはまだ業界標準のビューアビリティ定義を持ちません。AdCP はインプレッションを「LLM のレスポンスでユーザーに提示されたクリエイティブマニフェストコンテンツ」と定義します。

**フリークエンシーカウント。** 各インプレッションはパッケージのクロスパブリッシャーフリークエンシーキャップにカウントされます。プラットフォームは配信レポート経由でインプレッションをレポートし、バイヤーエージェントはその露出ストアを更新します。AI アシスタントでおすすめを見てから web ページを訪れるユーザーは、バイヤーの露出ストアが最新である限り、その AI インプレッションが Identity Match 適格性チェックに反映されます。
