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