허브 게스트 전환 로그
카테고리¶
상용 서버 | service_metrics-guest_transition_log |
---|---|
개발 서버 | service_metrics_test-guest_transition_log |
예시¶
- 신규 전환
- 게스트 플레이 유저(90049050329)가 레벨3일 때, 정식유저(118622361)로 전환함, 게임서버 uid 변경 없음
'{"date":"2014-08-19:16:01:00","channel":"C2S","game":"test","server_id":1,
"guest_channel_uid":"90049050329","guest_server_uid":1234,"guest_level":3,
"candidate_channel_uid":"118622361","candidate_server_uid":0,"candidate_level":0,
"selected_channel_uid":"118622361","selected_server_uid":1234,"selected_level":3,
"client_ip":"221.2.164.31","server_ip":"115.28.135.86","company":"C2S"}'
- 예전 게임 데이터로 전환
- 과거 정식 유저(118159707)로 플레이했던 유저(레벨 10, 게임서버uid, 1500)가 게스트(90049050731) 계정으로 새롭게 플레이 함(레벨5, 게임서버uid 2000). 게스트 상태를 전환하려는 상황에 정식 유저(118159707)를 선택.
'{"date":"2014-08-19 16:02:00","channel":"C2S","game":"test","server_id":1,
"guest_channel_uid":"90049050731","guest_server_uid":2000,"guest_level":5,
"candidate_channel_uid":"118159707","candidate_server_uid":1500,"candidate_level":10,
"selected_channel_uid":"118159707","selected_server_uid":1500,"selected_level":10,
"client_ip":"221.2.164.31","server_ip":"115.28.135.86","company":"C2S"}'
로그 스펙¶
Note
스네이크 케이스(예: server_id
) 형태의 필드는 최종 저장소(BigQuery)에 저장될 때 카멜 케이스(예: serverId
) 형태로 변환되며, serverid
같은 스펙에 명시되지 않은 형태로 전송된 로그는 해당 컬럼에 저장되지 않습니다.
필드명 | 설명 | 타입 | 필수여부 |
---|---|---|---|
date | 로그인 정보 생성 일시‘년-월-일 시:분:초’의 형식으로 작성 ex) 2012-01-19 16:24:00 | string | Y |
timezone | 로그에 입력하는 시간 파라미터 값의 UTC offset 입력 예) UTC+10:30 (공백없이) 참고: Time Zone Lists | string | Y |
channel | 로그인 채널(컴r투스 허브, 카카오, 라인 등) 예) C2S or KAK or LIN or WEI 등(채널 추가시 담당자와 논의 필요) C2S: Hive KAK: 카카오 LIN: 라인 WEI: 웨이보 STE: 스팀 | string(3) | Y |
game | 게임 브랜드 네임 사용.(예: derbydays) app_id의 세 번째 항목 com.com2us.littlelegends.kakao.freefull.apple.global.ios.universal → littlelegends | string(50) | Y |
server_id | 서버구분코드 - 2016.2.1 이후 위키 첫 페이지 common 항목의 서버코드표 참조하여 '서버 코드(JSON 입력 코드)' 를 입력- 2016.2.1 이전 (글로벌/한국/일본/중국/... 이런 것들) 필드의 값이 0인 경우 null 을 의미함 server_id 추가 이전에 서비스하던 게임은 필드 정의가 없었으므로 값이 0으로 처리되고 있음 server_id 추가 이후에 오픈하는 게임의 경우 멀티 서버가 아니더라도 향후 서버 추가에 대비하여 1로 서버 아이디를 사용하고 meta테이블에 추가 (추가 일자: 2014-05-22) | - 2016.2.1 이후 string - 2016.2.1 이전 tinyint | Y |
guest_channel_uid | 로그인 채널에서의 유저 식별값(주로 bigint를 사용하지만 스트링형을 사용하는 채널들이 있을수 있음) | string(64) | Y |
guest_server_uid | 게임 서버에서 사용하는 유저 식별값 | bigint | Y |
guest_level | 유저 레벨 등. 게임을 얼마나 한 상태인지 알 수 있는 값 | int | Y |
guest_app_id | 컴투스에서 발급하는 게임 별 application id ex) 'com.com2us.derbyday.kakao.freefull.google.global.android.common' | string(200) | Y |
guest_did | Active User Module 2.0 did (허브 did와 같음) (추가 일자:2014-09-03) | bigint | Y |
candidate_channel_uid | 로그인 채널에서의 유저 식별값(주로 bigint를 사용하지만 스트링형을 사용하는 채널들이 있을 수 있음) | string(64) | Y |
candidate_server_uid | 게임 서버에서 사용하는 유저 식별값. 처음 하는 게스트 유저가 게스트 전환을 해서 캔디데이트 UID를 받는 시점엔, 새로 받은 캔디데이트 유아이에 해당하는 게임 계정이 없는데, 이때는 0으로 값을 보내면 됨. | bigint | Y |
candidate_level | 유저레벨 등. 게임을 얼마나 한 상태인지 알 수 있는 값. 처음 하는 게스트 유저가 게스트 전환을 해서 캔디데이트 UID를 받는 시점엔, 새로 받은 캔디데이트 유아이에 해당하는 게임 계정이 없는데, 이때는 0으로 값을 보내면 됨. | int | Y |
selected_channel_uid | 로그인 채널에서의 유저 식별값(주로 bigint를 사용하지만 스트링형을 사용하는 채널들이 있을 수 있음) | string(64) | Y |
selected_server_uid | 게임 서버에서 사용하는 유저 식별값 | bigint | Y |
selected_level | 유저 레벨 등. 게임을 얼마나 한 상태인지 알 수 있는 값 | int | Y |
client_ip | 클라이언트의 IP | string(32) | Y |
server_ip | 서버의 IP | string(32) | Y |
company | 회사 구분(C2S: 컴투스, GVI: 컴투스홀딩스) | string(3) | Y |
로그 예제¶
'{"date":"2014-08-19 16:02:00","channel":"C2S","game":"test","server_id":1,"guest_channel_uid":"90049050731","guest_server_uid":2000,"guest_level":5,
"candidate_channel_uid":"118159707","candidate_server_uid":1500,"candidate_level":10,
"selected_channel_uid":"118159707","selected_server_uid":1500,"selected_level":10,"client_ip":"221.2.164.31","server_ip":"115.28.135.86","company":"C2S"}'
활용 정보¶
- 당일 Guest 유저 대상 전환유저 현황 파악 (레벨별로도 확인 가능)
- 전환 유저수: 한명의 유저(Hub_id) 가 다수의 Guest_id를 갖고 있는 경우 발생
- Hub_id기준: 전환한 Hub_id로 카운트 함
- Guest_id기준: Guest_id로 카운트 함