L'API Google Play Developer Reply to Reviews ti consente di visualizzare il feedback degli utenti per la tua app e rispondere a questo feedback. Puoi utilizzare questa API per interagire con gli utenti direttamente all'interno del tuo toolkit di assistenza clienti esistente, ad esempio un sistema CRM.
L'API Reply to Reviews ti consente di accedere al feedback solo per le versioni di produzione della tua app. Se vuoi visualizzare il feedback sulle versioni alpha o beta della tua app, utilizza Google Play Console. Inoltre, tieni presente che l'API mostra solo le recensioni che includono commenti. Se un utente valuta la tua app ma non fornisce un commento, il suo feedback non è accessibile dall'API.
Ottenere l'accesso
Per utilizzare l'API Reply to Reviews, fornisci l'autorizzazione utilizzando un client OAuth o un service account. Se utilizzi un service account, attiva l'autorizzazione "Rispondi alle recensioni" all'interno di questo account. Per maggiori informazioni su come stabilire l'accesso autorizzato a questa API, consulta Configurazione dei client di accesso API.
Recupero delle recensioni
Quando utilizzi l'API Reply to Reviews, puoi recuperare un elenco di tutte le recensioni recenti della tua app oppure visualizzare una singola recensione.
Recuperare un insieme di recensioni
Utilizza il metodo GET
per richiedere un elenco di recensioni per la tua app. Nella richiesta,
includi il nome del pacchetto completo per la tua app, ad esempio
com.google.android.apps.maps
, e il token di autorizzazione che hai ricevuto quando hai
ottenuto l'accesso all'API.
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token
La risposta è una stringa JSON che contiene un elenco di recensioni per la tua app. Il primo risultato dell'elenco mostra il commento dell'utente creato o modificato più di recente.
Nell'esempio seguente, la prima recensione mostra i metadati visualizzati in tutti i risultati, mentre la seconda recensione mostra i metadati visualizzati solo in alcuni risultati:
{ "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" } }
Ogni risultato include i seguenti metadati:
- reviewId
- Identifica in modo univoco questa recensione. Indica anche la recensione di un utente specifico, poiché gli utenti possono scrivere una sola recensione per una determinata app.
- authorName
Il nome dell'utente che scrive la recensione.
Nota: in rari casi, il
authorName
potrebbe non essere visualizzato in un determinato risultato.- commenti
Un elenco che include il feedback dell'utente sull'app. Se questa recensione include un titolo, questo titolo e il corpo del testo della recensione vengono visualizzati nell'elemento
text
e un carattere di tabulazione separa il titolo e il corpo del testo. L'elementolastModified
indica l'ora in cui l'utente ha inviato la recensione più recente.Se hai già risposto a questa recensione, il tuo feedback viene visualizzato come secondo elemento nell'elenco dei commenti.
- starRating
La valutazione della tua app da parte dell'utente su una scala da 1 a 5. Un punteggio di 5 indica che l'utente è molto soddisfatto della tua app.
Per impostazione predefinita, vengono visualizzate 10 recensioni per pagina. Puoi visualizzare fino a 100 recensioni
per pagina impostando il parametro maxResults
nella richiesta.
Se l'elenco delle recensioni continua su un'altra pagina, l'API include un elemento tokenPagination
nella risposta. Quando richiedi la pagina successiva delle recensioni, includi l'elemento token
. Imposta il valore di questo elemento sul valore
nextPageToken
, che viene visualizzato nella risposta originale.
Nota:puoi recuperare solo le recensioni che gli utenti hanno creato o modificato nell'ultima settimana. Se vuoi recuperare tutte le recensioni della tua app dall'inizio dei tempi, puoi scaricare le recensioni come file CSV utilizzando Google Play Console.
Il seguente esempio di richiesta GET
mostra la pagina successiva delle recensioni. Questa
richiesta presuppone che la pagina corrente delle recensioni (come mostrato nella risposta
della richiesta precedente) contenga un valore nextPageToken
pari a "12334566"
. La
richiesta indica anche che la pagina successiva deve mostrare fino a 50 recensioni.
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token&token=12334566&maxResults=50
Recuperare una singola recensione
Puoi anche utilizzare il metodo GET
per recuperare una singola recensione. Fornisci
lo stesso URL utilizzato per
recuperare un insieme di recensioni, tranne che
includi anche review_id
corrispondente alla recensione che vuoi visualizzare:
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews/ review_id?access_token=your_auth_token
La risposta corrispondente è una stringa JSON che contiene contenuti e metadati per una singola recensione:
{ "reviewId": "87654321", "authorName": "Joan Smith", "comments": [ { "userComment": { "text": "This app is awesome!", "lastModified": { "seconds": "1452114723", "nanos": 913000000 }, "starRating": 5 } } ] }
Traduzione del testo della recensione
Il testo della recensione può essere tradotto automaticamente prima di essere restituito dall'API
Reviews. Quando recuperi un elenco di recensioni o una singola recensione, aggiungi
un parametro translationLanguage
alla query. Ad esempio:
GET https://www.googleapis.com/androidpublisher/v3/applications/your_package_name/reviews? access_token=your_auth_token&translationLanguage=en
Il parametro translationLanguage
può specificare una lingua con o senza
paese. Ad esempio, sia "en" che "en_GB" sono validi.
Se specifichi una lingua di traduzione diversa dal testo originale, il sistema restituisce il testo tradotto nella proprietà text
e il testo originale nella proprietà originalText
. Ecco un esempio:
{ "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!" } } ] }
Rispondere alle recensioni
Puoi anche interagire con gli utenti della tua app rispondendo alle loro recensioni. Dopo aver inviato la risposta, l'utente riceve una notifica che indica che hai risposto al suo feedback.
Sconsigliamo l'utilizzo di risposte automatiche alle recensioni, con l'intenzione di aggiornarle manualmente in un secondo momento. Inoltre, anche se puoi rispondere a una recensione tutte le volte che vuoi, l'utente riceve una notifica solo la prima volta che rispondi a una recensione creata o modificata. La seguente tabella illustra come viene informato l'utente durante le interazioni:
Interazione utente-sviluppatore | Notifica inviata all'utente? |
---|---|
L'utente scrive una recensione; lo sviluppatore invia una risposta | Sì |
Gli aggiornamenti dello sviluppatore rispondono alla recensione originale | No |
L'utente aggiorna la recensione; lo sviluppatore aggiorna la risposta | Sì |
Nota:poiché le tue risposte alle recensioni vengono visualizzate pubblicamente nella pagina dello store, è importante che non includi informazioni sensibili sugli utenti quando scrivi queste risposte.
Per inviare una risposta alla recensione di un utente, utilizza il metodo POST
. Nella richiesta,
indica che Content-Type
è application/json
e includi un documento JSON
che contenga la tua risposta:
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!" }
Nota: il replyText
che includi nella tua richiesta
POST
può contenere al massimo 350 caratteri. Devi utilizzare
testo normale nella risposta; i tag HTML ben formati vengono rimossi e non
sono inclusi nel conteggio dei caratteri della risposta. Tuttavia, i contenuti inseriti
all'interno di tag HTML ben formati vengono conservati.
Se la richiesta ha esito positivo, ricevi la seguente stringa JSON come risposta.
L'elemento lastEdited
indica l'ora in cui l'API registra la tua risposta
alla recensione dell'utente.
{ "result": { "replyText": "Thanks for your feedback!", "lastEdited": { "seconds": "1453978803", "nanos": 796000000 } } }
Se la richiesta POST
non è valida, la risposta mostra uno dei
seguenti codici di errore:
400 Bad Reply Request
- Il
replyText
è troppo lungo o non è presente. 404 Not Found
- La recensione con il
review_id
specificato non esiste.
Quote
A titolo di cortesia per altri sviluppatori, l'API Reply to Reviews prevede l'applicazione di una serie di quote. Queste quote vengono applicate separatamente per ogni app:
Richieste
GET
(per recuperare elenchi di recensioni e singole recensioni) – 200 all'oraRichieste
POST
(per rispondere alle recensioni): 2000 al giorno
Se la tua app deve recuperare o rispondere a un volume di recensioni superiore a quello consentito da queste quote, invia una richiesta per aumentare la quota della tua app.