게임 내 유저의 재화(예. 캐시, 게임 머니) 정보가 변동하면 생성하는 로그입니다.

카테고리

 

  • FTP 방식
    파일명 규칙 asset_var_[날짜]_[서버]_[중복방지용id].json (예) asset_var_20180705_111500_GLOBAL-4.json
  • fluentd 방식 (로그 정의 템플릿)
    서버 (2대 로드밸런싱) analytics-hivelog-03.withhive.com
    analytics-hivelog-04.withhive.com
    TAG명 규칙 ha2union.game.[게임명약칭].asset_var_log (예) ha2union.game.samplegame.asset_var_log
    category 필드 값 [게임명약칭]_asset_var_log (예) {“category”:”samplegame_asset_var_log”,”aaa”:1}
    자세한 전송 방법 안내
  • http 방식 (로그 정의 템플릿)
    서버 https://analytics-log.withhive.com
    category 필드 값 [게임명약칭]_asset_var_log (예) {“category”:”samplegame_asset_var_log”,”aaa”:1}
    자세한 전송 방법 안내

로그 스펙

필드명 설명 타입 필수여부
date 로그 발생 시각
형식: 년-월-일 시:분:초. 한국시간 (KST)
예. 2012-01-19 16:24:00
Scribe/FTP 전송 시 필수, Fluentd 전송 시 선택
string N
dateTime 로그 발생 시각
형식: 년-월-일 시:분:초. 한국시간 (KST)
예. 2012-01-19 16:24:00
string Y
category [게임 브랜드 이름]_[로그 이름] 게임 브랜드 이름은 app_id의 세 번째 항목
예. “derbyday_asset_var_log”
string Y
timezone 로그에 입력하는 시간 파라미터 값의 UTC offset 값

  • 기존 scribe/ftp 방식으로 전송할 때 date 값의 기준이 항상 KST이므로 공백 혹은 GMT+09:00로 값을 고정
    예. “GMT+09:00”
  • 로그 정의를 fluentd/http 방식으로 전송할 때 dateTime 값에 따라 timezone 값을 동적으로 설정
    예. “GMT+10:30”
string N
channel C2S: Hive
KAK: 카카오
LIN: 라인
WEI: 웨이보
STE: 스팀
string(3) Y
channel_uid 로그인 채널에서의 유저 식별값(주로 bigint를 사용하지만 스트링형을 사용하는 채널들이 있을 수 있음)
라인과 같이 정보를 알수없는 경우는 “0” 으로 전송
string(64) Y
game 게임 브랜드 네임을 사용 (예. derbydays). app_id의 세 번째 항목
예) com.com2us.littlelegends.kakao.freefull.apple.global.ios.universal => littlelegends* 같은 게임이라도 app_id의 세 번째 항목이 동일하지 않은 경우가 있기 때문에 game 필드 값은 하나로 통일해서 필수 전송해야 함
예1) com.gamevil.basebss.android.google.global.normal
예2) com.gamevil.basebssent.ios.apple.global.normal
=> basebss
string(50) Y
server_id 서버 구분 코드
서버코드표 참조하여 ‘서버 코드(JSON 입력 코드)’를 입력
string Y
account_id 서버 내에서 고유한 계정 구분 값 (PK) bigint Y
account_level 해당 계정의 레벨. 계정 레벨 개념이 없는 경우 0 int Y
character_id 서버 내에서 사용하는 캐릭터 식별자

– 캐릭터가 없는 게임에서는 캐릭터 식별자를 0으로 설정

