Hive SDK
Hive SDK Client 사용 방식¶
Hive SDK로 제공되는 기능을 통해 클라이언트에서 원하는 형태로 Hive 로그수집 서버로 직접 로그전송이 가능합니다.
게임 진입 구간 퍼널 로그 전송하기¶
게임 실행한 순간부터 로비에 도착하기까지 유저의 이탈 구간을 분석하기 위해 Hive SDK가 구간별로 애널리틱스에 로그를 전송하는 기능입니다.
Note
Hive SDK v4.11.0 이상 버전을 적용할 때 전면 배너 프로모션(1000)까지의 로그가 자동으로 전송되며, 콘솔 > 애널리틱스 > 퍼널 메뉴에서 기본 생성된 퍼널을 확인하거나 새 퍼널을 생성 할 수 있습니다. 콘솔에서 퍼널을 생성하는 방법은 애널리틱스 > 퍼널 페이지를 참조하세요.
- 퍼널 수집 구간 어떤 게임 유저가 게임 앱의 아래 구간에서 이탈한 기록을 로깅합니다. 퍼널 로그는 각 유저별로 앱을 1회 실행할 때마다 1회 기록합니다. Hive 연동가이드라인 > 게임 진행 플로우 가이드 기준, 아래에 명시된 구간에서 유저 이탈 여부를 확인할 수 있습니다.
진입 구간 설명 400 앱 신규 설치 유저 401 Hive SDK 초기화 시작점 420 업데이트 / 공지 430 약관동의 500 게임서버 수동선택 600 서버 점검 팝업 700 게임 데이터와 리소스 다운로드 시작(게임 설치/업데이트와는 별개의 구간) 800 데이터와 리소스 다운로드 완료 900 로그인 1000 전면 배너 게임 데이터와 리소스 다운로드 구간 로그 전송 게임 데이터와 리소스 다운로드 구간은 Hive SDK에서 시작과 끝 시점을 정확하게 확인하기 어려우며, 게임에서 시작과 끝 시점을 특정하여 유저가 이탈한 로그를 전송해야합니다. Hive SDK를 이용해 다운로드의 시작 시점과 끝 시점을 로그로 전송하세요. Hive SDK 샘플 코드는 다음과 같습니다.
// 700 at the start of downloading game resources and data
Analytics.sendUserEntryFunnelsLogs("700", null);
// 800 when resource and data download complete
Analytics.sendUserEntryFunnelsLogs("800", null);
// When using Analytics.sendAnalyticsLog()
JSONObject logData = new JSONObject();
// 700 at the start of game resource and data download
logData.AddField("category", "hive_user_entry_log");
logData.AddField("sectionId", 700);
Analytics.sendAnalyticsLog(logData);;
// 700 at the start of downloading game resources and data
Analytics::sendUserEntryFunnelsLogs("700", nullptr);
// 800 at the end of downloading game resources and data
Analytics::sendUserEntryFunnelsLogs("800", nullptr);
// When using Analytics::sendAnalyticsLog()
picojson::object logData;
// 700 at the start of game resource and data download
logData["category"] = picojson::value("hive_user_entry_log");
logData["sectionId"] = picojson::value((double)700);
Analytics::sendAnalyticsLog(logData);
#include "HiveAnalytics.h"
// 게임 리소스와 데이터 다운로드 시작 시 700
FHiveAnalytics::SendUserEntryFunnelsLogs(TEXT("700"), TEXT(""));
// 리소스와 데이터 다운로드 완료 시 800
FHiveAnalytics::SendUserEntryFunnelsLogs(TEXT("800"), TEXT(""));
// Analytics.sendAnalyticsLog() 사용 시
TSharedPtr<FJsonObject> LogData = MakeShareable(new FJsonObject);
// 게임 리소스와 데이터 다운로드 시작 시 700
LogData->SetStringField(TEXT("category"), TEXT("hive_user_entry_log"));
LogData->SetStringField(TEXT("sectionId"), TEXT("700"));
FHiveAnalytics::SendAnalyticsLog(LogData);
// 700 at the start of downloading game resources and data
Analytics.sendUserEntryFunnelsLogs("700", null);
// 800 at the end of downloading game resources and data
Analytics.sendUserEntryFunnelsLogs("800", null);
// When using Analytics.sendAnalyticsLog()
Map<String, Object> logData = new HashMap<String, Object>();
// 700 at the start of game resource and data download
logData.put("category", "hive_user_entry_log");
logData.put("sectionId", 700);
Analytics.sendAnalyticsLog(logData);
// 700 at the start of downloading game resources and data
[HIVEAnalytics sendUserEntryFunnelsLogs:@"700" withOptions:nil];
// 800 at the end of downloading game resources and data
[HIVEAnalytics sendUserEntryFunnelsLogs:@"800" withOptions:nil];
// When using HIVEAnalytics sendAnalyticsLog
NSMutableDictionary* logData = [[NSMutableDictionary alloc] init];
// 700 at the start of game resource and data download
[logData setObject:@"hive_user_entry_log" forKey:@"category"];
[logData setObject:700 forKey:@"sectionId"];
[HIVEAnalytics sendAnalyticsLog:logData];