Hive SDK
Hive SDK Client 사용 방식¶
Hive SDK로 제공되는 기능을 통해 클라이언트에서 원하는 형태로 Hive 로그수집 서버로 직접 로그전송이 가능합니다.
#include "HiveAnalytics.h"
TSharedPtr<FJsonObject> LogData = MakeShareable(new FJsonObject);
LogData->SetStringField(TEXT("category"), TEXT("hivesdk_levelup_log"));
LogData->SetStringField(TEXT("level"), TEXT("level"));
FString SerializedJson;
TSharedRef<TJsonWriter<>> Writer = TJsonWriterFactory<>::Create(&SerializedJson);
FJsonSerializer::Serialize(LogData.ToSharedRef(), Writer);
FHiveAnalytics::SendAnalyticsLog(LogData);
게임 진입 구간 퍼널 로그 전송하기¶
게임 실행한 순간부터 로비에 도착하기까지 유저의 이탈 구간을 분석하기 위해 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"));
FString SerializedJson;
TSharedRef<TJsonWriter<>> Writer = TJsonWriterFactory<>::Create(&SerializedJson);
FJsonSerializer::Serialize(LogData.ToSharedRef(), Writer);
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];