Skip to content

伺服器到伺服器 (S2S) 概述 ​

對象: 選擇檔位的廣告主與 UA 經理(第 1–4 節)、負責實作的開發者(第 5–8 節)

伺服器到伺服器 (S2S) 追蹤直接從你的後端向 RevoSurge 發送事件 — 全程不經過瀏覽器。這是讓已確認的轉化與收入完整送達我們的方式。

1. S2S 是甚麼,為何重要 ​

Web 追蹤器在訪客的瀏覽器中執行。要了解用戶從哪裡來,那裡是對的地方;但要了解用戶花了多少錢, 那裡就是錯的地方。

瀏覽器事件會遺失。廣告攔截器會過濾掉它們,瀏覽器的防追蹤機制會丟棄它們, 用戶還會在從付款服務商跳轉回來的途中關閉分頁。在典型的 iGaming 網站上, 瀏覽器回報的充值中有相當一部分根本不會送達。

你的後端沒有這種問題。當付款服務商確認一筆充值時,這是你的伺服器確切掌握的 事實。S2S 就是你把這份確定性交給我們的方式。

以下情況使用 S2S:

  • 充值、提款,以及任何附帶金額的事件
  • 由後端而非瀏覽器確認的事件 — KYC、帳戶狀態、獎金
  • 任何準確性比便利性更重要的事件

S2S 不能取代 Web 追蹤器

Web 追蹤器知道廣告點擊;你的後端知道錢。RevoSurge 透過你的用戶 ID 將兩者 合併為同一個用戶檔案。大多數廣告主兩者同時使用 — 參閱 追蹤概述。

2. 兩個檔位:Basic 與 Full ​

S2S 分為兩個檔位。它們不是兩個產品,也不是兩個端點 — 相同的 URL、 相同的 API Key、相同的信封、相同的驗證。檔位描述的是你發送了事件目錄中的多少事件, 進而決定我們能針對甚麼進行優化。

BasicFull
你發送的事件2 個必填、2 個建議完整目錄 — 24 個事件
必填register · depositBasic 的全部事件,加上目錄中的其餘事件
建議login · deposit_initiated—
可統計的內容註冊、首存玩家生命週期的每個階段
可出價優化的目標註冊、首存、充值金額Basic 的全部目標,加上玩家價值 — GGR 與 LTV
解鎖功能Registration Funnel · FTD 報表 · 基於充值的 ROASBasic 的全部功能,加上 預測 LTV · 流失 · Bonus Engine
需要金額嗎?需要 — deposit 一律要求 context.amount 和 context.currency需要,另外還需你發送的其他每個事件的必填欄位
典型開發週期約 2–3 天約 3–5 天
適合希望盡快擺脫瀏覽器回報的收入按玩家價值出價的營運商

Basic 涵蓋的內容 ​

四個事件,其中兩個必填:

事件狀態原因
register必填在伺服器端統計註冊,不會被攔截
deposit必填統計充值。必須攜帶 context.transaction_id、context.amount 和 context.currency
login建議區分回訪玩家與新玩家
deposit_initiated建議已發起但未結算的充值 — 顯示玩家在收銀台的哪一步流失

由於 deposit 按定義就攜帶 context.amount 和 context.currency,Basic 給你的是 充值金額,而不只是充值次數 — ROAS 隨檔位附帶,而不是額外的一步。

首存如何統計

S2S 中沒有首存事件,也沒有首存標記。你把每一筆充值都作為 deposit 發送,RevoSurge 將 FTD 判定為我們收到的該用戶最早的一筆 deposit。

因此你無需自行為充值分類 — 但如果你已有現有玩家,請參閱下方的警告。

/first-deposit 與 /repeat-deposit 的區分屬於 Partner Postback,那是另一套 API。如果你兩者都在用, 請告知你的客戶經理,以免兩者被統計為各自獨立的首存。

如果你已有現有玩家,第一週的 FTD 會虛高

FTD 是我們看到的最早一筆充值,而不是實際存在的最早一筆充值。在你 啟用 S2S 的當天,一位現有玩家的下一筆充值是我們為其收到的第一筆 — 因此會被計為首存。

擁有大量現有用戶的營運商會在第一週看到一個 FTD 高峰,但那並非真實的 獲客。有兩種處理方式:

  • 先回填。 在上線前透過 /v3/s2s/batch 發送你的歷史充值, 讓真正的首存已經在紀錄中。
  • 或與客戶經理協定一個截止時間點,在首個報表週期內剔除已知玩家的 FTD。

請在啟動以 FTD 為優化目標的廣告系列之前決定採用哪種方式 — 否則出價會去追逐這個 高峰。

Full 增加的內容 ​

目錄中的其餘事件 — 驗證、帳戶狀態、提款、投注以及完整的獎金 生命週期。每個事件名稱參閱 7. 事件目錄。

bet 是最重要的一個:它是唯一攜帶玩家價值的事件,且其他 追蹤方式都無法發送它。沒有 bet,預測 LTV 和流失模型就沒有可建模的 資料。

從 Basic 升級到 Full 沒有任何成本

