บันทึกการซื้อ
หมวดหมู่¶
- ประเภทการเขียน
เซิร์ฟเวอร์ทั่วไป | purchase_log |
---|---|
เซิร์ฟเวอร์ทดสอบ | test_purchase_log |
- ประเภท FTP
กฎการตั้งชื่อ | purchase_[วันที่][เซิร์ฟเวอร์][ID เพื่อหลีกเลี่ยงการซ้ำซ้อน].json | e.g., purchase_20180705_111500_GLOBAL-4.json |
---|---|---|
- ประเภท Fluentd (อิงตามการกำหนด Log)
เซิร์ฟเวอร์ (การกระจายโหลดไปยังสองเซิร์ฟเวอร์) | analytics-hivelog-03.withhive.com analytics-hivelog-04.withhive.com | |
กฎสำหรับการตั้งชื่อแท็ก | ha2union.game.[ชื่อย่อของเกม].purchase_log | เช่น ha2union.game.samplegame.purchase_log |
ค่าของฟิลด์หมวดหมู่ | [ชื่อย่อของเกม]_purchase_log | เช่น {“category”:”samplegame_purchase_log”,”aaa”:1} |
วิธีการส่งข้อมูลโดยละเอียด |
- ประเภท http (ตามการกำหนด Log)
เซิร์ฟเวอร์ | https://analytics-log.withhive.com | |
ค่าของฟิลด์ category | [ชื่อสั้นของเกม]_purchase_log | เช่น {"category":"samplegame_purchase_log","aaa":1} |
วิธีการส่งข้อมูลโดยละเอียด |
ข้อกำหนดการบันทึก¶
Note
ฟิลด์ที่ใช้ snake_case เช่น server_id
จะถูกแปลงเป็น camel case เช่น serverId
เมื่อถูกเก็บในที่เก็บข้อมูลสุดท้าย (BigQuery) และบันทึกที่ส่งในรูปแบบที่ไม่ได้ระบุ เช่น serverid
จะไม่ถูกบันทึกในคอลัมน์ของมัน
ชื่อฟิลด์ | คำอธิบาย | ประเภท | จำเป็น | จำเป็นสำหรับ IAP v2 |
---|---|---|---|---|
channel | C2S: HIVE KAK: Kakao LIN: LINE WEI: Weibo | string (3) | Y | N |
uid | HIVE uid ที่ส่งจาก HIVE Client (extra_uid กำลังใช้งาน) หากไม่มี uid ให้ใส่ null | bigint | ไม่จำเป็นหาก Extra_uid มีอยู่ | N |
extra_uid | รหัสประจำตัวที่ไม่ซ้ำกันที่ออกโดยช่องทางภายนอก (เช่น Kakao) ซึ่งผู้ใช้เข้าถึงเกมจาก ไม่ใช่ HIVE หากไม่มี extra_uid ให้ใส่ null | string (30) | ไม่จำเป็นหาก uid มีอยู่ | N |
did | รหัสประจำตัวอุปกรณ์ที่ใช้ใน HIVE | bigint | Y | N |
platform | แพลตฟอร์มของอุปกรณ์ผู้ใช้: "A": Android "I": iOS "B": Bada "W": Windows | string (1) | Y | N |
os_version | เวอร์ชันแพลตฟอร์มของอุปกรณ์ผู้ใช้ เช่น "5.1.1" | string (30) | Y | ไม่จำเป็น แต่แนะนำ |
market | ข้อมูลตลาด "TS": SKT T store "OL": KT Olleh Market "OZ": LGU+ Oz Store "AP": Apple App store "GO": Google Play "SA": Samsung Apps "LE": Com2uS Lebi "MM": ChinaMobile Mobile Market "SN": Sina Weibo Point "36": Qihu 360 Point "MO": Momo Momo Point "DN": DeNA Mobage Point "NA": Naver App Store "AM": Amazon "ON": ONE store "FU": Funtap "HU": Huawei "OP": OPPO "VI": VIVO "XI": Xiaomi "TC": Tencent | string (2) | Y | N |
game_index | ออกโดยแผนกธุรกิจ Techpart ดัชนีแอปที่ออกพร้อมกับ AppID | smallint | Y | N |
app_id | AppID ที่ Hive SDK ใช้ เช่น 'com.com2us.derbyday.kakao.freefull.google. android.common' | string(200) | Y | Y |
version | เวอร์ชันของเกมที่ผู้ใช้กำลังใช้งานอยู่ เช่น "2.0.1" | string(30) | Y | N |
nationality | รหัสสัญชาติที่ส่งจากไคลเอนต์ หากไม่สามารถส่งค่านี้ได้ ให้ส่ง client_ip แทน (ค้นหา GeoIP บนเซิร์ฟเวอร์ DW และเพิ่มเข้าไป) รูปแบบ: ISO 3166-1 alpha-2 เช่น "KR" อ้างอิง: นโยบายตัวระบุ | string(2) | Y | N |
client_ip | ที่อยู่ IP ของอุปกรณ์ผู้ใช้ในขณะชำระเงิน รูปแบบ: [0–255]. [0–255]. [0–255]. [0–255] | string(15) | Y | N |
transaction_id | รหัสประจำตัวที่ไม่ซ้ำกันของการชาร์จโดยเกม มันป้องกันการทำซ้ำของบันทึกการซื้อเมื่อส่งไปยัง Hive Server ฟิลด์นี้ใช้เพื่อกำจัดการทำซ้ำเมื่อส่งบันทึกการซื้อไปยัง Hive Server GooglePlay: order_id (ในการชำระเงินทดสอบ: หาก order_id คืนค่า null ให้ใช้ purchasetoken และอื่น ๆ ใช้ order_id) AppStore: transaction_id SamsungApps: payment_id ตลาดที่ไม่มีการตรวจสอบ: รหัสประจำตัวการทำธุรกรรมที่ออกโดยเซิร์ฟเวอร์เกม หากเกมใช้ IAP 2.0 ให้ใส่ {iap transaction id}. | string(512) | Y | Y |
product_id | รหัสประจำตัวผลิตภัณฑ์ เช่น com.com2us.tinyfarm.normal.freefull.apple. global.ios.universal.Large_Basket_of_Bells | string(512) | Y | N |
product_name | ชื่อผลิตภัณฑ์ Kor/Eng/Num/Sign สามารถใช้ได้ภายใน 20 ตัวอักษร | string(128) | Y | N |
product_price | ราคาผลิตภัณฑ์ที่ผู้ใช้ชำระ เช่น 10.99 | float | Y | N |
currency | สกุลเงินของราคาที่ผู้ใช้ชำระ รูปแบบ: ISO 4217 เช่น USD, KRW การชำระเงินผ่าน Lebi จะแสดงเป็น “CNY” (20lebi=1CNY) | string(3) | Y | N |
quantity | จำนวนผลิตภัณฑ์ที่ผู้ใช้ซื้อ | int | Y | N |
purchase_time | เวลาที่ผู้ใช้ชำระเงินสำหรับการซื้อ (ตามเวลา KST) ป้อนโดยไม่มีช่องว่าง รูปแบบ: yyyy-mm-dd hhss เช่น, 2017-02-08 16:34:38 | datetime | Y | Y |
timezone | UTC offset ของพารามิเตอร์เวลาในบันทึก
เช่น, "GMT+09:00" เช่น, "GMT+10:30" | string | Y | N |
path | gs: ตัวย่อของเซิร์ฟเวอร์เกม (คงที่) | string(2) | Y | N |
server_ip | ที่อยู่ IP ของเซิร์ฟเวอร์เกมที่ส่งบันทึกการซื้อ รูปแบบ: [0–255]. [0–255]. [0–255]. [0–255] | string(15) | Y | N |
giftee_uid | แสดงว่าตัวเป้าหมายของบันทึกเป็นของขวัญหรือไม่; หากเป็นของขวัญ ค่าจะหมายถึงตัวระบุที่ไม่ซ้ำกันของผู้รับ (uid) null: ไม่ใช่ของขวัญ การซื้อปกติสำหรับผู้ใช้เอง 0: ของขวัญ แต่ uid ของผู้รับไม่ชัดเจน ค่าของ ID: uid ของผู้รับ | bigint | Y | N |
device_name | ชื่อรุ่นของอุปกรณ์ผู้ใช้ เช่น, iPhone, iPad, SM-G935, LGM-G600S | string(32) | Y | N |
company | บริษัทเผยแพร่เกม เป้าหมายของบันทึก: เช่น, "C2S": Com2uS, "GVI": Com2uS Holdings | string(3) | Y | N |
server_id | รหัสเซิร์ฟเวอร์ อ้างอิงจาก ตารางรหัสเซิร์ฟเวอร์ เพื่อป้อนรหัสเซิร์ฟเวอร์ (JSON Enter Code) | string | Y | Y |
server_uid | ตัวระบุผู้ใช้ที่ใช้ในเซิร์ฟเวอร์เกม | bigint | Y | N |
level | ระดับของผู้ใช้ในเกม (ระดับสูงสุดหากมีตัวละครหลายตัว) | int | Y | Y |
character_id | ตัวระบุตัวละครที่ใช้ในเซิร์ฟเวอร์ ตั้งค่าตัวระบุตัวนี้เป็น 0 หากเกมไม่มีตัวละคร | bigint | Y | N |
character_type_id | ค่าของประเภทตัวละครที่ใช้ในเซิร์ฟเวอร์ ตั้งค่านี้เป็น 0 หากเกมไม่มีตัวละคร | int | Y | N |
character_level | ระดับตัวละครที่ใช้ในเซิร์ฟเวอร์ ตั้งระดับนี้เป็น 0 หากเกมไม่มีตัวละคร | int | Y | N |
language | รหัสภาษาของผู้ใช้ รูปแบบ: ISO 639 alpha-2 (ตัวพิมพ์เล็ก) เช่น, "ko" | string(7) | Y | N |
game_language | รหัสภาษาของเกมที่ส่งจากไคลเอนต์. 2 ตัวพิมพ์เล็ก เช่น, ko/zh-hans (จีนตัวย่อ), zh-hant (จีนตัวเต็ม) อ้างอิง: นโยบายตัวระบุ | varchar | Y | N |
device_language | รหัสภาษาของอุปกรณ์ที่ส่งจากไคลเอนต์ เช่น, ko/zh-hans (จีนตัวย่อ), zh-hant (จีนตัวเต็ม) อ้างอิง: นโยบายตัวระบุ | varchar | Y | N |
vid | ตัวระบุผู้ใช้ที่ออกโดย Login Center หากคุณไม่ใช้ Login Center การส่งค่า key ไม่จำเป็นต้องทำ | bigint | Y | N |
mac_address | ที่อยู่ MAC ของอุปกรณ์ผู้ใช้ รูปแบบ: สตริงประเภทที่มี 12 ตัวอักษร หากไม่มี ให้เว้นค่า เช่น, 482C6A1E593D | string(12) | Y | N |
item_send_ok | (Y/N) สินค้าที่ซื้อถูกส่งไปยังผู้ใช้หรือไม่? หากไม่สามารถยืนยันสถานะการจัดส่งได้ ให้ส่งสตริงว่าง "" | string(1) | Y | Y |
is_emulator | หากเชื่อมต่อกับ Emulator สำหรับ PC เช่น BlueStacks ให้คืนค่า 1; มิฉะนั้น ให้คืนค่า 0 สำหรับเวอร์ชัน PC ให้คืนค่า 2 | tinyint(1) | N | ไม่จำเป็น แต่แนะนำ |
guid | คีย์ที่ไม่ซ้ำกันที่สร้างขึ้นต่อบันทึก แนะนำให้ใช้รูปแบบสุ่มเช่น uuid | varchar(64) | N | N |
hiveiap_purchase_test | สถานะการชำระเงินทดสอบ | varchar(100) | N | N |
ตัวอย่างบันทึก¶
{
"channel": "C2S",
"uid": 111111111,
"did": 222222222,
"mac_address": "000000000000",
"platform": "A",
"os_version": "6.0.1",
"market": "GO",
"game_index": "2414",
"app_id": "com.com2us.misample",
"version": "2.4.1",
"level": 21,
"nationality": "us",
"language": "en",
"ip": "112.114.245.232",
"transaction_id": "GPA.3333-8449-4747-11111",
"product_id": "com.com2us.misample.normal.freefull.google.global.android.common.cash01",
"product_name": "uc9c0",
"product_price": "1.99",
"quantity": 1,
"currency": "USD",
"purchase_time": "2018-05-01 11:22:33",
"path": "gs",
"server_ip": "114.114.245.239",
"device_name": "samsung SM-G920P",
"company": "C2S",
"game_language": "en",
"device_language": "ko",
"server_id": "KR-2",
"guid": "ca4bd34c867f4617a819ae139d8d6670"
}