콘텐츠로 이동

구매 로그

카테고리

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

로그 스펙

Note

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

필드명 설명 타입 필수여부 IAP v2 필수여부
channel C2S: Hive
KAK: 카카오
LIN: 라인
WEI: 웨이보
STE: 스팀
string(3) Y N
uid 클라이언트에서 보내온 Hive uid (extra_uid를 사용)
없는 경우 null 입력
bigint Extre_uid가 있다면 불필요 N
extra_uid Hive가 아닌 외부 채널(예. 카카오)을 통해 접속한 유저일 때, 해당 외부 채널에서 발급한 유저의 고유 아이디
없는 경우 null 입력
string(30) uid가 있다면 불필요 N
did Hive에서 사용하는 단말기 식별자(did) 값 bigint Y N
platform 유저 단말기의 플랫폼을 의미:
"A": Android
"I": iOS
"B": Bada
"W": Windows
string(1) Y N
os_version 유저 단말기의 플랫폼 버전
예. "5.1.1"
string(30) 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 N
game_index 사업부 테크파트에서 발급
AppID와 함께 발급되는 고유 App Index
smallint Y N
app_id Hive에서 사용하는 AppID
예.'com.com2us.derbyday.kakao.freefull.google.global.
android.common'
string(200) Y Y
version 유저가 현재 이용하고 있는 게임 버전
예. "2.0.1"
string(30) Y N
nationality 클라이언트에서 보내온 국적 코드 값
만약 이 값을 전송하지 못하는 경우는 client_ip 만이라도 전송 (DW서버에서 GEO IP 조회하여 추가함)
형식: ISO 3166-1 alpha-2
예. "KR"
Hive 식별자 정책 참고
string(2) Y N
client_ip 구매에 대한 결제 시점의 유저의 단말기 IP 주소
형식: [0–255]. [0–255]. [0–255]. [0–255]
string(15) Y N
transaction_id 게임별 과금에 대한 고유 식별자
구매 로그를 중복으로 Hive 서버에 전송 했을 때 중복을 없애기 위한 용도임
GooglePlay: order_id (결재 테스트 시 : order_id가 null 인 경우 purchasetoken 사용, 그 외는 order_id 사용)
AppStore: transaction_id
SamsungApps: payment_id
검증이 없는 마켓: 게임 서버에서 발급한 트랜젝션 식별자
IAP 2.0 을 사용하는 게임의 경우는 iap transaction id 입력
string(512) Y Y
product_id 상품에 대한 고유 식별자
예. com.com2us.tinyfarm.normal.freefull.apple.global.
ios.universal.Large_Basket_of_Bells
string(512) Y N
product_name 상품에 대한 고유 상품 이름 (reference name)
한글/영문/숫자/기호 20자 이내
string(128) Y N
product_price 유저가 결제한 상품의 가격. 통화에 맞게 표기된 값을 넣어줌
예. 10.99
float Y N
currency 유저가 결제한 금액의 통화
형식: ISO 4217 (3byte)
예. USD, KRW
러비를 이용한 과금은 "CNY"로 설정 (20lebi=1CNY)
string(3) Y N
quantity 유저가 구매한 상품 개수 (1로 고정) int Y N
purchase_time 유저가 실제로 결제를 수행한 시간 (한국 시간 기준)
공백 없이 입력
형식: yyyy-mm-dd hh🇲🇲ss
예. 2017-02-08 16:34:38
datetime Y Y
timezone 로그에 입력하는 시간 파라미터 값의 UTC offset 값
  • 기존 scribe/ftp 방식으로 전송할 때 date 값의 기준이 항상 KST이므로 공백 혹은 GMT+09:00로 값을 고정
  • 예. "GMT+09:00"
  • 로그 정의를 fluentd/http 방식으로 전송할 때 dateTime 값에 따라 timezone 값을 동적으로 설정
  • 예. "GMT+10:30"
