メインコンテンツまでスキップ

行動イベント

ユーザーの行動イベントを送信することで、パーソナライゼーションの精度が向上します。イベント送信は無料(0 クレジット)です。

イベントの送信

POST /v1/events
{
"events": [
{
"type": "click",
"session_id": "YOUR_SESSION_ID",
"user_id": "user-12345",
"tracking_token": "eyJhbGciOi...",
"occurred_at": "2026-03-01T12:00:00Z"
}
]
}

レスポンスは 202 Accepted です(非同期処理)。リクエスト/レスポンスの詳細は API リファレンスPOST /events をご覧ください。

イベント種別と必須フィールド

イベント説明tracking_tokenuser_id
session_startアプリ起動-任意(送信時はユーザー自動作成)
loginログイン-必須
logoutログアウト-任意
impression記事表示(ビューポート内)必須任意(送信時はユーザー自動作成)
click記事タップ必須任意(送信時はユーザー自動作成)
return記事から戻る(滞在時間計測)必須任意(送信時はユーザー自動作成)
shareシェア必須任意(送信時はユーザー自動作成)
like高評価必須任意(送信時はユーザー自動作成)
dislike低評価必須任意(送信時はユーザー自動作成)

tracking_tokenGET /v1/feed のレスポンスに含まれる値をそのまま使用してください。

user_id の制約: 最大 128 文字、A-Za-z0-9._:@|+=- のみ使用可能。空白・タブ・絵文字・制御文字・パス区切り (/, \) は不可。UUID/ULID/数値ID 推奨。Auth0 (auth0|abc) やメールアドレス形式も技術的には許容します。違反した場合は 400 Validation を返します。

推奨する送信パターン

パーソナライゼーションに特に寄与するイベント:

  1. session_start — アプリ起動時。session_id にセッションを一意に識別する文字列を指定(UUID v4 推奨、ULID 等も可)。同じ session_id を異なるユーザー間で共有しないでください
  2. login — ログイン完了時。user_id 必須
  3. click — 記事タップ時。tracking_token 必須
  4. impression — フィードの各記事がビューポートに表示されたタイミング

バッチ送信

events 配列に最大 100 件のイベントをまとめて送信できます。アプリ側でイベントをバッファリングし、定期的にまとめて送信することを推奨します。

サイズ上限

制約上限超過時の挙動
リクエストボディ全体2 MiB413 Payload Too Large
events 配列の件数100 件400 Validation
1イベントの metadata JSON バイト長4096 バイト400 Validation (metadata: must not exceed 4096 bytes)

metadata の上限はクライアントが送信した JSON のバイト長で評価されます(インデントや改行を含めた送信時のサイズがそのままカウントされます)。

ボディサイズ上限は HTTP プロトコル層で適用されるため、chunked transfer encoding を用いても回避できません。

login イベントでのユーザー属性送信

login イベントの metadata.user_attributes でユーザー属性を送信できます。送信された属性はユーザープロフィールにマージされ、パーソナライゼーションに活用されます。

{
"events": [
{
"type": "login",
"session_id": "YOUR_SESSION_ID",
"user_id": "user-12345",
"occurred_at": "2026-03-01T12:00:00Z",
"metadata": {
"user_attributes": {
"gender": "female",
"birth_year": 1990,
"area_names": ["渋谷"],
"area_level": "station"
}
}
}
]
}
注記

user_id を含むあらゆる行動ログ(login / session_start だけでなく click / impression / return / share / like / dislike も含む)で、未登録ユーザーはバックグラウンドで自動作成されます。session_start を送信せずに click 等を送信したケース(イベント順序の race)でも欠損が発生しないことを保証します。詳細は ユーザー管理 をご覧ください。