Laravel:拥有 Laravel 分析的国家/地区
Laravel : Countries with Laravel Analytics
我正在使用 Laravel Analytics 获取我的应用程序访问者的数据。
在我的 Google Analytics 仪表板中,每个页面都有自己的访问次数、唯一身份访问者、访问者所在的国家/地区等。就像这张图片中的那样:
在我的 web.php
中,我正在创建一个路径来测试包:
Route::get('/data', function () {
$analyticsData = Analytics::fetchMostVisitedPages(Period::days(7));
dd($analyticsData);
});
这条路线 returns :
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
。 如何在返回的数组中添加其他信息,例如第一张图片中显示的国家或地理定位?
您正在使用 spatie/laravel-analytics 包。
正如您在此处看到的:spatie laravel analytics - Analytics.php 您仅调用的 fetchMostVisitedPages 方法 returns 该数据。
请查看 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],
]);
}
我从来没有使用过这个包,但是阅读文档,像这样就可以了。
package docs state you can use any query you want, and the Google Analytics docs 给出了一个按位置获取会话的示例。
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.
]);
}
请注意,这完全未经测试,您可能需要 fiddle 使用此处的一些数据。
假设我理解文档,这将获取所有国家(dimensions
),它将使用会话(ga:sessions
来自第二个参数)来衡量国家数据。
然后它会进行排序并获得最大数量的结果。
您可以将指标更改为 ga:pageviews
,但最终取决于您要使用的查询。
我已经链接了文档,所以你可以自己找到它们。
我正在使用 Laravel Analytics 获取我的应用程序访问者的数据。 在我的 Google Analytics 仪表板中,每个页面都有自己的访问次数、唯一身份访问者、访问者所在的国家/地区等。就像这张图片中的那样:
在我的 web.php
中,我正在创建一个路径来测试包:
Route::get('/data', function () {
$analyticsData = Analytics::fetchMostVisitedPages(Period::days(7));
dd($analyticsData);
});
这条路线 returns :
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
。 如何在返回的数组中添加其他信息,例如第一张图片中显示的国家或地理定位?
您正在使用 spatie/laravel-analytics 包。 正如您在此处看到的:spatie laravel analytics - Analytics.php 您仅调用的 fetchMostVisitedPages 方法 returns 该数据。
请查看 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],
]);
}
我从来没有使用过这个包,但是阅读文档,像这样就可以了。
package docs state you can use any query you want, and the Google Analytics docs 给出了一个按位置获取会话的示例。
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.
]);
}
请注意,这完全未经测试,您可能需要 fiddle 使用此处的一些数据。
假设我理解文档,这将获取所有国家(dimensions
),它将使用会话(ga:sessions
来自第二个参数)来衡量国家数据。
然后它会进行排序并获得最大数量的结果。
您可以将指标更改为 ga:pageviews
,但最终取决于您要使用的查询。
我已经链接了文档,所以你可以自己找到它们。