访问 Google Analytics 实时报告 API(通过 javascript)的处理方式与核心报告 API 类似,还是有很大不同?

Is access to the Google Analytics Realtime Reporting API (via javascript) handled similarly to the Core Reporting API or is it dramatically different?

我正在使用 [https://developers.google.com/analytics/devguides/reporting/core/v3/quickstart/web-js][1] 中的 'Hello Analytics' 代码示例来允许我访问我的 Google Analytics 帐户并将 JSON 响应记录到控制台。我可以遍历 JSON 并查看如何从核心报告 API 中请求我想要的特定数据......它非常棒。

不过,我对实时数据更感兴趣。对于这个特定项目,我需要比核心报告更快的东西 API...

问题:实时报告 API 是否可以通过 javascript 访问?如果是,它(一般来说)是否也以同样的方式工作?含义是否只是改变以下任何一项以获得来自实时 api 的相同类型响应的问题?

// Set authorized scope.
var SCOPES = ['https://www.googleapis.com/auth/analytics.readonly'];

// Load the Google Analytics client library.
gapi.client.load('analytics', 'v3').then(function() {

我看到大量关于核心报告的资源/示例 API,但实时的不多 API

Core Reporting API and the Real time API 的工作方式非常相似,甚至具有相同的身份验证范围。

核心报告API通话

gapi.client.analytics.data.ga.get(...)

Core Reporting API method reference.

实时API调用

gapi.client.analytics.data.realtime.get(...)

Realtime API method reference.

实时 API 有自己的一组维度和指标,以 rt:... 开头,而核心报告 API 维度和指标以 ga:... 开头。

我在我的 Google Apps 脚本中同时使用了它们。这些相同的功能可能有助于理解相似性。

在核心报告中 API 下面的函数为具有给定过滤器的给定维度提供用户、会话、avgSessionDuration 和 uniqueEvents。

function countClicks(analyticsID,startDate,endDate){
  try {
    var results = Analytics.Data.Ga.get(
      'ga:'+analyticsID,
      startDate,
      endDate,
      'ga:users,ga:sessions,ga:avgSessionDuration,ga:uniqueEvents',
      {'dimensions': 'ga:eventLabel','filters': 'ga:sessionDuration>1;ga:eventCategory=@'+SUBJECT}).rows;
    return results;
  } catch(e){
    Logger.log(e);
    logTable.appendRow([e["stack"],e.message,new Date()]);
  }
}

实时 API 这给出了给定维度的活跃用户数

function countClicks(analyticsID){
  try {
    var results = Analytics.Data.Realtime.get(
      'ga:'+analyticsID,
      'rt:activeUsers',
      {'dimensions':'rt:country,rt:city,rt:eventCategory,rt:eventAction,rt:eventLabel,rt:operatingSystem,rt:deviceCategory'}).rows;
    return results;
  } catch(e){
    Logger.log(e);
    logTable.appendRow([e["stack"],e.message,new Date()]);
  }
}

所以,是的。它几乎以同样的方式工作。

Core Reporting API acording to Realtime API

中有更多的指标和维度选项