Répondre aux avis

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ément lastModified 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 heure

  • POST 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.