レビューへの返信

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-Typeapplication/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 件

アプリが上記の割り当てで許容される量を超えてレビューの取得またはレビューへの返信を行う必要がある場合は、アプリの割り当てを増やすためのリクエストを送信してください。