如何使用NodeJS客户端库获取Google Analytics多日期范围报告
使用Node.js客户端库获取Google Analytics Core Reporting v4多日期范围报告
没问题,我来给你演示怎么用Node.js客户端库实现这个多日期范围的报告请求,和你贴的API请求结构完全对应:
首先,确保你已经安装了Google Analytics Reporting的Node.js客户端库:
npm install @googleapis/analyticsreporting
接下来是完整的代码示例,我会加上注释帮你理解每一部分:
const { google } = require('@googleapis/analyticsreporting'); async function getMultiDateRangeReport() { // 1. 初始化客户端,这里用服务账号认证(替换成你的服务账号密钥路径) const analyticsreporting = google.analyticsreporting({ version: 'v4', auth: new google.auth.GoogleAuth({ keyFile: 'path/to/your-service-account-key.json', scopes: ['https://www.googleapis.com/auth/analytics.readonly'], }), }); try { // 2. 构建请求参数,和你提供的API请求结构一一对应 const response = await analyticsreporting.reports.batchGet({ requestBody: { reportRequests: [ { viewId: 'YOUR_VIEW_ID', // 替换成你的GA视图ID dateRanges: [ { startDate: '2014-11-01', endDate: '2014-11-30' }, { startDate: '2014-10-01', endDate: '2014-10-30' }, ], metrics: [ { expression: 'ga:pageviews' }, // 补全你需要的有效GA指标,比如ga:pageviews ], // 如果需要维度,可添加如下字段: // dimensions: [{ name: 'ga:pagePath' }] }, ], }, }); // 3. 处理返回的报告数据 const report = response.data.reports[0]; const rows = report.data.rows; if (rows) { rows.forEach(row => { // 每个row的metrics数组按顺序对应你设置的两个日期范围数据 const novMetrics = row.metrics[0]; const octMetrics = row.metrics[1]; console.log(`11月页面浏览量: ${novMetrics.values[0]}`); console.log(`10月页面浏览量: ${octMetrics.values[0]}`); }); } else { console.log('没有获取到数据'); } } catch (err) { console.error('请求出错:', err); } } // 调用函数获取报告 getMultiDateRangeReport();
关键说明:
- 认证部分:这里用的是服务账号认证,适合服务器端应用;如果是客户端应用,可能需要用OAuth2认证,但服务账号是后端场景最常用的方式。
- dateRanges数组:和你提供的API请求完全一致,每个对象对应一个日期范围,返回结果中每行的
metrics数组会按顺序匹配这些日期范围的数据。 - metrics设置:确保表达式是有效的GA指标,比如
ga:pageviews、ga:sessions等,不要遗漏指标前缀。 - 视图ID:记得替换成你自己的Google Analytics视图ID,格式可以是
ga:XXXXXX或者直接用数字,客户端库会自动处理。
如果需要添加维度、过滤条件或其他参数,直接在reportRequests对象中对应添加即可,完全兼容Core Reporting v4的API参数结构。
内容的提问来源于stack exchange,提问作者Marrone
相关产品推荐
相关产品推荐

