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

คู่มือการออกแบบและส่งอีเวนต์

อีเวนต์เท็กโซโนมีคืออะไร?

Event Taxonomy คือ ระบบการจำแนกที่จัดโครงสร้างอีเวนต์และแอตทริบิวต์ที่เก็บมาอย่างเป็นระบบด้วยโครงสร้างที่สอดคล้องกันและกฎการตั้งชื่อที่เป็นมาตรฐาน

หากเก็บข้อมูลพฤติกรรมมากมายที่เกิดขึ้นในเกม เช่น การเข้าสู่ระบบ การซื้อ การอัปเลเวล โดยไม่มีหลักเกณฑ์ ทีมต่าง ๆ อาจส่งข้อมูลชุดเดียวกันภายใต้ชื่อที่ต่างกัน หรือไม่สามารถเข้าใจได้ว่าเมื่อวิเคราะห์แล้ว ข้อมูลใดหมายถึงอะไร Event Taxonomy ช่วยป้องกันความสับสนเช่นนี้ และทำให้ใช้ข้อมูลที่เก็บมาแล้วในการวิเคราะห์ได้ทันที


ทำไมจึงจำเป็น?

สถานการณ์ปัญหา เมื่อใช้ Taxonomy
ทีมต่าง ๆ ส่งอีเวนต์เดียวกันด้วยชื่อที่ต่างกัน รวมข้อมูลได้ด้วยชื่อที่สอดคล้องกัน
ไม่ชัดเจนว่าแอตทริบิวต์ใดอยู่ในอีเวนต์ใด โครงสร้างแอตทริบิวต์ชัดเจน ทำให้เข้าใจขอบเขตการวิเคราะห์ได้เร็วขึ้น
เพิ่มอีเวนต์ใหม่โดยกำหนดแบบไม่มีมาตรฐาน ขยายได้อย่างสอดคล้องตามกฎเดิม
พบปัญหาคุณภาพข้อมูลช้าเกินไป ตรวจสอบล่วงหน้าได้ตามสคีมา

โครงสร้าง

Event Taxonomy ของ Analytics ประกอบด้วย 2 ชั้น คือ อีเวนต์ และ แอตทริบิวต์

อีเวนต์ (Event)
├── แอตทริบิวต์แพลตฟอร์ม (Platform Attribute)   ← เก็บอัตโนมัติจากการเชื่อมต่อ SDK เท่านั้น
└── แอตทริบิวต์อีเวนต์ (Event Attribute)      ← ส่งพร้อมอีเวนต์โดยตรง

อีเวนต์คืออะไร?

อีเวนต์คือหน่วยข้อมูลที่บันทึกการกระทำเฉพาะของผู้ใช้ในเกม "เมื่อไหร่ ใคร ทำอะไร" และเป็นหน่วยพื้นฐานที่สุดของการวิเคราะห์

  • ตัวอย่าง: ผู้ใช้ซื้อไอเท็ม → เกิดอีเวนต์ item_purchase
  • ตัวอย่าง: ผู้ใช้เคลียร์สเตจหนึ่งได้ → เกิดอีเวนต์ stage_clear
  • ตัวอย่าง: ผู้ใช้เข้าสู่ระบบแอป → เกิดอีเวนต์ login

แอตทริบิวต์คืออะไร?

แอตทริบิวต์คือรายละเอียดที่บันทึกพร้อมกับอีเวนต์เมื่อเกิดขึ้น อีเวนต์เพียงอย่างเดียวจะบอกได้แค่ว่า "เกิดอะไรขึ้น" แต่แอตทริบิวต์ช่วยให้เข้าใจได้ถึง "เกิดขึ้นภายใต้เงื่อนไขใด และมีค่าเท่าไร"

  • ตัวอย่าง: แอตทริบิวต์ของอีเวนต์ item_purchase → รหัสไอเท็ม ยอดชำระ สกุลเงิน
  • ตัวอย่าง: แอตทริบิวต์ของอีเวนต์ stage_clear → หมายเลขสเตจ เวลาเคลียร์ ตัวละครที่ใช้

แอตทริบิวต์แบ่งเป็น 2 ประเภทตามผู้ส่งข้อมูล

  • แอตทริบิวต์แพลตฟอร์ม: แอตทริบิวต์ที่ Hive เก็บเป็นค่าพื้นฐานโดยไม่ต้องตั้งค่าเพิ่มเติม เพียงเชื่อมต่อ SDK ก็เพียงพอ เช่น ประเทศ OS เวอร์ชันแอป หรือรหัสเซิร์ฟเวอร์
  • แอตทริบิวต์อีเวนต์: แอตทริบิวต์ที่ส่งพร้อมกับอีเวนต์โดยตรง คุณกำหนดและส่งรายการที่จำเป็นต่อการวิเคราะห์ได้เอง

