카테고리
- FTP 방식
파일명 규칙 purchase_[날짜]_[서버]_[중복방지용id].json 예. purchase_20180705_111500_GLOBAL-4.json - fluentd 방식 (로그 정의 템플릿)
서버 (2대 로드밸런싱) analytics-hivelog-03.withhive.com
analytics-hivelog-04.withhive.comTAG명 규칙 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} 자세한 전송 방법 안내
로그 스펙
필드명 | 설명 | 타입 | 필수여부 | 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:mm:ss 예. 2017-02-08 16:34:38 |
datetime | Y | Y |
timezone | 로그에 입력하는 시간 파라미터 값의 UTC offset 값
|
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 |
로그 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
{ "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" } |