分析

listingsapi-js SDKでGoogle、Bing、Facebookのプロフィールの分析データを取得します。

分析メソッドは、Google Business Profile、Bing Places、Facebook Pagesから、検索での表示回数、クリック数、経路検索数、電話件数など、プラットフォーム単位のインサイトを取得します。すべての分析メソッドはListingsAPIクライアントインスタンスに直接定義されており、拠点IDで指定した拠点を対象とします。数値の拠点IDは自動的にエンコードされるため、16808と'TG9jYXRpb246MTY4MDg='はどちらも同じように使用できます。

3つのメソッドはすべて同じシグネチャを持ち、拠点IDと任意の{ fromDate, toDate }範囲を受け取ります。開始日と終了日は、それぞれ個別に省略することも、両方を省略することもできます。省略すると、そのプラットフォームのデフォルトのレポート期間が使用されます。

すべての指標は時系列データです

これらのペイロードには、スカラー値の合計は含まれません。各指標は1日ごと(Bingでは1週間ごと)の{ startTime, value }データポイントの配列で、データがない指標は0や[]ではなくnullになります。そのため、時系列データの合計は自分で計算し、「データなし」と「ゼロ」を区別してください。

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

拠点のGoogle Business Profileインサイトを取得します。

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);

オプション

パラメータ型説明
fromDatestring開始日。YYYY-MM-DD。
toDatestring終了日。YYYY-MM-DD。

ペイロードはgoogleInsightsオブジェクトで、そのすべてのキーの値は{ startTime, value }[]の時系列データです。キーはtotal、search、maps、websiteAction、directionsAction、phoneAction、businessBookings、businessFoodOrders、businessFoodMenuClicksです。totalはプロフィールの表示回数で、searchとmapsの合計であり、アクションの指標は含みません。Googleにデータがない時系列は、nullとして返されます。すべてのフィールドの詳細は、拠点のGoogle分析データを取得するを参照してください。

fetchBingAnalytics

拠点のBing Placesインサイトを取得します。

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

Bingはviewsという1つの指標を、日単位ではなく週単位で集計して報告します。

オプション

パラメータ型説明
fromDatestring開始日。YYYY-MM-DD。
toDatestring終了日。YYYY-MM-DD。

fetchFacebookAnalytics

拠点のFacebookページのインサイトを取得します。

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);

Facebookのペイロードには、views、ctaAction、websiteAction、directionsAction、phoneActionが含まれます。pageLikesは含まれません。

オプション

パラメータ型説明
fromDatestring開始日。YYYY-MM-DD。
toDatestring終了日。YYYY-MM-DD。

複数プラットフォームのレポート

Promise.allを使用して、3つのプラットフォームすべてから並列に取得します。

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);

あるプラットフォームのプロフィールが接続されていない場合、メソッドのPromiseは拒否されず、空のオブジェクトで解決され、個々の時系列はnullとして返されます。??で0に変換すると、接続されていないプロフィールがダッシュボードで実際のゼロとして表示されるため、「利用不可」として報告してください。リクエストが失敗した場合は、引き続きSDKの型付きエラーがスローされます。