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

如何从Google Analytics获取数据在网页显示浏览量

当然可以在网页上展示Google Analytics的页面浏览量,但得先清楚GA的一些限制——比如它的数据不是实时的(通常有几小时延迟),而且不能直接从前端调用数据(会泄露敏感密钥),得通过后端中转来实现。下面分新版GA4和旧版UA两种情况给你捋清楚步骤:

针对Google Analytics 4(GA4)的实现步骤

1. 准备API权限与密钥

  • 登录Google Cloud控制台,创建一个新项目(或使用已有项目),关联你的GA4属性
  • 搜索并启用「Analytics Data API v1」
  • 创建一个服务账号,下载对应的JSON密钥文件(这个文件要妥善存在后端,绝对不能暴露给前端)
  • 回到GA4的管理界面,给这个服务账号添加「查看者」权限,确保它能读取你的GA4数据

2. 后端编写数据请求逻辑

因为前端不能直接调用API,所以得用后端语言(比如Node.js、PHP)来请求数据。这里举个Node.js的例子:
首先安装依赖:

npm install @google-analytics/data

然后编写获取页面浏览量的代码:

const { BetaAnalyticsDataClient } = require('@google-analytics/data');

async function getPageViews(propertyId, pagePath) {
  const client = new BetaAnalyticsDataClient({
    keyFilename: './你的服务账号密钥.json'
  });

  const [response] = await client.runReport({
    property: `properties/${propertyId}`,
    dateRanges: [{ startDate: '2020-01-01', endDate: 'today' }],
    dimensions: [{ name: 'pagePath' }],
    metrics: [{ name: 'screenPageViews' }],
    dimensionFilter: {
      filter: {
        fieldName: 'pagePath',
        stringFilter: { matchType: 'EXACT', value: pagePath }
      }
    }
  });

  const row = response.rows?.[0];
  return row ? row.metricValues[0].value : '0';
}

// 调用示例:替换成你的GA4属性ID和目标页面路径
getPageViews('123456789', '/about')
  .then(views => console.log(`页面浏览量:${views}`))
  .catch(err => console.error(err));

3. 前端展示数据

后端把获取到的浏览量封装成一个接口(比如/api/page-views?path=/about),前端通过AJAX或者fetch请求这个接口,拿到数据后渲染到页面的指定位置即可。

针对Universal Analytics(UA)的实现步骤

如果你还在使用旧版的UA属性,可以用Core Reporting API来实现:

1. 准备API权限

  • 同样在Google Cloud控制台启用「Analytics Reporting API v4」
  • 创建服务账号,下载密钥,给UA属性添加「查看者」权限

2. 后端请求数据

举个PHP的简单示例:

require __DIR__ . '/vendor/autoload.php';

$client = new Google\Client();
$client->setAuthConfig('./你的服务账号密钥.json');
$client->addScope('https://www.googleapis.com/auth/analytics.readonly');

$analytics = new Google\Service\AnalyticsReporting($client);

$viewId = 'ga:12345678'; // 替换成你的UA视图ID
$pagePath = '/about'; // 目标页面路径

$dateRange = new Google\Service\AnalyticsReporting\DateRange();
$dateRange->setStartDate('2020-01-01');
$dateRange->setEndDate('today');

$metric = new Google\Service\AnalyticsReporting\Metric();
$metric->setExpression('ga:pageviews');
$metric->setAlias('pageviews');

$dimension = new Google\Service\AnalyticsReporting\Dimension();
$dimension->setName('ga:pagePath');

$filterClause = new Google\Service\AnalyticsReporting\DimensionFilterClause();
$filter = new Google\Service\AnalyticsReporting\DimensionFilter();
$filter->setDimensionName('ga:pagePath');
$filter->setOperator('EXACT');
$filter->setExpressions([$pagePath]);
$filterClause->setFilters([$filter]);

$request = new Google\Service\AnalyticsReporting\ReportRequest();
$request->setViewId($viewId);
$request->setDateRanges([$dateRange]);
$request->setMetrics([$metric]);
$request->setDimensions([$dimension]);
$request->setDimensionFilterClauses([$filterClause]);

$body = new Google\Service\AnalyticsReporting\GetReportsRequest();
$body->setReportRequests([$request]);

$response = $analytics->reports->batchGet($body);
$rows = $response->getReports()[0]->getData()->getRows();
$pageViews = $rows ? $rows[0]->getMetrics()[0]->getValues()[0] : '0';

echo $pageViews;

3. 前端展示

和GA4的方式一样,后端提供接口,前端请求后渲染数据。

关键注意事项
  • 数据延迟:GA的常规数据通常有1-24小时的延迟,如果需要实时数据,可以使用Real-Time API,但配额限制更严格,且只能获取最近30分钟的数据
  • 安全问题:服务账号的密钥绝对不能放在前端代码里,必须由后端处理API请求,避免密钥泄露导致数据被盗用
  • API配额:GA的API有每日调用次数限制,记得合理缓存请求结果,减少API调用
  • 页面路径匹配:确保API请求里的pagePath和页面实际的URL路径完全一致(比如是否带斜杠、参数等),否则会获取不到正确的数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:12:38