Ответ на отзывы

API ответа на отзывы разработчиков Google Play позволяет вам просматривать отзывы пользователей о вашем приложении и отвечать на них. Вы можете использовать этот API для взаимодействия с пользователями непосредственно в рамках существующего набора инструментов поддержки клиентов, например системы CRM.

API ответа на отзывы позволяет вам получать отзывы только о рабочих версиях вашего приложения. Если вы хотите увидеть отзывы об альфа- или бета-версиях вашего приложения, используйте вместо этого консоль Google Play. Также обратите внимание, что API показывает только те отзывы, которые содержат комментарии. Если пользователь оценивает ваше приложение, но не оставляет комментарий, его отзыв недоступен через API.

Получение доступа

Для работы с API ответа на отзывы вы предоставляете авторизацию с помощью клиента OAuth или учетной записи службы. Если вы используете сервисный аккаунт, включите разрешение «Ответить на отзывы» в этом аккаунте. Дополнительные сведения об установлении авторизованного доступа к этому API см. в разделе Настройка клиентов доступа к API .

Получение отзывов

Используя 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, содержащую список отзывов о вашем приложении. Первый результат в списке показывает комментарий пользователя, который был создан или изменен последним.

В следующем примере первый обзор показывает метаданные, которые появляются во всех результатах, а второй обзор показывает метаданные, которые появляются только в некоторых результатах:

{
  "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"
  }
}

Каждый результат включает следующие метаданные:

идентификатор обзора
Уникально идентифицирует этот обзор. Здесь также указывается отзыв конкретного пользователя, поскольку пользователи могут написать только один отзыв для конкретного приложения.
имя автора

Имя пользователя, написавшего отзыв.

Примечание. В редких случаях authorName может не отображаться в данном результате.

Комментарии

Список, включающий отзывы пользователей о приложении. Если этот обзор включает заголовок, то этот заголовок и основной текст обзора отображаются в text элементе, а заголовок и основной текст разделяется символом табуляции. Элемент lastModified указывает время, когда пользователь последний раз отправил свой отзыв.

Если вы уже ответили на этот отзыв, ваш отзыв появится вторым элементом в списке комментариев.

Звездный рейтинг

Оценка вашего приложения пользователем по шкале от 1 до 5. Оценка 5 означает, что пользователь очень доволен вашим приложением.

По умолчанию на каждой странице отображается 10 отзывов. Вы можете отображать до 100 отзывов на странице, задав в запросе параметр maxResults .

Если список отзывов продолжается на другой странице, API включает в ответ элемент tokenPagination . При запросе следующей страницы отзывов включите элемент token . Установите для этого элемента значение nextPageToken , которое появляется в исходном ответе.

Примечание. Вы можете получить только те отзывы, которые пользователи создали или изменили за последнюю неделю. Если вы хотите получить все отзывы о своем приложении с начала его существования, вы можете загрузить свои отзывы в виде CSV-файла с помощью консоли Google Play.

В следующем примере запроса 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

Соответствующий ответ представляет собой строку JSON, содержащую контент и метаданные для одного отзыва:

{
  "reviewId": "87654321",
  "authorName": "Joan Smith",
  "comments": [
    {
      "userComment": {
        "text": "This app is awesome!",
        "lastModified": {
          "seconds": "1452114723",
          "nanos": 913000000
        },
        "starRating": 5
      }
    }
  ]
}

Перевод текста обзора

Текст отзыва может быть автоматически переведен перед возвратом из 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!"
}

Примечание. replyText , который вы включаете в запрос POST , может содержать не более 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 не существует.

Квоты

Из уважения к другим разработчикам API «Ответ на отзывы» применяет несколько квот. Эти квоты применяются отдельно для каждого приложения:

  • GET запросы (для получения списков отзывов и отдельных отзывов) – 200 в час

  • POST запросы (для ответов на отзывы) – 2000 в день

Если вашему приложению необходимо получать больше отзывов или отвечать на них, чем позволяют эти квоты, отправьте запрос на увеличение квоты вашего приложения.