Analitik

Ambil data analitik profil Google, Bing, dan Facebook dengan SDK listingsapi-js.

Metode analitik mengambil statistik tingkat platform, seperti tayangan penelusuran, klik, permintaan petunjuk arah, dan panggilan telepon, dari Google Business Profile, Bing Places, dan Facebook Pages. Semua metode analitik tersedia langsung pada instans klien ListingsAPI dan cakupannya dibatasi oleh ID lokasi. ID lokasi numerik dikodekan secara otomatis, sehingga 16808 dan 'TG9jYXRpb246MTY4MDg=' dapat digunakan secara bergantian.

Ketiga metode memiliki signature yang sama: ID lokasi serta rentang { fromDate, toDate } opsional. Kedua tanggal bersifat opsional, baik masing-masing maupun keduanya; hilangkan keduanya untuk menggunakan periode pelaporan default platform.

Setiap metrik berupa deret waktu

Tidak ada total skalar dalam payload ini. Setiap metrik berupa array titik data { startTime, value }, satu per hari (per minggu untuk Bing), dan metrik yang datanya tidak tersedia bernilai null, bukan 0 atau []. Karena itu, jumlahkan sendiri deret tersebut, dan bedakan "tidak ada data" dari "nol":

series.ts
type Point = { startTime: string; value: number | null }; // null when the metric is absent, so an empty profile never reads as 0.function sumSeries(series: Point[] | null | undefined): number | null {if (!Array.isArray(series)) return null;return series.reduce((acc, p) => acc + (p.value ?? 0), 0);} function show(label: string, series: Point[] | null | undefined) {const total = sumSeries(series);console.log(label, total === null ? 'unavailable' : total);}

fetchGoogleAnalytics

Ambil statistik Google Business Profile untuk suatu lokasi.

TypeScript
const google = await client.fetchGoogleAnalytics(16808, {fromDate: '2024-01-01',toDate: '2024-12-31',}); show('Impressions (total)', google.total);show('Search impressions', google.search);show('Maps impressions', google.maps);show('Website clicks', google.websiteAction);

Opsi

ParameterTipeDeskripsi
fromDatestringTanggal mulai, YYYY-MM-DD.
toDatestringTanggal akhir, YYYY-MM-DD.

Payload berupa objek googleInsights, dan setiap kunci di dalamnya berupa deret { startTime, value }[]: total, search, maps, websiteAction, directionsAction, phoneAction, businessBookings, businessFoodOrders, dan businessFoodMenuClicks. total adalah tayangan profil, yaitu search ditambah maps; metrik ini tidak mencakup metrik tindakan. Setiap deret yang datanya tidak tersedia di Google dikembalikan sebagai null. Lihat Ambil analitik Google untuk suatu lokasi untuk referensi lengkap mengenai field.

fetchBingAnalytics

Ambil statistik Bing Places untuk suatu lokasi.

TypeScript
const bing = await client.fetchBingAnalytics(16808, {fromDate: '2024-01-01',toDate: '2024-12-31',}); show('Bing views', bing.views);

Bing melaporkan satu metrik, views, yang dikelompokkan per minggu, bukan per hari.

Opsi

ParameterTipeDeskripsi
fromDatestringTanggal mulai, YYYY-MM-DD.
toDatestringTanggal akhir, YYYY-MM-DD.

fetchFacebookAnalytics

Ambil statistik halaman Facebook untuk suatu lokasi.

TypeScript
const facebook = await client.fetchFacebookAnalytics(16808, {fromDate: '2024-01-01',toDate: '2024-12-31',}); show('Page views', facebook.views);show('CTA clicks', facebook.ctaAction);

Payload Facebook berisi views, ctaAction, websiteAction, directionsAction, dan phoneAction. Tidak ada pageLikes.

Opsi

ParameterTipeDeskripsi
fromDatestringTanggal mulai, YYYY-MM-DD.
toDatestringTanggal akhir, YYYY-MM-DD.

Laporan multiplatform

Ambil data dari ketiga platform secara paralel dengan Promise.all:

analytics_report.ts
import { ListingsAPI } from 'listingsapi-js'; const client = new ListingsAPI(); // reads LISTINGSAPI_KEY from envconst LOCATION_ID = 16808;const range = { fromDate: '2024-01-01', toDate: '2024-12-31' }; const [google, bing, facebook] = await Promise.all([client.fetchGoogleAnalytics(LOCATION_ID, range),client.fetchBingAnalytics(LOCATION_ID, range),client.fetchFacebookAnalytics(LOCATION_ID, range),]); show('Google impressions:', google.total);show('Bing views:', bing.views);show('Facebook views:', facebook.views);

Jika profil tidak terhubung untuk platform tertentu, metode berhasil diselesaikan dengan objek kosong alih-alih ditolak, dan setiap deret dikembalikan sebagai null. Laporkan kondisi tersebut sebagai "tidak tersedia" alih-alih memaksanya menjadi 0 dengan ??, agar profil yang tidak terhubung tidak terbaca sebagai nilai nol yang sebenarnya di dasbor Anda. Kegagalan permintaan tetap melempar error bertipe dari SDK.