Google AnalyticsAPI以可读格式输出数据

时间:2015-09-16 06:54:16

标签: javascript google-analytics analytics google-analytics-api

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

enter image description here

我能够显示相同的数据,但它们不像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();

2 个答案:

答案 0 :(得分:1)

Google AnalyticsAPI以原始格式返回数据

让我们看看ga:avgsessionduration

  

用户会话的平均持续时间,以秒为单位。   数据类型:TIME

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

  

00:00:00

您必须自己格式化。 API以一种格式返回其数据,在此情况下,它的总秒数。

答案 1 :(得分:0)

这是一个实际答案......

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