アイリッジ開発者ブログ

アイリッジに所属するエンジニアが技術情報を発信していきます。

Google Play In-App Review API実装まとめ

https://developer.android.com/guide/playcore/in-app-review?hl=jaから引用

開発部第1グループの中島です。

担当した案件で、Google Play In-App Review APIの組み込みを行ったのでまとめを記載していこうと思います。

導入経緯


アプリの使い勝手を改善するような改修を定期的にやっているのですが、なかなか、レビューの評価が上がらないという状況がありました。

そこで、ASO(App Store Optimization)対策を行い、レビュー評価を改善しようという流れから、アプリ内レビューを実装することになりました。

Google Play In-App Review APIとは


  • Google Playのアプリページに遷移せずに、ユーザーさんにアプリ内でレビューを行うようにすることができるAPIです。

使用要件


  • Google Play ストアがインストールされている
  • Android 5(API レベル21)以上
  • Play Coreライブラリ 1.8.0以降

提示されているガイドライン


アプリ内レビューを表示するにあたり、下記のようなガイドラインがGoogleから提示されいます。

  • 表示されるレビューUIは変更したりしない
  • 表示されるレビューUIの上には何も表示させない
  • レビューUIを表示する前に、評価に対する質問をしない

    (「アプリを気に入りましたか?」といったユーザーの意見に関する質問など)

注意点


割り当てがある

  • レビューUIが表示される頻度はGoogle Playで割り当てがされており、短時間(1ヶ月未満)に何度もレビューUIを表示させようとすると、その条件に引っかかり、表示されないことがあるようです。

ユーザーが実際にレビューをしたか、星をいくつ付けたかのような具体的な情報は取得できない

  • レビューをしてもしなくても、アプリ側には同じイベントとして返ってくるので、レビューをしたら何かをするみたいなことはできないです。

実装例


※開発当時の実装例になるので、最新の実装では、ライブラリのバージョンや実装方法などが変更になっている場合があります。

app/build.gradleにGoogle Core Libraryを追加

   dependencies {
      implementation com.google.android.play:core:1.10.2
   }

レビューUI表示

   val reviewManager = ReviewManagerFactory.create(context)
        //リクエストのタスクを生成
    reviewManager.requestReviewFlow().addOnSuccessListener { reviewInfo ->
             //リクエストタスクの生成に成功したら、requestReviewFlowAPIが返してくれるreviewInfoを使用し、
      //レビューフローを開始する。
      reviewManager.launchReviewFlow(activity, reviewInfo)
        .addOnSuccessListener {
           // レビューが終了
           // ただし、レビューをしたか、途中でやめたか、そもそもできなかったは判別できない。
        }
    }

テストについて


  • 本対応で一番大変なところ。
  • 実際にアプリ内レビューの表示をデバッグするにはGoogle Play Consoleを使用したテスト方法でないと確認ができません。

Google Play Consoleを使用したテスト方法

内部テストトラック

概要

  • 最大100人のテスターにアプリを配布し、テストを行うことができるGoogle Play Consoleの機能

できること

  • レビュー送信が可能
  • レビューダイアログの表示
  • 一度でも、内部テストからダウンロードすれば、AndroidStudioからの起動で確認ができるようになる
  • 割り当て上限に引っかからない。

注意事項

  • もし、アプリの更新が必要になった場合には、VersionCodeの変更が必要になる。 このテストにアップロードしたアプリは、本番リリースが可能になってしまう

内部アプリ共有

概要

  • リリースに関係なく、開発アプリを共有することが可能
  • 内部テストと違い、VersionCodeの変更も必要ない

できること

  • レビューダイアログの表示

注意事項

  • レビューの送信ができない

テスト時の注意点

どちらの場合も、Google Play Consoleを使用しなければいけないので、Google Play Consoleにアプリをアップロードしてある必要がある(リリースする必要はない)

Goolge Play Consoleに登録されているパッケージ名のアプリでないといけません。

Google Play Consoleを使用しないテスト方法

今回の案件では使用していませんが、下記のAPIを使用して、レビュー後の動作に関しての実装を進めることもできるようです。

FakeReviewManager

概要

  • ReviewManager APIの動作を模倣することができる。
    • 具体的には、ReviewManager を FakeReviewManagerに置き換えることで、常に成功が返ってくるようになる。

できること

  • レビュー送信後のアプリの動作確認

注意事項

  • レビューUIが表示されない

まとめ


  • 実装自体は至ってシンプル
  • テストが厄介
    • 実際にレビューUIを表示させるテストを行う場合、Google Play Consoleを使用しないといけない
    • 開発用アプリのパッケージ名をリリース用と分けている場合、開発用アプリをGoole Play Consoleに登録できれば、ちょっとは楽になるかも。

参考URL


  • Google Play In-App Review API

https://developer.android.com/guide/playcore/in-app-review?hl=ja