You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从GA4获取报告数据?求@google-analytics/data Beta版替代方案

GA4 数据获取的生产环境替代方案

你目前通过 @google-analytics/data Beta 库实现了GA4报告数据的获取,代码运行正常,但出于Beta版的稳定性顾虑,这里提供两个可行的生产环境替代方案:


方案一:直接调用 GA4 Data API REST 端点

绕过Beta客户端库,直接通过HTTP请求调用GA4 Data API的REST接口,用服务账号JWT完成认证,完全自主控制请求逻辑。

示例代码(Node.js)

const jwt = require('jsonwebtoken');
const axios = require('axios'); // 或使用 node-fetch

// 配置信息
const propertyId = 'YOUR-GA4-PROPERTY-ID';
const serviceAccount = require('./path-to-your-service-account-key.json');
const apiUrl = `https://analyticsdata.googleapis.com/v1beta/properties/${propertyId}:runReport`;

// 生成JWT认证令牌
function generateAuthToken() {
  const payload = {
    iss: serviceAccount.client_email,
    scope: 'https://www.googleapis.com/auth/analytics.readonly',
    aud: 'https://oauth2.googleapis.com/token',
    exp: Math.floor(Date.now() / 1000) + 3600, // 1小时有效期
    iat: Math.floor(Date.now() / 1000)
  };
  return jwt.sign(payload, serviceAccount.private_key, { algorithm: 'RS256' });
}

// 获取访问令牌
async function getAccessToken() {
  const token = generateAuthToken();
  const response = await axios.post('https://oauth2.googleapis.com/token', {
    grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',
    assertion: token
  });
  return response.data.access_token;
}

// 运行GA4报告
async function runReport() {
  try {
    const accessToken = await getAccessToken();
    const response = await axios.post(apiUrl, {
      dateRanges: [{ startDate: '2020-03-31', endDate: 'today' }],
      dimensions: [{ name: 'city' }],
      metrics: [{ name: 'activeUsers' }]
    }, {
      headers: { Authorization: `Bearer ${accessToken}` }
    });

    console.log('报告结果:');
    response.data.rows.forEach(row => {
      console.log(row.dimensionValues[0].value, row.metricValues[0].value);
    });
  } catch (error) {
    console.error('请求失败:', error.response?.data || error.message);
  }
}

runReport();

方案二:使用通用 Google API 客户端库(稳定版)

使用官方稳定版的 googleapis 库,它支持调用GA4 Data API,不属于Beta专属库,稳定性更有保障。

示例代码(Node.js)

const { google } = require('googleapis');

// 配置信息
const propertyId = 'YOUR-GA4-PROPERTY-ID';
const serviceAccount = require('./path-to-your-service-account-key.json');

// 初始化认证客户端
const auth = new google.auth.JWT(
  serviceAccount.client_email,
  null,
  serviceAccount.private_key,
  ['https://www.googleapis.com/auth/analytics.readonly']
);

// 初始化GA4 Data API客户端
const analyticsData = google.analyticsdata({
  version: 'v1beta',
  auth: auth
});

// 运行报告
async function runReport() {
  try {
    const response = await analyticsData.properties.runReport({
      property: `properties/${propertyId}`,
      requestBody: {
        dateRanges: [{ startDate: '2020-03-31', endDate: 'today' }],
        dimensions: [{ name: 'city' }],
        metrics: [{ name: 'activeUsers' }]
      }
    });

    console.log('报告结果:');
    response.data.rows.forEach(row => {
      console.log(row.dimensionValues[0].value, row.metricValues[0].value);
    });
  } catch (error) {
    console.error('请求失败:', error.message);
  }
}

runReport();

注意事项

  • 确保服务账号已被添加到GA4属性中,并授予查看者或编辑者权限
  • GA4 Data API的v1beta版本是当前公开的稳定预览版,Google会提供平滑的版本过渡通知,可关注官方文档的版本更新
  • 生产环境中建议添加限流处理、重试机制和错误日志,提升系统健壮性

内容的提问来源于stack exchange,提问作者Toss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 02:32:37