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

无需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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 19:05:10