Skip to content

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