string Y N
path gs: GameServer 약자 (고정) string(2) Y N
server_ip 구매 로그를 보내는 게임 서버의 IP 주소 형식: [0–255]. [0–255]. [0–255]. [0–255] string(15) Y N
giftee_uid 로그의 대상이 된 구매가 선물인지 아닌지를 나타내며, 선물일 때는 선물 받은 유저에 대한 고유 식별자(uid).
null: 선물을 위한 구매가 아님. 유저 본인을 위한 구매 결제
0: 상품을 선물 받은 사람이 있으나, 받은 사람의 uid가 확인이 되지 않음 아이디 값: 선물 받은 사람의 uid
bigint Y N
device_name 유저의 단말기 모델명
예. iPhone, iPad, SM-G935, LGM-G600S
string(32) Y N
company 로그의 대상이 되는 게임 제작 회사
예. "C2S": 컴투스, "GVI": 컴투스홀딩스
string(3) Y N
server_id 서버 구분 코드
서버코드표 참조하여 '서버 코드 (JSON 입력 코드)'를 입력
string Y Y
server_uid 게임 서버에서 사용하는 유저 식별자 bigint Y N
level 게임 내 유저 레벨 (캐릭터가 다수면 최고 레벨) int Y Y
character_id 서버 내에서 사용하는 캐릭터 식별자
캐릭터가 없는 게임에서는 캐릭터 식별자를 0으로 설정
bigint Y N
character_type_id 서버 내에서 사용하는 캐릭터 타입 구분 값
캐릭터가 없는 게임에서는 캐릭터 타입 구분 값을 0으로 설정
int Y N
character_level 서버 내에서 사용하는 캐릭터 레벨 값.
캐릭터가 없는 게임에서는 캐릭터 레벨 값을 0으로 설정
int Y N
language 유저의 언어 코드
형식: ISO 639 alpha-2 (소문자)
예. "ko"
string(7) Y N
game_language 클라이언트에서 보내온 게임의 언어코드 (2글자 소문자)
ex) ko, zh-hans 간체, zh-hant 번체
Hive 식별자 정책 참고
varchar Y 필수는 아니지만 권장
device_language 클라이언트에서 보내온 단말의 언어코드 ex) ko, zh-hans 간체, zh-hant 번체 Hive 식별자 정책 참고 varchar Y N
vid 로그인 센터에서 발급하는 유저 식별자
로그인 센터 사용하지 않을 경우, key 값 보내지 않아도 됨
bigint N N
mac_address 유저 단말기의 MAC 주소
형식: 12자의 문자열
MAC 주소가 없을 땐 빈 값으로 설정
예. 482C6A1E593D
string(12) N N
item_send_ok (Y/N) 구매한 상품이 유저에게 지급 되었는지? 지급 여부를 확인이 불가능 하다면 공백 문자열 "" string(1) Y Y
is_emulator 블루스택 등 PC용 에뮬로 접속했으면 1, 아니면 0
PC버전으로 접속 시 2
tinyint(1) N 필수는 아니지만 권장
guid 매 로그마다 발생하는 고유 키 값
uuid와 같은 랜덤 문자열 형태를 권장
varchar(64) N N
hiveiap_purchase_test 테스트 결제 여부 varchar(100) N N

로그 예제

{
        "channel": "C2S",
        "uid": 111111111,
        "did": 222222222,
        "mac_address": "000000000000",
        "platform": "A",
        "os_version": "6.0.1",
        "market": "GO",
        "game_index": "2414",
        "app_id": "com.com2us.misample",
        "version": "2.4.1",
        "level": 21,
        "nationality": "us",
        "language": "en",
        "ip": "112.114.245.232",
        "transaction_id": "GPA.3333-8449-4747-11111",
        "product_id": "com.com2us.misample.normal.freefull.google.global.cash01",
        "product_name": "uc9c0",
        "product_price": "1.99",
        "quantity": 1,
        "currency": "USD",
        "purchase_time": "2018-05-01 11:22:33",
        "path": "gs",
        "server_ip": "114.114.245.239",
        "device_name": "samsung SM-G920P",
        "company": "C2S",
        "game_language": "en",
        "device_language": "ko",
        "server_id": "KR-2",
        "guid": "ca4bd34c867f4617a819ae139d8d6670",
        "hiveiap_purchase_test" : "Y"
    }