跳至主要内容

服務端接入文檔

你可以直接使用 REST API 進行接入,可以在不依賴 SDK 的情況下直接將數據上報到 TapDB。

1.上報事件和屬性#

數據傳輸的格式和含義請參考數據規則

1.1.上報地址#

請將數據上報到如下 URL

https://e.tapdb.net/event

1.2.上報內容#

首先請按照數據規則構造 json 字符串,例如

{    "index": "test_appid",    "device_id": "test_device_id",    "user_id": "test_user_id",    "type": "track",    "name": "#EventName",    "properties": {        "os": "Android",                     "device_id1": "000",                     "device_id2": "000",                     "device_id3": "000",                  "device_id4": "000",             "width": 256,                            "height": 768,                           "device_model": "pixel",                 "os_version": "Android 10.0",        "provider": "O2",                        "network": "1",                          "channel": "Google Play",                "app_version": "1.0",        "sdk_version": "2.8.0",        "#custem_event_property_name": "CustomEventPropertyValue"    }}

對以上數據去掉空格、換行和回車符進行 urlencode

%7B%22index%22%3A%22test_appid%22%2C%22device_id%22%3A%22test_device_id%22%2C%22user_id%22%3A%22test_user_id%22%2C%22type%22%3A%22track%22%2C%22name%22%3A%22%23EventName%22%2C%22properties%22%3A%7B%22os%22%3A%22Android%22%2C%22device_id1%22%3A%22000%22%2C%22device_id2%22%3A%22000%22%2C%22device_id3%22%3A%22000%22%2C%22device_id4%22%3A%22000%22%2C%22width%22%3A256%2C%22height%22%3A768%2C%22device_model%22%3A%22pixel%22%2C%22os_version%22%3A%22Android10.0%22%2C%22provider%22%3A%22O2%22%2C%22network%22%3A%221%22%2C%22channel%22%3A%22GooglePlay%22%2C%22app_version%22%3A%221.0%22%2C%22sdk_version%22%3A%222.8.0%22%2C%22%23custem_event_property_name%22%3A%22CustomEventPropertyValue%22%7D%7D

將編碼後的數據使用 POST 提交到上報地址。

1.3.返回#

如果返回 Response Code 為 200,且返回內容為1 ,則代表數據上報成功,請在埋點管理中進一步查看事件的寫入情況。

1.4.常見問題#

  • 若當前事件的主體並非設備或賬號,device_id 和 user_id 可以傳入任意一個固定值
  • 為了保證服務端上報的事件也能使用設備維度進行分析,建議在客戶端調用 SDK 的GetDeviceID 接口取得 SDK 為該設備生產的唯一 ID 並上報到 App 的服務端

2.特殊類型信息上報#

2.1.上報在線人數#

由於 SDK 無法推送準確的在線數據,這裡提供服務端在線數據推送接口。遊戲服務端可以每隔 5 分鐘自行統計在線人數,通過接口推送到 TapDB。TapDB 進行數據匯總展現。

注意:在線人數使用 json 格式上報,這與其他通用事件上報的格式有差別,請注意區分。

接口:https://se.tapdb.net/tapdb/online方法:POST格式:json必需頭信息:Content-Type: application/json

請求內容:

參數名參數類型參數說明
appidstring遊戲的 APPID
onlinesarray多條在線數據(最多 100 條)

其中 onlines 數組的結構為

參數名參數類型參數說明
serverstring服務器。TapDB 對同一服務器每一個自然 5 分鐘僅接受一次數據
onlinenumber在線人數
timestampnumber當前統計數據的時間戳(秒)。TapDB 會按照自然 5 分鐘進行數據對齊

示例:

{"appid":"gkjasd13bbsa1sdk","onlines":[{  "server":"s1",  "online":123,  "timestamp":1489739590},{  "server":"s2",  "online":188,  "timestamp":1489739560}]}

成功判斷:返回的 HTTP Code 為 200 時認為發送成功,否則認為失敗

2.2.上報充值記錄#

由於 SDK 推送可能會不太準確,這裡提供服務端充值推送方法。需要忽略掉 SDK 中的相關充值推送接口。

接口:https://e.tapdb.net/event

內容(注意後面還需要處理一下):

{  "module": "GameAnalysis", // 固定參數  "ip": "8.8.8.8", // 可選。充值用戶的 IP  "name": "charge", // 固定參數  "index": "APPID", // 必需。注意 APPID 需要被替換成 TapDB 的 appid  "identify": "userId", // 必需。用戶 ID。必須和 SDK 的 setUser 接口傳遞的 userId 一樣,並且該用戶已經通過 SDK 接口進行過推送  "properties": {      "order_id": "100000", // 可選。長度大於 0 並小於等於 256。訂單 ID。傳遞訂單 ID 可進行排重,防止計算多次      "amount": 100, // 必需。大於 0 並小於等於 100000000000。充值金額。單位分,即無論什麼幣種,都需要乘以 100      "virtual_currency_amount": 100, //獲贈虛擬幣數量,必傳,可為 0      "currency_type": "CNY", // 可選。貨幣類型。國際通行三字母表示法,為空時默認 CNY。參考:人民幣 CNY,美元 USD;歐元 EUR      "product": "item1", // 可選。長度大於 0 並小於等於 256。商品名稱      "payment": "alipay" // 可選。長度大於 0 並小於等於 256。充值渠道  }}

假如游戲的 appid 為 abcd1234。構建出 json 字符串後,去掉空格和換行符,然後再進行一次 urlencode。再把結果作為 POST 數據推送 先替換換行符和空格,變成:

{"module":"GameAnalysis","name":"charge","index":"abcd1234","identify":"user_id","properties":{"order_id":"100000","amount":100,"virtual_currency_amount":100,"currency_type":"CNY","product":"item1","payment":"alipay"}}

然後 urlencode,變成如下形式。某些版本的 urlencode 可能會把':'和','進行編碼,不會影響實際使用。

%7B%22module%22:%22GameAnalysis%22,%22name%22:%22charge%22,%22index%22:%22abcd1234%22,%22identify%22:%22user_id%22,%22properties%22:%7B%22order_id%22:%22100000%22,%22amount%22:100,%22virtual_currency_amount%22:100,%22currency_type%22:%22CNY%22,%22product%22:%22item1%22,%22payment%22:%22alipay%22%7D%7D

成功判斷:返回的 HTTP Code 為 200 時認為發送成功,否則認為失敗。