Google Play Developer Reply to Reviews API を使用すると、アプリへのユーザー フィードバックを表示し、そのフィードバックに返信できます。この API により、CRM システムなどの既存のカスタマー サポート ツールキット内でユーザーと直接やり取りできます。
Reply to Reviews API では、製品版のアプリへのフィードバックにのみアクセスできます。アルファ版またはベータ版のアプリへのフィードバックを表示するには、Google Play Console を使用してください。また、この API はコメントを含むレビューのみを表示します。ユーザーがアプリを評価したがコメントを入力しなかった場合、この API でそのフィードバックにアクセスすることはできません。
アクセスを取得する
Reply to Reviews API を操作するには、OAuth クライアントまたはサービス アカウントのいずれかを使用して認証を行います。サービス アカウントを使用する場合は、そのアカウント内で「レビューへの返信」権限を有効にします。この API への認証済みアクセスを設定する方法の詳細については、API アクセス クライアントの設定をご覧ください。
レビューを取得する
Reply to Reviews API を使用して、アプリに対する最近のレビューのリストを取得できます。また、個別のレビューを表示することもできます。
レビューのセットを取得する
GET
メソッドを使用して、アプリに対するレビューのリストをリクエストします。リクエストには、アプリの完全修飾パッケージ名(com.google.android.apps.maps
など)と、API へのアクセスを取得したときに受け取った認証トークンを含めます。
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token
レスポンスは、アプリに対するレビューのリストを含む JSON 文字列です。リスト内の最初の結果には、最後に作成または更新されたユーザー コメントが表示されます。
次の例では、最初のレビューにはすべての結果に表示されるメタデータが表示されています。2 番目のレビューには、一部の結果にのみ表示されるメタデータも含まれています。
{ "reviews": [ { "reviewId": "12345678", "authorName": "Jane Bloggs", "comments": [ { "userComment": { "text": "This is the best app ever!", "lastModified": { "seconds": "1443676826", "nanos": 713000000 }, "starRating": 5 } } ] }, { "reviewId": "11223344", "authorName": "John Doe", "comments": [ { "userComment": { "text": "I love using this app!", "lastModified": { "seconds": "141582134", "nanos": 213000000 }, "starRating": 5, "reviewerLanguage": "en", "device": "trltecan", "androidOsVersion": 21, "appVersionCode": 12345, "appVersionName": "1.2.3", "thumbsUpCount": 10, "thumbsDownCount": 3, "deviceMetadata": { "productName": "E5333 (Xperia™ C4 Dual)", "manufacturer": "Sony", "deviceClass": "phone", "screenWidthPx": 1080, "screenHeightPx": 1920, "nativePlatform": "armeabi-v7a,armeabi,arm64-v8a", "screenDensityDpi": 480, "glEsVersion": 196608, "cpuModel": "MT6752", "cpuMake": "Mediatek", "ramMb": 2048 } } }, { "developerComment": { "text": "That's great to hear!", "lastModified": { "seconds": "1423101467", "nanos": 813000000 } } } ] } ], "tokenPagination": { "nextPageToken": "12334566" } }
各結果に含まれるメタデータは次のとおりです。
- reviewId
- このレビューの一意の識別子。また、ユーザーは 1 つのアプリについて 1 件のレビューしか書けないので、特定のユーザーのレビューを示します。
- authorName
レビューを書いたユーザーの名前。
注: 特定の結果で
authorName
が表示されないことがまれにあります。- comments
アプリに対するユーザーのフィードバックを含むリスト。レビューにタイトルが含まれている場合、そのタイトルとレビュー本文の両方が
text
要素内に表示され、タブ文字によってタイトルと本文が区切られます。lastModified
要素は、ユーザーが最後にレビューを送信した時刻を示します。デベロッパーがすでにレビューに返信している場合は、返信したフィードバックがコメントリストの 2 番目の要素として表示されます。
- starRating
ユーザーによるアプリの 5 段階評価。スコアが 5 の場合、ユーザーがアプリに非常に満足していることを示します。
デフォルトでは、ページごとに 10 件のレビューが表示されます。リクエストに maxResults
パラメータを設定すると、ページあたり最大 100 件のレビューを表示できます。
レビューのリストが次のページに続く場合、API はレスポンスに tokenPagination
要素を含めます。次のページのレビューをリクエストするには、token
要素を指定します。この要素の値を、最初のレスポンスに表示される nextPageToken
の値に設定します。
注: 取得できるのは、過去 1 週間以内にユーザーが作成または変更したレビューだけです。アプリへのレビューを最初からすべて取得するには、Google Play Console を使用して、レビューを CSV ファイルとしてダウンロードします。
下記の GET
リクエストの例では、次のページのレビューが表示されます。このリクエストでは、レビューの現在のページ(前のリクエストのレスポンスで表示されます)に nextPageToken
値として "12334566"
が含まれていると仮定しています。また、次のページに最大 50 件のレビューを表示するように指定しています。
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token&token=12334566&maxResults=50
個別のレビューを取得する
GET
メソッドを使用して、個別のレビューを取得することもできます。レビューのセットを取得する場合と同じ URL を指定しますが、表示したいレビューに対応する review_id
も指定します。
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews/ review_id?access_token=your_auth_token
リクエストに対するレスポンスは、1 件のレビューのコンテンツとメタデータを含む JSON 文字列です。
{ "reviewId": "87654321", "authorName": "Joan Smith", "comments": [ { "userComment": { "text": "This app is awesome!", "lastModified": { "seconds": "1452114723", "nanos": 913000000 }, "starRating": 5 } } ] }
レビュー テキストを翻訳する
レビュー テキストが Reviews API から返される前に、自動的に翻訳できます。レビューのリストまたは単一のレビューのいずれかを取得する際に、translationLanguage
パラメータをクエリに追加します。次に例を示します。
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token&translationLanguage=en
translationLanguage
パラメータで言語を指定するとき、国は指定してもしなくてもかまいません。たとえば、「en」と「en_GB」はどちらも有効です。
元のテキストと異なる翻訳言語を指定すると、翻訳されたテキストが text
プロパティで返され、元のテキストが originalText
プロパティで返されます。次の例をご覧ください。
{ "reviewId": "12345678", "authorName": "Jane Bloggs", "comments": [ { "userComment": { "text": "This is the best app ever!", "lastModified": { "seconds": "1443676826", "nanos": 713000000 }, "starRating": 5, "originalText": "Dies ist die beste App überhaupt!" } } ] }
レビューに返信する
レビューに返信して、アプリのユーザーとやり取りすることもできます。返信を送信すると、自分のフィードバックに対する返信があったことを示す通知がユーザーに届きます。
後から手動で返信を更新するつもりでレビューへの自動返信を使用することはおすすめしません。また、レビューには何度でも返信できますが、ユーザーに通知が届くのは、作成または変更されたレビューに最初に返信したときだけです。次の表に、ユーザーとのやり取りでどのように通知が送信されるかを示します。
ユーザーとデベロッパーとのやり取り | ユーザーに通知が送信されるか |
---|---|
ユーザーがレビューを書き、デベロッパーが返信を送信する | ○ |
デベロッパーが最初のレビューへの返信を更新する | × |
ユーザーがレビューを更新し、デベロッパーが返信を更新する | ○ |
注: レビューへの返信はアプリストア ページに公開されるため、返信を書く際はユーザーに関する機密情報を含めないことが重要です。
ユーザー レビューへの返信を送信するには、POST
メソッドを使用します。リクエストでは、Content-Type
が application/json
であることを示し、返信を含む JSON ドキュメントを含めます。
POST https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews/ review_id:reply?access_token=your_access_token Content-Type: application/json { "replyText": "Thanks for your feedback!" }
注: POST
リクエストに含めることができる replyText
の最大文字数は 350 文字です。返信には書式なしテキストを使用する必要があります。整形式の HTML タグは削除され、返信の文字数にカウントされません。ただし、整形式の HTML タグ内に記述したコンテンツは保持されます。
リクエストが成功すると、次の JSON 文字列がレスポンスとして返されます。lastEdited
要素は、ユーザーのレビューに対する返信を API が記録した時間を示します。
{ "result": { "replyText": "Thanks for your feedback!", "lastEdited": { "seconds": "1453978803", "nanos": 796000000 } } }
POST
リクエストが無効な場合は、次のいずれかのエラーコードがレスポンスに表示されます。
400 Bad Reply Request
replyText
が長すぎるか、存在しません。404 Not Found
- 指定された
review_id
を持つレビューが存在しません。
割り当て
多くのデベロッパーの皆様が使用できるよう、Reply to Reviews API にはいくつかの割り当てがあります。これらの割り当ては、アプリ単位で個別に適用されます。
GET
リクエスト(レビューのリストおよび個別のレビューの取得): 1 時間あたり 200 件POST
リクエスト(レビューへの返信): 1 日あたり 2,000 件
アプリが上記の割り当てで許容される量を超えてレビューの取得またはレビューへの返信を行う必要がある場合は、アプリの割り当てを増やすためのリクエストを送信してください。