Misura le prestazioni delle recensioni
KPI delle recensioni per sede: traccia l’andamento giornaliero, confronta fonti, trova frasi comuni e ricevi sintesi quotidiane e settimanali via webhook.
Tre endpoint correlati descrivono le recensioni di una sede in termini numerici: una panoramica dei KPI, un andamento giornaliero e una ripartizione per fonte. Un quarto elenca le espressioni che i clienti ripetono. Insieme sono sufficienti per un riquadro con gli indicatori, un grafico delle tendenze e un pannello dei reclami.
1. Leggi i KPI di una sede
GET /locations/{locationId}/review-analytics-overview restituisce quattro statistiche in data.interactionsAnalyticsStats.stats. Qui l'intervallo di date è facoltativo; restringe il periodo su cui vengono calcolati i valori e le variazioni.
curl "https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/review-analytics-overview?startDate=2026-08-01&endDate=2026-08-31" \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "interactionsAnalyticsStats": { "stats": [ { "name": "total-reviews", "value": 128, "delta": 6.67 }, { "name": "new-reviews", "value": 9, "delta": -25 }, { "name": "overall-rating", "value": 4.43, "delta": 2.31 }, { "name": "review-response-rate", "value": 62.5, "delta": 12.5 } ] } }}Un account appena creato senza un periodo precedente riporta un delta pari a 100, quindi non interpretare le variazioni del primo mese come crescita.
2. Recupera l'andamento giornaliero per un grafico
GET .../review-analytics-timeline restituisce una voce per giorno in data.interactionsChartData.data. Passa sempre startDate e endDate, altrimenti il servizio sceglie autonomamente il periodo. Aggiungi site (un hostname come maps.google.com) per rappresentare una singola fonte.
curl "https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/review-analytics-timeline?startDate=2026-08-01&endDate=2026-08-31" \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "interactionsChartData": { "data": [ { "date": "2026-08-01", "interactionCount": 4, "averageRating": 4.5 }, { "date": "2026-08-02", "interactionCount": 0, "averageRating": null }, { "date": "2026-08-03", "interactionCount": 7, "averageRating": 4.285714285714286 } ] } }}Rappresenta interactionCount con barre e averageRating con una linea. averageRating è la media di quel giorno, non una media progressiva, ed è null nei giorni senza recensioni, quindi lascia un'interruzione anziché rappresentare uno zero.
3. Analizza i dati per fonte
GET .../review-analytics-sites-stats restituisce una voce per fonte delle recensioni in data.interactionsSitesStats.stats. Usalo per vedere quale piattaforma ha modificato la media.
curl "https://listingsapi.com/api/v4/locations/TG9jYXRpb246MTgwMDI4OQ==/review-analytics-sites-stats?startDate=2026-08-01&endDate=2026-08-31" \-H "Authorization: API $LISTINGSAPI_KEY"{ "data": { "interactionsSitesStats": { "stats": [ { "key": "google", "siteUrl": "maps.google.com", "averageRating": { "value": 4.6, "delta": 2.2 }, "totalInteractions": { "value": 412, "delta": 6.1 }, "newInteractions": { "value": 24, "delta": 33.3 }, "recency": "2026-09-06T14:12:00Z", "humanizedRecency": "3 days ago" }, { "key": "facebook", "siteUrl": "facebook.com", "averageRating": { "value": 4.1, "delta": -1.4 }, "newInteractions": { "value": 0, "delta": -100 }, "recency": null, "humanizedRecency": null } ] } }}averageRating, totalInteractions e newInteractions contengono ciascuno un value e un delta. Un solo averageRating.delta negativo, con gli altri invariati, indica un problema su una piattaforma; se sono tutti negativi, indica un problema nel punto vendita. Un newInteractions pari a 0 con un recency risalente a mesi prima di solito significa che la connessione alla fonte non è più attiva, quindi controlla Elenca le fonti delle recensioni di una sede e aggiungi di nuovo la fonte con Modifica le impostazioni delle recensioni se non è più presente.
4. Trova le espressioni usate dai clienti
GET /review-phrases restituisce un semplice array in data.newReviewPhrases, con una voce per ogni espressione ricorrente e la stessa struttura delle statistiche della panoramica, calcolate solo sulle recensioni che la contengono. Aggiungi ratingFilters=[1,2] per un pannello dei reclami. locationIds e ratingFilters sono array JSON nella query string, quindi devono essere codificati per l'URL; gli SDK lo fanno per te.
curl -G "https://listingsapi.com/api/v4/review-phrases" \-H "Authorization: API $LISTINGSAPI_KEY" \--data-urlencode 'locationIds=[1800289]' \--data-urlencode 'ratingFilters=[1,2]' \--data-urlencode 'startDate=2026-06-01' \--data-urlencode 'endDate=2026-08-31' \--data-urlencode 'phraseCount=10'{ "data": { "newReviewPhrases": [ { "reviewPhrase": "long wait", "phraseStats": { "stats": [ { "name": "total-reviews", "value": 11, "delta": 37.5, "abs": 3 }, { "name": "overall-rating", "value": 2.9, "delta": -8.4, "abs": -0.27 } ] } } ] }}total-reviews indica quanto spesso compare l'espressione, overall-rating indica se quelle recensioni esprimono soddisfazione e delta indica se la situazione sta peggiorando. abs è la variazione assoluta che affianca quella percentuale. I metodi degli SDK per le espressioni non espongono ratingFilters o phraseCount, quindi usa la chiamata REST quando ti servono.
5. Ricevi riepiloghi giornalieri e settimanali tramite webhook
Con un URL per i webhook configurato, review_analytics.daily_snapshot e review_analytics.weekly_snapshot vengono attivati una volta per sede per periodo. Interpreta ciascuno come il risultato dell'endpoint della panoramica calcolato per un periodo fisso: total_reviews è total-reviews, new_reviews_in_period è new-reviews e average_rating è overall-rating per quel periodo, con previous_average_rating per quello precedente. Il tasso di risposta, l'andamento giornaliero e la ripartizione per fonte non sono inclusi nel payload; chiama gli endpoint indicati sopra quando arriva l'evento, se ti servono.
{ "event": "review_analytics.weekly_snapshot", "timestamp": "2026-08-24T02:00:00Z", "account_id": 11073, "location_id": "279381", "data": { "period": "2026-08-17", "granularity": "weekly", "total_reviews": 1237, "new_reviews_in_period": 18, "average_rating": 4.6123, "previous_average_rating": 4.5901 }}Il volume di questa famiglia di eventi cresce con il numero delle tue sedi: 400 sedi significano 400 eventi giornalieri in un unico blocco, e gli eventi che superano il limite al minuto del tuo piano vengono scartati, non messi in coda. L'assenza di un riepilogo è quindi ambigua. Non registrare mai uno zero in sua assenza; rileggi invece la panoramica per quel periodo. La configurazione è descritta in Reagisci agli eventi con i webhook.
Passaggi successivi
- Rispondi alle recensioni: aumenta
review-response-raterispondendo alle recensioni in coda in attesa di risposta. - Recupera i dati analitici del profilo: visualizzazioni, ricerche e azioni da Google, Facebook e Bing per la stessa sede.
- Riferimenti: Ottieni i dati analitici delle interazioni, Cronologia, Per sito, Elenca le frasi delle recensioni.
- SDK: Recensioni in Python, Recensioni in Node.