Ulasan

Ambil, balas, dan analisis ulasan dengan SDK listingsapi-js.

Ulasan (disebut "interactions" dalam API) adalah penilaian bintang dan umpan balik dalam teks bebas yang dikumpulkan dari Google, Facebook, dan Yelp. Semua metode ulasan tersedia pada instans klien ListingsAPI. Operasi tulis yang gagal di sisi server melempar ValidationError, sehingga Anda tidak perlu memeriksa penanda success pada nilai yang dikembalikan.

fetchInteractions

Ambil ulasan untuk suatu lokasi dengan filter opsional dan paginasi berbasis kursor. ID lokasi numerik dienkode secara otomatis.

TypeScript
// Single pageconst result = await client.fetchInteractions(16808, {first:         25,startDate:     '2026-01-01',endDate:       '2026-06-30',ratingFilters: [1, 2],}); if (!Array.isArray(result)) {console.log(result.interactions);   // Interaction[]console.log(result.totalCount);     // number | undefinedconsole.log(result.pageInfo);       // { hasNextPage, hasPreviousPage, startCursor, endCursor }} // All reviews at once, returns a flat Interaction[]const all = await client.fetchInteractions(16808, {fetchAll:  true,startDate: '2026-01-01',});

Opsi

ParameterTipeDeskripsi
firstnumberUkuran halaman untuk paginasi maju.
afterstringKursor dari pageInfo.endCursor sebelumnya.
beforestringKursor untuk paginasi mundur.
lastnumberUkuran halaman untuk paginasi mundur.
fetchAllbooleanLakukan paginasi secara otomatis dan kembalikan Interaction[] tanpa struktur bertingkat.
pageSizenumberUkuran halaman yang digunakan secara internal saat fetchAll bernilai true (nilai default 100).
startDatestringBatas bawah, YYYY-MM-DD.
endDatestringBatas atas, YYYY-MM-DD.
categorystringFilter kategori interaksi.
siteUrlsstring[]Batasi ke direktori tertentu, e.g. ['maps.google.com'].
ratingFiltersnumber[]Penilaian bintang yang disertakan, e.g. [1, 2].

Nilai yang dikembalikan

Tanpa fetchAll, objek InteractionResponse: success, interactions (Interaction[]), pageInfo (hasNextPage, hasPreviousPage, startCursor, endCursor), totalCount jika API melaporkannya, dan raw (payload yang belum diurai). Dengan fetchAll: true, Interaction[] tanpa struktur bertingkat. Setiap Interaction memuat id, content, rating, siteName, siteUrl, reviewerName, publishedAt, category, dan responses.

fetchReviewDetails

Ambil informasi terperinci untuk ulasan tertentu berdasarkan ID interaksi. Array masukan kosong langsung mengembalikan objek kosong tanpa melakukan panggilan jaringan.

TypeScript
const details = await client.fetchReviewDetails(['interaction-uuid-1','interaction-uuid-2',]);

respondToReview

Kirim balasan untuk ulasan. Pengiriman ke direktori sumber berlangsung secara asinkron.

TypeScript
await client.respondToReview('interaction-uuid','Thank you for the feedback! We hope to see you again soon.',);
ParameterTipeDeskripsi
interactionIdstringID interaksi ulasan.
responseContentstringTeks balasan yang akan dipublikasikan.

editReviewResponse

Edit balasan yang sudah ada.

TypeScript
await client.editReviewResponse('review-uuid','response-uuid','Updated response text.',);
ParameterTipeDeskripsi
reviewIdstringUlasan yang dibalas.
responseIdstringBalasan yang akan diedit.
responseContentstringTeks balasan baru.

archiveReviewResponse

Arsipkan (sembunyikan) balasan.

TypeScript
await client.archiveReviewResponse('response-uuid');

Analitik ulasan

Ketiga metode analitik menerima ID lokasi beserta rentang { startDate, endDate } opsional (YYYY-MM-DD) dan mengembalikan objek ReviewAnalytics yang strukturnya berbeda menurut endpoint.

fetchReviewAnalyticsOverview

Statistik keseluruhan untuk rentang tanggal: agregasi penilaian dan jumlah ulasan untuk lokasi tersebut.

TypeScript
const overview = await client.fetchReviewAnalyticsOverview(16808, {startDate: '2026-01-01',endDate:   '2026-06-30',});console.log(overview);

fetchReviewAnalyticsTimeline

Jumlah ulasan dan penilaian dari waktu ke waktu, cocok untuk pembuatan grafik.

TypeScript
const timeline = await client.fetchReviewAnalyticsTimeline(16808, {startDate: '2026-01-01',endDate:   '2026-06-30',});

fetchReviewAnalyticsSitesStats

Rincian ulasan menurut situs sumber (Google, Facebook, Yelp).

TypeScript
const siteStats = await client.fetchReviewAnalyticsSitesStats(16808, {startDate: '2026-01-01',endDate:   '2026-06-30',});

fetchReviewPhrases

Analisis frasa dan sentimen di satu atau beberapa lokasi untuk rentang tanggal tertentu. Menerima satu objek opsi; locationIds wajib diisi dan daftar kosong mengembalikan [] tanpa melakukan panggilan jaringan.

TypeScript
const phrases = await client.fetchReviewPhrases({locationIds: ['TG9jYXRpb246MTY4MDg=', 'TG9jYXRpb246MTY4MDk='],startDate:   '2026-01-01',endDate:     '2026-06-30',siteUrls:    ['maps.google.com'],}); for (const p of phrases) {console.log(p.phrase, p.count, p.sentiment);}

Opsi

ParameterTipeWajibDeskripsi
locationIdsstring[]YaID lokasi yang dienkode dengan Base64.
startDatestringTidakBatas bawah, YYYY-MM-DD.
endDatestringTidakBatas atas, YYYY-MM-DD.
siteUrlsstring[]TidakBatasi ke direktori tertentu.

Pengaturan ulasan

fetchReviewSettings

Ambil pengaturan sumber ulasan untuk suatu lokasi.

TypeScript
const settings = await client.fetchReviewSettings(16808);console.log(settings);

editReviewSettings

Tetapkan atau perbarui URL sumber ulasan yang dipantau untuk suatu lokasi. Setiap entri berupa ReviewSiteUrl dengan name dan url.

TypeScript
await client.editReviewSettings(16808, [{ name: 'Google', url: 'https://www.google.com/maps/place/acme-dental' },{ name: 'Yelp',   url: 'https://www.yelp.com/biz/acme-dental-new-york' },]);
ParameterTipeDeskripsi
locationIdstring | numberID numerik dienkode secara otomatis.
siteUrlsReviewSiteUrl[]Entri { name, url } untuk setiap sumber ulasan.

fetchReviewSiteConfig

Ambil daftar sumber ulasan yang memenuhi syarat di seluruh akun. Tidak menerima argumen dan mengembalikan ReviewSiteConfig[].

TypeScript
const config = await client.fetchReviewSiteConfig();
  • Lokasi: cari ID lokasi
  • Analitik: analitik profil Google, Bing, dan Facebook
  • Contoh penggunaan: panduan pemantauan ulasan dan pemberian balasan secara massal