跳轉至

傳送事件日誌

大綱

您可以將事件日誌傳送到 Analytics。配置發送的事件時,請檢查事件範本提供的事件結構以及是否自動收集Hive SDK。

需要進一步分析的事件日誌可以從客戶端或伺服器發送。


客戶端傳輸

Hive SDK v4, Hive 這是如何透過 Axyl 從客戶端傳送事件日誌。


透過 Hive SDK v4 傳送事件日誌

Hive SDK 如何使用v4的事件日誌傳輸功能從客戶端發送事件。


引擎通用設定

SDK v4 供使用的引擎設定。

根據引擎的不同,使用SDK之前需要進行一些常見的設置,例如Unity、Unreal、Engine等。 Hive不適用於Axyl。

Note

各引擎的詳細設定方法請參閱準備指南


轉帳方式

傳送 Hive SDK v4 的事件日誌 Analytics 使用 API。

JSONObject logData = new JSONObject();
// 必填屬性(僅直接傳送eventName,其餘SDK自動收集)
logData.AddField("eventName", "asset_drop");
// 自訂屬性
logData.AddField("level", 10);
logData.AddField("exp", 1.5f);
logData.AddField("character_name", "AA");
logData.AddField("stage_id", "stage_101");
Analytics.sendAnalyticsLog(logData);
#include "HiveAnalytics.h"

TSharedPtr<FJsonObject> LogData = MakeShareable(new FJsonObject);
// 必填屬性(僅直接傳送eventName,其餘SDK自動收集)
LogData->SetStringField(TEXT("eventName"), TEXT("asset_drop"));
// 自訂屬性
LogData->SetNumberField(TEXT("level"), 10);
LogData->SetNumberField(TEXT("exp"), 1.5);
LogData->SetStringField(TEXT("character_name"), TEXT("AA"));
LogData->SetStringField(TEXT("stage_id"), TEXT("stage_101"));

FHiveAnalytics::SendAnalyticsLog(LogData);
picojson::object logData;
// 必填屬性(僅直接傳送eventName,其餘SDK自動收集)
logData["eventName"] = picojson::value("asset_drop");
// 自訂屬性
logData["level"] = picojson::value((double)10);
logData["exp"] = picojson::value(1.5);
logData["character_name"] = picojson::value("AA");
logData["stage_id"] = picojson::value("stage_101");
Analytics::sendAnalyticsLog(logData);
Map<String, Object> logData = new HashMap<String, Object>();
// 必填屬性(僅直接傳送eventName,其餘SDK自動收集)
logData.put("eventName", "asset_drop");
// 自訂屬性
logData.put("level", 10);
logData.put("exp", 1.5);
logData.put("character_name", "AA");
logData.put("stage_id", "stage_101");
Analytics.sendAnalyticsLog(logData);
NSMutableDictionary* logData = [[NSMutableDictionary alloc] init];
// 必填屬性(僅直接傳送eventName,其餘SDK自動收集)
[logData setObject:@"asset_drop" forKey:@"eventName"];
// 自訂屬性
[logData setObject:@10 forKey:@"level"];
[logData setObject:@1.5 forKey:@"exp"];
[logData setObject:@"AA" forKey:@"character_name"];
[logData setObject:@"stage_101" forKey:@"stage_id"];
[HIVEAnalytics sendAnalyticsLog:logData];

儲存結果

如果您發送上述範例,它將保存在 BigQuery 中,如下所示。

欄位名稱 價值 採集方式
userId 100001 SDK v4 自動收集
identifierProvider hive SDK v4 自動收集
deviceId 100000 SDK v4 自動收集
appId com.com2us.game.ios SDK v4 自動收集
appIdGroup com.com2us.game SDK v4 自動收集
dateTime 2026-07-20T05:01:01Z 將 eventTime 轉換為 UTC
eventName asset_drop 直達
checksum b44jskqjwe99921jqe5 自動產生
bigqueryRegistTimestamp 2026-07-20T05:02:01Z 自動產生
attributes 見下文 SDK v4 自動收款+直轉

attributes 範例

