我使用Laravel分析获取应用程序访问者的数据。在我的Google分析仪表板上,每一页都有自己的访问量、独特的访问者、访问者的国家等。就像在这张图片里:

在我的web.php中,我正在创建一个测试包的路由:
Route::get('/data', function () {
$analyticsData = Analytics::fetchMostVisitedPages(Period::days(7));
dd($analyticsData);
});这条路线返回:
Illuminate\Support\Collection {#1564 ▼
#items: array:3 [▼
0 => array:3 [▼
"url" => "/new"
"pageTitle" => "test"
"pageViews" => 1534
]
1 => array:3 [▼
"url" => "/"
"pageTitle" => "test"
"pageViews" => 450
]
2 => array:3 [▼
"url" => "/customize/8"
"pageTitle" => "test"
"pageViews" => 196
]如您所见,返回的数组只有url、pageTitle和pageViews。如何在返回的数组中添加其他信息,如第一张图像所示的国家或地理位置?
发布于 2021-05-14 12:40:18
我从来没有用过这个包,但是读一下文档,这样的东西就行了。
您可以使用任意查询的包装文档状态,谷歌分析文档给出了一个按位置获取会话的示例。
public function myCustomMethod($maxResults = 20)
{
$response = $this->performQuery(
$period,
'ga:sessions', // metrics
[
'dimensions' => 'ga:country',
'sort' => '-ga:sessions',
'max-results' => $maxResults,
],
);
return collect($response['rows'] ?? [])->map(fn (array $pageRow) => [
// Do something with the rows that are returned.
// I'm not sure how they're returned from the main response.
]);
}注意,这是完全未经测试的,您可能需要在这里篡改一些数据。
假设我理解文档,这将得到所有国家(dimensions),它将使用会话(来自第二个参数的ga:sessions)来度量国家数据。
然后对结果进行排序并得到最大数量的结果。
您可以将度量标准更改为ga:pageviews,但最终取决于您要使用什么查询。
我已经把文件联系起来了,这样你就可以自己找出来了。
发布于 2021-05-14 12:21:54
您使用的是spatie/laravel-analytics包。正如您在这里看到的:空间laravel分析- Analytics.php --您正在调用的fetchMostVisitedPages方法--只返回该数据。
请在github中查看有关此包的更多信息。
fetchMostVisitedPages方法:
public function fetchMostVisitedPages(Period $period, int $maxResults = 20): Collection
{
$response = $this->performQuery(
$period,
'ga:pageviews',
[
'dimensions' => 'ga:pagePath,ga:pageTitle',
'sort' => '-ga:pageviews',
'max-results' => $maxResults,
],
);
return collect($response['rows'] ?? [])->map(fn (array $pageRow) => [
'url' => $pageRow[0],
'pageTitle' => $pageRow[1],
'pageViews' => (int) $pageRow[2],
]);
}https://stackoverflow.com/questions/67534215
复制相似问题