跳转至

发送事件日志

大纲

您可以将事件日志发送到 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,因此您必须手动配置和传输所有必要的属性。

相关菜单