@@ -480,9 +480,14 @@ export class GmbProvider extends SocialAbstract implements SocialProvider {
480480 const endDate = dayjs ( ) . format ( 'YYYY-MM-DD' ) ;
481481 const startDate = dayjs ( ) . subtract ( date , 'day' ) . format ( 'YYYY-MM-DD' ) ;
482482
483+ // id is in format: accounts/{accountId}/locations/{locationId}
484+ // Business Profile Performance API expects: locations/{locationId}
485+ const locationId = id . split ( '/locations/' ) [ 1 ] ;
486+ const locationPath = `locations/${ locationId } ` ;
487+
483488 // Use the Business Profile Performance API
484489 const response = await fetch (
485- `https://businessprofileperformance.googleapis.com/v1/${ id } :getDailyMetricsTimeSeries?dailyMetric =WEBSITE_CLICKS&dailyMetric =CALL_CLICKS&dailyMetric =BUSINESS_DIRECTION_REQUESTS&dailyMetric =BUSINESS_IMPRESSIONS_DESKTOP_MAPS&dailyMetric =BUSINESS_IMPRESSIONS_MOBILE_MAPS&dailyRange.startDate.year=${ dayjs (
490+ `https://businessprofileperformance.googleapis.com/v1/${ locationPath } :fetchMultiDailyMetricsTimeSeries?dailyMetrics =WEBSITE_CLICKS&dailyMetrics =CALL_CLICKS&dailyMetrics =BUSINESS_DIRECTION_REQUESTS&dailyMetrics =BUSINESS_IMPRESSIONS_DESKTOP_MAPS&dailyMetrics =BUSINESS_IMPRESSIONS_MOBILE_MAPS&dailyRange.startDate.year=${ dayjs (
486491 startDate
487492 ) . year ( ) } &dailyRange.startDate.month=${
488493 dayjs ( startDate ) . month ( ) + 1
@@ -502,7 +507,11 @@ export class GmbProvider extends SocialAbstract implements SocialProvider {
502507
503508 const data = await response . json ( ) ;
504509
505- if ( ! data . timeSeries || data . timeSeries . length === 0 ) {
510+ // Response structure: { multiDailyMetricTimeSeries: [{ dailyMetricTimeSeries: [...] }] }
511+ const dailyMetricTimeSeries =
512+ data . multiDailyMetricTimeSeries ?. [ 0 ] ?. dailyMetricTimeSeries ;
513+
514+ if ( ! dailyMetricTimeSeries || dailyMetricTimeSeries . length === 0 ) {
506515 return [ ] ;
507516 }
508517
@@ -516,18 +525,19 @@ export class GmbProvider extends SocialAbstract implements SocialProvider {
516525
517526 const analytics : AnalyticsData [ ] = [ ] ;
518527
519- for ( const series of data . timeSeries ) {
528+ for ( const series of dailyMetricTimeSeries ) {
520529 const metricName = series . dailyMetric ;
521530 const label = metricLabels [ metricName ] || metricName ;
522531
523- const dataPoints =
524- series . timeSeries ?. datedValues ?. map ( ( dv : any ) => ( {
525- total : dv . value || 0 ,
526- date : `${ dv . date . year } -${ String ( dv . date . month ) . padStart (
527- 2 ,
528- '0'
529- ) } -${ String ( dv . date . day ) . padStart ( 2 , '0' ) } `,
530- } ) ) || [ ] ;
532+ const datedValues = series . timeSeries ?. datedValues || [ ] ;
533+
534+ const dataPoints = datedValues . map ( ( dv : any ) => ( {
535+ total : parseInt ( dv . value || '0' , 10 ) ,
536+ date : `${ dv . date . year } -${ String ( dv . date . month ) . padStart (
537+ 2 ,
538+ '0'
539+ ) } -${ String ( dv . date . day ) . padStart ( 2 , '0' ) } `,
540+ } ) ) ;
531541
532542 if ( dataPoints . length > 0 ) {
533543 analytics . push ( {
0 commit comments