nodejs 接入Google Analytics(谷歌统计) api

发布于 2020-03-20  1.66k 次阅读


使用nodejs对接谷歌统计api用于统计数据

  1. 首先能翻墙,然后拥有一个谷歌账号

2. 访问https://console.developers.google.com/ 登录自己的谷歌账号,之后 点击左上角的启用api和服务

3. 进去到api服务中心之后搜索Google Analytics API ,把搜索到的两个api都启用,分别是Google Analytics API和Google Analytics Reporting API

4.开启api之后返回直接登录进入的地方,或者重新访https://console.developers.google.com/

5.点击左侧的菜单,选择凭据,并且创建一个凭据,类型选择服务账号(我这里是用来获取web页面的访问情况和打点数据,所以选择了服务账号,其他的两个貌似是客户端之类的验证密钥)

6.生成完毕之后会生成一个xxx.json的文件,这个就是你访问api的密钥了,切记要保存好

7.下载谷歌的组件 npm install google --save

8.下面贴一段测试代码

const {google} = require('googleapis');
//以下client_email为创建凭据生成的邮箱,key为密钥
const client_email='json文件中的client_email属性' 
const private_key='json文件中的private_key属性'
const VIEW_ID='视图id'
const jwtClient = new google.auth.JWT(
    key.client_email,
    null,
    key.private_key, ['https://www.googleapis.com/auth/analytics', 'https://www.googleapis.com/auth/analytics.readonly'],
    null
);
let r = await queryData(jwtClient);

async function queryData(jwtClient) {
    //我这里用的是moment组件获取昨天的时间   npm install moment --save
    //获取一天前的时间
    let date = moment().subtract(1, 'days').format('YYYY-MM-DD');
    let options = {
        'auth': jwtClient,
        'ids': VIEW_ID,
        'metrics': 'ga:totalEvents',
        'dimensions': 'ga:eventAction',
        'start-date': date,   //查询时间区间
        'end-date': date,
        // 'sort': '-ga:uniquePageviews',//设置排序
        'max-results': 10,

    };

    return new Promise((resolve, reject) => {
        google.analytics('v3').data.ga.get(options, async (err, r)    => {
            if (err) {
                console.log(err);
                reject(err);
            } else {
                resolve(r)
            }
        })
    })
}

9.现在我们已经获得发起请求的email和key了,我们还差一个view_id 也就是视图id,这个时候我们要去Google Analytics后台获取 地址:https://analytics.google.com/analytics/web 登录账号一定是创建凭据的同一个账号,因为谷歌分析是可以多账号查看的,比如一个分析账号可以和多个账号共享,共享的多个账号都能观看这个分析账号的数据

10.这个时候我们进入后台,点击左侧菜单栏最下面的管理选项,

创建一个媒体资源,类型选择第一个,创建完成之后就可以在信息里面看到视图id了

点击最右侧的数据视图设置,就会看到自己的视图id啦

11.获得视图id之后为们就可以把它加到代码里面了,但是这个时候还不够,我们需要为我们申请的key里面的clietn_email提供访问权限,这个时候我们还需要去设置里面开通访问权限

点击第二个账号用户管理,进去之后点击右上角的加号

选择添加用户,把申请凭据下载下来的xxx.json里面的client_email的值加进去即可,给予访问数据权限即可

12.这个时候我们还需要把打点的代码放进自己的web页面中

点击跟踪代码,把里面的那一段代码复制到自己web页面的head中即可

13.这个时候追踪代码也已经放置完毕了,等待有数据发更新完毕,便可以开始执行代码获取数据了,运行代码之后,谷歌的api接口会返回一个json数据,其中data属性下的rows里面的数组便是查到的数据,至于查询的方法,可以参考谷歌api

后续=======>

这里提供以下谷歌的api文档地址

https://developers.google.com/analytics/devguides/reporting/core/v3/reference#fields

https://ga-dev-tools.appspot.com/dimensions-metrics-explorer/

第一个为中文的文档,只是一个参考文档,第二个为详细的api使用文档,不过是英文的


一个逐渐被时间遗忘掉的人