이 가이드에서는 Unity를 사용하여 앱에 인앱 리뷰를 통합하는 방법을 설명합니다. Kotlin이나 자바, 네이티브 코드 또는 Unreal Engine을 사용하는 경우 별도의 통합 가이드가 있습니다.
Unity SDK 개요
Play In-App Review API는 Play Core SDK 제품군의 일부입니다. Unity용 API는 RequestReviewFlow 및 LaunchReviewFlow 메서드를 사용하여 흐름을 요청하고 시작할 수 있는 ReviewManager 클래스를 제공합니다. 요청이 이루어진 후 앱은 ReviewErrorCode를 사용하여 요청 상태를 확인할 수 있습니다.
개발 환경 설정
OpenUPM-CLI
OpenUPM CLI가 설치되어 있으면 다음 명령어를 실행하여 OpenUPM 레지스트리를 설치할 수 있습니다.
openupm add com.google.play.reviewOpenUPM
Unity 메뉴 옵션 Edit(수정) > Project Settings(프로젝트 설정) > Package Manager(패키지 관리자)를 선택하여 package manager settings(패키지 관리자 설정)를 엽니다.
OpenUPM을 Package Manager(패키지 관리자) 창에 범위가 지정된 레지스트리로 추가합니다.
Name: package.openupm.com URL: https://package.openupm.com Scopes: com.google.external-dependency-manager com.google.play.common com.google.play.core com.google.play.reviewUnity 메뉴 옵션 Window(창) > Package Manager(패키지 관리자)를 선택하여 package manager menu(패키지 관리자 메뉴)를 엽니다.
관리자 범위 드롭다운을 설정하여 My Registries(내 레지스트리)를 선택합니다.
패키지 목록에서 Unity용 Google Play Integrity 플러그인 패키지를 선택하고 Install을 누릅니다.
GitHub에서 가져오기
GitHub에서 최신
.unitypackage버전을 다운로드합니다.Unity 메뉴 옵션 Assets(확장 소재) > Import package(패키지 가져오기) > Custom Package(맞춤 패키지)를 선택하고 모든 항목을 가져와서
.unitypackage파일을 가져옵니다.
ReviewManager 생성
앱과 Google Play API 간의 통신을 처리하는 ReviewManager 인스턴스를 만듭니다.
using Google.Play.Review;
// 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 launchFlowOperation.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.
다음 단계
앱의 인앱 검토 흐름 테스트를 통해 통합이 제대로 작동하는지 확인합니다.