无需Composer,如何用PHP访问GA4数据?
不使用Composer安装php-analytics-data库并实现GA4数据查询
一、手动安装库及依赖
- 下载php-analytics-data源码:去官方代码仓库下载最新稳定版的zip压缩包,解压后把
src目录下的所有文件放到你项目里的专属文件夹(比如google-analytics-data/) - 处理依赖:这个库依赖Google的几个核心库(
google/auth、google/common、google/protobuf等),同样去各自的官方仓库下载源码,把它们的src目录也放到项目中(比如google-auth/、google-common/),要保证每个库的命名空间和文件路径对应(比如Google\Auth类对应google-auth/src/Google/Auth/下的文件)
二、实现手动自动加载
没有Composer的自动加载器,自己写个简单的加载函数,放到项目入口文件里:
spl_autoload_register(function ($className) { // 把命名空间的反斜杠换成目录分隔符 $classFile = str_replace('\\', DIRECTORY_SEPARATOR, $className) . '.php'; // 这里填你存放所有Google库的路径,根据实际情况调整 $libraryPaths = [ __DIR__ . '/google-analytics-data/src', __DIR__ . '/google-auth/src', __DIR__ . '/google-common/src', __DIR__ . '/google-protobuf/src' ]; foreach ($libraryPaths as $path) { $fullPath = $path . DIRECTORY_SEPARATOR . $classFile; if (file_exists($fullPath)) { require_once $fullPath; return; } } });
三、GA4数据查询代码(对应Composer版本)
假设你原来用Composer的代码是这样:
use Google\Analytics\Data\V1beta\BetaAnalyticsDataClient; use Google\Analytics\Data\V1beta\DateRange; use Google\Analytics\Data\V1beta\Dimension; use Google\Analytics\Data\V1beta\Metric; $client = new BetaAnalyticsDataClient([ 'credentials' => 'path/to/service-account.json' ]); $response = $client->runReport([ 'property' => 'properties/GA4_PROPERTY_ID', 'dateRanges' => [new DateRange(['start_date' => '7daysAgo', 'end_date' => 'today'])], 'dimensions' => [new Dimension(['name' => 'pagePath'])], 'metrics' => [new Metric(['name' => 'screenPageViews'])] ]); foreach ($response->getRows() as $row) { echo $row->getDimensionValues()[0]->getValue() . ': ' . $row->getMetricValues()[0]->getValue() . PHP_EOL; }
手动安装后,代码逻辑完全一致,只要确保自动加载能找到所有类:
// 先引入你写的自动加载函数 require_once 'path/to/your/autoloader.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; // 初始化客户端,注意替换成你的服务账号凭证路径 $client = new BetaAnalyticsDataClient([ 'credentials' => __DIR__ . '/service-account.json' ]); // 执行报表查询,替换成你的GA4媒体资源ID $response = $client->runReport([ 'property' => 'properties/你的GA4资源ID', 'dateRanges' => [ new DateRange([ 'start_date' => '7daysAgo', 'end_date' => 'today' ]) ], 'dimensions' => [ new Dimension([ 'name' => 'pagePath' ]) ], 'metrics' => [ new Metric([ 'name' => 'screenPageViews' ]) ] ]); // 遍历输出结果 foreach ($response->getRows() as $row) { $pagePath = $row->getDimensionValues()[0]->getValue(); $views = $row->getMetricValues()[0]->getValue(); echo "页面:{$pagePath},浏览量:{$views}\n"; }
四、关键注意点
- 依赖版本要匹配:下载依赖库时,选和php-analytics-data版本兼容的,避免出现类方法不匹配的问题
- 服务账号权限:确保你的服务账号已经在GA4媒体资源里添加了“查看者”及以上权限,不然会报权限错误
- 路径检查:如果遇到类找不到的错误,先检查自动加载函数里的路径是否正确,以及依赖库的文件结构是否和命名空间对应
内容的提问来源于stack exchange,提问作者user2662680
相关产品推荐
相关产品推荐

