Skip to content

RevoSurge 服务器事件 API

受众: 工程师、技术集成方、管理员团队

概述

服务器事件 API 允许合作伙伴安全地将其服务器上的用户事件和用户活动直接发送到 DataPulse 平台。

本 API 面向高吞吐场景,需通过 API Key 进行严格认证。

Base URL

环境Base URL
Productionhttps://datapulse-api.revosurge.com/

认证

所有对服务器事件 API 的请求必须在请求头 X-API-Key 中包含 API Key。

必填请求头

请求头名称说明
X-API-Key用于认证的 API Key

接入端点

1. 单条事件接入

路径方法Content-Type
/v2/s2s/eventPOSTapplication/json

1.1 请求体 Schema

请求体接受包含以下字段的 JSON 对象:

字段类型必填说明
client_user_idString您系统中用户的唯一标识符。
click_idString广告点击的唯一 ID。
建议
event_nameString事件名称(如 "register"、"login"、"deposit")。
timestampInteger事件发生的 Unix 时间戳(秒)。
ip_addressString用户的 IP 地址(IPv4/IPv6)。
user_agentString浏览器或设备的 User Agent 字符串。
game_typeString游戏类型(如 "slot"、"casino")。
game_providerString游戏提供商(如 "EA"、"GGP")。
transaction_idString*交易唯一 ID(如购买 ID)。
amountFloat*交易金额(如充值金额)。
currencyString*法币的 3 字母 ISO 货币代码(如 USD、EUR),或加密货币的任意代码。
is_cryptoBoolean若为加密货币交易则为 true,否则为 false
<<any_prop>>String其他自定义属性的键值对。

注:非财务事件(如 login)中 transaction_idamountcurrency 非必填。

1.2 示例请求 (curl)

bash
curl -X POST "https://<<our-url>>/v2/s2s/event" 
    -H "Content-Type: application/json" 
    -H "X-API-KEY: dp_test_key_123"
    -d '{
        "client_user_id": "user_001", 
        "click_id": "clk_998877",
        "ip_address": "203.0.113.1", 
        "event_name":"deposit",      
        "transaction_id": "tx_554433",   
        "timestamp": 1702963200,   
        "amount": 50.00,          
        "currency": "USD"  
        }'

2. 批量事件接入

路径方法Content-Type
/v2/s2s/batchPOSTapplication/json

2.1 请求体 Schema

请求体接受数组类型的 JSON 对象。数组项定义见 1.1 节。

响应

状态码说明
200 OK事件已成功加入处理队列
400 Bad Request缺少必填字段
401 UnauthorizedAPI Key 无效或缺少认证头
429 Too Many Requests超出速率限制
500 Server Error内部处理错误。请使用退避策略重试

速率限制

  • 限制按 X-API-KEY 应用。
  • 标准限制:每分钟 60 次请求(默认)。
  • 超出限制将返回 429 响应。
  • 重试策略:建议在遇到 429 或 500 错误时实施指数退避策略。

请求体 Schema 使用场景

用户注册

{
  "client_user_id": "<<THE UNIQUE USER ID>>",
  "click_id": "<<THE UNIQUE CLICK ID>>",
  "event_name": "register",
  "timestamp": UTC milliseconds,
  "ip_address": "<<THE END USER IP>>",
  "user_agent": "<<THE USER AGENT STRING>>"
}

用户登录

{
  "client_user_id": "<<THE UNIQUE USER ID>>",
  "click_id": "<<THE UNIQUE CLICK ID>>",
  "event_name": "login",
  "timestamp": UTC milliseconds,
  "ip_address": "<<THE END USER IP>>",
  "user_agent": "<<THE USER AGENT STRING>>"
}

用户充值

{
  "client_user_id": "<<THE UNIQUE USER ID>>",
  "click_id": "<<THE UNIQUE CLICK ID>>",
  "event_name": "deposit",
  "currency": "<<THE CURRENCY, eg: USD | EUR | BTC>>",
  "amount": 5.00,
  "transaction_id": "<<THE UNIQUE TRANSACTION ID>>",
  "timestamp": UTC milliseconds,
  "ip_address": "<<THE END USER IP>>",
  "is_crypto": true | false
}

用户投注

{
  "client_user_id": "<<THE UNIQUE USER ID>>",
  "event_name": "bet",
  "game_type": "<<THE GAME TYPE>>",
  "game_provider": "<<THE GAME PROVIDER>>",
  "currency": "<<THE CURRENCY, eg: USD | EUR | BTC>>",
  "amount": 5.00,
  "transaction_id": "<<THE UNIQUE TRANSACTION ID>>",
  "timestamp": UTC milliseconds,
  "is_crypto": true | false,

  "bet_result": "win | loss",
  "bet_result_amount": 1.00
}

用户输赢

{
  "client_user_id": "<<THE UNIQUE USER ID>>",
  "event_name": "win | loss",
  "game_type": "<<THE GAME TYPE>>",
  "game_provider": "<<THE GAME PROVIDER>>",
  "currency": "<<THE CURRENCY, eg: USD | EUR | BTC>>",
  "amount": 5.00,
  "transaction_id": "<<THE UNIQUE TRANSACTION ID>>",
  "parent_transaction_id": "<<THE PARENT BET TRANSACTION ID>>" 
  "timestamp": UTC milliseconds,
  "is_crypto": true | false
}

注:也可在 bet 事件中通过 bet_resultbet_result_amount 字段发送。

用户提现

{
  "client_user_id": "<<THE UNIQUE USER ID>>",
  "event_name": "withdraw",
  "currency": "<<THE CURRENCY, eg: USD | EUR | BTC>>",
  "amount": 5.00,
  "transaction_id": "<<THE UNIQUE TRANSACTION ID>>",
  "timestamp": UTC milliseconds,
  "ip_address": "<<THE END USER IP>>",
  "is_crypto": true | false
}