Skip to main content
AdCP のコンバージョントラッキングは、広告費と事業成果を結びつける。ライフサイクルを管理するタスクは2つある。sync_event_sources はイベントの収集元を設定し、log_event はイベント自体を送信します。 イベントデータは配信レポート(コンバージョン数、ROAS、獲得単価)にフィードされ、メディアバイパッケージの最適化ゴールを有効にします。

フロー

これは推奨される順序を示しています。実際には、イベントが流れる前にメディアバイを作成することもできます。セラーは十分なイベント履歴が蓄積されてから最適化を開始します。

イベントソース

イベントソースは、コンバージョンイベントを収集するチャネルを表します。ウェブサイトピクセル、モバイル SDK、サーバー間連携、CRM インポートなどがあります。 sync_event_sources でイベントソースを設定します。event_source_id、任意の nameevent_typesallowed_domains を指定します。レスポンスには各ソースの追加フィールドが含まれます。

バイヤー管理 vs セラー管理

バイヤー管理ソースは sync_event_sources を通じて自分が設定するものです。イベントタイプ、ドメイン、ライフサイクルを自分で管理します。 セラー管理ソースは常時オンで、レスポンスに managed_by: "seller" として現れる。これはコマースメディアでよく見られ、リテーラーが組み込みアトリビューション(例:自社プラットフォームでの購入トラッキング)を提供する場合に使われます。conversion_tracking.platform_managed: true を持つプロダクトは、セラーがこれらのソースを提供することを示しています。 アカウント上のすべてのソース(セラー管理のものを含む)を検出するには、event_sources 配列を指定せずに sync_event_sources を呼び出す。

イベント

イベントは、購入、リード送信、ページビュー、アプリインストール、その他の標準イベントタイプといったユーザーアクションを表します。 log_event でイベントを送信します。
イベントは event_id + event_type + event_source_id で重複排除されます。同じイベントを複数回送信しても安全です。

ユーザーマッチ

ユーザー識別子により、セラーはコンバージョンを広告インプレッションにアトリビュートできます。利用可能な最も強力な識別子を提供すること。識別子が多いほどマッチ率が高くなります。
少なくとも1つの識別子が必要です。強いものから弱いものへの順序: ハッシュ化: ハッシュ前に正規化すること。メールアドレスは小文字にして空白をトリムし、電話番号は E.164 形式(例: +12065551234)にします。SHA-256 でハッシュ化し、64文字の小文字16進数として出力します。 利用可能な場合は複数の識別子タイプを送信すること。セラーは最善のマッチを使用します。

カスタムデータ

アトリビューションとレポートのためのイベント固有データ。購入イベントでは、ROAS レポートを有効にするために常に valuecurrency を含めること。

イベントタイプ

IAB ECAPI に準拠した標準マーケティングイベントタイプ:

アクションソース

コンバージョンイベントの発生元:

イベントサーフェス

action_source は互換性のため意図的にフラットなままです。最適化に関連するソースがより多くの構造を必要とする場合——特に自社プラットフォームのプロパティにおけるクリエイターやコンテンツのエンゲージメント——には surface を使います。
owned_property では property_typenamespace の両方を設定し、プラットフォームが安定したプロパティ識別子を公開している場合は常に property_id を含めてください。 surface.categoryaction_source の値と一致する場合、プロデューサーは action_source を同じ値に設定すべきです。owned_property では、古いコンシューマーのために最も近い互換のフラット値を保ちます——プラットフォームネイティブなイベントでは一般に system_generated、より近い値がない場合は other。生のコンバージョン起点のようなプラットフォームネイティブの詳細は引き続き ext に載せられますが、共有される最適化の意味は event_typeaction_sourcesurface に属します。

イベントソースの健全性

イベントソースの品質を評価するセラーは、sync_event_sources のレスポンスで各ソースに health オブジェクトを含めます。これは、Snap の Event Quality Score(EQS)や Meta の Event Match Quality(EMQ)のようなプラットフォーム固有の品質スコアの AdCP における等価物です。 status フィールドが AdCP 標準のスコアです——すべてのセラー間で比較可能です: バイヤーエージェントは、detail ではなく status に基づいて判断すべきです。任意の detail オブジェクトは、人間向けダッシュボードや高度な診断のためにセラー固有のスコアリング(例: Snap の 0〜10 の EQS、Meta の 0〜10 の EMQ)を含みますが、スケールはセラーによって異なり、プラットフォーム間で比較できません。 健全性はアカウント単位ではなく、イベントソース単位で報告されます。健全なウェブサイトピクセルと壊れたアプリ SDK を持つバイヤーは、それぞれで異なる健全性を見ます。 health が不在の場合、セラーはイベントソースの品質を評価していません。バイヤーエージェントは健全性によるゲーティングなしで進めるべきです——セラーが内部で品質を扱います。不在の健全性を insufficient として扱わないでください。

