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

PHP应用从Universal Analytics(v3)迁移至GA4数据获取求助

将PHP应用从Universal Analytics(UA)迁移到GA4实时数据采集

UA(v3)的实时数据API已停止服务,需切换到GA4的Google Analytics Data API实现相同功能。以下是对应你原有需求的完整迁移方案:

1. 更新依赖包

确保你的项目使用最新版Google客户端库,执行:

composer require google/apiclient

2. 完整替换代码

替换你原有的UA认证与数据请求代码,以下是适配GA4的实现:

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

// 加载服务账号密钥
$keyFilePath = 'linkxxxx8416.json';
$credentials = new Google\Auth\Credentials\ServiceAccountCredentials(
    'https://www.googleapis.com/auth/analytics.readonly',
    $keyFilePath
);

// 初始化Google客户端
$client = new Google\Client();
$client->setCredentials($credentials);

// 初始化GA4数据服务
$ga4 = new Google\Service\AnalyticsData($client);

// GA4属性ID(格式:properties/你的GA4属性ID,可在GA4后台获取)
$propertyId = 'properties/123456789';

// 构造实时数据请求(对应你原有的UA查询需求)
$request = new Google\Service\AnalyticsData\RunReportRequest();
$request->setMetrics([
    new Google\Service\AnalyticsData\Metric(['name' => 'activeUsers'])
]);
$request->setDimensions([
    new Google\Service\AnalyticsData\Dimension(['name' => 'pagePath']),
    new Google\Service\AnalyticsData\Dimension(['name' => 'pageTitle'])
]);
// 按活跃用户倒序排序
$request->setOrderBys([
    new Google\Service\AnalyticsData\OrderBy([
        'fieldName' => 'activeUsers',
        'desc' => true
    ])
]);
// 设置返回结果数量上限
$request->setLimit(10);
// 页面路径正则过滤(匹配YYYY/MM/DD格式开头的路径)
$request->setDimensionFilter(
    new Google\Service\AnalyticsData\FilterExpression([
        'filter' => new Google\Service\AnalyticsData\Filter([
            'fieldName' => 'pagePath',
            'stringFilter' => new Google\Service\AnalyticsData\StringFilter([
                'matchType' => 'REGEXP',
                'value' => '^/\\d{4}/\\d{2}/\\d{2}.+'
            ])
        ])
    ])
);

// 发送请求并获取结果
try {
    $response = $ga4->properties->runReport($propertyId, $request);
    
    // 处理返回结果(示例遍历数据)
    foreach ($response->getRows() as $row) {
        $pagePath = $row->getDimensionValues()[0]->getValue();
        $pageTitle = $row->getDimensionValues()[1]->getValue();
        $activeUsers = $row->getMetricValues()[0]->getValue();
        echo "路径: {$pagePath}, 标题: {$pageTitle}, 活跃用户: {$activeUsers}\n";
    }
} catch (Exception $e) {
    echo "请求失败: " . $e->getMessage();
}
?>

关键差异说明

  • API服务类:从Google_Service_Analytics改为Google_Service_AnalyticsData
  • 资源标识:UA的ga:xxxxxxxxxxx替换为GA4的properties/你的属性ID
  • 维度指标命名:去掉rt:前缀,如rt:activeUsers→activeUsers,rt:pagePath→pagePath
  • 过滤语法:UA的filters参数改为GA4的dimensionFilter,使用结构化过滤表达式而非字符串
  • 排序逻辑:UA的sort参数改为orderBys数组,明确指定排序字段和方向

注意事项

  • 确保服务账号已被添加到GA4属性的查看者或分析师权限中
  • 验证正则表达式的转义处理(GA4正则匹配需正确转义特殊字符)
  • 若遇权限错误,检查服务账号邮箱是否已在GA4属性的用户管理中添加

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 18:54:56