無需遷移,也沒有開關要切換。你發送更多事件,它們就開始送達。已統計的 事件不受影響。

3. 我需要哪個檔位? ​

由你的廣告系列目標決定。

優化目標檔位
僅註冊都不需要 — Web 追蹤器即可涵蓋
首存Basic(如果你沒有研發資源,也可用 Partner Postback)
充值金額Basic — deposit 要求攜帶金額,因此已包含在內
玩家價值 — GGR、LTVFull

從 Basic 開始

兩個事件就能讓你擺脫瀏覽器回報的收入,這是目前能獲得的最大一項準確性提升。 上線後再補齊其餘事件 — 目錄不會消失。

4. S2S vs Web 追蹤器 ​

Web 追蹤器S2S
執行位置訪客的瀏覽器你的後端
實作方Web/前端團隊後端團隊
原生取得廣告歸因是僅當你傳入 click_id 時
會被廣告攔截器攔截可能否
收入資料的權威來源否是
典型事件page_view、register、login、deposit、enter_gameStandard + iGaming 預設集共 24 個事件
憑證追蹤器 ID(TRA-AWP-…)API Key(rs-…)
設定工作量約 45 分鐘約 1–2 天

S2S 解鎖的功能 ​

啟用 S2S 是後台設定精靈 (Setup Wizard) 的第 3 步。它會解鎖需要 可靠收入資料的模型:

功能作用檔位
Registration Funnel在伺服器端統計註冊Basic
FTD 報表首存玩家,在充值實際結算處統計Basic
ROAS基於已確認收入的廣告支出回報率Basic
LTV按用戶、來源和廣告系列計算的真實生命週期價值Full
pLTV預測生命週期價值 — 及早預測玩家價值Full
流失(Churn)流失風險評分Full
Bonus Engine由真實充值與獎金行為驅動的獎金定向Full

沒有 S2S,這些功能將維持關閉,AdWave 的自動出價也只能基於 不完整的轉化資料進行優化。

5. 後台設定 — 產生 API Key ​

5.1 前提條件 ​

  • ✅ 已為你的網域建立產品 — 參閱 追蹤概述 → 建立你的產品
  • ✅ 可在後台存取 Product(Admin/Master,或具有 Product 權限的角色)
  • ✅ 能夠發出對外 HTTPS POST 請求的後端
  • ✅ 已為你的產品啟用 iGaming 預設集(如果你要發送 deposit 或任何其他 iGaming 事件)— 請與你的客戶經理確認(參閱 7. 事件目錄)

5.2 開啟 S2S 面板 ​

登入 AdWave 或 DataPulse,進入 Product。有 兩個入口可以進入 S2S 設定 — 顯示的內容相同:

  • Setup Wizard → Step 3 · S2S Postback,或
  • Manage Product → 點擊你的產品名稱 → S2S 卡片

產生金鑰之前,面板顯示 API Key: No API key yet 和 S2S Status: Pending。

S2S Postback step in the Setup Wizard before an API key exists

5.3 產生 API Key ​

點擊 Generate API Key。

金鑰會即時簽發並以遮罩形式顯示 — rs-i●●●●●●●● — 旁邊有一個複製按鈕(⧉)。 請立即複製並儲存到你的密鑰管理系統中。

S2S panel with an active API key and S2S Status Active

你也可以在 Manage Product 表格中產生金鑰:沒有金鑰時 API Key 欄顯示 --,點擊該列的操作按鈕即可產生。簽發後,該欄會 顯示有效金鑰的數量(例如 1 Active)。

像對待密碼一樣對待 API Key

它用於認證對你帳戶資料的寫入。請在伺服器端將其儲存在密鑰管理系統中。 切勿將其放入前端程式碼、流動應用程式安裝檔、標籤管理工具或公開程式碼儲存庫。 產生新金鑰不會自動撤銷舊金鑰 — 請有計劃地進行輪換。

5.4 從後端發送事件 ​

Base hosthttps://datapulse-api.revosurge.com
端點/v3/s2s/event(單筆) · /v3/s2s/batch(批次)
方法POST
認證標頭X-API-Key: <your key>
速率限制每個 API Key 每分鐘 60 次請求

每個事件至少需要:

欄位原因
identity.client_user_id你的穩定帳戶 ID — 必須與你傳給 Web 追蹤器的 user_id 一致
identity.click_idRevoSurge 點擊識別碼。事件要歸因到廣告系列就必須攜帶 — 凡是你擷取到點擊 ID 的用戶,都要發送。自然流量用戶不會有。
event目錄中的哪個事件
timestamp事件發生時間,Unix 毫秒(13 位)
context.ip_address用戶的 IP,用於地理與防欺詐訊號

當 API 回傳 400 時,最常缺少的就是這五個欄位。

完整的請求/回應結構、欄位類型及各事件的負載: 伺服器事件 API (v3)。

使用與 Web 追蹤器相同的用戶 ID

S2S 中的 client_user_id 必須與 Web 追蹤器中的 user_id 完全相同。如果 兩者不同,RevoSurge 會將其視為兩個不同的用戶,歸因隨之失效。這是 最常見的 S2S 整合錯誤。

click_id 從哪裡來?

