概要
メディアバイが決定的に請求するには、2 つの質問が機械可読な答えを持たなければなりません:- 誰の数値が権威的か? 異なるディールは異なる当事者を名指します — セラーの広告サーバー、バイヤーのサードパーティ広告サーバー、または Nielsen や IAS のような名指しされた測定ベンダー。
- その数値は動くのを止めたか? テレメトリーは数時間、数日、数週間で落ち着きます(放送 C3 → C7 DVR 蓄積、デジタル IVT 後スクラブ、ポッドキャスト 30 日ダウンロード、コンバージョン dedup)。最終数値は請求可能。暫定数値はそうでない。
measurement_terms.billing_measurement(create_media_buy で交渉)が権威を名指す。finalized_at タイムスタンプ付き is_final / final フラグ(get_media_buy_delivery と report_usage 上)がクロージャーをマークする。
このページはそれらの部分を結びつけます。
権威の名指し
measurement_terms.billing_measurement は以下を運びます:
不在は情報的です:
billing_measurement が不在のとき、デフォルトはセラー証明で、契約上の最終化デッドラインなし。
数値を最終としてマーク
Final は 名指しされた測定ウィンドウについて落ち着いた を意味します — 「永遠に最終」ではありません。measurement_window: "c3" について is_final: true とマークされた放送行は C3 について最終です。後の c7 行が自身の暫定 → 最終ライフサイクルでそれを置き換えます。紛争(AdCP 3.2 が追加するとき)は (media_buy_id, reporting_period, measurement_window) で結合します。
get_media_buy_delivery 上
media_buy_deliveries[] の各行は以下を運びます:
is_final: boolean— 行レベルの最終性、行のすべてのパッケージが同じウィンドウについて最終であることと同等。finalized_at: string (date-time)—is_final: trueのとき、かつそのときのみ存在。billing_measurement.finalization_deadline_hoursで宣言された任意のデッドラインをアンカー。- パッケージごと:
by_package[*].is_final、by_package[*].finalized_at、by_package[*].measurement_window、by_package[*].supersedes_window。
report_usage 上
各使用レコードは以下を運びます:
final: boolean— 不在は不明を意味する。 レポーターが実際に数値を落ち着けたとき(例: post-SIVT 月末クローズ)のみtrueを設定。予備レコード(日次ペーシングプッシュ、期間内進捗)にはfalseを設定。measurement_terms.billing_measurementがこのレポーターを権威的と名指すとき、受信者はfinal: falseまたは不在で請求してはならない(MUST NOT) — まず最終レコードを要求。billing_measurementなしの 3.0 スタイル使用と非メディアバイバリアント(signals、governance、creative、brand — 暫定状態概念のないドメイン)には、受信者は不在を最終として扱い既存動作を保持してもよい(MAY)。finalized_at: string (date-time)—final: trueのとき、かつそのときのみ存在。measurement_window: string— バイのbilling_measurement.measurement_windowが設定されているとき設定すべき(SHOULD)、受信者が正しい段階に対して照合するように。
(account, media_buy_id, reporting_period) が後で final: true でレポートされるとき、そのレコードは期間の任意の以前のレコードを置き換えます。
Webhook 最終性を行最終性から区別する
get_media_buy_delivery webhook は "final" を含むトップレベル notification_type enum を運びます — これは 「これはキャンペーンの最後の予定された通知」 をシグナルし、含まれる行が請求に最終であることではありません。2 つの軸は独立: notification_type: "final" の webhook は依然として is_final: false の行を含むかも(例: C7 が落ち着く前のキャンペーン終了通知)。課金決定には常に行ごとの is_final をチェックしてください。
セラーが請求書をどう生成するか
セラー証明(デフォルト)
measurement_window について is_final: true の get_media_buy_delivery 行から請求します。バイヤーからの report_usage は不要。
バイヤー証明(3PAS)
- バイヤーの CM360 が期間について post-SIVT を落ち着ける。
- バイヤーのオペレーター — 実際には holdco プラットフォーム(例: Choreograph、Annalect、Acxiom)または CM360 エクスポートをラップするインハウスエージェンシーエンジニアリングチーム — がメディアバイレコードで
report_usageを呼ぶ:media_buy_id、impressions、vendor_cost、currency、final: true、finalized_at、measurement_window: "post_sivt"。日次ペーシングプッシュ(使われる場合)はfinal: falseを設定。落ち着いたファイルのみがfinal: trueを設定。 - セラーが
get_media_buy_deliveryからの自身の post-SIVT 行(is_final: true、同じmeasurement_window)と比較。|seller - buyer| / max ≤ max_variance_percentなら、セラーはバイヤーの数値で請求。 - 分散がしきい値を超えるなら、セラーは
makegood_policy.available_remediesから救済を提案。 - バイヤーが
finalization_deadline_hours内に最終レコードを公開しないなら、セラーは自身のセラー証明数値から請求し遅い最終化をmakegood_policyの下の違反として扱ってもよい(MAY)。
今日の現実: 月次 3PAS 照合はほとんど、セラーの AR チームにメールされた CSV/PDF 経由で帯域外で処理されます。このフローはワイヤー形式アップグレードです — 最初のアダプターは、CM360 / Flashtalking / Innovid エクスポートを report_usage でラップするエンジニアリングを持つ holdco オペレーターの可能性が高く、RTB SSP ではなく共感的な直接パブリッシャーと働きます。
ベンダー証明(名指しされたサードパーティ)
- セラーがベンダー関係を保持(一般的な CTV パターン)。 セラーは自身のスケジュールで Nielsen(NPower など)から C7 数値を引き、C7 ウィンドウがクローズプラス内部処理するとき
measurement_window: "c7"、is_final: true、finalized_at設定でget_media_buy_deliveryに行として公開。バイヤーからのreport_usageプッシュ不要。照合はセラーの行に対して起こる。 - バイヤーがベンダー関係を保持。 バイヤー(またはそのオペレーター)がベンダーの権威数値をフェッチ — 例: エージェンシーの iSpot サブスクリプション、インハウス IAS ダッシュボードエクスポート — し、
final: true、finalized_at、measurement_window: "c7"でバイのアカウントに対してreport_usage経由でプッシュ。ベンダー自体は AdCP を呼ばない。
vendor.domain BrandRef はコントラクトが誰を名指すかを識別し、誰が API を呼ぶかではありません。ベンダー自身の統合(NPower フィード、IAS API、DV pinnacle)は AdCP 範囲外です。
今日の現実: RTB を実行する SSP は当面セラー証明であり続けます — 彼らの課金システムはバイヤー証明の請求基準のため設計されたことがなく、max_variance_percentプラスmakegood_policyは彼らがそれをレトロフィットする十分な商業カバーではありません。ここでの最初の実際のアダプターは、Nielsen バックの保証が既に測定ベンダーのカウントで請求する CTV 直接セラー(例: Disney、NBCU、Paramount)です — 彼らにとってこの PR は既存の慣行を構造化された条件で記述するだけです。
今日の不一致の解決
数値がmax_variance_percent を超えて不一致のとき、AdCP 3.0–3.1 は以下に裏付けられた相手方間の帯域外解決を期待します:
- バイの
makegood_policy.available_remedies— セラーが事前コミットした救済のメニュー(追加配信、クレジット、請求書調整)。 - 両側の
finalized_atタイムスタンプ付き最終レコード — 誰が何が最終と言ったか、いつかの完全な監査証跡。 create_media_buyで捕捉された元のcommitted_metricsとmeasurement_terms— 当事者が同意したもの。
under_review / seller_proposed_adjustment / buyer_accepted / unresolved_arbitration を通じて遷移させ、監査ログに解決を記録 — は AdCP 3.2 にターゲットされています。紛争に必要なデータ形状(最終レコード、証明、測定ウィンドウ、メイクグッドメニュー)は既に 3.1 でワイヤー上にあります。
実例: バイヤー証明 3PAS 照合
create_media_buy excerpt — measurement terms
get_media_buy_delivery — seller's final post-SIVT row
report_usage — buyer's final 3PAS push
|5120000 - 5040000| / 5120000 = 1.56% — 10% しきい値を十分に下回る。セラーはバイヤーの 5.04M インプレッション × 合意されたレートで請求。両側が監査追跡可能な最終レコードを保持。
関連
measurement-terms— スキーマget_media_buy_delivery— セラー側最終性フラグreport_usage— バイヤー側 / サードパーティ最終性フラグ- アカウンタビリティ — パフォーマンス標準、メイクグッド救済、キャンセル
- レポートケイパビリティと測定ウィンドウ