บันทึกความแปรปรวนของสินทรัพย์ v2
บันทึกนี้ถูกจัดเรียงตามความแปรผันของสินทรัพย์ของผู้ใช้ในเกม (เช่น เงินสด, เงินในเกม)
หมวดหมู่¶
- ประเภทที่ระบุ/FTP
เซิร์ฟเวอร์ทั่วไป service_metrics-asset_var_log เซิร์ฟเวอร์ทดสอบ service_metrics_test-asset_var_log - FTP ประเภท
กฎการตั้งชื่อ asset_var_[วันที่]_[เซิร์ฟเวอร์]_[ID เพื่อหลีกเลี่ยงการซ้ำซ้อน].json เช่น asset_var_20180705_111500_GLOBAL-4.json - fluentd ประเภท
เซิร์ฟเวอร์ (การกระจายโหลดไปยังสองเซิร์ฟเวอร์) analytics-hivelog-03.withhive.com analytics-hivelog-04.withhive.com การตั้งชื่อ TAG ha2union.game.[ชื่อเกม].asset_var_log (ตัวอย่าง) ha2union.game.samplegame.asset_var_log ค่าฟิลด์ category [ชื่อเกม].asset_var_log เช่น {“category”:”samplegame_asset_var_log”,”aaa”:1} รายละเอียดเพิ่มเติม... - http ประเภท
เซิร์ฟเวอร์ https://analytics-log.withhive.com ค่า ฟิลด์ประเภท [ชื่อเกม]_asset_var_log (ตัวอย่าง) {"category":"samplegame_asset_var_log","aaa":1} รายละเอียดเพิ่มเติม...
ข้อกำหนดการบันทึก¶
Note
ฟิลด์ที่ใช้รูปแบบ snake_case เช่น server_id
จะถูกแปลงเป็น camel case เช่น serverId
เมื่อถูกเก็บในที่จัดเก็บสุดท้าย (BigQuery) และล็อกที่ส่งในรูปแบบที่ไม่ได้ระบุ เช่น serverid
จะไม่ถูกบันทึกในคอลัมน์ของมัน
ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น |
---|---|---|---|
date | เวลาที่บันทึกในล็อก รูปแบบ: yyyy-mm-dd hhss ตัวอย่าง: 2012-01-19 16:24:00 จำเป็นสำหรับประเภท Scribe/FTP, ไม่จำเป็นสำหรับประเภท Fluentd | string | N |
dateTime | เวลาที่บันทึกในล็อก รูปแบบ: yyyy-mm-dd hhss ตัวอย่าง: 2012-01-19 16:24:00 | string | Y |
category | [ชื่อแบรนด์ของเกม]_[ชื่อล็อก] ชื่อแบรนด์ของเกมคือรายการที่สามของ app_id ตัวอย่าง: "derbyday_asset_var_log" | string | Y |
timezone | UTC offset ของพารามิเตอร์เวลาในล็อก * กำหนดค่า timezone เป็น ค่าว่างหรือ GMT+09:00 เนื่องจากค่าของวันที่จะเป็น KST เสมอเมื่อส่งการกำหนดล็อกในรูปแบบ scribe หรือ ftp ตัวอย่าง: "GMT+09:00" * กำหนดค่า timezone อย่างยืดหยุ่นตามค่าของ dateTime เมื่อส่งการกำหนดล็อกในรูปแบบ fluentd หรือ http ตัวอย่าง: "GMT+10:30" | string | Y |
channel | C2S: Hive, KAK: Kakao, LIN: LINE, WEI: Weibo | string(3) | Y |
channel_uid | รหัสประจำตัวผู้ใช้ในช่องทางการเข้าสู่ระบบ (โดยทั่วไปใช้ bigint แต่บางช่องทางอาจใช้ประเภท string) ส่ง 0 หากข้อมูลไม่ทราบเช่น LINE | string(64) | Y |
game | ใช้ชื่อแบรนด์ของเกม (เช่น derbydays) รายการที่สามของ app_id ตัวอย่าง: com.com2us.littlelegends.kakao.freefull.apple.global.ios.universal => littlelegends * รายการที่สามของ app_id อาจไม่ตรงกันแม้ในเกมเดียวกัน ดังนั้นให้แน่ใจว่าค่าของฟิลด์เกมที่ส่งมีความสอดคล้องกัน ตัวอย่าง: com.gamevil.basebss.android.google.global.normal ตัวอย่าง: com.gamevil.basebssent.ios.apple.global.normal => basebss | string(50) | Y |
server_id | รหัสเซิร์ฟเวอร์ อ้างอิงถึง ตารางรหัสเซิร์ฟเวอร์ เพื่อป้อนรหัสเซิร์ฟเวอร์ (รหัส JSON) | string | Y |
account_id | รหัสประจำตัวบัญชีที่ไม่ซ้ำกันในเซิร์ฟเวอร์ (PK) | bigint | Y |
account_level | ระดับของบัญชี กำหนดค่านี้เป็น 0 หากบัญชีไม่มีระดับ | int | Y |
character_id | รหัสประจำตัวตัวละครที่ใช้ในเซิร์ฟเวอร์ กำหนดรหัสประจำตัวนี้เป็น 0 หากเกมไม่มีตัวละคร | bigint | Y |
character_type_id | ค่าของประเภทตัวละครที่ใช้ในเซิร์ฟเวอร์ กำหนดค่าตัวนี้เป็น 0 หากเกมไม่มีตัวละคร | int | Y |
character_level | ระดับตัวละครที่ใช้ในเซิร์ฟเวอร์ กำหนดระดับนี้เป็น 0 หากเกมไม่มีตัวละคร | int | Y |
client_ip | IP ของลูกค้า ค่านี้จะดึงค่าของประเทศจาก GeoIP | string(32) | Y |
server_ip | IP ของเซิร์ฟเวอร์ | string(32) | Y |
company | บริษัทเผยแพร่เกม เป้าหมายของล็อก: ตัวอย่าง: "C2S": Com2uS, "GVI": Com2uS Holdings | string(3) | Y |
action_id | รหัสการกระทำของผู้ใช้ที่เกี่ยวข้องกับการเปลี่ยนแปลงในเงินเกมที่ไม่ซ้ำกันในเกม ช่วง: [1–(2^31−1)] API หรือโปรโตคอลจะแยกแยะการกระทำในเกม ดังนั้นเซิร์ฟเวอร์เกมควรกำหนดรหัสแต่ละรหัสเกี่ยวกับการกระทำ เมื่อคุณกำหนดแล้ว ห้ามเปลี่ยนแปลง จำเป็นต้องทดสอบ | int | Y |
action_name | ค่าที่แมพ 1:1 กับ action_id หาก action_id แตกต่างกัน action_name ก็จะแตกต่างกัน (เช่น Feeding, Harvesting, เป็นต้น) ข้อมูลจริงจะถูกจัดเก็บตาม action_id หากมีการเปลี่ยนแปลง เมตาเทเบิลจะถูกอัปเดตโดยอัตโนมัติ หากมีการเปลี่ยนแปลง เมตาเทเบิลจะถูกอัปเดตโดยอัตโนมัติ | string(50) | Y |
item_id | รหัสประจำตัวสินค้าที่ทำให้เกิดการเปลี่ยนแปลงสินทรัพย์ กำหนดค่านี้เป็น 0 หากการกระทำการเปลี่ยนแปลงสินทรัพย์ไม่เกี่ยวข้องกับสินค้า ช่วง: [1–(2^31−1)] ค่านี้เป็นหมายเลขที่เริ่มต้นจาก 1 ดังนั้น 0 จึงไม่สามารถใช้ได้เว้นแต่ค่าเป็น null พารามิเตอร์นี้จำเป็นเมื่อการกระทำเกี่ยวข้องกับสินค้า แต่ละเกมควรกำหนดรหัสสินค้าของตน เมื่อคุณกำหนดแล้ว ห้ามเปลี่ยนแปลง จำเป็นต้องทดสอบ | bigint | Y |
item_name | ค่าที่แมพ 1:1 กับ item_id ป้อน 0 เมื่อ item_id เป็น 0 และค่าทั้งหมดควรมีคำอธิบายเว้นแต่ item_id เป็น 0 คำอธิบายเกี่ยวกับ item_id | string(50) | Y |
item2_id | รหัสสินค้ารายการเพิ่มเติมสำหรับการวิเคราะห์ item_id อย่างละเอียด | bigint | N (เพิ่มเมื่อ 04 ก.ย. 2019) |
item2_name | ค่าที่แมพ 1:1 กับ item2_id ป้อน 0 เมื่อ item2_id เป็น 0 และค่าทั้งหมดควรมีคำอธิบายเว้นแต่ item2_id เป็น 0 คำอธิบายเกี่ยวกับ item2_id | string | N (เพิ่มเมื่อ 04 ก.ย. 2019) |
asset_id | ตั้งค่านี้จาก 1 ถึง 100 สำหรับสินทรัพย์ที่สามารถแลกเป็นเงินสด/คะแนนโซเชียลมีเดีย และจาก 101 ขึ้นไปสำหรับสินทรัพย์ที่ไม่สามารถแลกเป็นเงินสด เมื่อคุณกำหนดแล้ว อย่าเปลี่ยนแปลงมัน การทดสอบเป็นสิ่งจำเป็น (ดูเพิ่มเติม: หากสินทรัพย์ที่สามารถแลกเป็นเงินสดคือสิ่งที่ผู้ใช้มักจะได้รับแทนที่จะซื้อในเกม ให้ตั้งค่าจาก 101 ขึ้นไป) | int | Y |
asset_name | ข้อมูลสั้น ๆ เกี่ยวกับ asset_id (เช่น ระฆัง, ดาว, ลูกบอลทอง, ทอง) | string(50) | Y |
amount_prev | จำนวนสินทรัพย์ก่อนการเปลี่ยนแปลงสินทรัพย์ที่เกี่ยวข้องกับ asset_id | bigint | Y |
amount_var | จำนวนการเปลี่ยนแปลงสินทรัพย์ที่เกี่ยวข้องกับ asset_id สินทรัพย์ลดลง: หมายเลขลบ, สินทรัพย์เพิ่มขึ้น: หมายเลขบวก | bigint | Y |
amount_curr | จำนวนสินทรัพย์หลังจากการเปลี่ยนแปลงสินทรัพย์ที่เกี่ยวข้องกับ asset_id amount_curr = amount_prev + amount_var | bigint | Y |
amount_free_prev | จำนวนสินทรัพย์ฟรีก่อนการเปลี่ยนแปลงสินทรัพย์ที่เกี่ยวข้องกับ asset_id (เพิ่มขึ้นตามพระราชบัญญัติการชำระเงินในญี่ปุ่นที่แก้ไข) | bigint | N (เพิ่มเมื่อ 18 ม.ค. 2018) |
amount_free_var | จำนวนการเปลี่ยนแปลงสินทรัพย์ฟรีที่เกี่ยวข้องกับ asset_id สินทรัพย์ลดลง: หมายเลขลบ, สินทรัพย์เพิ่มขึ้น: หมายเลขบวก (เพิ่มขึ้นตามพระราชบัญญัติการชำระเงินในญี่ปุ่นที่แก้ไข) | bigint | N (เพิ่มเมื่อ 18 ม.ค. 2018) |
amount_free_curr | จำนวนสินทรัพย์หลังจากการเปลี่ยนแปลงสินทรัพย์ฟรีที่เกี่ยวข้องกับ asset_id (เพิ่มขึ้นตามพระราชบัญญัติการชำระเงินในญี่ปุ่นที่แก้ไข) amount_free_curr = amount_free_prev + amount_free_var | bigint | N (เพิ่มเมื่อ 18 ม.ค. 2018) |
amount_paid_prev | จำนวนสินทรัพย์ที่ชำระเงินก่อนการเปลี่ยนแปลงสินทรัพย์ที่เกี่ยวข้องกับ asset_id (เพิ่มขึ้นตามพระราชบัญญัติการชำระเงินในญี่ปุ่นที่แก้ไข) | bigint | N (เพิ่มเมื่อ 18 ม.ค. 2018) |
amount_paid_var | จำนวนการเปลี่ยนแปลงสินทรัพย์ที่ชำระเงินที่เกี่ยวข้องกับ asset_id สินทรัพย์ลดลง: หมายเลขลบ, สินทรัพย์เพิ่มขึ้น: หมายเลขบวก (เพิ่มขึ้นตามพระราชบัญญัติการชำระเงินในญี่ปุ่นที่แก้ไข) | bigint | N (เพิ่มเมื่อ 18 ม.ค. 2018) |
amount_paid_curr | จำนวนสินทรัพย์หลังจากการเปลี่ยนแปลงสินทรัพย์ที่ชำระเงินที่เกี่ยวข้องกับ asset_id (เพิ่มขึ้นตามพระราชบัญญัติการชำระเงินในญี่ปุ่นที่แก้ไข) amount_paid_curr = amount_paid_prev + amount_paid_var | bigint | N (เพิ่มเมื่อ 18 ม.ค. 2018) |
market | ข้อมูลตลาด "TS": SKT Tstore "OL": KT OllehMarket "OZ": LGU+ OzStore "AP": Apple Appstore "GO": Google Play "SA": Samsung Apps "LE": Com2uS Lebi "MM": ChinaMobile MobileMarket "SN": Sina WeiboPoint "36": Qihu 360Point "MO": Momo MomoPoint "DN": DeNA MobagePoint "NA": NaverAppStore "AM": Amazon "ON": OneStore | string(2) | Y |
country | ป้อนรหัสประเทศโดยตรงหาก client_ip ไม่ได้ให้มา เช่น KR | string(2) | N |
is_emulator | หากเชื่อมต่อกับ Emulator สำหรับ PC เช่น BlueStacks ให้ส่งกลับ 1; มิฉะนั้น ให้ส่งกลับ 0 สำหรับเวอร์ชัน PC ให้ส่งกลับ 2 | tinyint(1) | ไม่จำเป็น แต่แนะนำ |
game_language | ภาษาในเกมด้วยตัวอักษรเล็กสองตัว เช่น ko อ้างอิง: นโยบายตัวระบุ | varchar | ไม่จำเป็น แต่แนะนำ (เพิ่มเมื่อ 18 ม.ค. 2018) |
deviceid | รหัสอุปกรณ์บน Hive ตัวระบุที่สรุปตัวระบุโฆษณา (Android: AdvertisingID; iOS: IDFA) | bigint | N (เพิ่มเมื่อ 18 ม.ค. 2018) |
app_id | AppID ที่ Hive SDK ใช้ เช่น ‘com.com2us.misample.normal.freefull.apple.global.ios.universal’ | string(200) | N (เพิ่มเมื่อ 25 ม.ค. 2019) |
guid | คีย์เฉพาะที่สร้างขึ้นต่อบันทึก รูปแบบสุ่มเช่น uuid เป็นที่แนะนำ | varchar(64) | N |
real_count | จำนวนสินทรัพย์ที่ผู้ใช้ได้รับจริง เช่น เมื่อผู้ใช้ได้รับสินทรัพย์สิบรายการในครั้งเดียว จะมีเพียงบันทึกเดียวที่เหลืออยู่ แต่จำนวนจริงของสินทรัพย์คือสิบ | int | Y (เพิ่มเมื่อ 4 ก.ย. 2019) |
ตัวอย่างบันทึก¶
{
"date": "2018-03-19 15:11:39",
"dateTime": "2018-03-19 15:11:39",
"category": "derbyday_asset_var_log",
"channel": "C2S",
"channel_uid": "100123456",
"game": "misample",
"server_id": "GLOBAL",
"account_id": 301611,
"account_level": 2,
"character_id": 0,
"character_type_id": 0,
"character_level": 0,
"action_id": 330,
"action_name": "uc774ubca4ud2b8",
"item_id": 330063,
"item_name": "ub808ubca8uc5c5ubcf4uc0c1",
"item2_id": 10001,
"item2_name": "ub809uc5c5ubcf4uc0c1",
"asset_id": 2,
"asset_name": "uc18cuc6b8uace8ub4dc",
"amount_prev": 122,
"amount_var": 244,
"amount_curr": 366,
"amount_free_prev": 111,
"amount_free_var": 222,
"amount_free_curr": 333,
"amount_paid_prev": 11,
"amount_paid_var": 22,
"amount_paid_curr": 33,
"game_language":"JP",
"deviceid":123456,
"market": "GO",
"client_ip": "221.234.20.174",
"server_ip": "10.3.68.53",
"company": "C2S",
"app_id": "com.com2us.misample.normal.freefull.apple.global.ios.universal",
"guid": "ca4bd34c867f4617a819ae139d8d6670",
"real_count": 10
}
วิธีการใช้งาน¶
- บันทึกความแปรปรวนของสินทรัพย์ช่วยตรวจสอบสถานะการจัดส่ง/การเรียกคืนสินค้าตามสินทรัพย์และตรวจสอบอัตราการเรียกคืน สัดส่วนการขายขึ้นอยู่กับอัตราการเรียกคืน
- ประเภทสินค้าที่สามารถแยกแยะได้และการกระทำของผู้ใช้ในเกมแสดงให้เห็นว่าสินค้าถูกจัดส่ง/เรียกคืนอย่างไร
- สามารถตรวจสอบรายละเอียดการขายสินค้าพิเศษหรือสินทรัพย์ฟรีตามประเภทของเหตุการณ์ต่างๆ
- โปรดหารือกับผู้จัดการโครงการเกม, PIC ของทีมวางแผนแพลตฟอร์ม และทีมวางแผน BI เกี่ยวกับวิธีการแยกแยะสินทรัพย์/การกระทำ/สินค้า ก่อนที่จะใช้บันทึก