콘텐츠로 이동

스코어 로그 v2

카테고리

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

로그 스펙

Note

스네이크 케이스(예: server_id) 형태의 필드는 최종 저장소(BigQuery)에 저장될 때 카멜 케이스(예: serverId) 형태로 변환되며, serverid 같은 스펙에 명시되지 않은 형태로 전송된 로그는 해당 컬럼에 저장되지 않습니다.

필드명 설명 타입 필수여부
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_score2_log"
string Y
timezone 로그에 입력하는 시간 파라미터 값의 UTC offset 값
  • 기존 scribe/ftp 방식으로 전송할 때 date 값의 기준이 항상 KST이므로 공백 혹은 GMT+09:00로 값을 고정
  • 예. "GMT+09:00"
  • 로그 정의를 fluentd/http 방식으로 전송할 때 dateTime 값에 따라 timezone 값을 동적으로 설정
  • 예. "GMT+10:30"
string Y
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
mode_id 게임 모드 식별자
범위: [1–(2^31−1)]
int Y
mode_name 게임 모드 이름,
ims표시용. 한글을 사용
string(50) Y
submode_id 서브 게임 모드 식별값 (1부터 시작 큰값), 서브모드가 없는 게임의 경우 0 int Y
submode_name 서브 게임 모드 이름, 서브 모드가 없는 게임의 경우 "0"
ims 표시용. 한글을 사용
string(50) Y
grade_id 등급 아이디 식별값 (1부터 시작), 등급 없는 게임의 경우 0 int Y
grade_name 등급명, 그레이드가 없는 게임의 경우 "0"
ims 표시용. 한글을 사용
string(50) Y
score 유저의 게임 점수.
점수 없이 승패로만 결과가 나오는 게임이라면 100을 승, 0을 패로 값을 정하면, 평균점수가 승률이 된다.
int Y
client_ip 클라이언트의 IP, 이 값으로 GeoIP를 이용하여 country값 추출 string(32) Y
server_ip 서버의 IP string(32) Y
company 로그의 대상이 되는 게임 제작 회사:
예. "C2S": 컴투스, "GVI": 컴투스홀딩스
string(3) Y
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
int 필수는 아니지만 권장
deviceid HIVE did 값. 광고 식별자(Android AdvertisingID, iOS IDFA)를 추상화한 식별자 bigint N (18.04.12)
app_id HIVE에서 사용하는 AppID
예. ‘com.com2us.misample.normal.freefull.apple.global.ios.universal’
string(200) N (19.01.25)
guid 매 로그마다 발생하는 고유 키 값
uuid와 같은 랜덤 문자열 형태를 권장
varchar(64) N
playtime 초 단위 플레이타임 정보 int N (19.09.04)
power 전투 입장 전, 덱을 구성하는 캐릭터의 총 전투력 int N (19.09.11)
battle_result pvp 등에서 승리/패배/비김/포기 시 WIN,LOSE,DRAW,GIVEUP 입력 string(10) N (21.03.10)

로그 예제

{
        "dateTime": "2021-11-26 13:32:45",
        "category": "[게임명]_score2_log",
        "channel": "C2S",
        "channel_uid": 11111,
        "game": "misample",
        "account_id": 0,
        "account_level": 96,
        "character_id": 0,
        "character_type_id": 0,
        "character_level": 0,
        "mode_id": 6,
        "mode_name": "ub79cub529uc561uc158",
        "submode_id": 9000303,
        "submode_name": "lv043",
        "grade_id": 1,
        "grade_name": "ub2f4uae30",
        "score": 100,
        "market": "GO",
        "server_ip": "111.111.11.111",
        "client_ip": "111.111.11.111",
        "country": "JP",
        "company": "C2S",
        "server_id": 0,
        "app_id": "com.com2us.misample.normal.freefull.apple.global.ios.universal",
        "guid": "ca4bd34c867f4617a819ae139d8d6670",
        "playtime": 10,
        "power" : 1,
        "battle_result" : "GIVEUP"
    }

활용 예시

  • Mode > Submode > Grade 에 따라 유저들이 어느 지역에서 얼마나 플레이하는지 파악하기 위한 용도입니다.
  • 신규 모드 또는 이벤트 모드 추가 시 유저의 플레이 성향을 파악하는 용도로 활용합니다.

* 작업 전 Mode > Submode > Grade로 구분해서 정의합니다. (PM, 플랫폼기획, BI기획 협의)