Hive SDK Client 사용 방식
Hive SDK로 제공되는 기능을 통해 클라이언트에서 원하는 형태로 Hive 로그수집 서버로 직접 로그전송이 가능합니다.
Unity®
1 2 3 4 5 |
JSONObject logData = new JSONObject (); // 사전에 정의된 로그 설정 logData.AddField ("category", "hivesdk_levelup_log"); logData.AddField ("level", level); Analytics.sendAnalyticsLog (logData); |
C++
1 2 3 4 5 |
picojson::object logData; // 사전에 정의된 로그 설정 logData["category"] = picojson::value("hivesdk_levelup_log"); logData["level"] = picojson::value((double)level); Analytics::sendAnalyticsLog(logData); |
Android
1 2 3 4 5 |
Map<String, Object> logData = new HashMap<String, Object>(); // 사전에 정의된 로그 설정 logData.put("category", "hivesdk_levelup_log"); logData.put("level", level); Analytics.sendAnalyticsLog(logData); |
iOS
1 2 3 4 5 |
NSMutableDictionary* logData = [[NSMutableDictionary alloc] init]; // 사전에 정의된 로그 설정 [logData setObject:@"hivesdk_levelup_log" forKey:@"category"]; [logData setObject:level forKey:@"level"]; [HIVEAnalytics sendAnalyticsLog:logData]; |
게임 진입 구간 퍼널 로그 전송하기
게임 실행한 순간부터 로비에 도착하기까지 유저의 이탈 구간을 분석하기 위해 Hive SDK가 구간별로 Hive 애널리틱스에 로그를 전송하는 기능입니다.
Hive SDK v4.11.0 이상 버전을 적용할 때 로그가 자동으로 전송되며, Hive 콘솔 > 애널리틱스 > 분석 > 퍼널 분석 메뉴에서 퍼널 생성 후 확인할 수 있습니다. 콘솔에서 퍼널을 생성하는 방법은 운영 > Hive 애널리틱스 > 퍼널 분석 페이지를 참조하세요.
- 퍼널 수집 구간
어떤 게임 유저가 게임 앱의 아래 구간에서 이탈한 기록을 로깅합니다. 퍼널 로그는 각 유저별로 앱을 1회 실행할 때마다 1회 기록합니다. Hive 연동가이드라인 > 게임 진행 플로우 가이드 기준, 아래에 명시된 구간에서 유저 이탈 여부를 확인할 수 있습니다. -
게임 데이터와 리소스 다운로드 구간 로그 전송
게임 데이터와 리소스 다운로드 구간은 Hive SDK에서 시작과 끝 시점을 정확하게 확인하기 어려우며, 게임에서 시작과 끝 시점을 특정하여 유저가 이탈한 로그를 전송해야합니다. Hive SDK를 이용해 다운로드의 시작 시점과 끝 시점을 로그로 전송하세요. Hive SDK 샘플 코드는 다음과 같습니다.
진입 구간 | 설명 |
---|---|
400 | 앱 신규 설치 유저 |
401 | Hive SDK 초기화 시작점 |
420 | 업데이트 / 공지 |
430 | 약관동의 |
500 | 게임서버 수동선택 |
600 | 서버 점검 팝업 |
700 | 게임 데이터와 리소스 다운로드 시작(게임 설치/업데이트와는 별개의 구간) |
800 | 데이터와 리소스 다운로드 완료 |
900 | 로그인 |
1000 | 대배너 |
Unity®
1 2 3 4 5 6 7 8 9 10 11 |
// 게임 리소스와 데이터 다운로드 시작 시 700 Analytics.sendUserEntryFunnelsLogs("700", null); // 리소스와 데이터 다운로드 완료 시 800 Analytics.sendUserEntryFunnelsLogs("800", null); // Analytics.sendAnalyticsLog() 사용 시 JSONObject logData = new JSONObject (); // 게임 리소스와 데이터 다운로드 시작 시 700 logData.AddField ("category", "hive_user_entry_log"); logData.AddField ("sectionId", 700); Analytics.sendAnalyticsLog (logData); |
C++
1 2 3 4 5 6 7 8 9 10 11 |
// 게임 리소스와 데이터 다운로드 시작 시 700 Analytics::sendUserEntryFunnelsLogs("700", nullptr); // 게임 리소스와 데이터 다운로드 완료 시 800 Analytics::sendUserEntryFunnelsLogs("800", nullptr); // Analytics::sendAnalyticsLog() 사용 시 picojson::object logData; // 게임 리소스와 데이터 다운로드 시작 시 700 logData["category"] = picojson::value("hive_user_entry_log"); logData["sectionId"] = picojson::value((double)700); Analytics::sendAnalyticsLog(logData); |
Android
1 2 3 4 5 6 7 8 9 10 11 |
// 게임 리소스와 데이터 다운로드 시작 시 700 Analytics.sendUserEntryFunnelsLogs("700", null); // 게임 리소스와 데이터 다운로드 완료 시 800 Analytics.sendUserEntryFunnelsLogs("800", null); // Analytics.sendAnalyticsLog() 사용 시 Map<String, Object> logData = new HashMap<String, Object>(); // 게임 리소스와 데이터 다운로드 시작 시 700 logData.put("category", "hive_user_entry_log"); logData.put("sectionId", 700); Analytics.sendAnalyticsLog(logData); |
iOS
1 2 3 4 5 6 7 8 9 10 11 |
// 게임 리소스와 데이터 다운로드 시작 시 700 [HIVEAnalytics sendUserEntryFunnelsLogs:@"700" withOptions:nil]; // 게임 리소스와 데이터 다운로드 완료 시 800 [HIVEAnalytics sendUserEntryFunnelsLogs:@"800" withOptions:nil]; // HIVEAnalytics sendAnalyticsLog 사용 시 NSMutableDictionary* logData = [[NSMutableDictionary alloc] init]; // 게임 리소스와 데이터 다운로드 시작 시 700 [logData setObject:@"hive_user_entry_log" forKey:@"category"]; [logData setObject:700 forKey:@"sectionId"]; [HIVEAnalytics sendAnalyticsLog:logData]; |