유저가 로그인할 때 생성하는 로그입니다. 새롭게 출시한 게임에서나, 마케팅을 진행 중인 게임에 유입되는 유저의 현황을 확인할 수 있습니다.
카테고리
- FTP 방식
파일명 규칙 login_[날짜]_[서버]_[중복방지용id].json 예. login_20180705_111500_GLOBAL-4.json - fluentd 방식 (로그 정의 템플릿)
서버 (2대 로드밸런싱) analytics-hivelog-03.withhive.com
analytics-hivelog-04.withhive.comTAG명 규칙 ha2union.game.[게임명약칭].login_log 예. ha2union.game.samplegame.login_log category 필드 값 [게임명약칭]_login_log 예. {“category”:”samplegame_login_log”,”aaa”:1} 자세한 전송 방법 안내 - http 방식 (로그 정의 템플릿)
서버 https://analytics-log.withhive.com category 필드 값 [게임명약칭]_login_log 예. {“category”:”samplegame_login_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의 세 번째 항목 |
string | Y |
timezone | 로그에 입력하는 시간 파라미터 값의 UTC offset 값
|
string | Y |
channel | 로그인 채널 C2S: HIVE KAK: 카카오 LIN: 라인 WEI: 웨이보 GVL: 게임빌라이브 STE: 스팀 |
string(3) | Y |
user_id | channel 필드로 설정된 채널에서 사용하는 유저 식별자 C2S: vid KAK: 앱 센터에서 발급하는 유저 식별자 LIN: 앱 센터에서 발급하는 유저 식별자 WEI: 웨이보 |
bigint | Y |
app_id | HIVE에서 사용하는 AppID 예. ‘com.com2us.derbyday.kakao.freefull.google.global.android.common’ |
string(200) | Y |
did | HIVE에서 사용하는 단말기 식별자(did) 값 (did가 변경될시에는 변경된 did로 보내줘야함) |
bigint | Y |
level | 게임 내 유저 레벨 (캐릭터가 다수면 최고 레벨) | int | Y |
client_ip | 클라이언트의 IP, 이 값으로 GeoIP를 이용하여 country값 추출 | string(32) | Y |
server_ip | 서버의 IP | string(32) | N |
device_name | 유저의 단말기 모델명 예. iPhone, iPad, SM-G935, LGM-G600S |
string(32) | Y |
company | 로그의 대상이 되는 게임 제작 회사 예. “C2S”: 컴투스, “GVI”: 컴투스홀딩스 |
string(3) | Y |
server_id | 서버 구분 코드 서버코드표 참조하여 ‘서버 코드 (JSON 입력 코드)’를 입력 |
string | Y |
server_uid | 게임 서버에서 발급하는 유저 식별자. | bigint | Y |
last_login_date | 이전 기준 마지막 로그인 일시 유저가 금일 가입한 신규 유저라면, 본 필드는 유저의 로그인 시간과 동일하게 설정 형식: yyyy-mm-dd hh:mm:ss 예. 2017-02-28 14:33:00 |
string | 필수는 아니지만 권장 |
country | client_ip 를 못받아오는 경우 국가값을 직접 입력 HIVE 식별자 정책 참고 예. KR |
string(2) | N |
os_version | OS의 버전 정보 예. 9.2.1 |
string(10) | 필수는 아니지만 권장 |
game_language | 소문자 두 자로 구성된 게임 언어 HIVE 식별자 정책 참고 예. ko |
varchar | 필수는 아니지만 권장 |
is_emulator | 블루스택 등 PC용 에뮬레이터로 접속했으면 1, 아니면 0
PC버전으로 접속 시 2 |
int | 필수는 아니지만 권장 |
guid | 매 로그마다 발생하는 고유 키 값 uuid와 같은 랜덤 문자열 형태를 권장 |
varchar(64) | N |
로그 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
{ "dateTime":"2021-10-11 11:27:15", "category":"[게임명]_login_log", "timezone":"UTC+09:00", "channel":"HIVE", "user_id":10053833008, "app_id":"com.com2us.hivesdk.android.google.global.normal", "did":5102491016, "level":0, "client_ip":"172.XX.XXX.XX", "device_name":"TINNO U319AA", "company":"C2S", "server_id":"GLOBAL-2", "server_uid":256489411, "last_login_date":"2021-10-10 08:33:11", "os_version":"11", "is_emulator":0, "game_language":"en" } |
수집 DB 테이블 스키마(reduced)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
CREATE TABLE `LOGIN_LOG_20131031` ( `log_id` BIGINT(20) NOT NULL AUTO_INCREMENT, `login_date` DATE NOT NULL, `last_login_date` DATETIME NULL, `app_id` VARCHAR(200) NOT NULL, `channel` VARCHAR(3) NOT NULL, `user_id` BIGINT(20) NOT NULL, `device_name` VARCHAR(128) NOT NULL DEFAULT 'unknown', `level` INT(11) NOT NULL, `country` CHAR(2) NULL DEFAULT NULL, `count` INT(11) NOT NULL, `add_date` DATETIME NOT NULL, `mod_date` DATETIME NOT NULL, `db_date` DATETIME NOT NULL, PRIMARY KEY (`log_id`), UNIQUE INDEX `ix_unique` (`login_date`, `app_id`, `channel`, `user_id`, `device_name`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB |
활용 예시
- 서버에 쌓이는 로그를 1시간마다 오픈 쿼리로 가지고 와서 실시간 유저 현황을 제공합니다.
- 신규 출시 게임, 마케팅을 집행한 게임 등 유저 유입 현황을 즉시 확인할 목적으로 활용합니다.
- HIVE 로그에서는 server_id(서버구분)를 알 수 없으므로 Login_log 테이블을 활용하여 보여줍니다.
- server_id = 1(한국)/2(일본)/3(중국)/4(글로벌)로 구분되며 게임마다 다릅니다.