
実験的。 TMP は実験的サーフェスとして AdCP 3.0 の一部です — 少なくとも 6 週間の予告をもって 3.x リリース間で変わることがあります。TMP を実装するセラーは
experimental_features に trusted_match.core を宣言しなければなりません(MUST)。完全なコントラクトについては 実験的ステータス を参照。Step 1: 問題 — 無駄な予算
StreamHaus、OutdoorNet、PodTrail はそれぞれ独立してカウントします。夕食後に StreamHaus でハイキングコンテンツを見て、30 分後にスマホで OutdoorNet を閲覧する視聴者は、Sam が設定した 2 時間の recency ウィンドウの十分内で、同じ広告を再び受け取ります。 1 週間で掛け合わせると、視聴者は間隔を空けてではなく集中して 5 ではなく 15 インプレッションを受け取ります:
すべての冗長なインプレッションは、新しい誰かに届けられたはずの予算です。広告は間隔を空けることでよりよく機能します — 最初の数回の後の各露出は逓減する収益を生みます。Sam はリーチを買うべきときにフリークエンシーを買っています。
これは StreamHaus の問題ではありません。構造的な問題です。単一のパブリッシャーが全体像を見ないため、単一のパブリッシャーはクロスパブリッシャーの上限を強制できません。
Step 2: TMP ルーターの追加

What Priya configures
What Priya configures
Priya は Sam のバイヤーエージェント(Pinnacle)をルーターに TMP プロバイダーとして登録します:
context_match: true は、ルーターがターゲティングのためにコンテンツコンテキストを Pinnacle に送ることを意味します。identity_match: true は、Pinnacle がフリークエンシーキャップとオーディエンス適格性を強制できるよう、不透明なユーザートークンも送ることを意味します。properties はこのプロバイダーが提供する StreamHaus プロパティをスコープします — Pinnacle は CTV ではなく web と iOS を評価します。latency_budget_ms はプロバイダーごとのタイムアウトを設定します。Pinnacle が一貫してそれを超えると、ルーターはそれを非優先化します。ルーターは設定されたすべてのプロバイダーに並列でファンアウトし、そのレスポンスをマージします。Step 3: Context Match — ページに何があるか?

property_rid 識別子で プロパティガバナンス に登録されているため、バイヤーはこのリクエストがどのプロパティから来たかを正確に知ります。StreamHaus は記事のコンテンツシグナル、プレースメント、geo を伴う Context Match リクエストを送ります。
Sam のバイヤーエージェントは評価します: 「このハイキングコンテンツは pkg-outdoor-display に一致する。」それはクリエイティブマニフェスト — Trail Pro 3000 バナー — を含むオファーで応答します。
鍵となる制約: ユーザーアイデンティティはこの境界を越えない。 バイヤーは人ではなくコンテンツを評価します。記事を読んでいるのが誰かは知りません — 記事が何についてかだけを知ります。
Context Match request and response
Context Match request and response
StreamHaus から Sam のバイヤーエージェントへのリクエスト:パブリッシャーは
artifact_refs(コンテンツを直接クロールするバイヤー向け)と context_signals(フォールバックとして事前分類されたトピックとキーワード)の両方を送ります。バイヤーエージェントはこのプレースメントにどのパッケージがアクティブかを既に知っています — create_media_buy 経由でそれらをセットアップしました。パッケージリストがワイヤー上を移動する必要はありません。Sam のバイヤーエージェントからのレスポンス:Step 4: Identity Match — このユーザーは適格か?

Identity Match request and response
Identity Match request and response
StreamHaus から Sam のバイヤーエージェントへのリクエスト:Sam のバイヤーエージェントからのレスポンス:適格なパッケージのみがリストされます —
pkg-outdoor-audio がバイヤーのチェックを通過します。serve_window_sec: 60 はルーターにこの適格性を 60 秒キャッシュするよう伝えます。例は package_ids を明示的に送っていますが、パブリッシャーはそれを省略してもよい(MAY) — Sam の identity-match サービスは seller_agent_url からアクティブなパッケージセットを解決します。package_ids が送られる とき、その構成は現在のページと独立でなければなりません(MUST) — all-active(StreamHaus のすべての Sam パッケージ)または fuzzed(Sam が黙って落とす合成 ID でパディングされたランダムサンプル)のいずれか。ページ固有のサブセットは禁止されています。それはバイヤーが Context Match と Identity Match をまたいでパッケージセットを相関させることを許し、構造的分離を壊します。Step 5: 結合 — StreamHaus が決定を下す

- Context Match は言いました: 「このクリエイティブマニフェストで
pkg-outdoor-displayをアクティベートせよ。」 - Identity Match は言いました: 「適格でない — recency ウィンドウ。」
Step 6: 3 人の勝者

Step 7: 同じプロトコル、あらゆるサーフェス

さらに深く
AI アシスタント仲介
AI アシスタントのための仲介プロトコル — コンテキストがブロードキャストできないとき、需要がどう会話型 AI を見つけるか。
実行ギャップ
既存のプロトコルがなぜ配信時に失敗し、TMP がなぜオークションアプローチではなくマッチングアプローチを取るか。
コンテキストとアイデンティティ
カタログ絞り込みとパブリッシャー側の結合を含む、具体例を伴う両操作。
仕様
権威あるメッセージタイプ、フィールド表、適合性要件。
プライバシーアーキテクチャ
構造的分離、時間的相関除去、TEE アテステーション。
データ保護ロール
各 TMP 参加者のコントローラー対プロセッサー分析。
ルーターアーキテクチャ
デプロイ、ファンアウト、プロバイダー設定。