Skip to content

請求信封與基礎屬性

對象: 工程師、技術整合人員

每個 v3 事件都是一個包含四個部分的 JSON 信封。少數基礎屬性會被每個事件繼承,無論其類型為何;事件特定欄位記錄於標準事件iGaming 事件

信封結構

json
{
  "event": "<registered event name>",
  "timestamp": 1718280000000,
  "identity": { "client_user_id": "...", "anonymous_id": "...", "click_id": "..." },
  "context": { "ip_address": "...", "...event-specific fields...": "..." }
}
部分類型持有內容
eventString已登記的事件名稱。
timestampNumber事件發生的時間(UTC 毫秒)。
identityObject事件涉及的對象 — 穩定 ID + 歸因點擊 ID。
contextObject事件特定欄位(以及 ip_address)。

基礎屬性

以下屬性在每個事件上都是必填的(部分可放寬 — 參閱下方的「降級」):

屬性信封位置類型要求備註
event頂層String必填必須是已登記的目錄事件,否則回傳 422 UNKNOWN_EVENT_TYPE
timestamp頂層Number必填UTC 紀元毫秒(參閱下方的「時間戳」)。
client_user_ididentity.client_user_idString必填唯一用戶 ID。client_user_id / anonymous_id 其中之一為必填。
ip_addresscontext.ip_addressString必填終端用戶 IP(IPv4 / IPv6)。驅動地理位置豐富。

建議在大多數事件上填寫:

屬性信封位置類型備註
click_ididentity.click_idString廣告點擊 ID — 廣告系列歸因所需。
anonymous_ididentity.anonymous_idString轉換前的拼接 ID;在 client_user_id 出現之前滿足 identity 要求。
user_agentcontext.user_agentString瀏覽器/裝置 user-agent(解析以取得裝置情報)。

Identity

identity 必須至少包含 client_user_idanonymous_id 其中一個。

  • client_user_id — 你穩定的、已認證的用戶 ID。在所有事件中使用相同的值,並在可能時使用與 Web 追蹤器相同的值。
  • anonymous_id — 登入前/註冊前的 ID(例如來自裝置或首次接觸)。讓你可以在用戶帳戶存在之前傳送事件(如 app_install);一旦 client_user_id 出現,DataPulse 會將其拼接到用戶。
  • click_id — 將事件連結到原始的廣告點擊。它本身並不滿足 identity 要求。

時間戳

timestamp 是一個以 UTC 紀元毫秒表示的 Number(13 位數,例如 1718280000000)。

IMPORTANT

v3 使用毫秒,而非秒。驗證會拒絕看起來像秒的值(低於 1000000000000),並標記 rule: "not_milliseconds";而比現在超前超過 5 分鐘的值會標記 rule: "future_skew"

PII 與雜湊

個人資料在傳送前必須經過 SHA-256 雜湊 — 絕不可使用明文。雜湊欄位放在 context.privacy.* 之下:

欄位備註
context.privacy.email_hash電郵的 SHA-256,先轉小寫並去除前後空白。
context.privacy.phone_hashE.164 正規化電話的 SHA-256。

雜湊必須為小寫十六進制,64 個字元^[a-f0-9]{64}$)。格式不正確的雜湊會被拒絕,並標記 rule: "pii_format"

降級

少數事件會將 client_user_id 及/或 ip_address 的基礎要求放寬為建議,因為該值可能尚未存在:

事件已放寬
app_installapp_openapp_uninstallclient_user_id(以及 app_installip_address)— 用戶在註冊前可能是匿名的。
betip_address — 投注通常從遊戲伺服器傳來,沒有終端用戶 IP。

最小範例

json
{
  "event": "login",
  "timestamp": 1718280000000,
  "identity": { "client_user_id": "user_001", "click_id": "RS_clk_998877" },
  "context": { "ip_address": "203.0.113.1", "user_agent": "Mozilla/5.0 (...)" }
}