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
相关产品推荐
相关产品推荐

