【ITニュース解説】Send new 1-star App Store and Google Play reviews to Slack with Python
2026年10月13日に「Dev.to」が公開したITニュース「Send new 1-star App Store and Google Play reviews to Slack with Python」について初心者にもわかりやすく解説しています。
ITニュース概要
Pythonを活用し、App StoreとGoogle Playのレビューを統一して収集し、特に低評価レビューをSlackに自動通知するシステムを紹介。これにより、アプリの不具合やユーザーの不満を素早く発見し、迅速な改善を効率化する。
ITニュース解説
システムエンジニアを目指す皆さんにとって、現代のソフトウェア開発、特にスマートフォンアプリの開発は非常に身近なテーマだろう。アプリをリリースした後も、開発者の仕事は終わらない。ユーザーからのフィードバックは、アプリを改善し、より良いものにしていく上で欠かせない要素だ。このフィードバックの最も重要な源の一つが、App StoreやGoogle Playに寄せられるレビューである。
ユーザーはアプリのレビューを通じて、新機能への要望だけでなく、バグや不具合を報告することが非常に多い。時には、開発チームのクラッシュレポートツールが問題を検知するよりも早く、レビューで「最新のアップデートでこの機能が壊れた!」といった声が上がることもある。しかし、App StoreとGoogle Playという二つの主要なプラットフォームには、それぞれレビューのフォーマットが異なり、両方から情報を効率的に集めるのは一筋縄ではいかない。App Storeの公開フィードは取得できるレビューの件数が限られていたり、古くなるとすぐに取得できなくなったりする傾向がある。また、毎日、両方のストアの管理コンソールを手作業で確認するのは、多くの開発者にとって大きな負担となる。
このような課題を解決するために開発されたのが、「App Store & Google Play Reviews Scraper」というツールである。このツールは、App StoreとGoogle Playの両方からレビューデータを収集し、異なるフォーマットで提供される情報を統一された形式の一つのデータテーブルにまとめてくれる優れものだ。これにより、開発者は二つの異なるプラットフォームのレビューを簡単に比較分析できるようになる。
このツールは「Apify」というプラットフォーム上で「アクター」と呼ばれる形で提供されており、無料トライアルクレジット付きの有料ツールとして利用できる。Apifyは、ウェブからデータを収集するためのさまざまなツールやサービスを提供しているプラットフォームだと理解すると良いだろう。
では、具体的にこのツールがどのように動作するのかを見ていこう。このスクレイパーは、各ストアの公開されているウェブデータに直接アクセスし、HTTPというインターネットの基本的な通信プロトコルを使って情報を読み取る。特別な「ヘッドレスブラウザ」(画面表示をしないブラウザ)を使ったり、開発者アカウントでログインしたりする必要はない。アプリに関する基本情報(メタデータ)は、Appleの場合は公開されているiTunesの検索サービスから、Google Playの場合はアプリのページに埋め込まれているデータから取得される。そして、実際のレビューデータは、各ストアのウェブサイトがレビューを表示するために使っている公開API(エンドポイント)から取得される。一度のリクエストで最大200件のレビューを取得でき、テストではSpotifyやUberのような大規模なアプリの2万件ものレビューを、30秒もかからずに、エラーや重複なしで収集できた実績がある。これは、大量のデータを非常に高速かつ効率的に取得できることを示している。
このツールを使う方法は、PythonやNode.jsといったプログラミング言語から非常にシンプルに利用できる。まず、Apifyクライアントライブラリをインストールし、Apifyから発行されるトークンを使ってクライアントを初期化する。その後、client.actor("rel8ble/app-reviews-scraper").call()という形で、このスクレイパーアクターを呼び出す。呼び出す際には、どのアプリのレビューを取得したいかを指定する。例えば、Apple App StoreのアプリであればURLや数字のID、Google Playのアプリであればパッケージ名(例: com.spotify.music)やURLをリスト形式で与えることができる。さらに、取得したい国(例: us)や、レビューの並べ替え順(例: newest)、アプリごとに取得する最大レビュー数といった詳細なパラメータも設定できる。実行が完了すると、レビューデータが格納されたデータセットのIDが返され、そのデータセットから個々のレビュー情報を一つずつ取り出して処理することができる。例えば、Pythonのコード例では、ストア名、評価、レビュー日付、レビュー本文の一部をコンソールに出力する簡単な処理が示されている。一つのリクエストでApp StoreとGoogle Playの異なる種類のアプリを同時に指定してレビューを取得できるのは非常に便利だ。
取得されるレビューデータは、レビューごとに一行のデータとして提供され、両方のストアで同じフィールド名(列名)が使われているのが特徴だ。もし、あるストアの情報に特定のフィールドが存在しない場合は、そのフィールドの値はnullとなる。具体的なデータ例として、Google PlayのレビューデータがJSON形式で示されている。ここには、store(ストアの種類)、appId(アプリID)、appName(アプリ名)、rating(評価の星数)、text(レビュー本文)、reviewDate(レビュー投稿日時)、reviewerName(レビュワー名)、version(アプリのバージョン)、developerReply(開発者からの返信)など、多岐にわたる情報が含まれている。特に注目すべきはversionフィールドで、Google Playのレビューの約84%でこの情報が取得できる。これにより、特定のアプリのバージョンに関連する不具合報告を特定しやすくなる。一方、App Storeのレビューにはアプリバージョンが含まれない(Appleが公開していないため)という違いもある。
このツールの非常に実用的な応用例として、新規の低評価レビューを毎日Slackに通知する機能が挙げられる。このアイデアは、毎日決まった時間に、前日以降に投稿された1つ星または2つ星の低評価レビューだけを自動的に取得し、Slackの指定されたチャンネルに投稿するというものだ。これにより、開発チームは重要な問題報告を見逃すことなく、迅速に対応できるようになる。
この機能の実装も、前述のスクレイパーの利用方法と基本は同じだ。Pythonのdatetimeモジュールを使って昨日以降の日付を計算し、スクレイパーを呼び出す際にstars=[1, 2]というパラメータで評価のフィルタリングを行い、reviewsSinceパラメータで取得する期間を限定する。これにより、必要な低評価レビューだけを効率的に取得できる。さらに、sort: "newest"を指定することで、ツールは新しいレビューから順に取得し、指定されたreviewsSinceの日付よりも古いレビューに到達した時点で自動的に処理を停止する。この賢い仕組みにより、日々の運用コストを抑えつつ、常に最新の低評価レビューを把握できるのだ。もし、特定のAndroidアプリのレビューで、あるバージョンに苦情が集中しているようであれば、それはそのバージョンで重大な不具合(リグレッション)が発生している可能性が高いと判断できる。
コスト面では、このツールは1,000レビューあたり0.25ドルと設定されている。ただし、starsやreviewsSinceといった条件でフィルタリングされて取得されなかったレビューや、実際には存在しないアプリのレビューについては料金は発生しない。日々のSlackアラートのような中規模アプリであれば、1日あたり100件未満のレビュー取得で、月額数セント程度の非常に低いコストで運用できる。大量のレビュー(例えば10万件の研究用データセット)を一度に取得しても、25ドル程度だ。Apifyの無料プランでは毎月5ドル分のクレジットが付与されるため、約2万件のレビューを無料で取得できる計算になり、小規模なプロジェクトやテスト利用には十分活用できるだろう。
いくつかこのツールの限界や注意点もある。App Storeのレビューデータには、先述の通りアプリのバージョン情報が含まれないため、特定のバージョンに関連する不具合をApp Storeのレビューから特定するのは難しい。Google Playのレビュー取得では、一度の実行で指定できる言語は一つだけなので、複数の言語のレビューを取得したい場合は、言語ごとに実行を分ける必要がある。また、レビューは国ごとに異なるため、usとgbのように異なる国のレビューを取得したい場合も、それぞれの国ごとに実行する必要がある。Google Playのレビューを星でフィルタリングする際、例えば1つ星と2つ星を同時に指定すると、まず最新の1つ星レビューが取得され、次に最新の2つ星レビューが取得されるというように、星の数ごとに順次処理される点も覚えておくと良いだろう。最後に、レビュワーの名前やアバターといった情報は個人データに該当するため、GDPRやCCPAといった個人情報保護に関する規制を遵守し、合法的な理由がある場合にのみ保存するよう注意が必要だ。
このように、App Store & Google Play Reviews Scraperは、アプリ開発者がユーザーからの貴重なフィードバックを効率的に収集・管理し、アプリの品質向上に役立てるための強力なツールである。システムエンジニアを目指す皆さんにとって、このようなツールを理解し、活用することは、現代のソフトウェア開発の現場で求められるスキルの一つとなるだろう。