L'API Google Play Developer Reply to Reviews vous permet d'afficher les commentaires des utilisateurs concernant votre application et d'y répondre. Vous pouvez utiliser cette API pour interagir avec les utilisateurs directement depuis votre kit d'outils pour le service client, par exemple un système CRM.
L'API Reply to Reviews ne vous permet d'accéder qu'aux commentaires relatifs aux versions de production de votre application. Si vous souhaitez obtenir des commentaires sur les versions alpha ou bêta de votre application, utilisez plutôt la Google Play Console. Notez également que l'API n'affiche que les avis qui incluent des commentaires. Si un utilisateur évalue votre application, mais ne laisse aucun commentaire, son avis n'est pas accessible depuis l'API.
Obtenir l'accès
Pour utiliser l'API Reply to Reviews, vous devez fournir une autorisation à l'aide d'un client OAuth ou d'un compte de service. Si vous utilisez un compte de service, activez l'autorisation "Répondre à des avis" dans ce compte. Pour en savoir plus sur l'établissement d'un accès autorisé à cette API, consultez la page Configurer les clients d'accès à l'API.
Récupérer des avis
Lorsque vous utilisez l'API Reply to Reviews, vous pouvez récupérer la liste de tous les avis récents concernant votre application ou afficher un avis individuel.
Récupérer un ensemble d'avis
Utilisez la méthode GET
pour demander la liste des avis pour votre application. Dans votre requête, incluez le nom complet du package de votre application (par exemple, com.google.android.apps.maps
) et le jeton d'autorisation que vous avez reçu lors de l'accès à l'API.
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token
La réponse est une chaîne JSON contenant une liste d'avis pour votre application. Le premier résultat de la liste affiche le dernier commentaire de l'utilisateur créé ou modifié.
Dans l'exemple suivant, le premier avis affiche les métadonnées qui apparaissent dans tous les résultats, et le second affiche les métadonnées qui n'apparaissent que dans certains résultats:
{ "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" } }
Chaque résultat comprend les métadonnées suivantes:
- reviewId
- Identifiant unique cet avis. Il indique également l'avis d'un utilisateur spécifique, car les utilisateurs ne peuvent rédiger qu'un seul avis pour une application spécifique.
- authorName
Nom de l'utilisateur qui rédige l'avis.
Remarque:Dans de rares cas,
authorName
peut ne pas apparaître dans un résultat donné.- comments
Liste contenant les commentaires de l'utilisateur sur l'application. Si cet avis inclut un titre, ce titre et le corps du texte de l'avis apparaissent tous deux dans l'élément
text
, et un caractère de tabulation sépare le titre et le corps du texte. L'élémentlastModified
indique l'heure à laquelle l'utilisateur a envoyé son avis pour la dernière fois.Si vous avez déjà répondu à cet avis, vos commentaires apparaissent en tant que deuxième élément dans la liste des commentaires.
- starRating
L'évaluation de votre application par l'utilisateur sur une échelle de 1 à 5. Un score de 5 indique que l'utilisateur est très satisfait de votre application.
Par défaut, 10 avis sont affichés sur chaque page. Vous pouvez afficher jusqu'à 100 avis par page en définissant le paramètre maxResults
dans votre requête.
Si la liste d'avis continue sur une autre page, l'API inclut un élément tokenPagination
dans la réponse. Lorsque vous demandez la page d'avis suivante, incluez l'élément token
. Définissez la valeur de cet élément sur la valeur nextPageToken
, qui apparaît dans la réponse d'origine.
Remarque:Vous ne pouvez récupérer que les avis que les utilisateurs ont créés ou modifiés au cours de la semaine précédente. Si vous souhaitez récupérer tous les avis concernant votre application depuis toujours, vous pouvez télécharger vos avis au format CSV à l'aide de la Google Play Console.
L'exemple de requête GET
suivant affiche la page d'avis suivante. Cette demande suppose que la page d'avis actuelle (comme indiqué dans la réponse à la requête précédente) contient la valeur nextPageToken
"12334566"
. La demande indique également que la page suivante doit afficher jusqu'à 50 avis.
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token&token=12334566&maxResults=50
Récupérer un avis individuel
Vous pouvez également utiliser la méthode GET
pour récupérer un avis individuel. Vous devez fournir la même URL que celle utilisée pour récupérer un ensemble d'avis, sauf que vous incluez également le review_id
correspondant à l'avis que vous souhaitez afficher:
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews/ review_id?access_token=your_auth_token
La réponse correspondante est une chaîne JSON contenant du contenu et des métadonnées pour un seul avis:
{ "reviewId": "87654321", "authorName": "Joan Smith", "comments": [ { "userComment": { "text": "This app is awesome!", "lastModified": { "seconds": "1452114723", "nanos": 913000000 }, "starRating": 5 } } ] }
Traduire le texte de l'avis
Le texte des avis peut être traduit automatiquement avant d'être renvoyé par l'API reviews. Lorsque vous récupérez une liste d'avis ou un seul avis, ajoutez un paramètre translationLanguage
à la requête. Exemple :
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token&translationLanguage=en
Le paramètre translationLanguage
peut spécifier une langue avec ou sans pays. Par exemple, "en" et "en_GB" sont tous les deux valides.
Si vous spécifiez une langue de traduction différente de celle du texte d'origine, le système renvoie le texte traduit dans la propriété text
et le texte d'origine dans la propriété originalText
. Exemple :
{ "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!" } } ] }
Répondre aux avis
Vous pouvez également interagir avec les utilisateurs de votre application en répondant à leurs avis. Une fois votre réponse envoyée, l'utilisateur reçoit une notification indiquant que vous avez répondu à ses commentaires.
Nous vous déconseillons d'utiliser des réponses automatiques aux avis, dans la mesure où vous pourrez les modifier manuellement par la suite. En outre, bien que vous puissiez répondre à un avis autant de fois que vous le souhaitez, l'utilisateur ne reçoit une notification qu'après la première réponse que vous répondez à un avis créé ou modifié. Le tableau suivant montre comment l'utilisateur est averti lors de vos interactions avec lui:
Interaction utilisateur-développeur | Notification envoyée à l'utilisateur ? |
---|---|
L'utilisateur rédige un avis ; le développeur envoie une réponse | Oui |
Réponse à l'avis d'origine suite aux mises à jour du développeur | No |
Examen des mises à jour utilisateur ; réponse des mises à jour du développeur | Oui |
Remarque:Étant donné que vos réponses aux avis sont publiques sur la page de la plate-forme de téléchargement d'applications, il est important de n'inclure aucune information sensible sur les utilisateurs lorsque vous rédigez ces réponses.
Pour répondre à un avis d'utilisateur, utilisez la méthode POST
. Dans votre requête, indiquez que Content-Type
est défini sur application/json
et incluez un document JSON contenant votre réponse:
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!" }
Remarque:L'élément replyText
que vous incluez dans votre requête POST
ne peut pas contenir plus de 350 caractères. Vous devez utiliser du texte brut dans votre réponse. Les balises HTML correctement formatées sont supprimées et ne sont pas comptabilisées dans le nombre de caractères de votre réponse. Toutefois, le contenu que vous placez à l'intérieur des balises HTML bien formées est conservé.
Si votre requête aboutit, vous recevez la chaîne JSON suivante en réponse.
L'élément lastEdited
indique l'heure à laquelle l'API enregistre votre réponse à l'avis de l'utilisateur.
{ "result": { "replyText": "Thanks for your feedback!", "lastEdited": { "seconds": "1453978803", "nanos": 796000000 } } }
Toutefois, si votre requête POST
n'est pas valide, la réponse affiche l'un des codes d'erreur suivants:
400 Bad Reply Request
- Le champ
replyText
est trop long ou manquant. 404 Not Found
- L'avis associé à l'
review_id
indiquée n'existe pas.
Quotas
Par courtoisie envers les autres développeurs, l'API Reply to Reviews est soumise à plusieurs quotas. Ces quotas sont appliqués séparément pour chaque application:
Requêtes
GET
(pour récupérer des listes d'avis et d'avis individuels) : 200 par heurePOST
demandes (pour répondre aux avis) : 2 000 par jour
Si votre application doit récupérer un nombre d'avis supérieur à ce que permettent ces quotas ou y répondre, envoyez une demande d'augmentation de son quota.