PC SDK는 부가서비스를 게임에 통합할 수 있도록 API를 제공합니다.

PC SDK가 지원하는 부가서비스로는 사용자정의 이벤트 로그, PC SDK 버전 조회, 과몰입방지 알림, 셧다운 알림, 추적단서 조회가 있습니다.

게임은 게임내 사용자정의 이벤트(게임 로그)를 스토브 플랫폼으로 전송할 수 있습니다. 또한 게임은 현재 사용중인 PC SDK의 유의적 버전을 조회할 수 있습니다.

PC SDK의 유의적 버전 조회는 콜백이 아닌 리턴값으로 획득이 가능합니다.

과몰입방지 알림은 매시간 게임 과몰입에 대한 경고 문구를 콜백을 통해 전달합니다.

셧다운 알림은 만 18세 미만의 청소년이 부모에 의해 요일별 특정시간에 게임을 이용 할 수 없도록 제한을 하는 시스템으로써 요건이 충족되면 최대 4회에 걸쳐 알림을 콜백을 통해 전달합니다.

1. Callback 설정

부가서비스 API를 사용하여 PC SDK와 커뮤니케이션 하기 위하여, 게임에서는 아래 UMyStovePCSDKObject 클래스의 연결된 콜백함수를 재정의해야 합니다.

UCLASS()
class HELLOSTOVE_API UMyStoveSDKObject : public UStoveSDKObject
{
   GENERATED_BODY()
public:

    //StovePCSDK Event
    void OnInitComplete() final;
    void OnError(FStoveError Error) final;
    void OnToken(FStoveToken Token) final;
    void OnUser(FStoveUser User) final;
    void OnOwnership(int Size, FStoveOwnership* Ownerships) final;

    // FetchTermsAgreement 처리가 완료됐을 때 호출되는 콜백
  void OnFetchTermsAgreement(FStoveFetchTermsAgreement TermsAgreement) final;

    //StashCustomEvent 처리가 완료됐을 때 호출되는 콜백
    void OnStashCustomEvent(FStoveCustomEvent CustomEvent, int ParameterSize, FStoveCustomEventParameter* Parameters) final;

    // ADD 2.6.0 Start
    // 과몰입방지를 위해 매시간 호출되는 콜백
    void OnOverImmersion(FStoveOverImmersion OverImmersion) final;

    // 셧다운 제한시 호출되는 콜백
    void OnShutdown(FStoveShutdown Shutdown) final;
    // 2.6.0 End

}

연동하기 1) Config, Callback 설정에서와 같이 UStoveSDKObject를 상속받은 'UMyStoveSDKObject'클래스의 콜백함수를 재정의하여 이벤트를 연결합니다.

/*소유권(Ownership) 기능만 사용하는 경우는,
필수 구현 콜백인 OnError, OnInitComplete외에
OnOwnership 콜백만 추가로 구현해서 연결합니다.*/
void UMyStoveSDKObject::OnInitComplete()
{
      // 초기화 성공 후 처리내용
}

void UMyStoveSDKObject::OnError(FStoveError Error)
{
      // 에러에 대한 처리내용
}

void UMyStoveSDKObject::OnOwnership(int Size, FStoveOwnership* Ownerships)
{
       // 소유권 조회 후 처리내용
}
void UMyStoveSDKObject::OnStashCustomEvent(FStoveCustomEvent CustomEvent, int ParameterSize, FStoveCustomEventParameter* Parameters)
{
       // 로그전송 후 전달된 내용 확인
}
// ADD 2.6.0 Start
void UMyStoveSDKObject::OnOverImmersion(FStoveOverImmersion OverImmersion)
{
       //  과몰입방지를 위해 매시간 호출되는 콜백
}

void UMyStoveSDKObject::OnShutdown(FStoveShutdown Shutdown)
{
       // 법률에 의거 선택적 셧다운이 필요한 경우 구현 합니다.
}
// 2.6.0 End

OnStashCustomEventOnOverImmersionOnShutdown 콜백을 반드시 구현할 필요는 없습니다. 게임에서 사용자정의 이벤트 로그 기능을 사용할 경우만 연결하면 됩니다.

경고

OnOverImmersion 콜백은 법률에 의거 게임과몰입/중독 예방조치가 필요한 경우 반드시 구현하여야 합니다. OnShutdown 콜백은 법률에 의거 선택적 셧다운이 필요한 경우 반드시 구현하여야 합니다.

2. 사용자정의 이벤트 로깅

UMyStoveSDKObject::StoveSDKStashCustomEvent 함수로 사용자정의 이벤트(게임 로그)를 로깅합니다.

// 입력 파라미터
// const FString& Name: 이벤트명
// const FString& Category1 : 1차 카테고리명
// const FString& Category2 : 2차 카테고리명
// const FString& SimpleValue : 간단한 값
// const TArray<FStoveCustomEventParameter> Params : 세부적인 파라미터 정보
// int paramsSize : 세부적인 파라미터 정보 개수
FStoveResult ErrorResult = UMyStoveSDKObject::StoveSDKStashCustomEvent("EVENT_NAME", "CATEGORY1", "CATEGORY2", 1.0f, params, PARAMS_SIZE);
if(ErrorResult.Result == StovePCResult::STOVE_PC_NO_ERROR)
{
    /* 성공 처리 */
}

StoveSDKStashCustomEvent 함수가 정상적으로 처리되면 OnStashCustomEvent 콜백이 호출됩니다.

콜백에 전달되는 FStoveCustomEvent 구조체에는 API 호출시 전달한 이벤트명, 1차 카테고리명, 2차 카테고리명, 간단한 값이 포함되어 있습니다.

콜백에 전달되는 FStoveCustomEventParameter 구조체에는 API 호출시 전달한 파라미터 정보가 포함되어 있습니다.