Skip to content

Asset snapshot summary log

Asset Snapshot Summary Log helps you analyze the flow of total assets which game users have. Game developing companies execute the query to search the amount of assets, and this log configures the result of query, so the number of generating log is different by game.

  • In case of the game except character-base
    • market * level * period of time selecting active user (since field) * the number of unique asset_id
  • In case of character-based game
    • (market * level * period of time selecting active user * the number of unique asset_id based on character * character type) + (market * level * period of time selecting active user * the number of unique asset_id based on character * account number)

HIVE Analytics is available to analyze the following status through Asset Snapshot Summary Log.

  • Analyze whether users just gather the assets or consume them
  • Analyze the flow from the amount of assets by level
  • Analyze the flow from the amount of assets by active user for one, seven, and thirty days from the time of log generation

e.g., Action Puzzle Family

  • Send respectively by (asset * since)
  • The result is (market * level * asset * since) due to group by [market], [level]
  • Send the query result in the log format below:
SELECT 
    CONVERT(CHAR(10), getdate(),120),
    'KAK',
    'actionpuzzlefamily',
    [market],
    level,
    1 AS asset_id, 
    SUM(cash) AS cash, 
    COUNT(*), 
    30
FROM  #TEMP1
WHERE
    [marketcheck] = 1 AND 
    lastlogin >= (GETDATE()-30)
GROUP BY [market],[level]

Category

Common Server service_metrics-asset_snapshot_summary_log
Test Server service_metrics_test-asset_snapshot_summary_log

Sending as FTP type

File Naming Convention asset_snapshot_summary_[date]_[server]_[ID for avoiding duplication].json e.g., asset_snapshot_summary_20180705_111500_GLOBAL-4.json

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 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
STE: Steam
string(3) 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
string (50) 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
level The level of user in the game (The highest level if character is many) int Y
since Time gap between generating log (date field) and the last login as a criterion to extract active users
0: All users
1: Extracting users who have actively played the game one day before generating the log
7: Extracting users who have actively played the game seven days before generating the log
30: Extracting users who have actively played the game 30 days before generating the log
11: Extracting users who signed up one day before generating the log
17: Extracting users who signed up seven days before generating the log
int Y
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)
Set the asset type as the same format of cash_var_log/noncash_var_log
int Y
asset_name Brief about asset_id (e.g., bell, star, goldball, gold) string(50) Y
amount Total amount of asset relevant to asset_id bigint Y
count The number of asset relevant to asset_id int Y
m_amount The maximum amount of target asset bigint Y
server_ip Server IP stacking logs (e.g., game server IP) 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
Refer to Table of Server Code to input server code (JSON Input Code)
string 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
guid Unique key generated per log
Random format such as uuid is recommended
varchar(64) N

Log sample

{
   "date": "2017-09-05 17:23:01",
   "game": "test",
   "market": "GO",
   "level": 34,
   "since": 17,
   "asset_id": 801,
   "asset_name": "ub9c8uc77cub9acuc9c0",
   "amount": 705,
   "count": 2,
   "m_amount": 405,
   "server_ip": "10.0.0.1",
   "server_id": "GLOBAL",
   "timezone": "UTC+9",
   "character_type_id": 0,
   "character_level": 0,
   "channel": "C2S",
   "company": "GVI",
   "guid": "ca4bd34c867f4617a819ae139d8d6670"
}

How to use

  • It is avilable to analyze the flow of total asset whether users spend or just save.
  • It is available to differentiate data by level or by active user (for a day, 7 days, 30 days).