iammolinadev/lumen-analytics

一个用于获取 Google Analytics 数据的 Laravel 扩展包。

5.0.6 2022-04-13 13:43 UTC

README

Social Card of Laravel Analytics

从 Google Analytics 获取数据

Latest Version MIT Licensed Test Status Check & fix styling Total Downloads

使用此扩展包可以轻松地从 Google Analytics 获取数据。

以下是一些提供方法的示例

use Analytics;
use Spatie\Analytics\Period;

//fetch the most visited pages for today and the past week
Analytics::fetchMostVisitedPages(Period::days(7));

//fetch visitors and page views for the past week
Analytics::fetchVisitorsAndPageViews(Period::days(7));

大多数方法将返回一个包含结果的 \Illuminate\Support\Collection 对象。

支持我们

我们在创建最佳级别的开源扩展包上投入了大量资源。您可以通过 购买我们的付费产品之一 来支持我们。

我们非常感谢您从家乡寄来明信片,提及您正在使用我们的哪个扩展包。您可以在 我们的联系页面 上找到我们的地址。我们将在 我们的虚拟明信片墙上 发布收到的所有明信片。

安装

此扩展包可以通过 Composer 安装。

composer require spatie/laravel-analytics

可选地,您可以使用以下命令发布此扩展包的配置文件

php artisan vendor:publish --provider="Spatie\Analytics\AnalyticsServiceProvider"

以下配置文件将发布到 config/analytics.php

return [

    /*
     * The view id of which you want to display data.
     */
    'view_id' => env('ANALYTICS_VIEW_ID'),

    /*
     * Path to the client secret json file. Take a look at the README of this package
     * to learn how to get this file. You can also pass the credentials as an array
     * instead of a file path.
     */
    'service_account_credentials_json' => storage_path('app/analytics/service-account-credentials.json'),

    /*
     * The amount of minutes the Google API responses will be cached.
     * If you set this to zero, the responses won't be cached at all.
     */
    'cache_lifetime_in_minutes' => 60 * 24,

    /*
     * Here you may configure the "store" that the underlying Google_Client will
     * use to store it's data.  You may also add extra parameters that will
     * be passed on setCacheConfig (see docs for google-api-php-client).
     *
     * Optional parameters: "lifetime", "prefix"
     */
    'cache' => [
        'store' => 'file',
    ],
];

如何获取与 Google Analytics 通信的凭证

获取凭证

您需要做的第一件事是获取一些用于使用 Google API 的凭证。我假设您已经创建了一个 Google 账户并已登录。前往 Google API 网站,然后在页眉中点击 "选择项目"。

1

接下来,我们必须指定项目可能使用的 API。在可用的 API 列表中点击 "Google Analytics API"。在下一屏幕上点击 "启用"。

2

现在,您已经创建了一个可以访问 Analytics API 的项目,是时候下载一个包含这些凭证的文件了。点击侧边栏中的 "凭证"。您想要创建一个 "服务账户密钥"。

3

在下一屏幕上,您可以给服务账户命名。您可以取任何您想要的名称。在服务账户 ID 中,您将看到一个电子邮件地址。我们将在本指南的后面使用此电子邮件地址。选择 "JSON" 作为密钥类型,然后点击 "创建" 下载 JSON 文件。

4

将 JSON 保存到您的 Laravel 项目中,位置位于此扩展包配置文件中 service_account_credentials_json 键指定的位置。由于 JSON 文件可能包含敏感信息,我不建议将其提交到您的 git 仓库。

授予您的 Analytics 属性权限

我假设您已经在 Analytics 网站 上创建了一个 Analytics 账户。转到属性管理部分的 "用户管理"。

5

在此屏幕上,您可以授予之前步骤中下载的 JSON 文件中找到的 client_email 键中的电子邮件地址访问权限。只读访问就足够了。

6

获取视图 ID

您需要做的最后一件事情是在配置文件中填写 view_id。您可以在 Analytics 网站上 获取正确的值。请转到属性的“管理部分”中的“视图设置”。

7

您需要的是那里显示的 View ID

8

用法

安装完成后,您可以轻松地检索 Analytics 数据。几乎所有方法都会返回一个 Illuminate\Support\Collection 实例。

以下是一些使用时间段的示例

//retrieve visitors and pageview data for the current day and the last seven days
$analyticsData = Analytics::fetchVisitorsAndPageViews(Period::days(7));

//retrieve visitors and pageviews since the 6 months ago
$analyticsData = Analytics::fetchVisitorsAndPageViews(Period::months(6));

//retrieve sessions and pageviews with yearMonth dimension since 1 year ago
$analyticsData = Analytics::performQuery(
    Period::years(1),
    'ga:sessions',
    [
        'metrics' => 'ga:sessions, ga:pageviews',
        'dimensions' => 'ga:yearMonth'
    ]
);

$analyticsData 是一个 Collection,其中每个项目都是一个包含 datevisitorspageViews 键的数组。

如果您想对要检索数据的时间段有更多控制,可以向时间段对象传递 startDateendDate

$startDate = Carbon::now()->subYear();
$endDate = Carbon::now();

Period::create($startDate, $endDate);

提供的方法

访问者和页面浏览量

public function fetchVisitorsAndPageViews(Period $period): Collection

该函数返回一个 Collection,其中每个项目都是一个包含 datevisitorspageTitlepageViews 键的数组。

总访问者和页面浏览量

public function fetchTotalVisitorsAndPageViews(Period $period): Collection

该函数返回一个 Collection,其中每个项目都是一个包含 datevisitorspageViews 键的数组。

最常访问的页面

public function fetchMostVisitedPages(Period $period, int $maxResults = 20): Collection

该函数返回一个 Collection,其中每个项目都是一个包含 urlpageTitlepageViews 键的数组。

主要来源

public function fetchTopReferrers(Period $period, int $maxResults = 20): Collection

该函数返回一个 Collection,其中每个项目都是一个包含 urlpageViews 键的数组。

用户类型

public function fetchUserTypes(Period $period): Collection

该函数返回一个 Collection,其中每个项目都是一个包含 typesessions 键的数组。

主要浏览器

public function fetchTopBrowsers(Period $period, int $maxResults = 10): Collection

该函数返回一个 Collection,其中每个项目都是一个包含 browsersessions 键的数组。

所有其他 Google Analytics 查询

要执行 Google Analytics 资源上的所有其他查询,请使用 performQueryGoogle 的核心报告 API 提供有关可能使用的指标和维度的更多信息。

public function performQuery(Period $period, string $metrics, array $others = [])

您可以访问底层的 Google_Service_Analytics 对象

Analytics::getAnalyticsService();

测试

使用以下命令运行测试

vendor/bin/phpunit

变更日志

请参阅 CHANGELOG 了解最近更改的更多信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件 freek@spatie.be 联系,而不是使用问题跟踪器。

鸣谢

特别感谢 Caneco 为标志所做的贡献 ✨

许可

MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。