セラーによる健全性の計算方法

ネイティブな API アクセス可能の品質スコア(Snap EQS、Meta EMQ)を持つセラーは、それらを statusdetail で直接中継します。ほとんどのセラーはネイティブスコアを持たず、運用メトリクスから status を導出します:
  • insufficient: タグが非アクティブ、または events_received_24h が 0
  • minimum: タグはアクティブだが、低ボリュームまたは高エラー率
  • good: 安定して発火、妥当なボリューム、コアイベントタイプをカバー
  • excellent: 高ボリューム、低エラー、拡張マッチングが有効
セラーがレポートデータから健全性を計算する場合、evaluated_at のタイムスタンプが評価の鮮度をバイヤーに伝えます。24 時間より古い評価は、タグ設定やイベントボリュームの最近の変更を反映していない可能性があります。これらのセラーでは detail オブジェクトは不在です——中継すべきネイティブスコアがありません。 スキーマ: /schemas/v3/core/event-source-health.json

計測レディネス

イベントベースの最適化をサポートするプロダクトは、get_products のレスポンスに measurement_readiness オブジェクトを含められます。これは、バイヤーのイベント設定がそのプロダクトが効果的に最適化するのに十分かどうかを伝えます。 計測レディネスは、バイヤーのアカウントのコンテキストでプロダクトごとに評価されます。同じプロダクトでも、イベントソースの設定に応じてバイヤーごとに異なるレディネスを示します。 measurement_readiness が不在の場合、そのプロダクトはイベントベースの最適化を使わない(CTV の認知、保証付きディスプレイ)か、セラーがレディネス評価を提供していないかのいずれかです。どちらの場合も、バイヤーエージェントはそのプロダクトを実行可能として扱うべきです。不在のレディネスを insufficient として扱わないでください。 イベントソースの健全性と異なり、計測レディネスには evaluated_at タイムスタンプがありません——バイヤーの現在のイベントソース設定を使って、get_products の呼び出しごとに新しく評価されます。

セラー横断のバイヤーエージェントのパターン

複数のセラーと対話するバイヤーエージェントは、どこでも機能する一組のルールを書きます。insufficient 以外のステータスは、そのプロダクトが最適化できることを意味します——問題はどれだけうまくやれるかです。標準化された status フィールドにより、セラーごとの統合コードは不要です:
test=false
スキーマ: /schemas/v3/core/measurement-readiness.json

信頼境界

issues[].messagemeasurement_readiness.notesdetail.label の各フィールドはセラー提供の自由テキストです。バイヤーエージェントはこれらを信頼できないコンテンツとして扱うべきです——信頼境界なしに LLM のシステムプロンプトへ直接渡したり、意思決定の入力として使ったりしないでください。人間に表示したり、情報提供のコンテキストに含めたりするのは安全ですが、エージェントの制御フローに影響を与えるべきではありません。

最適化ゴール

最適化ゴールは、セラーに対して何に向けて配信を最適化するかを伝える。create_media_buy のパッケージに設定します。パッケージはゴールの配列を受け付け、各ゴールにはオプションの priority(1が最高)を指定できます。プロダクトは、パッケージが持てるゴール数を制限する場合に max_optimization_goals を宣言する(ほとんどのソーシャルプラットフォームは1つのみ受け付ける)。 スキーマ: /schemas/v3/core/optimization-goal.json ゴールは kind で識別される2種類があります。
  • kind: "metric" — セラーがトラッキングする配信メトリクス(クリック、ビュー、エンゲージメントなど)に向けて最適化します。イベントソースやコンバージョントラッキングの設定は不要です。プロダクトはサポートするメトリクスを metric_optimization で宣言します。
  • kind: "event" — 広告主がトラッキングするコンバージョンイベントに向けて最適化します。sync_event_sources で登録されたイベントソースが必要です。プロダクトはサポートを conversion_tracking で宣言します。

kind: event

