Google Analytics API 以可读格式输出数据

Google Analytics API output data in a readable format

我正在使用 Embed API 以便使用服务器端身份验证显示 Google 分析数据。 我已经能够显示我需要的图表,但现在我遇到了问题, 我正在尝试显示 Google Analytics 使用的以下 table:

我已经能够显示相同的数据,但它们不像 Analytics 显示的那样可读,例如 Avg。会话持续时间 应以秒为单位表示,但我显示的是:165.28275862068966

我的问题是,有什么方法可以向 Embed 请求正确的数据格式 API 还是我需要自己计算?

我调用的查询示例是这样的:

var dataChart5 = new gapi.analytics.googleCharts.DataChart({
query: {
  'ids': 'ga:***', // My ID
  'start-date': '31daysAgo',
  'end-date': 'yesterday',
  'metrics': 'ga:users,ga:percentNewSessions,ga:sessions,ga:bounceRate,ga:avgSessionDuration,ga:pageviews,ga:pageviewsPerSession',
  'prettyPrint':'true',
},
chart: {
  'container': 'chart-5-container',
  'type': 'TABLE',
  'options': {
    'width': '100%',
    'title': 'test'
  }
}
  });

   dataChart5.execute();

数据由 Google Analytics API

以原始格式返回

让我们看看ga:avgsessionduration

The average duration of user sessions represented in total seconds. Data type: TIME

所以您看到的数字是 165.28275862068966 秒。如果你想看到它像它在网站上显示的那样

00:00:00

您将不得不自己格式化它。 API returns 其数据以一种格式表示,在这种情况下它的总秒数。

这是一个真实的答案...

https://www.raymondcamden.com/2015/09/17/creating-a-custom-display-for-googles-analytics-embed-library

示例节点代码...

const moment = require( "moment" );

function formatTime(str) {
    var dur = moment.duration(parseInt(str,10), 'seconds');
    var minutes = dur.minutes();
    var seconds = dur.seconds();
    return minutes + " minutes and " + seconds + " seconds";
}

console.log( formatTime( "165.282" ) );