Asset variance log v2
This log is stacked by variance of user asset in games (e.g., cash, game money).
Category¶
- scribed/FTP type
Common Server service_metrics-asset_var_log Test Server service_metrics_test-asset_var_log - FTP type
Naming rule asset_var_[date]_[server]_[ID for avoiding duplication].json e.g., asset_var_20180705_111500_GLOBAL-4.json - fluentd Type
Server (Balancing loads to two servers) analytics-hivelog-03.withhive.com analytics-hivelog-04.withhive.com TAG Naming ha2union.game.[game name].asset_var_log (ex) ha2union.game.samplegame.asset_var_log category field value [game name].asset_var_log e.g., {“category”:”samplegame_asset_var_log”,”aaa”:1} more detail... - http type
server https://analytics-log.withhive.com category field value [game name]_asset_var_log (ex) {"category":"samplegame_asset_var_log","aaa":1} more detail...
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_asset_var_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 Enter Code) | string | Y |
account_id | Unique account identifier in server (PK) | bigint | Y |
account_level | The level of an account. Set this value as 0 if the account has no level | 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 |
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 |
action_id | User’s Action ID relevant to changes in unique game money in games Range: [1–(2^31−1)] API or protocol distinguishes actions in games, so game servers should define each ID about action Once you define, do not change it. Test is necessary | int | Y |
action_name | The value mapping 1:1 to action_id. If action_id is different, so is action_name (e.g., Feeding, Harvesting, etc.) The actual data is stacked based on the action_id. If changed, metatable is automatically updated If changed, metatable is automatically updated | string(50) | Y |
item_id | Item identifier caused asset variance. Set this value as 0 if the asset variance action is unrelated to the item. Range: [1–(2^31−1)]This value is a number started from 1, so 0 is unavailable except the value is null. This parameter is needed when action is related to item. Each game should define the item ID Once you define, do not change it. Test is necessary | bigint | Y |
item_name | The value mapping 1:1 to item_id. Input 0 when item_id is 0, and all values should have explanations except when item_id is 0. Brief about item_id | string(50) | Y |
item2_id | Additional item_id for analyzing item_id in detail | bigint | N (added on Sep.04.2019) |
item2_name | The value mapping 1:1 to item2_id. Input 0 when item2_id is 0, and all values should have explanations except when item2_id is 0. Brief about item2_id | string | N (added on Sep.04.2019) |
asset_id | Set this value from 1 to 100 for cashable asset/social media point, and from 101 and higher for non-cashable asset Once you define, do not change it. Test is necessary (cf. If the cashable asset is what user usually gets rather than buys in games, set from 101 and higher numbers) | int | Y |
asset_name | Brief about asset_id (e.g., bell, star, goldball, gold) | string(50) | Y |
amount_prev | The amount of asset right before asset variance relevant to asset_id | bigint | Y |
amount_var | The amount of asset variance relevant to asset_id. Asset decrease: Negative number, Asset increase: Positive number | bigint | Y |
amount_curr | The amount of asset right after asset variance relevant to asset_id. amount_curr = amount_prev + amount_var | bigint | Y |
amount_free_prev | The amount of free asset right before asset variance relevant to asset_id (added due to the amended Act on Settlement of Funds in Japan) | bigint | N (added on Jan.18.2018) |
amount_free_var | The amount of free asset variance relevant to asset_id Asset decrease: Negative number, Asset increase: Positive number (added due to the amended Act on Settlement of Funds in Japan) | bigint | N (added on Jan.18.2018) |
amount_free_curr | The amount of asset right after free asset variance relevant to asset_id (added due to the amended Act on Settlement of Funds in Japan) amount_free_curr = amount_free_prev + amount_free_var | bigint | N (added on Jan.18.2018) |
amount_paid_prev | The amount of paid asset right before asset variance relevant to asset_id (added due to the amended Act on Settlement of Funds in Japan) | bigint | N (added on Jan.18.2018) |
amount_paid_var | The amount of paid asset variance relevant to asset_id Asset decrease: Negative number, Asset increase: Positive number (added due to the amended Act on Settlement of Funds in Japan) | bigint | N (added on Jan.18.2018) |
amount_paid_curr | The amount of asset right after paid asset variance relevant to asset_id (added due to the amended Act on Settlement of Funds in Japan) amount_paid_curr = amount_paid_prev + amount_paid_var | bigint | N (added on Jan.18.2018) |
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 | tinyint(1) | Not required, but recommended. |
game_language | Language in games with two small letters e.g., ko Reference: Identifier Policy | varchar | Not required, but recommended.(added on Jan.18.2018) |
deviceid | Device ID on Hive. The identifier which abstracts advertising identifier (Android: AdvertisingID; iOS: IDFA) | bigint | N (added on Jan.18.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 |
real_count | The actual number of assets user got e.g., When user gets ten assets at once, only one log is left but the actual number of the asset is ten | int | Y (added on Sep.04.2019) |
Log sample¶
{
"date": "2018-03-19 15:11:39",
"dateTime": "2018-03-19 15:11:39",
"category": "derbyday_asset_var_log",
"channel": "C2S",
"channel_uid": "100123456",
"game": "misample",
"server_id": "GLOBAL",
"account_id": 301611,
"account_level": 2,
"character_id": 0,
"character_type_id": 0,
"character_level": 0,
"action_id": 330,
"action_name": "uc774ubca4ud2b8",
"item_id": 330063,
"item_name": "ub808ubca8uc5c5ubcf4uc0c1",
"item2_id": 10001,
"item2_name": "ub809uc5c5ubcf4uc0c1",
"asset_id": 2,
"asset_name": "uc18cuc6b8uace8ub4dc",
"amount_prev": 122,
"amount_var": 244,
"amount_curr": 366,
"amount_free_prev": 111,
"amount_free_var": 222,
"amount_free_curr": 333,
"amount_paid_prev": 11,
"amount_paid_var": 22,
"amount_paid_curr": 33,
"game_language":"JP",
"deviceid":123456,
"market": "GO",
"client_ip": "221.234.20.174",
"server_ip": "10.3.68.53",
"company": "C2S",
"app_id": "com.com2us.misample.normal.freefull.apple.global.ios.universal",
"guid": "ca4bd34c867f4617a819ae139d8d6670",
"real_count": 10
}
How to use¶
- Asset Variance Log helps examine the state of item delivery/retrieval by asset and checks the retrieval rate. The amount of sales depends on the retrieval rate.
- Distinguishable item type and user action in game shows where the item delivery/retrieval is actively performed.
- It is available to check the details of additional item sales or free assets by various types of event.
- Make sure to discuss with game project manager, PIC of platform planning team and BI planning team about how to distinguish Asset/Action/Item before using the log.