인앱 리뷰 통합(Unity)

이 가이드에서는 Unity를 사용하여 앱에 인앱 리뷰를 통합하는 방법을 설명합니다. Kotlin 또는 자바를 사용하거나 네이티브 코드를 사용한다면 별도의 통합 가이드를 참고하세요.

Unity SDK 개요

Play In-App Review API는 Play Core SDK 제품군의 일부입니다. Unity용 API는 RequestReviewFlowLaunchReviewFlow 메서드를 사용하여 흐름을 요청하고 시작할 수 있는 ReviewManager 클래스를 제공합니다. 요청이 이루어진 후 앱은 ReviewErrorCode를 사용하여 요청 상태를 확인할 수 있습니다.

개발 환경 설정

Unity용 Google 패키지에서 최신 버전의 Play In-App Review Unity 플러그인을 다운로드합니다.

ReviewManager 생성

앱과 API 간의 통신을 처리하는 ReviewManager 인스턴스를 생성합니다.

// Create instance of ReviewManager
private ReviewManager _reviewManager;
// ...
_reviewManager = new ReviewManager();

ReviewInfo 객체 요청

인앱 검토를 요청하는 시기에 관한 안내에 따라 앱의 사용자 플로우에서 적절한 지점을 결정하여 사용자에게 검토를 요청하는 메시지를 표시합니다(예: 사용자가 게임 레벨을 끝낼 때 표시되는 요약 화면을 닫은 후). 앱은 이러한 지점 중 하나가 가까워지면 다음 예와 같이 ReviewManager 인스턴스를 사용하여 비동기 작업을 생성합니다.

var requestFlowOperation = _reviewManager.RequestReviewFlow();
yield return requestFlowOperation;
if (requestFlowOperation.Error != ReviewErrorCode.NoError)
{
    // Log error. For example, using requestFlowOperation.Error.ToString().
    yield break;
}
_playReviewInfo = requestFlowOperation.GetResult();

호출이 성공하면 API는 앱에서 인앱 리뷰 흐름을 시작하는 데 필요한 PlayReviewInfo 객체를 반환합니다. 이 예에서는 비동기 작업을 실행하기 위해 호출이 코루틴 내부에서 이루어집니다(기본 스레드를 차단하지 않음). 호출이 비동기식으로 이루어지기 때문에 최대 몇 초 정도 걸릴 수 있습니다. 따라서 앱은 사용자 플로우에서 인앱 리뷰를 표시하려는 지점에 도달하기 전에 호출해야 합니다.

인앱 리뷰 흐름 시작

앱은 PlayReviewInfo 인스턴스를 수신한 이후 인앱 리뷰 흐름을 시작할 수 있습니다. PlayReviewInfo 객체는 제한된 시간 동안만 유효하므로 앱이 흐름을 시작하기 전에 너무 오래 기다리지 않아야 합니다.

var launchFlowOperation = _reviewManager.LaunchReviewFlow(_playReviewInfo);
yield return launchFlowOperation;
_playReviewInfo = null; // Reset the object
if (launchFlowOperation.Error != ReviewErrorCode.NoError)
{
    // Log error. For example, using requestFlowOperation.Error.ToString().
    yield break;
}
// The flow has finished. The API does not indicate whether the user
// reviewed or not, or even whether the review dialog was shown. Thus, no
// matter the result, we continue our app flow.

다음 단계

앱의 인앱 검토 흐름 테스트를 통해 통합이 제대로 작동하는지 확인합니다.