如何通过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,提问作者Артем Русаков
相关产品推荐
相关产品推荐

