Yappli Tech Blog

株式会社ヤプリの開発メンバーによるブログです。最新の技術情報からチーム・働き方に関するテーマまで、日々の熱い想いを持って発信していきます。

trocco で App Store のレビューをスプレッドシートへ書き出す

こんにちは!データサイエンティストの山本( @__Y4M4MOTO__ )です。

ヤプリは去年、 レビューダイアログ機能 をリリースしました。これによりレビューを用いた効果検証を行いたい場面が増えています。そのため、現在、 iTunes Search API と trocco を使って毎日アプリの評価点数を取得しています。

しかし、この記事を執筆している 2023年5月30日時点では iTunes Search API でレビューのコメントなどは取得できません。基本的に評価点数があれば十分ではあるのですが、コメントなどの訂正情報が欲しい場合もあります。

そこで、今回は trocco を使って App Store のコメントなども含めたレビューをスプレッドシートへ書き出す方法について記したいと思います。

App Store のレビューの取得方法

まず、 App Store のレビューの取得方法について記します。

App Store のレビューは次の URL の RSS フィードから JSON で取得できます:

https://itunes.apple.com/jp/rss/customerreviews/page=1/id=<APP_ID>/json

<APP_ID> にはアプリ ID を入れます。アプリ ID はストアページの URL に記載されています。ストアページの URL の形式は次の通りです。末尾にある /id 以降に並んでいる数字がアプリ ID です:

https://apps.apple.com/jp/app/<APP_NAME>/id<APP_ID>

上記の RSS フィードの URL にアクセスすると、次のような形式の JSON でレビューを取得できます。 JSON の構造を見てみると、 entry の項目の中にレビュー情報がリストで入っていることが分かります:

{
    "feed": {
        "author": {
            "name": {
                "label": "iTunes Store"
            },
            "uri": {
                "label": "http://www.apple.com/jp/itunes/"
            }
        },
        "entry": [
            {
                "author": {
                    "uri": {
                        "label": "https://itunes.apple.com/jp/reviews/idXXXXXXXXXX"
                    },
                    "name": {
                        "label": "(レビュワー名)"
                    },
                    "label": ""
                },
                "updated": {
                    "label": "2023-05-28T05:02:55-07:00"
                },
                "im:rating": {
                    "label": "5"
                },
                "im:version": {
                    "label": "18.20.3"
                },
                "id": {
                    "label": "XXXXXXXXXX"
                },
                "title": {
                    "label": "(レビュータイトル)"
                },
                "content": {
                    "label": "(レビュー本文)",
                    "attributes": {
                        "type": "text"
                    }
                },
                "link": {
                    "attributes": {
                        "rel": "related",
                        "href": "https://itunes.apple.com/jp/review?id=XXXXXXXXXX&type=Purple%20Software"
                    }
                },
                "im:voteSum": {
                    "label": "0"
                },
                "im:contentType": {
                    "attributes": {
                        "term": "Application",
                        "label": "アプリケーション"
                    }
                },
                "im:voteCount": {
                    "label": "0"
                }
            },

            〜〜〜(以下略)〜〜〜

trocco のデータ転送設定

App Store のレビューをスプレッドシートへ書き出すには trocco のデータ転送機能を使います。この機能では次の3ステップで転送設定を行います:

  1. 転送元・転送先の設定
  2. データプレビュー・詳細設定
  3. 確認・適用

なお、転送先の設定で指定する項目があるので、書き出し先にしたいスプレッドシートを事前に作成してシート名をつけておきましょう。

STEP1: 転送元・転送先の設定

まず、転送元の設定を行います。

trocco では転送元の選択肢が多数用意されています。今回は URL を開いた時のレスポンスを取得したいので「HTTP(S)」を選択します。

「HTTP(S)」には設定できる項目が色々ありますが、今回は次のように設定します:

設定項目 設定値 設定理由
カスタム変数 変数名: $id$, 値: <APP_ID> $id$ という名前のカスタム変数にアプリ ID が入るよう設定します。
URL https://itunes.apple.com/jp
/rss/customerreviews
/page=1/id=$id$/json
App Store の RSS フィードの URL を入力します。アプリ ID を指定する箇所にはカスタム変数 $id$ を指定します。
HTTP メソッド GET データを取得するので HTTP メソッドは GET です。
入力ファイル形式 JSONPath URL のレスポンスは JSON で返ってくるので JSONPath を指定します。
ルート $..entry.* 取得した JSON データのうち今回欲しいのは entry の部分なので、 JSONPath で entry の部分を指定します。
ページング機能 有効 データはページングされているので有効にします。
from/offsetパラメータ名 $page$ URL を見てみると page= というパラメータでページングされていることが分かるので、パラメータ名には $page$ を指定します。
リクエスト回数 10 今回は1ページから10ページまで1ページずつ取得したいので10と指定します。
from/offsetパラメータ初期値 1 1ページ目から取得したいので1を指定します。
1リクエストで進めるfrom/offsetパラメータの数 1 1ページずつ取得したいので1を指定します。

続いて、転送先の設定を行います。

trocco では転送先の選択肢も多数用意されています。その中で今回は「Google Spreadsheets」を選択します。

「Google Spreadsheets」の設定項目については公式ドキュメントに分かりやすく書かれているので、こちらを参考に設定してください。

documents.trocco.io

転送モードについては、今回は「全件洗い替え」で設定します。

STEP 2: データプレビュー・詳細設定

trocco では STEP 1 で設定した転送元の情報からカラム定義とデータのプレビューを行なってくれます。 ただし今回の場合、そのままだと下記画像のように JSON がそのままカラムに入ってしまい( JSON カラムになってしまい)、スプレッドシートに書き出した後が使いにくい状態です:

JSON カラムは「 JSON カラムを展開」にチェックを入れ、取得したいデータを JSONPath で指定することで展開できます。 例えば、上記画像だと im:rating というカラムには {“label”: “X”} という形式で値が入っています。ここで、 im:rating カラムの「 JSON カラムを展開」にチェックを入れ、 JSONPath に label と指定すると X の部分だけ取得することができます(下記画像参照):

STEP3: 確認・適用

このステップではSTEP1、 2での設定した内容の変更差分が確認できます。

実行結果

実際に上記の手順を行うと、出力先であるスプレッドシートは次の画像のようになります。画像を見てみると、 App Store のレビューが取得できていることが確認できます:

まとめ

今回は trocco を使って App Store のレビューをスプレッドシートへ書き出す方法について記しました。実は自分が trocco を使ったのは今回が初めてだったのですが、下記の点が個人的に魅力的でした:

  • ノーコードなのでサクッと実装できて後からの変更もしやすい
  • データプレビューのおかげでカラム定義の調整がしやすい
  • JSONカラムの展開が簡単にできる
  • trocco の他の設定や機能(転送先を BigQuery にしたりワークフロー機能を使ったり etc…)を使えば、データを継続的に蓄積したり定期更新したりもしやすい

trocco は今年からフリープランも提供されるようになったので、ぜひお試しください!

prtimes.jp