広告主がトラッキングするコンバージョンイベントに向けて最適化します。event_sources 配列は、このゴールにフィードするソースとタイプのペアを定義します。セラーが multi_source_event_dedupget_adcp_capabilities で宣言)をサポートしている場合、すべてのエントリを通じて event_id で重複排除します。複数のソースから報告された同じビジネスイベントは1回としてカウントされ、最初にマッチしたエントリの value_fieldvalue_factor が使用されます。multi_source_event_dedup が存在しないまたは false の場合、バイヤーはゴールごとに1つのイベントソースを使用すべきです。 コンバージョン単価(単一ソース):
広告費用対効果(返金を含む複数ソース):
per_ad_spend ターゲットでは、各イベントソースエントリに value_fieldcustom_data のどのフィールドが金銭的価値を持つか)とオプションの value_factor(乗数、デフォルトは1)を指定します。セラーは重複排除されたすべてのイベントに対して sum(value_field * value_factor) / spend を計算します。 コンバージョン価値の最大化(特定の ROAS ターゲットなし):
maximize_value ターゲットは、特定のリターン比率にコミットせずに高価値コンバージョンに向けて支出を誘導します。少なくとも1つのイベントソースエントリに value_field が必要です。

kind: metric

セラーがトラッキングする配信メトリクスに向けて最適化します。イベントソースは不要です。セラーはこれらをネイティブにトラッキングします。プロダクトはサポートするメトリクスを metric_optimization.supported_metrics で宣言します。 クリック数の最大化(ターゲットなし — セラーが予算内でボリュームを最適化):
クリック単価:
最低クリック率:
特定ベンダーからの最低アテンションkind: "metric" における attention_seconds / attention_score の列挙値は非推奨です——ベンダーによって実証されるメトリクスは代わりに kind: "vendor_metric" を使い、ゴールを特定の計測ベンダーに結び付けます):
エンゲージメントの最大化(ソーシャルリアクション、コメント、シェア、ストーリー開封、オーバーレイタップ):
再生時間しきい値付きの完了ビュー(TikTok での6秒ビュー):
メトリクス:

kind: vendor_metric

業界で認定された定義を持たない、ベンダーによって実証される計測——アテンション(DoubleVerify、IAS、Adelaide、TVision、Lumen)、パネルベースのブランドリフト(Kantar、Upwave、Cint)、排出量(Scope3、Good-Loop——後述の極性に関する注意を参照)、リテールメディアのパートナーメトリクス——では、ゴールが特定のベンダー + metric_id をエンドツーエンドで結び付けます。セラーの入札スタックはそのベンダーの計測に向けて誘導し、デリバリーは同じ (vendor, metric_id) のキーで vendor_metric_values[] を通じて値をレポートします。 方向の極性(このマイナーバージョンでは上向きの押し上げのみ)。cost_perthreshold_rate は上向きに押し上げるターゲットです——セラーはより高いメトリクス値、または最低しきい値の充足に向けてデリバリーを誘導します。バイヤーが最小化したいメトリクス(排出量、IVT、レイテンシ)は、現時点ではベンダーのメトリクス定義に沿ったセラー側の極性解釈に依存します。ファーストクラスの最小化セマンティクス(ゴール上の direction: "minimize" フィールド、または target.kind: "ceiling_rate")は WG で議論中です——#4644 を参照してください。
ゴール受理のための三つの前提条件。セラーは、ケイパビリティまたはレポーティング整合性の前提条件を満たさない vendor_metric ゴールを拒否しなければなりません(MUST)。ディスカバリーの前提条件は検証すべきです(SHOULD):
  1. ディスカバリー(このマイナーでは SHOULD、次のマイナーでは MUST)— metric_id がベンダーの公開する measurement.metrics[] カタログに含まれること(ベンダーの brand.json の計測エージェントに問い合わせます)。AdCP 準拠のケイパビリティ公開に対する計測ベンダーの対応が追いつくまでの間 SHOULD に緩和されており、2 社以上のベンダーが準拠エージェントを提供した時点で MUST に強化されます。
  2. ケイパビリティ(vendor, metric_id) のペアがプロダクトの vendor_metric_optimization.supported_metrics[] に含まれ、かつゴールの target.kind が該当エントリの supported_targets に含まれること。
  3. レポーティング整合性 — パッケージの committed_metrics[] に、対応する { scope: "vendor", vendor, metric_id } エントリが含まれること。コミットされたレポーティングのない最適化は検証不能です——セラーが契約上値を埋める義務を負わないゴールに対して、バイヤーはパフォーマンスを評価できません。この前提条件こそがゴールを意味あるものにします。セラーは、同じパッケージでレポーティングにもコミットされていないメトリクスのゴールを(TERMS_REJECTED で)拒否しなければなりません(MUST)。
