Google Analytics(分析)通过API获取每个页面的浏览量的步骤

时间:2018-11-21 09:58:40

标签: node.js google-analytics google-api google-analytics-api

我是Google Analytics(分析)的新手。

我想从某个地方开始。 这是我的用例。

  1. 我有一个用node.js express framework.
  2. 编写的restAPI
  3. 我有一个用react native编写的移动应用程序。
  4. 我还有一个用于移动应用程序管理的Web应用程序,以Vue.js
  5. 编写

移动应用是食品应用。您可以在其中搜索餐厅或餐厅的菜肴。

我想传递餐厅ID ,并在最近7天内获得该应用在餐厅的观看次数。 非常简单的要求。但是很难实现。因为我不知道从哪里开始。

我浏览了文档,发现有7个API。

  1. 核心报告API
  2. 管理API
  3. 嵌入式API
  4. 用户删除API
  5. 多渠道报告API
  6. 实时API
  7. 元数据API

一天结束时,我希望使用API​​进行类似的操作。

showMeTheView(restaurant_id)

此外,如果我想传递其他参数说仅获取上个月的观看次数。

showMeTheViews(restaurant_id, last_month)

我不知道要达到要求的基本步骤是什么?

在本机应用程序中需要做什么? 在vue.js网络应用中需要做什么? 这两者之间需要做什么?

任何帮助!

感谢进阶!

1 个答案:

答案 0 :(得分:1)

首先,您应该使用Core reporting api,这是可用于从Google Analytics(分析)提取数据的api。用于从Google Analytics(分析)提取数据的Json对象非常广泛batch get

如果使用Google apis node.js client libray,它将使您的生活更加轻松 从发现的示例here

中提取的代码
'use strict';

const {google} = require('googleapis');
const sampleClient = require('../sampleclient');

const analyticsreporting = google.analyticsreporting({
  version: 'v4',
  auth: sampleClient.oAuth2Client,
});

async function runSample() {
  const res = await analyticsreporting.reports.batchGet({
    requestBody: {
      reportRequests: [
        {
          viewId: '65704806',
          dateRanges: [
            {
              startDate: '2018-03-17',
              endDate: '2018-03-24',
            },
            {
              startDate: '14daysAgo',
              endDate: '7daysAgo',
            },
          ],
          metrics: [
            {
              expression: 'ga:users',
            },
          ],
        },
      ],
    },
  });
  console.log(res.data);
  return res.data;
}

// if invoked directly (not tests), authenticate and run the samples
if (module === require.main) {
  const scopes = ['https://www.googleapis.com/auth/analytics'];
  sampleClient
    .authenticate(scopes)
    .then(runSample)
    .catch(console.error);
}

// export functions for testing purposes
module.exports = {
  runSample,
  client: sampleClient.oAuth2Client,
};