🗂

in-app reviewsでストアに遷移せずにアプリを評価してもらう

2020/09/29に公開

Noteの記事を加筆修正しました。

公式(https://developer.android.com/guide/playcore/in-app-review)

Fragment

view.findViewById<Button>(R.id.btnReview)
    .clicks()
    .onEach {
//      val manager = ReviewManagerFactory.create(requireContext())
        val manager = FakeReviewManager(requireContext())
        val request = manager.requestReviewFlow()
        request.addOnCompleteListener { request ->
            if (request.isSuccessful) {
                val reviewInfo = request.result
                val flow = manager.launchReviewFlow(requireActivity(), reviewInfo)
                flow.addOnCompleteListener { _ ->
                    Toast.makeText(requireContext(), "終了", Toast.LENGTH_SHORT).show()
                }
            } else {
                // 問題が発生したけど気にしたらいけない
            }
        }

    }
    .launchIn(viewLifecycleOwner.lifecycleScope)

managerは実装時はFakeReviewManagerを使い、その後はReviewManagerFactory.createを使用してください

実際に動作確認をするためにはPlayConsoleの内部アプリ共有を使うとレビューの投稿はできませんが、動作を見ることはできるので気軽に試す事が可能です。

現時点では対象のユーザがレビュー済みかどうか分からないですし、
レビューに誘導した後も投稿してくれたのか、キャンセルされたのかも分かりません

ガイドライン

in app reviewsを使う場合にはガイドラインを守る必要があります。

8/8時点でのガイドライン翻訳(保証なし)

  • アプリやゲームを十分体験してもらってからレビューをうながす
  • ユーザに対して過度にレビューを要求してはいけません
  • レビューを依頼する前にアプリに関する質問をしたり、星5を依頼してはいけません

8/8時点でのデザインガイドライン翻訳(保証なし)

  • 評価画面はサイズや透明度など既存のデザインを変更せずに使用すること
  • 評価画面の上や周りにオーバーレイを加えてはいけません
  • 評価画面と評価画面の背景は一番上のレイヤーになければなりません、
    評価画面が表示されたらプログラムで画面を削除してはいけません。
    ユーザのアクションかライブラリの動作で自動的に削除されます。

サンプルコード

https://github.com/sobaya-0141/AllFlow/tree/in_app_review

Discussion