New user log
This log is stored whenever game has new players. It means when each game server (server_id) has new account (user_id).
Note
Make sure to send new user log as well as login log to Hive Server.
Do not send this log when user initializes an account because user_id is unchanged.
Category¶
- Scribe type
| Common Server | new_user_log |
|---|---|
| Test Server | test_new_user_log |
- FTP type
| Naming Rule | new_user_[Date]_[Server]_[ID for avoiding duplication].json | e.g., new_user_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].new_user_log | e.g., ha2union.game.samplegame.new_user_log |
| Value of category field | [short name of game]_new_user_log | e.g., {"category":"samplegame_new_user_log","aaa":1} |
| Detailed transmission method | ||
- http type (Based on Log definition)
| server | https://analytics-log.withhive.com | |
| category field value | [game name]_new_user_log | (ex) {"category":"samplegame_new_user_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_new_user_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 | Login channel C2S: HIVE KAK: Kakao Talk LIN: LINE WEI: Weibo GVL: Gamevile Live | string(3) | Y |
| user_id | User identifier used with the configured channel field C2S: vid in the case of games using Hive UI and Login center KAK: User identifier issued by App Center LIN: User identifier issued by App Center | bigint | Y |
| app_id | AppID which Hive SDK uses e.g., 'com.com2us.derbyday.kakao.freefull.google.global.android.common' | string(200) | Y |
| did | Device ID which Hive SDK uses | bigint | Y |
| client_ip | Client IP. This value extracts the value of country from GeoIP | string(32) | Y |
| server_ip | Server IP | string(32) | Y |
| device_name | User device model e.g., iPhone, iPad, SM-G935, LGM-G600S | string(32) | Y |
| company | Game publishing company, the target of log: e.g., "C2S": Com2uS, "GVI": Com2uS Holdings | string(3) | Y |
| server_id | Server Code See Server Code Table to input 'JSON Input Code' | string | Y |
| server_uid | User identifier used in game server | bigint | Y |
| country | Input the country code directly if client_ip is not given Reference: Identifier Policy e.g., KR | string(2) | N |
| os_version | OS version information e.g., 9.2.1 | string(10) | Not required, but recommended. |
| game_language | Language set in the game with two small letters Reference: Identifier Policy e.g., ko | varchar | Not required, but recommended. |
| 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. |
| guid | Unique key generated per log Random format such as uuid is recommended | varchar(64) | N |
Log sample¶
- Example 1
{
"date": "2012-12-19 16:28:38",
"dateTime": "2012-11-26 13:32:45",
"category": "derbyday_new_user_log",
"channel": "KAK",
"user_id": 88334245359848288,
"app_id": "com.com2us.homerunking.kakao.freefull.apple.global.ios.universal",
"client_ip": "110.70.30.199",
"server_ip": "112.175.60.47",
"guid": "ca4bd34c867f4617a819ae139d8d6670"
}
- Example 2
{
"date": "2012-12-19 16:28:41",
"dateTime": "2012-11-26 13:32:45",
"category": "derbyday_new_user_log",
"app_id": "com.com2us.tinypang.kakao.freefull.google.global.android.common",
"channel": "KAK",
"user_id": 88517016292546192,
"server_ip": "112.175.107.41",
"client_ip": "121.185.37.212",
"server_id": 1,
"guid": "ca4bd34c867f4617a819ae139d8d6670"
}
How to use¶
- Log does not display server_id (identifying server), so it utilizes the table, NEWUSER_LOG.
- server_id is different depending on games, but it usually divided as follows:
1 (Korea); 2 (Japan); 3 (China); 4 (Global). - Bringing the stacked logs on the server every hour, it provides the state of real-time players by implementing openQuery.
- It helps you check the amount of users right away through new realases or marketing on games.

