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

如何通过Google API获取电商数据?已使用PHP Google Analytics库

嘿,我刚好有过用这个PHP库获取Google Analytics电商数据的经验,给你一步步拆解下怎么做:

1. 先搞定基础配置

首先得确保你的Google Cloud项目和Analytics视图都配置到位:

  • 登录Google Cloud控制台,找到你的项目,启用Google Analytics Reporting API
  • 创建一个服务账号,下载JSON格式的密钥文件,把它放到PHP项目的安全目录下(别暴露到公网)
  • 登录Google Analytics后台,找到你要获取数据的视图,给刚才创建的服务账号添加查看者权限,这样它才能有权限读取数据
2. 初始化PHP客户端

如果还没安装库,用Composer快速安装:

composer require google/apiclient:^2.0

然后写初始化客户端的代码,把密钥路径、视图ID填对:

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

$client = new Google\Client();
$client->setApplicationName('你的项目名称');
$client->setAuthConfig('path/to/your/service-account-key.json');
$client->setScopes([Google\Service\AnalyticsReporting::ANALYTICS_READONLY]);

// 创建Analytics Reporting服务实例
$analytics = new Google\Service\AnalyticsReporting($client);
3. 构建电商数据查询

接下来构造请求,获取你需要的电商指标和维度。比如你想按日期+商品名称,获取交易数、商品收入,代码大概是这样:

// 设置日期范围,比如最近30天
$dateRange = new Google\Service\AnalyticsReporting\DateRange();
$dateRange->setStartDate('30daysAgo');
$dateRange->setEndDate('today');

// 定义需要的指标:交易数、商品收入
$transactions = new Google\Service\AnalyticsReporting\Metric();
$transactions->setExpression('ga:transactions');
$transactions->setAlias('Transactions');

$itemRevenue = new Google\Service\AnalyticsReporting\Metric();
$itemRevenue->setExpression('ga:itemRevenue');
$itemRevenue->setAlias('Item Revenue');

// 定义维度:日期、商品名称
$date = new Google\Service\AnalyticsReporting\Dimension();
$date->setName('ga:date');

$productName = new Google\Service\AnalyticsReporting\Dimension();
$productName->setName('ga:productName');

// 构建请求体
$request = new Google\Service\AnalyticsReporting\ReportRequest();
$request->setViewId('你的GA视图ID'); // 格式是ga:XXXXXX,在GA视图设置里找
$request->setDateRanges($dateRange);
$request->setMetrics([$transactions, $itemRevenue]);
$request->setDimensions([$date, $productName]);

// 批量发送请求(支持同时发多个查询)
$body = new Google\Service\AnalyticsReporting\GetReportsRequest();
$body->setReportRequests([$request]);

// 获取响应
$response = $analytics->reports->batchGet($body);
4. 解析返回的电商数据

拿到响应后,循环提取数据就行:

foreach ($response->getReports() as $report) {
    $header = $report->getColumnHeader();
    $dimensionHeaders = $header->getDimensions();
    $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries();
    
    foreach ($report->getData()->getRows() as $row) {
        $dimensions = $row->getDimensions();
        $metrics = $row->getMetrics();
        
        // 输出维度值(比如日期、商品名)
        foreach ($dimensionHeaders as $i => $header) {
            echo $header . ": " . $dimensions[$i] . "\n";
        }
        
        // 输出指标值(比如交易数、收入)
        foreach ($metrics as $metric) {
            $values = $metric->getValues();
            foreach ($metricHeaders as $i => $header) {
                echo $header->getName() . ": " . $values[$i] . "\n";
            }
        }
        echo "---\n";
    }
}
一些要注意的坑
  • 视图ID格式必须是ga:XXXXXX,别漏了前缀,在GA后台的「视图设置」里能找到
  • 确保你的GA视图已经开启了电商跟踪,不然根本没数据可查
  • 指标和维度的组合要符合GA规则,比如有些维度不能和特定指标搭配,不确定的话可以查官方文档确认
  • 如果遇到权限错误,先检查服务账号的权限有没有加对,密钥文件路径是否正确

内容的提问来源于stack exchange,提问作者Артем Русаков

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:30:36