アプリ内レビューを統合する(Kotlin または Java)

このガイドでは、Kotlin または Java を使用して、アプリ内レビューをアプリに統合する方法について説明します。ネイティブ コードまたは Unity を使用している場合の統合ガイドは個別に用意されています。

開発環境をセットアップする

Play In-App Review Library は Google Play Core Library の一部です。Play In-App Review Library を統合するには、次の Gradle 依存関係を含めてください。

Groovy

// In your app’s build.gradle file:
...
dependencies {
    // This dependency is downloaded from the Google’s Maven repository.
    // So, make sure you also include that repository in your project's build.gradle file.
    implementation 'com.google.android.play:review:2.0.1'

    // For Kotlin users also add the Kotlin extensions library for Play In-App Review:
    implementation 'com.google.android.play:review-ktx:2.0.1'
    ...
}

Kotlin

// In your app’s build.gradle.kts file:
...
dependencies {
    // This dependency is downloaded from the Google’s Maven repository.
    // So, make sure you also include that repository in your project's build.gradle file.
    implementation("com.google.android.play:review:2.0.1")

    // For Kotlin users also import the Kotlin extensions library for Play In-App Review:
    implementation("com.google.android.play:review-ktx:2.0.1")
    ...
}

ReviewManager を作成する

ReviewManager は、アプリがアプリ内レビューフローを開始するためのインターフェースです。ReviewManagerFactory を使用してインスタンスを作成することにより取得します。

Kotlin

val manager = ReviewManagerFactory.create(context)

Java

ReviewManager manager = ReviewManagerFactory.create(context)

ReviewInfo オブジェクトをリクエストする

アプリ内レビューをリクエストするタイミングのガイダンスに沿って、アプリのユーザーフロー内で、ユーザーにレビューを依頼するのに適切なポイント(ゲームでレベルをクリアしたときなど)を見つけます。アプリがそのポイントに到達したら、ReviewManager インスタンスを使用してリクエスト タスクを作成します。成功すると、アプリ内レビューフローの開始に必要な ReviewInfo オブジェクトが API から返されます。

Kotlin

val request = manager.requestReviewFlow()
request.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        // We got the ReviewInfo object
        val reviewInfo = task.result
    } else {
        // There was some problem, log or handle the error code.
        @ReviewErrorCode val reviewErrorCode = (task.getException() as ReviewException).errorCode
    }
}

Java

ReviewManager manager = ReviewManagerFactory.create(this);
Task<ReviewInfo> request = manager.requestReviewFlow();
request.addOnCompleteListener(task -> {
    if (task.isSuccessful()) {
        // We can get the ReviewInfo object
        ReviewInfo reviewInfo = task.getResult();
    } else {
        // There was some problem, log or handle the error code.
        @ReviewErrorCode int reviewErrorCode = ((ReviewException) task.getException()).getErrorCode();
    }
});

アプリ内レビューフローを開始する

ReviewInfo インスタンスを使用して、アプリ内レビューフローを開始します。アプリ内レビューフローが完了するのを待ってから、通常のユーザーフロー(次のレベルに進むなど)を再開します。

Kotlin

val flow = manager.launchReviewFlow(activity, reviewInfo)
flow.addOnCompleteListener { _ ->
    // 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.
}

Java

Task<Void> flow = manager.launchReviewFlow(activity, reviewInfo);
flow.addOnCompleteListener(task -> {
    // 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.
});

次のステップ

アプリのアプリ内レビューフローをテストして、統合が正しく機能していることを検証します。