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-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!" }
Примечание. 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 в день
Если вашему приложению необходимо получать больше отзывов или отвечать на них, чем позволяют эти квоты, отправьте запрос на увеличение квоты вашего приложения.