iammolinadev / lumen-analytics
一个用于获取 Google Analytics 数据的 Laravel 扩展包。
Requires
- php: ^7.3|^8.0
- google/apiclient: ^2.0|^2.7
- illuminate/contracts: ^7.0|^8.0|^9.0
- illuminate/support: ^5.0|^6.0|^7.0|^8.0|^9.0
- nesbot/carbon: ^2.0
- spatie/laravel-package-tools: ^1.6
- symfony/cache: ^4.3|^5.0|^6.0
Requires (Dev)
- league/flysystem: >=1.0.8
- mockery/mockery: ^1.4.2
- orchestra/testbench: ^5.0|^6.0
- phpunit/phpunit: ^8.0|^9.0
- dev-master
- 5.0.6
- 5.0.5
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.0.1
- 4.0.0
- 3.11.0
- 3.10.2
- 3.10.1
- 3.10.0
- 3.9.0
- 3.8.1
- 3.8.0
- 3.7.0
- 3.6.x-dev
- 3.6.3
- 3.6.2
- 3.6.1
- 3.6.0
- 3.5.0
- 3.4.1
- 3.4.0
- 3.3.0
- 3.2.0
- 3.1.0
- v3.0.x-dev
- 3.0.1
- 3.0.0
- v2.x-dev
- 2.4.0
- 2.3.1
- 2.3.0
- 2.2.2
- 2.2.0
- 2.1.0
- 2.0.0
- 1.4.1
- 1.4.0
- 1.3.1
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.0.1
This package is auto-updated.
Last update: 2024-09-13 19:14:18 UTC
README
从 Google Analytics 获取数据
使用此扩展包可以轻松地从 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 网站,然后在页眉中点击 "选择项目"。
接下来,我们必须指定项目可能使用的 API。在可用的 API 列表中点击 "Google Analytics API"。在下一屏幕上点击 "启用"。
现在,您已经创建了一个可以访问 Analytics API 的项目,是时候下载一个包含这些凭证的文件了。点击侧边栏中的 "凭证"。您想要创建一个 "服务账户密钥"。
在下一屏幕上,您可以给服务账户命名。您可以取任何您想要的名称。在服务账户 ID 中,您将看到一个电子邮件地址。我们将在本指南的后面使用此电子邮件地址。选择 "JSON" 作为密钥类型,然后点击 "创建" 下载 JSON 文件。
将 JSON 保存到您的 Laravel 项目中,位置位于此扩展包配置文件中 service_account_credentials_json
键指定的位置。由于 JSON 文件可能包含敏感信息,我不建议将其提交到您的 git 仓库。
授予您的 Analytics 属性权限
我假设您已经在 Analytics 网站 上创建了一个 Analytics 账户。转到属性管理部分的 "用户管理"。
在此屏幕上,您可以授予之前步骤中下载的 JSON 文件中找到的 client_email
键中的电子邮件地址访问权限。只读访问就足够了。
获取视图 ID
您需要做的最后一件事情是在配置文件中填写 view_id
。您可以在 Analytics 网站上 获取正确的值。请转到属性的“管理部分”中的“视图设置”。
您需要的是那里显示的 View ID
。
用法
安装完成后,您可以轻松地检索 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
,其中每个项目都是一个包含 date
、visitors
和 pageViews
键的数组。
如果您想对要检索数据的时间段有更多控制,可以向时间段对象传递 startDate
和 endDate
。
$startDate = Carbon::now()->subYear(); $endDate = Carbon::now(); Period::create($startDate, $endDate);
提供的方法
访问者和页面浏览量
public function fetchVisitorsAndPageViews(Period $period): Collection
该函数返回一个 Collection
,其中每个项目都是一个包含 date
、visitors
、pageTitle
和 pageViews
键的数组。
总访问者和页面浏览量
public function fetchTotalVisitorsAndPageViews(Period $period): Collection
该函数返回一个 Collection
,其中每个项目都是一个包含 date
、visitors
和 pageViews
键的数组。
最常访问的页面
public function fetchMostVisitedPages(Period $period, int $maxResults = 20): Collection
该函数返回一个 Collection
,其中每个项目都是一个包含 url
、pageTitle
和 pageViews
键的数组。
主要来源
public function fetchTopReferrers(Period $period, int $maxResults = 20): Collection
该函数返回一个 Collection
,其中每个项目都是一个包含 url
和 pageViews
键的数组。
用户类型
public function fetchUserTypes(Period $period): Collection
该函数返回一个 Collection
,其中每个项目都是一个包含 type
和 sessions
键的数组。
主要浏览器
public function fetchTopBrowsers(Period $period, int $maxResults = 10): Collection
该函数返回一个 Collection
,其中每个项目都是一个包含 browser
和 sessions
键的数组。
所有其他 Google Analytics 查询
要执行 Google Analytics 资源上的所有其他查询,请使用 performQuery
。 Google 的核心报告 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)。请参阅 许可文件 了解更多信息。