Web 追蹤器會從到達頁 URL 中保存它,並透過 getClickid() 提供。請在註冊時 擷取它,在你的資料庫中與該帳戶關聯儲存,並隨該用戶的每個 S2S 事件一併發送。參閱 Web 追蹤器 SDK 參考。

6. 在後台中驗證 ​

回到 Product → Setup Wizard → Step 3 · S2S Postback。

  • 一旦我們收到一個有效且已認證的事件,S2S Status 就會從 Pending 變為 Active。
  • Event Stream 欄會顯示最近一個事件的名稱、用戶 ID 和時間戳記。
  • 每個預設集都會顯示 Receiving / Errors / Not yet seen 的計數,目錄中的每個事件 都會顯示最近一次收到的時間。
  • 步驟徽章會從 Waiting for first S2S event 變為 S2S Postback active · n/23。

如果沒有收到任何事件 ​

點擊 Why are S2S events not flowing? 開啟 S2S Help Center。它會針對你過去 24 小時的流量 執行六項檢查。

S2S Help Center diagnostic panel

檢查項檢查內容未通過時
X-API-Key Authenticated認證成功(200)與回傳 401 的 X-API-Key 請求佔比金鑰錯誤或已被撤銷,或標頭名稱不完全是 X-API-Key
Recent POST Activity是否有 POST 請求到達 /v2/s2s/event 或 /v2/s2s/batch你的後端沒有呼叫該端點 — 檢查對外防火牆規則和 URL
Schema Errors (400)因結構錯誤被拒絕的請求佔比 — 並列出最常缺少的欄位補上缺少的欄位。最常見的是 client_user_id、click_id、event_name、timestamp 或 ip_address
Rate Limit Hits (429)429 的佔比 — 上限為每個 API Key 60 RPM透過 /v2/s2s/batch 批次發送事件,並加入帶退避的重試
Server Errors (5xx)以 5xx 失敗的請求佔比我方的暫時性問題 — 使用指數退避重試。持續出現 5xx:請聯絡支援團隊
Event Status Not Active該產品在 AdWave 中的事件狀態是否為啟用這是警告而非阻斷 — 事件正在送達,但該產品尚未被標記為可用於廣告系列

7. 事件目錄 ​

兩個預設集共 24 個事件。每個事件在後台中顯示為 Receiving、Errors 或 Not yet seen。

必須為你的產品啟用 iGaming 預設集

Standard(9 個事件)對每個產品自動啟用。iGaming(15 個事件)由 RevoSurge 應要求 按產品啟用。

deposit 是 iGaming 事件。在該預設集啟用之前,你發送的每一筆充值都會被拒絕並回傳 422 EVENT_DISABLED,無論你的整合多麼正確 — 而且這不是 你能在程式碼裡修正的問題。

開始開發之前,請先讓你的客戶經理確認 iGaming 已啟用。

⭑ 標記的是四個 Basic 事件。 其餘均屬於 Full。

Standard 預設集(9 個事件) ​

分組事件
用戶生命週期⭑ register · ⭑ login
驗證與授權email_verified, phone_verified, marketing_consent_updated
應用生命週期app_install, app_open, app_uninstall, push_permission_updated

iGaming 預設集(15 個事件) ​

分組事件
用戶生命週期session_ended, vip_tier_changed
驗證與授權kyc_completed, kyc_rejected, account_blocked, account_unblocked
資金⭑ deposit_initiated · ⭑ deposit · deposit_failed, withdraw
遊戲bet
獎金生命週期bonus_offered, bonus_claimed, bonus_completed, bonus_cashed_out

後台事件網格顯示的數量比目錄接受的少一個

設定精靈目前列出 14 個 iGaming 事件,並顯示 n/23。deposit_initiated 已被 API 接受且有完整規格 — 只是尚未繪製在該網格中。照常發送即可, 它會被儲存。其欄位參閱 iGaming 事件。

關於 deposit_initiated — 玩家已發起但尚未結算的充值。它能告訴 你玩家在收銀台的哪一步流失。context.transaction_id 為必填,且必須 與後續 deposit 或 deposit_failed 上的 transaction_id 一致,這樣才能將這次嘗試與其 結果關聯起來。

加入事件的順序

從四個 Basic 事件開始。然後是 withdraw 和 bet — 這兩個事件讓你從 ROAS 走向 真實的玩家價值。驗證類和獎金類事件放在最後;它們能讓預測 LTV、流失模型和 Bonus Engine 更精準,但起步階段沒有任何功能依賴它們。

每個事件的欄位層級定義: 標準事件 · iGaming 事件

8. API 版本 ​

版本狀態時間戳記格式
v3目前版本 — 所有整合均使用此版本Unix 毫秒
v2將於 2026 年 10 月 18 日棄用Unix 秒

新整合請從 v3 開始。如果你正在使用 v2,請參閱 從 v2 遷移。

確認你已上線

S2S 卡片中的 Event Stream 欄和各事件的 last seen 時間戳記讀取的是 我們實際儲存的事件。無論使用哪個版本,它們都是確認你的整合 正常運作的權威依據。

後續步驟 ​