发送事件日志¶
大纲¶
您可以将事件日志发送到 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 | 管道自动处理属性(dataSource、geoIpCountry) |
eventAttributes | 自定义属性 (level、exp、character_name、stage_id) + SDK v4 自动收集的属性 (vid、uid、model、 os 等) |
Hive SDK v4 注意事项 & Tips¶
- 使用 SDK v4 事件日志发送功能时,
vid、uid、did、model、os、market、server_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.comanalytics-hivelog-04.withhive.comanalytics-hivelog-05.withhive.comanalytics-hivelog-06.withhive.com |
| 商业 | 亚洲 | 新加坡 | analytics-hivelog-as-sg-01.withhive.comanalytics-hivelog-as-sg-02.withhive.com |
| 商业 | 北美 | 美国(东部) | analytics-hivelog-us-east-01.withhive.comanalytics-hivelog-us-east-02.withhive.com |
| 商业 | 北美 | 美国(西部) | analytics-hivelog-us-west-01.withhive.comanalytics-hivelog-us-west-02.withhive.com |
| 商业 | 欧洲 | 法兰克福 | analytics-hivelog-eu-ff-01.withhive.comanalytics-hivelog-eu-ff-02.withhive.com |
| 沙盒 | 亚洲 | 韩国(首尔) | sandbox-analytics-hivelog.withhive.com |
Fluentd 转账方式¶
在游戏服务器上,配置 JSON 形式的事件日志并通过 Fluentd 发送。
fluentd tag 规则:
传输 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 | 管道自动处理属性(dataSource、geoIpCountry) |
eventAttributes | 自定义属性(level、character_name、stage_id) |
Note
服务器提交 (Fluentd) 不包含自动收集的属性 SDK,因此只有用户直接提交的属性才会存储在 eventAttributes 中。
Fluentd 用户指南¶
可以使用 Fluentd 以多种方式发送事件日志。单击下面的链接了解更多信息。
Fluentd 注意事项 & Tips¶
- 在服务器传输(Fluentd)中,不包括自动收集的属性SDK,因此您必须手动配置和传输所有必要的属性。
- 必须包含所有必需属性(
userId、identifierProvider、deviceId、appId、appIdGroup、eventTime、eventName)。
通过 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 请求:
请求 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 | 管道自动处理属性(dataSource、geoIpCountry) |
eventAttributes | 自定义属性(level、character_name) |
Note
服务器提交 (HTTP) 不包含自动收集的属性 SDK,因此只有用户直接提交的属性才会存储在 eventAttributes 中。
HTTP 注意事项 & Tips¶
- 必须包含所有必需属性(
userId、identifierProvider、deviceId、appId、appIdGroup、eventTime、eventName)。 Content-Type必须设置为application/json。- 如果您使用 JSON 对象 (
{}) 或数组 ([]) 作为属性值,它将被隔离到 rescue 表中。 - 在服务器传输(HTTP)中,不包括自动收集的属性SDK,因此您必须手动配置和传输所有必要的属性。
相关菜单¶
- 发送事件属性 — 必填/自动收集/自定义属性的详细规则
- 事件存储结构>表结构 — BigQuery存储结构
- 事件存储结构>数据隔离 — rescue 表隔离原因及查找方法