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 hh 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 hh 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.