/schemas/v3/media-buy/log-event-request.json
レスポンススキーマ: /schemas/v3/media-buy/log-event-response.json
クイックスタート
購入イベントをログに記録する:リクエストパラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
event_source_id | string | はい | sync_event_sources でアカウントに設定されたイベントソース |
events | Event[] | はい | ログに記録するイベント(最小1件、最大10,000件) |
test_event_code | string | いいえ | 本番データに影響を与えずに検証するためのテストイベントコード |
Event オブジェクト
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
event_id | string | はい | 重複排除のための一意の識別子(event_type + event_source_id のスコープ内)。最大256文字。 |
event_type | EventType | はい | 標準イベントタイプ(例:purchase、lead、add_to_cart) |
event_time | date-time | はい | イベントが発生した時刻の ISO 8601 タイムスタンプ |
user_match | UserMatch | いいえ | アトリビューションマッチング用のユーザー識別子 |
custom_data | CustomData | いいえ | イベント固有のデータ(金額、通貨、アイテムなど) |
action_source | ActionSource | いいえ | イベントが発生した場所(website、app、in_store など) |
event_source_url | uri | いいえ | イベントが発生した URL(action_source が website の場合は必須) |
custom_event_name | string | いいえ | カスタムイベントの名前(event_type が custom の場合に使用) |
User Match オブジェクト
uids、hashed_email、hashed_phone、click_id、または client_ip + client_user_agent のうち少なくとも1つが必須:
| フィールド | 型 | 説明 |
|---|---|---|
uids | UID[] | ユニバーサル ID の値(rampid、id5、uid2、euid、pairid、maid) |
hashed_email | string | 小文字・トリミング済みのメールアドレスの SHA-256 ハッシュ(64文字の16進数) |
hashed_phone | string | E.164 形式の電話番号の SHA-256 ハッシュ(64文字の16進数) |
click_id | string | プラットフォームのクリック識別子(fbclid、gclid、ttclid など) |
click_id_type | string | クリック識別子の種類 |
client_ip | string | 確率的マッチング用のクライアント IP アドレス |
client_user_agent | string | 確率的マッチング用のクライアントユーザーエージェント文字列 |
+12065551234)にします。
Custom Data オブジェクト
| フィールド | 型 | 説明 |
|---|---|---|
value | number | イベントの金額 |
currency | string | ISO 4217 通貨コード(例:USD、EUR、GBP) |
order_id | string | 注文またはトランザクションの一意の識別子 |
content_ids | string[] | 商品またはコンテンツの識別子。カタログ駆動型キャンペーンでは、カタログの content_id_type(SKU、GTIN、求人 ID など)に対応します。カタログアイテムアトリビューションを参照。 |
content_type | string | コンテンツのカテゴリ(商品、サービスなど) |
num_items | integer | イベント内のアイテム数 |
contents | Content[] | アイテムごとの詳細(id、数量、価格、ブランド) |
レスポンス
成功レスポンス:events_received- 受信したイベント数events_processed- 正常にキューに追加されたイベント数partial_failures- バリデーションに失敗したイベント(event_id、コード、メッセージを含む)warnings- 非致命的な問題(マッチ品質が低い、フィールドが欠落しているなど)match_quality- 全体的なマッチ品質スコア(0.0 〜 1.0)
errors- オペレーションレベルのエラーの配列(無効なイベントソース、認証失敗など)
よくあるシナリオ
バッチイベント
複数のイベントを1つのリクエストで送信します:テストイベント
本番データに影響を与えずにイベント連携を検証する:店舗内コンバージョン
CRM データを使用してオフラインコンバージョンを報告する:イベントの重複排除
イベントはevent_id + event_type + event_source_id の組み合わせで重複排除されます。同じイベントを複数回送信しても安全で、重複は無視されます。
リトライをまたいで安定した event_id の値を選ぶこと:
- トランザクション ID:
"order_98765" - 複合キー:
"purchase_user123_20260115" - UUID:
"550e8400-e29b-41d4-a716-446655440000"
エラーハンドリング
| エラーコード | 説明 | 対処方法 |
|---|---|---|
EVENT_SOURCE_NOT_FOUND | イベントソースが設定されていない | 先に sync_event_sources を実行する |
INVALID_EVENT_TYPE | 認識されていない、または許可されていないイベントタイプ | イベントソースの event_types 設定を確認する |
INVALID_EVENT_TIME | イベント時刻が過去または未来に遠すぎる | セラーのアトリビューションウィンドウ内のタイムスタンプを使用する |
MISSING_USER_MATCH | ユーザー識別子が提供されていない | uids、hashed_email、hashed_phone、click_id、または client_ip + client_user_agent のうち少なくとも1つを含める |
BATCH_TOO_LARGE | イベントが10,000件を超えている | 小さいバッチに分割する |
RATE_LIMITED | リクエストが多すぎる | 指数バックオフで待機してリトライする |
ベストプラクティス
-
先にソースを設定する — イベントを送信する前に必ず
sync_event_sourcesを実行します。設定されていないソースへのイベントは拒否されます。 - user_match を含める — ユーザー識別子のないイベントはアトリビューションできません。利用可能な最も強力な識別子を提供すること: ハッシュ化されたメール・電話番号 > UID > クリック ID > IP/UA。マッチ率を最大化するために、複数の識別子タイプを可能な限り送信します。
-
最初はテストイベントを使用する — 連携の検証時は
test_event_codeを設定し、本番データに影響を与えずにイベントが正しく表示されることを確認します。 - 可能な限りバッチ処理する — API 呼び出し回数を減らすために、1リクエストあたり最大10,000件のイベントを送信します。バッチ内のイベントはそれぞれ独立して処理されます。
-
value と currency を含める — 購入イベントでは、ROAS レポートと最適化を有効にするために常に
custom_data.valueとcustom_data.currencyを含めます。 - 安定したイベント ID を使用する — ランダムな UUID ではなく、決定論的なイベント ID(注文番号、トランザクション ID)を使用します。これにより重複カウントなしに安全なリトライが可能になります。
- イベントを迅速に送信する — できる限りリアルタイムに近いタイミングでイベントをログに記録します。セラーのアトリビューションウィンドウを超えたイベントはマッチングされない場合があります。
次のステップ
- コンバージョントラッキング — データモデル、最適化目標、エンドツーエンドのフロー
- sync_event_sources — イベントをログに記録する前にイベントソースを設定します
- create_media_buy — パッケージに最適化目標を設定します
- get_media_buy_delivery — デリバリーレポートでコンバージョン指標を監視します