Edited at

Google Play Storeの評価とレビューをgsutilで取得

More than 3 years have passed since last update.


注意事項

gsutilで取得できるCSVは大体1日一回更新のため、リアルタイムでレビューを取得したい場合には不向きです。リアルタイムにレビューを取得したい場合は、play.google.comから取得する事をおすすめします。

参考: https://github.com/punchdrunker/kansou


概要

以前からストアのレビューを自動で取得しているのですが、年に数回レビューページのhtmlのDOMが変更されるたび、取得できなくなり、都度修正が必要になり困っていたのですが、

気付いたらこの通り https://support.google.com/googleplay/android-developer/answer/138230#export_ratings_and_reviews 、Google Could Storage経由でAndroidアプリのストアレビューをCSV形式でエクスポートできるようになっていたので、早速試してみました。

おおまかな作業はこちらのページ

https://support.google.com/googleplay/android-developer/answer/138230#export_ratings_and_reviews

に書かれていますが、ちょっとわかりずらかったので、簡単にまとめておきます。


gsutil - インストール


1.デベロッパーアカウントでログイン

全ての作業は利用するブラウザでGoogle Developer Consoleのアカウントでgoogleサービスにログインした状態が前提となりますので、まずは普段アプリの管理に利用しているデベロッパーアカウントでログインしてください。


2.ダウンロード

こちらのページから。 tar.gz or zipをダウンロード

https://developers.google.com/storage/docs/gsutil_install


3.展開

ダウンロードしたアーカイブを展開します。インストール先を替えたい場合は$HOMEを好きなディレクトリに替えてください。

展開したものがそのまま利用できるようになっています。

tar xfz gsutil.tar.gz -C $HOME


4.パスを通す

お使いのshのrcファイル(.bashrcや.zshrcなど)にパスを通しましょう。追記したらsourceコマンドでロードするなり、shの再起動などします。

export PATH=${PATH}:$HOME/gsutil


gsutil - 認証


1.gsutil config

以下のコマンドで認証設定を進めます

gsutil config


2.authorization codeの入力

上記コマンドを打つと、いきなり「Enter the authorization code:」、って言われてビックリするかもしれませんが、メッセージをよく見ると、中ほどに以下のようなメッセージが表示されると思います。ここで指定されたURLをさきほど、デベロッパーアカウントでログインしたブラウザで開きます。

....

Please navigate your browser to the following URL: <http://urlto/authorization/dialog>
...


3.認可

GSUtilからGoogle Cloud Storageのデータ管理権限についての認可画面が表示されるので、問題なければ許可します

スクリーンショット 2014-08-15 15.21.01.png


4.authorization codeの入力

認可が完了するとブラウザにauthorization codeが表示されるので、コピーして、さきほどのプロンプトにペーストして、enter


5.project-idの入力

project-idの入力を求められますので、ブラウザのGoogle Developers Consoleのプロジェクト一覧から利用したいプロジェクトのproject-idを探し、プロンプトで入力します。project-idはmbやlsコマンドのためのデフォルト設定とのことなので、今回はレビューのCSVを取得したいだけなので、どのプロジェクトであっても問題ないと思います。一覧にproject-idが無い場合は5-1か5-2の手順で解決します。

https://console.developers.google.com/project


5-1.プロジェクトが無い場合

Create Projectというボタンがあるので、そのボタンを押して作成すれば良いです。


5-2.プロジェクトがあるけど、project-idが無い場合

プロジェクト一覧からプロジェクト名をクリックし、そこに表示されるProject Numberをコピーしてプロンプトで入力すれば大丈夫です

以上でgsutilのセットアップが完了です。


CSVのエクスポート


1.バケット ID を調べる

Google Play Consoleのアプリの [評価とレビュー] ページの下部に記載されていると思います。「pubsite_prod_rev_」から始まる文字列がバケットIDになります。


2.CSVを取得する

CSVの以下のルールで保存されています。



gs://<バケットID>/reviews/reviews_<アプリのパッケージ名>_YYYYMM.csv

まずはレビューが置いてあるか確認してみましょう。

gsutil ls gs://<バケットID>/reviews/

月ごとのCSVが存在していると思います。

手元にダウンロードするには gsutil cpコマンドで取得します。以下のようにワイルドカードも利用できます。

gsutil cp -r gs://<バケットID>/reviews/reviews_<アプリのパッケージ名>_2014\* /path/to/directory

これで2014年のCSVが全て取得できます。


CSVの中身

CSVの文字コードはBOMなしのUTF-16です。面倒であればnkfなどで変換するとよいでしょう。

rubyで解釈するとすると以下のようなコードになるでしょう。

require "csv"

utf16 = open("reviews_jp.mixi_201408.csv", "rb:BOM|UTF-16"){|f| f.read }
utf8 = utf16.encode("UTF-8")

CSV.parse(utf8, col_sep: ",", row_sep: "\n", headers: :first_row) do |row|
p row["Review Title"] # タイトル
p row["Review Text"] #本文
end

利用されるキーは以下のような感じです

key
説明

Package Name
パッケージ名

App Version
バージョンナンバー

Reviewer Language
レビューの言語

Reviewer Hardware Model
レビュー者の利用デバイス

Review Submit Date and Time
投稿日時(YYYY-MM-DDThh:flag_mm:ssTZ)

Review Submit Millis Since Epoch
投稿日時(エポックタイムms)

Review Last Update Date and Time
更新日時(YYYY-MM-DDThh:flag_mm:ssTZ)

Review Last Update Millis Since Epoch
更新日時(エポックタイムms)

Star Rating
星の数

Review Title
レビュータイトル

Review Text
レビュー本文

Developer Reply Date and Time
返信日時(YYYY-MM-DDThh:flag_mm:ssTZ)

Developer Reply Millis Since Epoch
返信日時(エポックタイムms)

Developer Reply Text
返信内容

Review Link
レビューURL