bigint Y
character_type_id 서버 내에서 사용하는 캐릭터 타입 구분 값
캐릭터가 없는 게임에서는 캐릭터 타입 구분 값을 0으로 설정
int Y
character_level 서버 내에서 사용하는 캐릭터 레벨 값.
캐릭터가 없는 게임에서는 캐릭터 레벨 값을 0으로 설정
int Y
client_ip 클라이언트의 IP, 이 값으로 GeoIP를 이용하여 country값 추출 string(32) Y
server_ip 서버의 IP string(32) Y
company 로그의 대상이 되는 게임 제작 회사:
예) “C2S”: 컴투스, “GVI”: 컴투스홀딩스
string(3) Y
action_id 게임에서 유니크한 재화 변동에 관한 유저의 액션 ID, 범위: [1–(2^31−1)] 액션은 게임 상에서 api or protocol로 구분되는 것들로, 각 게임 서버에서는 액션에 대한 ID를 정의 해야 함.
한번 정의 후 변경되면 안됨. 반드시 테스트 필수!
int Y
action_name action_id에 1:1 매핑되는 값으로, action_id가 다르다면 action_name도 달라야함. (ex:밥주기, 농작물수확 등)
실데이터는 action_id기반으로 쌓임
변경되면 메타테이블에 자동 반영됨
string(50) Y
item_id 재화 변동을 발생시킨 아이템 고유 식별자. 재화 변동 액션이 아이템과 연관이 없을 때는 0으로 표기하세요.
범위: [0–(2^31−1)]1부터 시작하는 숫자값으로, 값이 없는 경우 외에는 0이면 안됨
해당 액션이 아이템과 연관이 있을 경우에 필요한 파라미터이며, 각 게임에서 유니크한 아이템의 ID를 정의해야 함
한번 정의 후 변경되면 안됨. 반드시 테스트 필수!
bigint Y
item_name item_id와 1:1 매핑 되는 값. item_id가 0인 경우는 “0”을 입력하고, 0이 아닌 경우를 제외하고는 설명이 존재해야 함.
item_id를 알아보기 쉽도록 간단히 제공하는 설명임
string(50) Y
item2_id item_id의 상세 현황을 파악할 목적으로 추가한 item id bigint N (19.09.04)
item2_name item2_id와 1:1 매핑되는 값. item2_id가 0인 경우는 “0”을 입력하고, 0이 아닌 경우를 제외하고는 설명이 존재해야 함.
item2_id를 알아보기 쉽도록 간단히 제공하는 설명임
string N (19.09.04)
asset_id 현금성 재화/소셜포인트의 경우(1~100), 비현금성 재화의 경우 (101~)
한번 정의 후 변경되면 안됨. 반드시 테스트 필수!
(cf. 현금 구매가능한 재화라 하더라도 구매 보다는 게임 내 획득이 주력인 재화인 경우는 101번 이상으로 세팅)
int Y
asset_name asset_id에 대한 간단한 설명 (예. bell, star, goldball, gold) string(50) Y
amount_prev asset_id에 해당하는 재화의 변동 직전 재화량 bigint Y
amount_var asset_id에 해당하는 재화의 변동량.
재화 감소: 음수, 재화 증가: 양수
bigint Y
amount_curr asset_id에 해당하는 재화의 변동 직후 재화량.
amount_curr = amount_prev + amount_var
bigint Y
amount_free_prev asset_id에 해당하는 무상재화의 변동 직전 재화량.
(일본 자금 결제법 대상 게임인 경우 필수 전송)
bigint N (18.01.18)
amount_free_var asset_id에 해당하는 무상재화의 변동량.
(일본 자금 결제법 대상 게임인 경우 필수 전송)
재화 감소: 음수, 재화 증가: 양수
bigint N (18.01.18)
amount_free_curr asset_id에 해당하는 무상재화의 변동 직후 재화량.
(일본 자금 결제법 대상 게임인 경우 필수 전송)
amount_free_curr = amount_free_prev + amount_free_var
bigint N (18.01.18)
amount_paid_prev asset_id에 해당하는 유상재화의 변동 직전 재화량
(일본 자금 결제법 대상 게임인 경우 필수 전송)
bigint N (18.01.18)
amount_paid_var asset_id에 해당하는 유상재화의 변동량.
(일본 자금 결제법 대상 게임인 경우 필수 전송)
재화 감소: 음수, 재화 증가: 양수
bigint N (18.01.18)
amount_paid_curr asset_id에 해당하는 유상재화의 변동 직후 재화량.
(일본 자금 결제법 대상 게임인 경우 필수 전송)
amount_paid_curr = amount_paid_prev + amount_paid_var
bigint N (18.01.18)
market 마켓 정보
“TS”: SKT T store
“OL”: KT Olleh Market
“OZ”: LGU+ Oz Store
“AP”: Apple App store
“GO”: Google Play
“SA”: Samsung Apps
“LE”: Com2uS Lebi
“MM”: ChinaMobile Mobile Market
“SN”: Sina Weibo Point
“36”: Qihu 360 Point
“MO”: Momo Momo Point
“DN”: DeNA Mobage Point
“NA”: Naver App Store
“AM”: Amazon
“ON”: ONE store
“FU”: Funtap
“HU”: Huawei
“OP”: OPPO
“VI”: VIVO
“XI”: 샤오미
“TC”: 텐센트
“HS”: Hive Store(Crossplay)
“ST”: Steam
string(2) Y
country client_ip를 못받아오는 경우 국가값을 직접 입력. ex) KR string(2) N
is_emulator 블루스택 등 PC용 에뮬레이터로 접속했으면 1, 아니면 0

PC버전으로 접속 시 2

tinyint(1) 필수는 아니지만 권장
game_language 게임 언어. 2글자 소문자.
ex) ko Hive 식별자 정책 참고
varchar 필수는 아니만 권장(18.01.18)
deviceid Hive did 값. 광고 식별자(Android AdvertisingID, iOS IDFA)를 추상화한 식별자 bigint N (18.01.18)
app_id Hive에서 사용하는 AppID
예. ‘com.com2us.misample.normal.freefull.apple.global.ios.universal’
string(200) N (19.01.25)
guid 매 로그마다 발생하는 고유 키 값
uuid와 같은 랜덤 문자열 형태를 권장
varchar(64) N
real_count 실제 소진한 재화 건수
예. 10개 일괄 수령 시 로그는 1개지만 실제 받은 재화는 10개
int Y (19.09.04)

로그 예제

활용 예시

  • 재화별 지급/회수 현황을 파악하고 지급량 대비 회수율 확인합니다. 회수율이 낮을 경우 매출에 영향을 미칩니다.
  • 게임에서 유저의 행동(Action)과 이를 통해 얻는 아이템(Item) 종류를 구분해 지급/회수가 원활한 곳을 확인합니다.
  • 추가 아이템 판매나 무료로 제공한 이벤트 재화 수집 정도 등 상세 내역을 확인할 수 있습니다.
  • 작업 전 Asset/Action/Item으로 구분해서 정의합니다. (PM, 플랫폼기획, BI기획 협의)