首页 > 解决方案 > Laravel : 有 Laravel 分析的国家

问题描述

我正在使用Laravel Analytics来获取我的应用程序访问者的数据。在我的Google Analytics(分析)仪表板中,每个页面都有自己的访问次数、唯一身份访问者、访问者国家/地区等 .. 如下图所示:

在此处输入图像描述

在我的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,pageTitlepageViews如何在返回的数组中添加其他信息,例如国家或地理定位,如第一张图片所示?

标签: laravelgoogle-analytics

解决方案


我从来没有使用过这个包,但是阅读文档,这样的事情就可以了。包文档声明您可以使用任何您想要的查询,
Google Analytics 文档提供了按位置获取会话的示例。

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,但最终取决于您要使用哪些查询。
我已经链接了文档,因此您可以自己找到它们。


推荐阅读