การส่งอีเวนต์ที่ผู้ใช้กำหนดเอง

สามารถส่งอีเวนต์ที่กำหนดเองในเกมเองตามสคีมาการเก็บข้อมูลด้านล่าง เพื่อให้นำไปใช้ในการวิเคราะห์ใน Analytics ได้

การส่งข้อมูลจริงใช้วิธี Hive SDK client log transmission สามารถสร้างซอร์สโค้ดที่จำเป็นสำหรับการส่งได้อัตโนมัติตามภาษาในแท็บ [สร้างซอร์ส] ของ อีเวนต์

หากกำหนดชื่ออีเวนต์และแอตทริบิวต์ไว้ล่วงหน้าใน อีเวนต์ ก่อนส่ง จะสะดวกต่อการแชร์และจัดการภายในทีม อย่างไรก็ตาม แม้จะส่งข้อมูลโดยไม่กำหนดไว้ล่วงหน้า Analytics ก็จะรับรู้ข้อมูลที่ได้รับโดยอัตโนมัติ และจะสะท้อนในรายการอีเวนต์ภายในไม่เกิน 1 ชั่วโมง

Note

อีเวนต์ที่ตรวจพบอัตโนมัติจะแสดง system เป็นผู้สร้างในรายการอีเวนต์ และสามารถเพิ่มคำอธิบายหรือข้อมูลแอตทริบิวต์ได้จากหน้าจออีเวนต์เพื่อจัดการต่อไป

สคีมาการเก็บข้อมูลของ Analytics

นี่คือสคีมาพื้นฐานที่ใช้เมื่อส่งอีเวนต์ที่ผู้ใช้กำหนดเอง ทุกอีเวนต์ต้องส่งในรูปแบบด้านล่าง

ฟิลด์ จำเป็น คำอธิบาย
identifierProvider จำเป็น ระบุระบบที่ออกตัวระบุผู้ใช้ หากเชื่อมต่อ Hive SDK ให้กรอกเป็น hive
userId จำเป็น ตัวระบุผู้ใช้ตามบัญชี หากไม่มีค่า สามารถเป็น null ได้
deviceId จำเป็น ตัวระบุผู้ใช้ตามอุปกรณ์ หากไม่มีค่า สามารถเป็น null ได้
appId จำเป็น กรอก app ID ที่ลงทะเบียนไว้ใน Hive Console > App Center
dateTime จำเป็น วันที่และเวลาที่เกิดอีเวนต์
timezone จำเป็น ไทม์โซนของเวลาที่เกิดอีเวนต์
category จำเป็น ค่าจำแนกที่กำหนดตารางที่จะเก็บข้อมูล อีเวนต์ที่ผู้ใช้กำหนดเองต้องส่งโดยล็อกเป็น raw_event_log เท่านั้น หากกรอกค่าอื่น ข้อมูลอีเวนต์จะไม่ถูกเก็บในตารางที่ถูกต้อง
eventName จำเป็น ชื่ออีเวนต์ที่ใช้จำแนกอีเวนต์
eventAttribute จำเป็น กลุ่มแอตทริบิวต์ที่ส่งพร้อมกับอีเวนต์ ต้องกำหนดทุกฟิลด์ และหากไม่มีค่า สามารถเป็น null ได้
hiveAttribute จำเป็น กลุ่มแอตทริบิวต์แพลตฟอร์มที่มาจากเซิร์ฟเวอร์ provisioning ของ Hive ปัจจุบันยังต้องให้ผู้พัฒนาเป็นผู้กำหนดค่าและส่งเอง ต้องกำหนดทุกฟิลด์ และหากไม่มีค่า สามารถเป็น null ได้
Warning

โปรดระวังไม่ให้ทั้ง userId และ deviceId เป็น null พร้อมกัน หากไม่มีทั้งสองค่า จะไม่สามารถระบุตัวผู้ใช้ได้ และอาจวิเคราะห์ผู้ใช้ตามโคฮอร์ตได้ยาก

กฎการตั้งชื่ออีเวนต์

