使用 Node.js 获取 Google Analytics 数据(无 OAuth 身份验证)
你好。
我是Mandai,负责Wild 开发团队。
除了我的日常工作之外,我还(偶尔)为一个由公司内部组建的网络营销团队工作,当我查看 Google Analytics 数据时,我会问自己,“它是上升还是下降?这就是我的观点。”主要工作。
我正在使用 Node.js 通过 API 从 Google Analytics 获取数据并分析数据,但仅仅创建一个程序很困难,所以我想我将向您展示一个示例程序。
我还没有写正文,但我觉得我会花更多的空间在我的 Google 帐户周围的设置上,而不是在程序上。
与 Google 帐户相关的设置
创建一个项目
https://console.developers.google.com创建项目
或者,如果您有一个现有的项目并且您觉得可以,那也没有问题。
启用谷歌API
从“API Manager”中的“库”启用 Google Analytics Reporting API。
但是,此页面上没有链接,因此您需要通过在搜索框中输入“分析报告”之类的内容进行搜索。
从凭据创建服务帐户密钥
启用 API 后,从左侧的“凭据”链接创建凭据。
要创建的身份验证信息的类型是“服务帐户密钥”。
为服务帐户指定适当的名称并将角色设置为项目查看者。
(其实我对这个设定不太有信心,如果大家有更好的角色设定,请告诉我!)
“密钥类型”是使用 JSON 创建的。
您将下载一个包含身份验证信息的 JSON 文件,因此请将其保存在安全的地方。
我们稍后会用到它。
在 Google Analytics 端注册创建的服务帐户密钥
我以为我已经准备好了,因为我已经创建了一个服务帐户,可以访问启用了 Google Analytics Reporting API 的项目,但实际上还需要一个设置步骤。
https://analytics.google.com页面,转到管理屏幕,并在要从中收集数据的视图的用户管理中注册“服务帐户密钥”。
我在这里有一个问题。
即使创建服务帐户密钥的用户具有相应视图的访问权限,是否也需要注册?
答案当然是肯定的。
我认为 Google 帐户权限结构已被破坏,至少从 Google Analytics 来看,服务帐户密钥被识别为与创建服务帐户密钥的用户不同的用户。
因此,请使用“查看和分析”权限重新注册服务帐户密钥。
注册需要电子邮件地址,但您之前下载的服务帐户密钥 JSON 文件中有一个名为“client_email”的密钥,因此该值将是您的电子邮件地址。
现在您已打开 Google Analytics(分析)屏幕,记下您要从中检索数据的视图的 ID。
这样就完成了 Google Analytics 设置。
配置 Node.js
从 npm 安装 googleapis 包。
顾名思义,它是一个用于访问Google API的包,由Google制作。
npm 安装 googleapis
如果您只想与 Google Analytics Reporting API 进行通信,则不需要其他包。
获取数据
酱汁量不是很多,所以请先检查一下酱汁。
var google = require('googleapis'); var Analytics = google.analyticsreporting('v4'); // 指定服务帐户密钥 JSON 文件 var credential = require('./xxxxxxxx.json');您要获取的 Google Analytics 视图 ID var viewId = 'XXXXXXXXX'; // 目标数据的周期 var startDate = "xxxx-xx-xx"; var endDate = "xxxx-xx-xx"; .JWT(credential.client_email, null, credential.private_key, ["https://www.googleapis.com/auth/analytics.readonly"], null); jwtClient.authorize((error, tokens) => { if (错误){ console.log(错误); }analytics.reports.batchGet({资源:{“reportRequests”:[{“dateRanges”:[{“startDate”:startDate,“endDate”:endDate }],“ viewId": viewId, "dimensions": [ { "name": "ga:pagePath" } ] } ] }, auth: jwtClient }, (error, response) => { if (error){ console.log(error ) ; } 控制台.log(响应) }) });
测试需要进行四处更改。
- 服务帐户密钥 JSON 文件的路径
- 查看ID
- 目标数据周期的开始日期
- 目标数据期的结束日期
只需更改 ,您就可以收集目标时间段内每个 URL 的访问次数数据。
正如我所想,来源并不是什么大不了的事,但我确实花了很多时间来设置 Google 帐户。
就是这样。