ส่งบันทึกเหตุการณ์¶
โครงร่าง¶
คุณสามารถส่งบันทึกเหตุการณ์ไปยัง Analytics ได้ เมื่อกำหนดค่าเหตุการณ์ที่จะส่ง ให้ตรวจสอบโครงสร้างเหตุการณ์ที่ได้รับจาก Event Template และ Hive SDK ถูกรวบรวมโดยอัตโนมัติหรือไม่
บันทึกเหตุการณ์ที่ต้องการการวิเคราะห์เพิ่มเติมสามารถส่งจากไคลเอนต์หรือเซิร์ฟเวอร์ได้
การโอนลูกค้า¶
Hive SDK v4, Hive นี่คือวิธีการส่งบันทึกเหตุการณ์จากไคลเอนต์ผ่าน Axyl
ส่งบันทึกเหตุการณ์ผ่าน Hive SDK v4¶
Hive SDK วิธีส่งเหตุการณ์จากไคลเอ็นต์โดยใช้ฟังก์ชันการส่งบันทึกเหตุการณ์ของ v4
- ในบรรดา แอตทริบิวต์ที่จำเป็น จะต้องส่งเพียง
eventNameโดยตรงเท่านั้น SDK รวบรวมโดยอัตโนมัติ ส่วนที่เหลือ
การตั้งค่าทั่วไปของเครื่องยนต์¶
SDK v4 การตั้งค่าเครื่องยนต์สำหรับการใช้งาน
ขึ้นอยู่กับเครื่องยนต์ มีการตั้งค่าทั่วไปที่จำเป็นก่อนที่จะใช้ SDK เช่น Unity, Unreal, Engine ฯลฯ Hive ใช้ไม่ได้กับ Axyl
Note
สำหรับการตั้งค่าโดยละเอียดสำหรับแต่ละเครื่องยนต์ โปรดดู คู่มือการเตรียมการ
วิธีการโอน¶
ส่งบันทึกเหตุการณ์ Analytics จาก Hive SDK v4 ใช้ 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, จะถูกส่งโดยอัตโนมัติ สำหรับรายการโดยละเอียด โปรดดูที่ ส่งคุณสมบัติเหตุการณ์ > Hive SDK v4 รวบรวมคุณสมบัติโดยอัตโนมัติserver_id - โปรดทราบว่าหากคุณเพิ่มและส่งชื่อคุณสมบัติเดียวกันกับคุณสมบัติคอลเลกชันพื้นฐานด้วยตนเอง ค่าที่รวบรวมโดยอัตโนมัติของ SDK และ v4 อาจถูกเขียนทับด้วยค่าที่คุณตั้งไว้เอง
ส่งบันทึกเหตุการณ์ผ่าน Hive Axyl¶
Note
Hive Axyl คู่มือการส่งบันทึกเหตุการณ์จะเผยแพร่ในวันที่ 30 กันยายน 2026
การถ่ายโอนเซิร์ฟเวอร์¶
นี่คือวิธีการส่งบันทึกเหตุการณ์จากเซิร์ฟเวอร์เกมผ่าน Fluentd, HTTP
ส่งบันทึกเหตุการณ์ผ่านทาง Fluentd¶
วิธีการนี้เกี่ยวข้องกับการส่งเหตุการณ์โดยตรงจากเซิร์ฟเวอร์เกมผ่านทาง Fluentd
- คุณต้องกำหนดค่าและส่งแอตทริบิวต์ทั้งหมดด้วยตนเอง รวมถึง แอตทริบิวต์ที่จำเป็น
Fluentd ข้อมูลเซิร์ฟเวอร์¶
ที่อยู่เซิร์ฟเวอร์ Fluentd ของ Analytics คือ: ต้องส่งบันทึกเหตุการณ์โดยอ้างอิงจากตารางด้านล่าง
| หมวดหมู่ | ที่ตั้ง | ภูมิภาค | โดเมน |
|---|---|---|---|
| เชิงพาณิชย์ | เอเชีย | สาธารณรัฐเกาหลี (โซล) | 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 คู่มือผู้ใช้
- ส่งบันทึกเหตุการณ์โดยใช้ไลบรารีแอปพลิเคชัน
- อ่านไฟล์บันทึกเฉพาะและส่งบันทึกเหตุการณ์
Fluentd ข้อควรระวัง & Tips¶
- ในการส่งข้อมูลเซิร์ฟเวอร์ (Fluentd) จะไม่รวมแอตทริบิวต์ที่รวบรวมโดยอัตโนมัติ SDK ดังนั้นคุณต้องกำหนดค่าและส่งคุณลักษณะที่จำเป็นทั้งหมดด้วยตนเอง
- ต้องมีแอตทริบิวต์ที่จำเป็นทั้งหมด (
userId,identifierProvider,deviceId,appId,appIdGroup,eventTime,eventName)
ส่งบันทึกเหตุการณ์ผ่านทาง HTTP¶
วิธีส่งกิจกรรมโดยตรงจากเซิร์ฟเวอร์เกมหรือไคลเอนต์ผ่าน HTTP API
- Fluentd เหมาะสำหรับการส่งบันทึกเหตุการณ์เซิร์ฟเวอร์ในสภาพแวดล้อมที่ไม่สามารถติดตั้งได้
- ส่งข้อมูล JSON โดยตรงในรูปแบบของ REST และ API
- คุณต้องกำหนดค่าและส่งแอตทริบิวต์ทั้งหมดด้วยตนเอง รวมถึง แอตทริบิวต์ที่จำเป็น
กำลังรับข้อมูลเซิร์ฟเวอร์¶
ที่อยู่เว็บเซิร์ฟเวอร์ของ Analytics คือ:
| หมวดหมู่ | 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 วิธีการโอน¶
ขอข้อมูล JSON POST จากเซิร์ฟเวอร์รับด้านบน URL
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 เหตุผลในการแยกตารางและวิธีการค้นหา