Score log v2
Category¶
- Scribe type
Common Server | service_metrics-score2_log |
---|---|
Test Server | service_metrics_test-score2_log |
- FTP type
Naming Rule | score2_[Date]_[Server]_[ID for avoiding duplication].json | e.g., score2_20180705_111500_GLOBAL-4.json |
---|---|---|
- Fluentd Type (Based on Log definition)
Server (Balancing loads to two servers) | analytics-hivelog-03.withhive.com analytics-hivelog-04.withhive.com | |
Rule for naming tag | ha2union.game.[short name of game].score2_log | e.g., ha2union.game.samplegame.score2_log |
Value of category field | [short name of game]_score2_log | e.g., {“category”:”samplegame_score2_log”,”aaa”:1} |
Detailed transmission method |
- http type (Based on Log definition)
server | https://analytics-log.withhive.com | |
Value of category field | [short name of game]_score2_log | e.g., {"category":"samplegame_score2_log","aaa":1} |
Detailed transmission method |
Log specification¶
Note
The snake-cased field, like server_id
, is transformed to camel case, like serverId
, when it stores in the final storage (BigQuery), and the log sent in the unspecified form, such as serverid
, is not saved in its column.
Field Name | Description | Type | Required |
---|---|---|---|
date | The time storing log Format: yyyy-mm-dd hhss e.g., 2012-01-19 16:24:00 Required for Scribe/FTP type, optional for Fluentd type | string | N |
dateTime | The time storing log Format: yyyy-mm-dd hhss e.g., 2012-01-19 16:24:00 | string | Y |
category | [The brand name of game]_[Log name] The brand name of game is the third item of app_id e.g., "derbyday_score2_log" | string | Y |
timezone | UTC offset of time parameter in the log * Fix the value of timezone as a blank or GMT+09:00 as the value of date is always KST when sending log definition as scribe or ftp type. e.g., "GMT+09:00" * Set the value of timezone flexiblely in accordance with the value of dateTime when sending log definition as fluentd or http type. e.g., "GMT+10:30" | string | Y |
channel | C2S: HIVE KAK: Kakao LIN: LINE WEI: Weibo | string(3) | Y |
channel_uid | User identifier on login channel (Generally bigint is in use, but some channels may use string type) Send 0 if the information is unknown such as LINE | string(64) | Y |
game | Use the brand name of game (e.g., derbydays). The third item of app_id e.g., com.com2us.littlelegends.kakao.freefull.apple.global.ios.universal => littlelegends * The third item of app_id can be unmatched even in one game, so make sure to unify the values of game field to send. e.g., com.gamevil.basebss.android.google.global.normal e.g., com.gamevil.basebssent.ios.apple.global.normal => basebss | string(50) | Y |
server_id | Server Code Refer to Table of Server Code to input server code (JSON Input Code) | string | Y |
account_id | Unique account identifier in server (PK) | bigint | Y |
account_level | Account level of user. In the game without level, set as 0 | int | Y |
character_id | Character identifier used in server Set this identifier as 0 if the game has no character | bigint | Y |
character_type_id | The value of character type used in server Set this value as 0 if the game has no character | int | Y |
character_level | Character level used in server Set this level as 0 if the game has no character | int | Y |
mode_id | Game mode identifier Range: [1–(2^31−1)] | int | Y |
mode_name | Game mode name For displaying ims. Use Korean | string(50) | Y |
submode_id | Identifer of sub-game mode (starts from 1). Without sub-mode, set as 0 | int | Y |
submode_name | The name of sub-game mode. Without sub-mode, set as 0 For displaying ims. Use Korean | string(50) | Y |
grade_id | Identifier of grade ID (starts from 1). Without grade, set as 0 | int | Y |
grade_name | Grade name. Without grade, set as 0 For displaying ims. Use Korean | string(50) | Y |
score | Game score of user If game records only win and loss, the average score becomes win ratio; 100 means win, and 0 means loss | int | Y |
client_ip | Client IP. This value extracts the value of country from GeoIP | string(32) | Y |
server_ip | Server IP | string(32) | Y |
company | Game publishing company, the target of log: e.g., "C2S": Com2uS, "GVI": Com2uS Holdings | string(3) | Y |
market | Market information "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 | Input the country code directly if client_ip is not given e.g., KR | string(2) | N |
is_emulator | If connecting with Emulator for PC such as BlueStacks, return 1; unless, return 0 to the PC version, return 2 | int | Not required, but recommended. |
deviceid | Device ID on HIVE. The identifier which abstracts advertising identifier (Android: AdvertisingID; iOS: IDFA) | bigint | N (added on Apr.12.2018) |
app_id | AppID which Hive SDK uses e.g., ‘com.com2us.misample.normal.freefull.apple.global.ios.universal’ | string(200) | N (added on Jan.25.2019) |
guid | Unique key generated per log Random format such as uuid is recommended | varchar(64) | N |
playtime | playtime by second | int | N (added on Sep.04.2019) |
power | The total power of characters in a deck prior to battle start. | int | N (added on Sep.11.2019) |
battle_result | Enter WIN, LOSE, DRAW, and GIVEUP when winning/losing/drawing/abandoning in pvp | string(10) | N (added on Mar.10.2021) |
Log sample¶
{
"date": datetime.datetime.today().strftime("%Y-%m-%d %H:%M:%S"),
"dateTime": "2012-11-26 13:32:45",
"category": "derbyday_score2_log",
"channel": "C2S",
"channel_uid": 11111,
"game": "misample",
"account_id": 0,
"account_level": 96,
"character_id": 0,
"character_type_id": 0,
"character_level": 0,
"mode_id": 6,
"mode_name": "ub79cub529uc561uc158",
"submode_id": 9000303,
"submode_name": "lv043",
"grade_id": 1,
"grade_name": "ub2f4uae30",
"score": 100,
"market": "GO",
"server_ip": "111.111.11.111",
"client_ip": "111.111.11.111",
"country": "JP",
"company": "C2S",
"server_id": 0,
"app_id": "com.com2us.misample.normal.freefull.apple.global.ios.universal",
"guid": "ca4bd34c867f4617a819ae139d8d6670",
"playtime": 10,
"power" : 1,
"battle_result" : "GIVEUP"
}
How to use¶
- Score Log v2 helps examine the frequency of play and the location of the users depending on the Mode > Submode > Grade.
- New mode or event mode is available to analyze the play type of users.
- Make sure to discuss with game project manager, PIC of platform planning team and BI planning team about how to distinguish Mode > Submode > Grade before using the log.