如何使用spatie/laravel-analytics实现GA V4 User Activity请求查询
spatie/laravel-analytics 提供的performQuery方法仅适用于普通核心报表查询,你要实现的Google Analytics用户活动查询属于独立接口,需要调用扩展库封装的底层谷歌官方客户端实现。
另外你之前的performQuery写法参数位置错误,该方法第二个参数本身就是metrics指标参数,不需要再在第三个配置项中重复传入metrics字段。
正确实现方案
1. 普通指标报表查询(对应你之前写的performQuery场景)
$result = Analytics::performQuery( \Spatie\Analytics\Period::days(8), 'ga:users,ga:sessions', // 直接传要查询的指标列表,多个用英文逗号分隔 [ 'dimensions' => 'ga:date', // 可选,维度参数按需添加 'sort' => '-ga:date' // 可选,其他过滤、排序参数也放在该数组中 ] );
2. 用户活动查询实现
首先引入必要的依赖类:
use Spatie\Analytics\Facades\Analytics; use Google\Service\AnalyticsReporting; use Google\Service\AnalyticsReporting\DateRange; use Google\Service\AnalyticsReporting\User; use Google\Service\AnalyticsReporting\UserActivityQuery; use Google\Service\AnalyticsReporting\SearchUserActivityRequest;
实际调用代码:
// 获取底层谷歌官方客户端实例 $client = Analytics::getClient(); $analyticsReporting = new AnalyticsReporting($client); // 配置查询日期范围 $dateRange = new DateRange(); $dateRange->setStartDate('8daysAgo'); $dateRange->setEndDate('today'); // 配置目标用户信息 $user = new User(); $user->setType('CLIENT_ID'); // 若按userId查询,此处改为USER_ID即可 $user->setUserId('你要查询的用户对应clientId或userId值'); // 配置用户活动查询参数 $userActivityQuery = new UserActivityQuery(); $userActivityQuery->setViewId('替换为你自己的GA视图ID'); $userActivityQuery->setUser($user); $userActivityQuery->setDateRanges([$dateRange]); $userActivityQuery->setPageSize(1000); // 按需调整返回的活动条目最大数量 // 组装查询请求 $request = new SearchUserActivityRequest(); $request->setViewId('替换为你自己的GA视图ID'); $request->setUserActivityQuery($userActivityQuery); // 发起请求获取返回结果 $response = $analyticsReporting->userActivity->search($request);
返回结果中包含用户的会话列表、页面浏览记录、交互事件明细等所有用户行为数据,可根据业务需求自行解析使用。
内容的提问来源于stack exchange,提问作者OvnIvn
相关产品推荐
相关产品推荐