metric 種別との違いmetric 種別は、ベンダーの結び付けが不要なセラーネイティブの計測(clicks、views、completed_views、reach、engagements など)向けです——セラーがそのメトリクスをネイティブに計測します。vendor_metric 種別は、同じメトリクス名がベンダーによって異なる意味を持ち、特定のソースに突き合わせる必要がある、ベンダー実証の計測向けです。metric 種別の列挙にある非推奨の attention_seconds / attention_score の値はこの分割より前のものであり、今後は vendor_metric を経由します。 完全なライフサイクルのリファレンス。標準メトリクスとベンダーメトリクスの両方のフローにまたがる、ケイパビリティ → コミットメント → 最適化 → デリバリーの全体像についてはメトリクスのライフサイクルを参照してください。

ターゲットの種類

三つのゴール種別にまたがるすべてのターゲット種類:

戦略の選択

複数ゴールと優先度

パッケージは複数のゴールを持てる。優先度はセラーがどれをメインとして扱うかを制御します。よくあるパターンは、イベントデータが少ない場合にメトリクスゴールをプロキシシグナルとして使用することです。
セラーは priority: 1 のゴール(SDK と MMP をまたいで重複排除した $10 インストール単価)に注力し、インストールデータが蓄積されるまでクリックをプロキシシグナルとして使用します。

イベントゴールのデフォルト動作

イベントゴールから target を省略した場合、セラーは予算内でコンバージョン数を最大化します。これは、イベントソースに value_field があるかどうかに関わらず当てはまります——明示的な価値志向のターゲットを伴わない value_field はレポーティング(デリバリーレポートの conversion_value、ROAS)を有効にしますが、最適化の目的関数は変えません。

ゴールのブレンドとシーケンス

value_factorpriority はどちらも「イベントタイプ A はイベントタイプ B より重要である」を表現しますが、セラーの最適化にとっての意味は異なります:
  • value_factor は複数のイベントソースを単一の目的関数にブレンドします。単一のゴールの event_sources 配列のイベントソースエントリごとに設定します。セラーは、複合的な価値シグナルを持つ一つのゴールを見ます。購入とページビューを明示的な相対的重み付けで一緒に最適化すべき場合に使用します。
  • priority独立したゴールをシーケンスします。optimization_goals 配列内の別々のゴールオブジェクトに設定します。セラーはまずゴール 1 を最適化し、ゴール 2 は二次的な目的であって、ブレンドはされません。ゴールが概念的に別物である場合(例: まず CPA ターゲットを達成し、次に残りの予算でリーチを最大化する)に使用します。
ブレンドするには value_factor を、シーケンスするには priority を使用してください。これらを取り違えると、微妙に誤った最適化——シーケンスすべきものがブレンドされたゴール、またはブレンドすべきものがシーケンスされたゴール——が生じ、その影響はデリバリーレポートでは検出しにくいものになります。

イベントタイプの極性

ほとんどのイベントタイプは正のシグナルです——購入、リード、インストールは、バイヤーがより多く欲しいものです。一部のイベントタイプは、単独の最適化ターゲットにすべきでない観測シグナルです: custom イベントはここで分類されません——その極性はバイヤーの定義に依存します。バイヤーエージェントは、カスタムイベントが単独のターゲットとして安全かどうかを選ぶ際に、同じ考え方を適用すべきです。 観測イベントは複合ゴールの内側では有用です——refundvalue_factor: -1 を設定すると ROAS が下方に調整され、これはまさに望ましい挙動です。リスクは、refundremove_from_cart の数に向けて最適化する単独のゴールを作ってしまう、設定を誤ったバイヤーエージェントです。これはバイヤーエージェントの実装上の懸念であり、プロトコルの制約ではありません——プロトコルは意図的に、どのイベントタイプを最適化ターゲットにできるかを制限しません。

value_factor によるボリュームの正規化

異なるボリューム規模のイベントソースを組み合わせる場合(例: page_view は数万、purchase は数百)、明示的な重み付けがなければ sum(value_field * value_factor) / spend における集計値は最もボリュームの大きいタイプに支配されます。バイヤーは、ソース間の相対的な重みを表現するために value_factor を使用すべきです:
ここでは page_view は額面価値の 1% しか寄与しないため、purchase より約 100 倍多く発生するにもかかわらず、ROAS の計算を支配することを防ぎます。 自動的な正規化は意図的にスコープ外です——セラーが持っていないかもしれないイベント履歴が必要になり、ROAS の式を不透明にしてしまうためです。イベントタイプをまたいで正規化したいバイヤーエージェントは、value_factor を設定する前に自分たちの側で行うべきです。

