ข้ามไปที่เนื้อหา

ส่งบันทึกเหตุการณ์

โครงร่าง

คุณสามารถส่งบันทึกเหตุการณ์ไปยัง Analytics ได้ เมื่อกำหนดค่าเหตุการณ์ที่จะส่ง ให้ตรวจสอบโครงสร้างเหตุการณ์ที่ได้รับจาก Event Template และ Hive SDK ถูกรวบรวมโดยอัตโนมัติหรือไม่

บันทึกเหตุการณ์ที่ต้องการการวิเคราะห์เพิ่มเติมสามารถส่งจากไคลเอนต์หรือเซิร์ฟเวอร์ได้


การโอนลูกค้า

Hive SDK v4, Hive นี่คือวิธีการส่งบันทึกเหตุการณ์จากไคลเอนต์ผ่าน Axyl


ส่งบันทึกเหตุการณ์ผ่าน Hive SDK v4

Hive SDK วิธีส่งเหตุการณ์จากไคลเอ็นต์โดยใช้ฟังก์ชันการส่งบันทึกเหตุการณ์ของ v4


การตั้งค่าทั่วไปของเครื่องยนต์

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.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 คุณสมบัติการประมวลผลอัตโนมัติไปป์ไลน์ (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 เหมาะสำหรับการส่งบันทึกเหตุการณ์เซิร์ฟเวอร์ในสภาพแวดล้อมที่ไม่สามารถติดตั้งได้
  • ส่งข้อมูล 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 คำขอ:

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 คุณสมบัติการประมวลผลอัตโนมัติไปป์ไลน์ (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 ดังนั้นคุณต้องกำหนดค่าและส่งคุณลักษณะที่จำเป็นทั้งหมดด้วยตนเอง

เมนูที่เกี่ยวข้อง