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

如何在Google Analytics 4中获取文章/页面浏览量?PHP适配问题

从GA4获取指定文章浏览量的解决方案

一、替换废弃的API依赖

原来的Google APIs Client Library for PHP已停止维护,需要改用Google Analytics Data API v1的官方PHP客户端,通过Composer安装:

composer require google/analytics-data

二、配置服务账号权限

  1. 登录Google Cloud控制台,创建服务账号并下载JSON格式的密钥文件。
  2. 登录GA4后台,进入目标媒体资源的「管理员」→「用户与权限」→「添加用户」,将服务账号邮箱添加进去,权限选择查看者或分析师(确保具备数据读取权限)。
  3. 记录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.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:22:33