Statistiques

Récupérez les statistiques des profils Google, Bing et Facebook avec le SDK listingsapi-js.

Les méthodes d’analyse récupèrent les statistiques propres à chaque plateforme, telles que les impressions dans les résultats de recherche, les clics, les demandes d’itinéraire et les appels téléphoniques, depuis Google Business Profile, Bing Places et Facebook Pages. Toutes les méthodes d’analyse sont directement accessibles sur l’instance du client ListingsAPI et portent sur un identifiant d’établissement. Les identifiants numériques d’établissement sont encodés automatiquement ; 16808 et 'TG9jYXRpb246MTY4MDg=' sont donc interchangeables.

Les trois méthodes partagent la même signature : un identifiant d’établissement et une plage { fromDate, toDate } facultative. Les deux dates sont facultatives, séparément ou ensemble ; omettez-les pour utiliser la période de rapport par défaut de la plateforme.

Chaque métrique est une série temporelle

Ces réponses ne contiennent aucun total scalaire. Chaque métrique est un tableau de points { startTime, value }, un par jour (par semaine pour Bing), et une métrique pour laquelle vous ne disposez d’aucune donnée vaut null plutôt que 0 ou []. Additionnez donc vous-même les valeurs de la série et distinguez « aucune donnée » de « zéro » :

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

Récupérez les statistiques Google Business Profile d’un établissement.

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

Options

ParamètreTypeDescription
fromDatestringDate de début, YYYY-MM-DD.
toDatestringDate de fin, YYYY-MM-DD.

Le contenu de la réponse est l’objet googleInsights, et chacune de ses clés correspond à une série { startTime, value }[] : total, search, maps, websiteAction, directionsAction, phoneAction, businessBookings, businessFoodOrders et businessFoodMenuClicks. total correspond aux impressions de la fiche, soit search plus maps ; cette métrique n’inclut pas les métriques d’action. Toute série pour laquelle Google ne dispose d’aucune donnée est renvoyée avec la valeur null. Consultez Obtenir les données d’analyse Google d’un établissement pour la référence complète des champs.

fetchBingAnalytics

Récupérez les statistiques Bing Places d’un établissement.

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

Bing fournit une seule métrique, views, regroupée par semaine plutôt que par jour.

Options

ParamètreTypeDescription
fromDatestringDate de début, YYYY-MM-DD.
toDatestringDate de fin, YYYY-MM-DD.

fetchFacebookAnalytics

Récupérez les statistiques de la page Facebook d’un établissement.

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

Le contenu de la réponse Facebook comprend views, ctaAction, websiteAction, directionsAction et phoneAction. Il ne contient pas de pageLikes.

Options

ParamètreTypeDescription
fromDatestringDate de début, YYYY-MM-DD.
toDatestringDate de fin, YYYY-MM-DD.

Rapport sur plusieurs plateformes

Récupérez les données des trois plateformes en parallèle avec 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);

Si une fiche n’est pas connectée pour une plateforme donnée, la promesse renvoyée par la méthode est résolue avec un objet vide plutôt que rejetée, et une série individuelle est renvoyée avec la valeur null. Affichez ce résultat comme « indisponible » plutôt que de le convertir en 0 avec ??, sinon une fiche déconnectée apparaîtra comme un véritable zéro dans votre tableau de bord. Les échecs de requête continuent de lever les erreurs typées du SDK.

  • Établissements : rechercher les identifiants d’établissement
  • Avis : analyse des avis (overview, timeline, sites-stats)
  • Cas d’utilisation : procédure de création d’un rapport d’analyse