如何在Google Analytics 4中获取文章/页面浏览量?PHP适配问题
从GA4获取指定文章浏览量的解决方案
一、替换废弃的API依赖
原来的Google APIs Client Library for PHP已停止维护,需要改用Google Analytics Data API v1的官方PHP客户端,通过Composer安装:
composer require google/analytics-data
二、配置服务账号权限
- 登录Google Cloud控制台,创建服务账号并下载JSON格式的密钥文件。
- 登录GA4后台,进入目标媒体资源的「管理员」→「用户与权限」→「添加用户」,将服务账号邮箱添加进去,权限选择查看者或分析师(确保具备数据读取权限)。
- 记录GA4媒体资源ID,格式为
properties/XXXXXX(XXXXXX是GA4的数字ID,可在媒体资源设置中找到)。
三、PHP代码实现
以下是获取单篇文章浏览量的示例代码:
<?php require 'vendor/autoload.php'; use Google\Analytics\Data\V1beta\BetaAnalyticsDataClient; use Google\Analytics\Data\V1beta\DateRange; use Google\Analytics\Data\V1beta\Dimension; use Google\Analytics\Data\V1beta\Metric; use Google\Analytics\Data\V1beta\FilterExpression; use Google\Analytics\Data\V1beta\Filter; use Google\Analytics\Data\V1beta\Filter\StringFilter; // 替换为你的服务账号密钥路径 putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/service-account-key.json'); // 替换为你的GA4媒体资源ID $propertyId = 'properties/123456789'; // 指定文章的URL路径(比如 "/blog/hello-world") $targetPagePath = "/your/article/path"; try { $client = new BetaAnalyticsDataClient(); // 构建查询 $response = $client->runReport([ 'property' => $propertyId, 'date_ranges' => [ new DateRange([ 'start_date' => '2024-01-01', // 可改为文章发布日期 'end_date' => 'today' ]), ], 'dimensions' => [new Dimension(['name' => 'pagePath'])], 'metrics' => [new Metric(['name' => 'screenPageViews'])], // GA4页面浏览量指标 'dimension_filter' => new FilterExpression([ 'filter' => new Filter([ 'field_name' => 'pagePath', 'string_filter' => new StringFilter([ 'match_type' => StringFilter\MatchType::EXACT, 'value' => $targetPagePath ]) ]) ]) ]); // 处理查询结果 $pageViews = 0; foreach ($response->getRows() as $row) { $pageViews = (int)$row->getMetricValues()[0]->getValue(); } echo "文章浏览量:{$pageViews}"; } catch (Exception $e) { echo "错误:" . $e->getMessage(); } ?>
关键说明
- 维度与指标:GA4的
pagePath维度对应UA的ga:pagePath,screenPageViews指标对应UA的ga:pageviews;若站点为纯网页且未启用App跟踪,也可使用pageViews指标(需确保GA4事件配置正确)。 - 过滤条件:若文章URL含动态参数,可将
match_type改为StringFilter\MatchType::CONTAINS,匹配路径中的固定部分。 - 权限排查:若仍报403错误,检查服务账号邮箱是否已正确添加到GA4媒体资源权限列表,且权限级别足够(至少为查看者)。
- 日期范围:根据需求调整
start_date和end_date,比如设为文章发布日期到今日,确保统计的是该文章的总浏览量。
内容的提问来源于stack exchange,提问作者Lyccos N.
相关产品推荐
相关产品推荐

