콘텐츠로 이동

Hive SDK

Hive SDK Client 사용 방식

Hive SDK로 제공되는 기능을 통해 클라이언트에서 원하는 형태로 Hive 로그수집 서버로 직접 로그전송이 가능합니다.

JSONObject logData = new JSONObject ();
// Sets pre-defined log
logData.AddField ("category", "hivesdk_levelup_log");
logData.AddField ("level", level);
Analytics.sendAnalyticsLog (logData);
#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);
picojson::object logData;
// Sets pre-defined log
logData["category"] = picojson::value("hivesdk_levelup_log");
logData["level"] = picojson::value((double)level);
Analytics::sendAnalyticsLog(logData);
Map<String, Object> logData = new HashMap<String, Object>();
// Sets pre-defined log
logData.put("category", "hivesdk_levelup_log");
logData.put("level", level);
Analytics.sendAnalyticsLog(logData);
NSMutableDictionary* logData = [[NSMutableDictionary alloc] init];
// Sets pre-defined log
[logData setObject:@"hivesdk_levelup_log" forKey:@"category"];
[logData setObject:level forKey:@"level"];
[HIVEAnalytics 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];