In-App Review API の導入とトラブルシューティング

In-App Review API とは?

f:id:go_takahana:20210410121245p:plain:w180

アプリ内でPlayストアのレビューができる機能です。
これまではユーザをPlayストアに移動させてレビューしてもらっていましたが、この In-App Review API を使うと、Playストアに移動することなくアプリ上でレビューすることができます。

また多くのアプリはレビューを訴求するUIを作成していましたが、この In-App Review API を用いるとアプリ開発者は新しくUIを作ることなく、数行のコードでレビューダイアログが表示できます。

In-App Review API の導入はとても楽で、ユーザもレビューしやすくなるため、とても便利な機能です。ただ、いくつか制限があったり、ハマりポイントがあったりするので注意が必要です。

In-App Review API の制限

割り当て

参考

  • レビューダイアログはリクエストするたびに毎回表示されるのではなく、一度表示されたら一定期間表示されない(具体的な期間は明示されていない)

また、割り当ては変更される可能性があるので、独自のロジックを設けたほうが良いです。 (例:最後にリクエストしてから60日後に表示するなど)

レビューダイアログの状態

  • レビューダイアログが表示されたことの確認はできない
  • レビューが送信されたことの確認はできない

これらは、適切なレビューをもらうために必要な制限です。
例えば、★5でレビュー送信してくれたユーザに報酬(例:コインなど)を与えるようなことができてしまうと、アプリの適切な評価にはなりません。
また、レビューダイアログをリクエストする前にユーザに質問する(「このアプリを気に入りましたか?」など)のはガイドラインに反します。
その他、細いガイドラインがあるので確認しましょう。

In-App Review API の導入

In-App Review API は Play Core Library の機能です。
core-ktxは必須ではありませんが、後に紹介するレビューダイアログをリクエストする処理をコルーチンで書くことができます。
最新のリリースはPlay Core Library のリリースノートを確認してください。

ここでは簡単にActivityの拡張関数を作りました。なお、ドキュメントで紹介されているものとは異なり、コルーチンを使っています。

kotlinバージョン: 1.3.72
dependencies {
    implementation 'com.google.android.play:core:1.10.0'
    implementation 'com.google.android.play:core-ktx:1.8.1'
    ...
}
suspend fun Activity.requestInAppReview() {
    val manager = ReviewManagerFactory.create(this)
    val reviewInfo = manager.requestReview()
    manager.launchReview(this, reviewInfo)
}

NOTE

  • 関数内で val manager = ReviewManagerFactory.create(this) として ReviewManager を作っているが、ReviewManager をDIしても良い
  • val reviewInfo = manager.requestReview() のように、ReviewInfo の取得はリクエストする直前に実行する(参考

動作テスト

参考

通常のビルド・実行では、レビューダイアログをリクエストしても毎回表示されないのでテストは困難です。(割り当ての制限がある) テスト用にレビューダイアログを毎回表示させるためには「内部テストトラック」または「内部アプリ共有」を利用します。 ここでは内部テストトラックの例を示します。

内部テストトラック

Playコンソールで内部テストトラックを設定します。
テスターなど設定できたら、テスターにリンクを配布します(画面下の[リンクをコピー]をクリック)。

f:id:go_takahana:20210410110231p:plain
内部テストトラック

テスターがリンクを開くと、次のような画面になります。 [download it on Google Play]をクリックすると、Playストアに飛びます。ここで、アプリ名に(内部テストベータ版)になっていることが確認できます。

f:id:go_takahana:20210410112801p:plainf:id:go_takahana:20210410113353p:plain
内部テストプログラムへようこそ

アプリをインストールして、レビューダイアログが表示されることを確認します。
一度Playストアからインストールしたら、それ以降はAndroidStudioでビルド・実行しても割り当ての制限がなく、リクエストするたびにレビューダイアログが表示されます。

f:id:go_takahana:20210410121245p:plain:w280
レビューダイアログ

トラブルシューティング

ここまでやってもレビューダイアログが表示されない場合は、トラブルシューティングを必ず確認しましょう。

ここからは私がハマったポイントを紹介します。

Playストアで「あなたは内部テスターです」の表示がない

Case 1

リンクを開いて、[download it on Google Play]をクリックしてPlayストアに移動しても、「あなたは内部テスターです」の表示がない場合があります。 この場合、リンクを開いた画面の右上にある白い四角をクリックして、テスターのアカウントを選択することで解決しました。

f:id:go_takahana:20210410112801p:plain:w280

Case 2

Playストアにログインしているアカウントがテスターのアカウントではない場合があります。Playストアのホーム画面の右上アイコンがテスターのものになっていることを確認しましょう。

f:id:go_takahana:20210410123139p:plain:w280

ダイアログが開いたと思ったら、すぐに消える

スクリーンショットは用意できませんでしたmm)

この事象は、テスターのアカウントがエンタープライズアカウント(会社のアカウント)だったため起きていました。 業務でIn-App Review API を導入する時にハマる人がかなり多いと思います!気をつけましょう!

最後に

In-App Review API は数行で導入ができるので、とても便利です。
ただ、割り当てやガイドラインを把握したり、レビューダイアログを出すタイミングをよく検討したりする必要があります。
良いタイミングを考えるのは容易ではありませんが、In-App Review API を導入する際に「ユーザがサービスの何に満足しているのか」「ユーザがストレスを感じるのはどこか」など、ユーザ体験の振り返りをする良い機会になると思っています。

ちなみに、私は「ユーザが一番満足していて、その体験が一区切りしたタイミング」の時に出すのが良いと思っています。 (例:YouTubeの動画を見終わって、ホームに戻ってきたタイミングなど)