価格モデルと最適化ゴール

価格モデル(CPC、CPM、CPA など)はバイヤーが支払う対象を決める。最適化ゴールはセラーがどのようにインプレッションを配分するかを決める。これらは独立しています。パッケージは CPM 価格を使いながら CPA ターゲットに向けて最適化したり、CPA 価格を使いながら ROAS に向けて最適化したりできます。請求の詳細については価格モデルを参照。

リーチとフリークエンシー

リーチベースの最適化は metric: "reach" と2つの追加フィールドを使用します。
  • reach_unit(必須): 測定単位 — プロダクトの metric_optimization.supported_reach_units で宣言された値でなければなりません(例: householdsindividuals)。
  • target_frequency(任意): 最適化を誘導するフリークエンシーバンド。セラーは未リーチのエンティティへのインプレッションを高価値として、すでに飽和したエンティティへのインプレッションを低価値として扱います。minmaxwindow(例: "7d""campaign")を含みます。省略した場合、セラーはユニークリーチを最大化します。
GRP ベースのバイには CPP 価格を使用します。最適化とは独立したハードなフリークエンシー制限には、パッケージの frequency_cap を使用します。リーチとフリークエンシーのメトリクスは get_media_buy_delivery の配信レポートで確認できます。

前提条件

メトリクスゴールkind: "metric")の場合:
  1. プロダクトのサポートを確認する — プロダクトは metric_optimization で目的のメトリクスを supported_metrics に宣言していなければなりません。イベントソースやコンバージョントラッキングの設定は不要です。
  2. ターゲットのサポートを確認する — ターゲットを設定する場合は、ターゲットの種類が metric_optimization.supported_targets に記載されていることを確認すること。
  3. 再生時間を確認するview_duration_seconds 付きの completed_views を使用する場合は、その値が metric_optimization.supported_view_durations に記載されていることを確認すること。
イベントゴールkind: "event")の場合:
  1. イベントソースを設定するsync_event_sources を呼び出して、event_sources で参照するイベントソースをセットアップします。
  2. プロダクトのサポートを確認する — プロダクトは conversion_tracking で目的のターゲット種類を supported_targets に宣言していなければなりません。
  3. 重複排除のサポートを確認する — ゴールごとに複数のイベントソースを使用する場合は、セラーが get_adcp_capabilitiesmulti_source_event_dedup をサポートしていることを確認すること。サポートされていない場合は、ゴールごとに1つのイベントソースを使用すること。
  4. イベントを送信するlog_event を使用してコンバージョンデータを送信します。セラーが効果的に最適化するにはイベント履歴が必要です。

アトリビューションウィンドウ

アトリビューションウィンドウは、セラーがコンバージョンに広告インプレッションをクレジットするためにどれだけ遡るかを制御します。一般的なオプション: 値はセラーの conversion_tracking.attribution_windows ケーパビリティのオプションと一致しなければなりません。省略した場合、セラーはデフォルトのウィンドウを適用します。

配信レポートとの連携

イベントソースが設定されてイベントが流れ始めると、get_media_buy_delivery のレスポンスにコンバージョンメトリクスが表示されます。
  • conversions — キャンペーンにアトリビュートされたポストクリックまたはポストビューのコンバージョン
  • conversion_value — アトリビュートされたコンバージョンの金銭的価値
  • roas — 広告費用対効果(conversion_value / spend)
  • cost_per_acquisition — コンバージョン単価(spend / conversions)
これらのメトリクスは、パッケージに optimization_goals が設定されている場合にパッケージごとにレポートされます。by_action_source ブレークダウンをサポートするセラーは、コンバージョンをソース別(website、app、in_store など)に分けて表示できます。

カタログアイテムのアトリビューション

カタログドリブンのパッケージでは、コンバージョンイベントに関連するカタログアイテムを識別する content_ids が含まれます。カタログの content_id_type は期待される識別子タイプ(skugtinjob_id など)を宣言します。 アトリビューションは意図的に幅広く設計されています。ユーザーがあるアイテム(求人 A)をクリックして別のアイテム(求人 B に応募)でコンバージョンする場合もあります。イベントはクリックされたアイテムではなく、コンバージョンの実際の content_id で発火します。アイテムごとのクリックからコンバージョンまでのパス分析はプラットフォームの最適化の問題であり、プロトコルの問題ではありません。 get_media_buy_deliveryby_catalog_item ブレークダウンは、アイテムごとのメトリクス(インプレッション、支出、クリック、コンバージョン)を表示します。

関連ドキュメント