แนะนำให้ตั้งชื่ออีเวนต์ที่จะใช้ใน eventName ตามกฎต่อไปนี้

  • อักขระที่แนะนำ: ตัวอักษรภาษาอังกฤษ(a–z, A–Z, แยกตัวพิมพ์เล็ก/ใหญ่), ตัวเลข(0–9), ขีดล่าง(_), ขีดกลาง(-)
  • ตัวคั่น: ใช้ขีดล่าง(_) แทนการเว้นวรรคระหว่างคำ
  • รูปแบบ: แนะนำให้ใช้รูปแบบ คำนาม_คำกริยา ที่อธิบายอีเวนต์ได้ชัดเจน
  • ตัวอย่าง: item_purchase, level_up, tutorial_complete, stage_start
Warning

ชื่ออีเวนต์ที่ไม่เป็นไปตามกฎข้างต้นอาจมีข้อจำกัดในการนำไปใช้วิเคราะห์

ตัวอย่างโครงสร้างของ hiveAttribute / eventAttribute

hiveAttribute และ eventAttribute จะถูกส่งในรูปแบบอ็อบเจ็กต์ JSON แยกกัน

hiveAttribute — แอตทริบิวต์แพลตฟอร์มจากเซิร์ฟเวอร์ provisioning ของ Hive โดยมีข้อมูลเช่นมาร์เก็ตหรือรหัสเซิร์ฟเวอร์ และปัจจุบันผู้พัฒนาต้องกำหนดค่าและส่งเอง ก่อนที่จะเปลี่ยนเป็นการเก็บอัตโนมัติในอนาคต

{
  "market": "GO",
  "serverId": "Asia"
}

eventAttribute — แอตทริบิวต์ที่ส่งพร้อมกับอีเวนต์โดยตรง เก็บรายละเอียดที่จำเป็นต่อการวิเคราะห์อีเวนต์นั้น

{
  "level": "100",
  "contentsType": "dungeon"
}
Note

ไม่ว่ารูปแบบการส่งจะเป็นแบบใด ค่าของแอตทริบิวต์จะถูก Analytics รับรู้เป็นชนิดข้อความตามค่าเริ่มต้น หากแอตทริบิวต์ใดต้องใช้ในการรวมข้อมูลแบบตัวเลขหรือวันที่ ให้เปลี่ยนชนิดข้อมูลของแอตทริบิวต์นั้นใน [แท็บแอตทริบิวต์] ของหน้าจอ อีเวนต์

กฎการตั้งชื่อแอตทริบิวต์

แนะนำให้ตั้งชื่อคีย์ของ eventAttribute และ hiveAttribute ตามกฎต่อไปนี้

  • อักขระที่แนะนำ: ตัวอักษรภาษาอังกฤษ(a–z, A–Z, แยกตัวพิมพ์เล็ก/ใหญ่), ตัวเลข(0–9), ขีดล่าง(_), ขีดกลาง(-)
  • ตัวคั่น: ใช้ขีดล่าง(_) แทนการเว้นวรรคระหว่างคำ
  • ตัวอย่าง: item_id, contents-type, stage_level
Warning

คีย์ของแอตทริบิวต์ที่ไม่เป็นไปตามกฎข้างต้นอาจมีข้อจำกัดในการนำไปใช้วิเคราะห์

กฎการแปลงคีย์ของแอตทริบิวต์

เมื่อส่งแอตทริบิวต์ ระบบจะเปลี่ยนชื่อคีย์บางรายการอัตโนมัติตามกฎด้านล่าง โปรดระวังว่าในการวิเคราะห์ ชื่อคีย์ที่ใช้ค้นหาอาจแตกต่างไป

คำต่อท้าย -Hive (hiveAttribute)

คีย์ ทุกรายการใน hiveAttribute จะถูกเติม -Hive ต่อท้ายอัตโนมัติ

คีย์ที่ส่ง คีย์ที่แสดงใน Analytics
country country-Hive
market market-Hive

คำต่อท้าย -Event (eventAttribute)

คีย์ใน eventAttribute จะถูกเติม -Event อัตโนมัติเฉพาะกรณีที่ชื่อซ้ำกับ 8 ฟิลด์ส่วนกลาง ด้านล่างเท่านั้น

  • timezone, dateTime, identifierProvider, userId, deviceId, appId, category, eventName
คีย์ที่ส่ง มีการชนกับฟิลด์ส่วนกลางหรือไม่ คีย์ที่แสดงใน Analytics
category O category-Event
level X level (ไม่มีการแปลง)
Warning