{
  "hiveAttributes": {
    "dataSource": "custom_sdk",
    "geoIpCountry": "KR"
  },
  "eventAttributes": {
    "eventTime": "2026-07-20T14:01:01+09:00",
    "level": 10,
    "exp": 1.5,
    "character_name": "AA",
    "stage_id": "stage_101",
    "vid": 100001,
    "uid": 1,
    "vid_type": "v4",
    "guid": "ecbfbd7fcdc340e1b8a433999c5290c1",
    "server_id": "KR-1",
    "model": "iPhone17,3",
    "os": "I",
    "os_version": "26.5.2"
  }
}
地區 存檔內容
hiveAttributes 管路自動處理屬性(dataSourcegeoIpCountry
eventAttributes 自訂屬性(levelexpcharacter_namestage_id)+ SDK v4自動收集屬性(viduidmodelos等)

Hive SDK v4 注意事項 & Tips

  • 使用 SDK v4 事件日誌傳送功能時,viduiddidmodelosmarketserver_id 等基本收集屬性會自動傳送。詳細清單請參閱傳送事件屬性 > Hive SDK v4 自動收集屬性
  • 請注意,如果您手動新增並傳輸與基本集合屬性相同的屬性名稱,則自動收集的SDK和v4的值可能會被您自己設定的值覆蓋。

透過 Hive Axyl 傳送事件日誌

Note

Hive Axyl 事件日誌傳輸指南將於2026年9月30日發布。


伺服器傳輸

這是透過Fluentd、HTTP從遊戲伺服器發送事件日誌的方法。


透過 Fluentd 發送事件日誌

此方法涉及透過 Fluentd 直接從遊戲伺服器發送事件。

  • 您必須手動設定和傳輸所有屬性,包括必要屬性

Fluentd 伺服器訊息

Analytics Fluentd 伺服器位址為: 事件日誌必須參考下表傳輸。

類別 地點 地區
商業 亞洲 韓國(首爾) analytics-hivelog-03.withhive.com
analytics-hivelog-04.withhive.com
analytics-hivelog-05.withhive.com
analytics-hivelog-06.withhive.com
商業 亞洲 新加坡 analytics-hivelog-as-sg-01.withhive.com
analytics-hivelog-as-sg-02.withhive.com
商業 北美 美國(東部) analytics-hivelog-us-east-01.withhive.com
analytics-hivelog-us-east-02.withhive.com
商業 北美 美國(西) analytics-hivelog-us-west-01.withhive.com
analytics-hivelog-us-west-02.withhive.com
商業 歐洲 法蘭克福 analytics-hivelog-eu-ff-01.withhive.com
analytics-hivelog-eu-ff-02.withhive.com
沙盒 亞洲 韓國(首爾) sandbox-analytics-hivelog.withhive.com

Fluentd 轉帳方式

在遊戲伺服器上,配置 JSON 形式的事件日誌並透過 Fluentd 發送。

fluentd tag 規則:

event.{gameName}.{eventName}

傳輸 JSON 範例:

{
  "userId": "100001",
  "identifierProvider": "hive",
  "deviceId": "100000",
  "appId": "com.com2us.game.ios",
  "eventTime": "2026-07-20T14:01:01+09:00",
  "eventName": "asset_drop",
  "level": 10,
  "character_name": "AA",
  "stage_id": "stage_101"
}

Fluentd 儲存結果

如果您發送上述範例,它將保存在 BigQuery 中,如下所示。

欄位名稱 價值 採集方式
userId 100001 直達
identifierProvider hive 直達
deviceId 100000 直達
appId com.com2us.game.ios 直達
appIdGroup com.com2us.game 基於appId自動採集
dateTime 2026-07-20T05:01:01Z 將 eventTime 轉換為 UTC
eventName asset_drop 直達
checksum b44jskqjwe99921jqe5 自動產生
bigqueryRegistTimestamp 2026-07-20T05:02:01Z 自動產生
attributes 見下文 直傳+自動收款

attributes 範例

{
  "hiveAttributes": {
    "dataSource": "custom_server",
    "geoIpCountry": "KR"
  },
  "eventAttributes": {
    "eventTime": "2026-07-20T14:01:01+09:00",
    "level": 10,
    "character_name": "AA",
    "stage_id": "stage_101"
  }
}

地區 存檔內容
hiveAttributes 管路自動處理屬性(dataSourcegeoIpCountry
eventAttributes 自訂屬性(levelcharacter_namestage_id
Note

伺服器提交 (Fluentd) 不包含自動收集的屬性 SDK,因此只有使用者直接提交的屬性才會儲存在 eventAttributes 中。


Fluentd 使用者指南

可以使用 Fluentd 以多種方式傳送事件日誌。點擊下面的連結以了解更多資訊。


Fluentd 注意事項 & Tips

  • 在伺服器傳輸(Fluentd)中,不包含自動收集的屬性SDK,因此您必須手動設定和傳輸所有必要的屬性。
  • 必須包含所有必要屬性(userIdidentifierProviderdeviceIdappIdappIdGroupeventTimeeventName)。

透過 HTTP 發送事件日誌

如何透過 HTTP API 直接從遊戲伺服器或客戶端發送事件。

  • Fluentd 適合在無法安裝的環境中傳輸伺服器事件日誌。
  • 以REST和API的形式直接傳送JSON資料。
  • 您必須手動設定和傳輸所有屬性,包括必要屬性

接收伺服器訊息

Analytics Web 伺服器位址是:

類別 URL
商業 https://analytics-log.withhive.com/v1/server-recv
沙盒 https://sandbox-analytics-log.withhive.com/v1/server-recv

Header 訊息:

項目 價值 備註
Method POST
Content-Type application/json; charset=utf8 必填
Content-Encoding gzip 將壓縮的二進位檔案放入 body 時使用

HTTP 轉帳方式

向上述接收伺服器URL請求JSON資料POST。

HTTP 請求:

POST https://analytics-log.withhive.com/v1/server-recv
Content-Type: application/json; charset=utf8

請求 Body (JSON):

{
  "userId": "100001",
  "identifierProvider": "hive",
  "deviceId": "100000",
  "appId": "com.com2us.game.ios",
  "eventTime": "2026-07-20T14:01:01+09:00",
  "eventName": "asset_drop",
  "level": 10,
  "character_name": "AA"
}

HTTP 傳輸範例

cURL:

curl -X POST https://analytics-log.withhive.com/v1/server-recv \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "100001",
    "identifierProvider": "hive",
    "deviceId": "100000",
    "appId": "com.com2us.game.ios",
    "eventTime": "2026-07-20T14:01:01+09:00",
    "eventName": "asset_drop",
    "level": 10,
    "character_name": "AA"
  }'

Python:

import requests
import json

url = "{Analytics 接收伺服器 URL}"
data = {
    "userId": "100001",
    "identifierProvider": "hive",
    "deviceId": "100000",
    "appId": "com.com2us.game.ios",
    "eventTime": "2026-07-20T14:01:01+09:00",
    "eventName": "asset_drop",
    "level": 10,
    "character_name": "AA",
}

response = requests.post(url, json=data)
print(response.status_code)

HTTP 儲存結果

如果您發送上述範例,它將保存在 BigQuery 中,如下所示。

欄位名稱 價值 採集方式
userId 100001 直達
identifierProvider hive 直達
deviceId 100000 直達
appId com.com2us.game.ios 直達
appIdGroup com.com2us.game 基於appId的自動對映
dateTime 2026-07-20T05:01:01Z 將 eventTime 轉換為 UTC
eventName asset_drop 直達
checksum b44jskqjwe99921jqe5 自動產生
bigqueryRegistTimestamp 2026-07-20T05:02:01Z 自動產生
attributes 見下文 直接傳輸+自動加工

attributes 範例

{
  "hiveAttributes": {
    "dataSource": "custom_server",
    "geoIpCountry": "KR"
  },
  "eventAttributes": {
    "eventTime": "2026-07-20T14:01:01+09:00",
    "level": 10,
    "character_name": "AA"
  }
}
地區 存檔內容
hiveAttributes 管路自動處理屬性(dataSourcegeoIpCountry
eventAttributes 自訂屬性(levelcharacter_name
Note

伺服器提交 (HTTP) 不包含自動收集的屬性 SDK,因此只有使用者直接提交的屬性才會儲存在 eventAttributes 中。


HTTP 注意事項 & Tips

  • 必須包含所有必要屬性(userIdidentifierProviderdeviceIdappIdappIdGroupeventTimeeventName)。
  • Content-Type 必須設定為 application/json
  • 如果您使用 JSON 物件 ({}) 或陣列 ([]) 作為屬性值,它將被隔離到 rescue 表中。
  • 在伺服器傳輸(HTTP)中,不包含自動收集的屬性SDK,因此您必須手動設定和傳輸所有必要的屬性。

相關菜單