ทั้ง hiveAttribute และ eventAttribute จะถูกจัดเก็บข้อมูลตามชื่อคีย์หลังการแปลง โปรดค้นหาแอตทริบิวต์ด้วยชื่อที่ถูกแปลงแล้ว(-Hive, -Event) เมื่อวิเคราะห์


อีเวนต์แนะนำ

ด้านล่างเป็นตัวอย่างอีเวนต์ที่มีประโยชน์สูงต่อการวิเคราะห์ใน Analytics หากส่งแต่ละอีเวนต์ตาม eventName และ eventAttribute ที่กำหนด จะสามารถวิเคราะห์ได้ทันทีด้วยฟีเจอร์ทั้งหมดของ Analytics เช่น ชาร์ต ฟันเนล และรีเทนชัน

การอัปเลเวล

eventName คำอธิบาย
account_level_up อัปเลเวลบัญชี
character_level_up อัปเลเวลตัวละคร
guild_level_up อัปเลเวลกิลด์
skill_level_up อัปเลเวลสกิล

eventAttribute (ร่วมกัน):

แอตทริบิวต์ คำอธิบาย ตัวอย่าง
levelPrev เลเวลก่อนอัปเกรด 10
level เลเวลหลังอัปเกรด 11

สกุลเงินในเกม

eventName คำอธิบาย
asset_earn ได้รับสกุลเงินในเกม
asset_spend ใช้สกุลเงินในเกม

eventAttribute (ร่วมกัน):

แอตทริบิวต์ คำอธิบาย ตัวอย่าง
assetName ชื่อสกุลเงินในเกม diamond, gold
actionName สาเหตุของการเปลี่ยนแปลง inapp_purchase, quest_reward
amountPrev ปริมาณสกุลเงินก่อนเปลี่ยนแปลง 500
amountVar จำนวนที่เปลี่ยนแปลง 100
amountCurr ปริมาณสกุลเงินหลังเปลี่ยนแปลง 600
isPaid เป็นสกุลเงินแบบเสียเงินหรือไม่ Y, N

คอนเทนต์

eventName คำอธิบาย
contents_start ยอมรับ/เริ่มคอนเทนต์
contents_success คอนเทนต์สำเร็จ
contents_fail คอนเทนต์ล้มเหลว
contents_cancel ยกเลิกคอนเทนต์

eventAttribute (ร่วมกัน):

แอตทริบิวต์ คำอธิบาย ตัวอย่าง
modeTypeName ประเภทคอนเทนต์ raid, quest
userLevel เลเวลผู้ใช้ 50
playTimeSec เวลาเล่น(วินาที) 120
Tip

หากสร้างฟันเนลโดยใช้ flow contents_startcontents_success / contents_fail / contents_cancel จะสามารถวิเคราะห์อัตราสำเร็จและจุดที่หลุดออกไปของแต่ละคอนเทนต์ได้

ร้านค้าในแอป

eventName คำอธิบาย
store_view ดูรายละเอียดสินค้าร้านค้า
store_purchase_click คลิกซื้อสินค้าร้านค้า

eventAttribute (ร่วมกัน):

แอตทริบิวต์ คำอธิบาย ตัวอย่าง
productLocation ตำแหน่งการแสดงสินค้า package, main_shop
productType ประเภทสินค้า pay, free, advertisement
Tip

สามารถวิเคราะห์อัตราแปลงการคลิกของแต่ละสินค้าด้วยฟันเนล store_viewstore_purchase_click

เมท

eventName คำอธิบาย
mate_earn ได้รับเมท
mate_spend ใช้/ขาย/ลบเมท

eventAttribute (ร่วมกัน):

แอตทริบิวต์ คำอธิบาย ตัวอย่าง
mateId รหัสเมท pet_001
mateGrade เกรดของเมท rare, epic
mateChangeFlag เส้นทางการเปลี่ยนแปลง gacha, purchase, upgrade, sell
mateChangeAmount จำนวนที่เปลี่ยนแปลง 1

กิจกรรมทางสังคม

eventName คำอธิบาย
party_action กิจกรรมปาร์ตี้ (เชิญ/เข้าร่วม/ออก)
friend_action กิจกรรมเพื่อน (เพิ่ม/ลบ)
guild_action กิจกรรมกิลด์ (เข้าร่วม/ออก/ไล่ออก)

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

  • อีเวนต์ — ลงทะเบียนและจัดการอีเวนต์และแอตทริบิวต์
  • เมตริก — บันทึกการตั้งค่าการรวมอีเวนต์ที่ใช้บ่อยเป็นเมตริก