arkaitzgarro / laravel-analytics
一个用于检索Google Analytics数据的Laravel包。
Requires
- php: ^8.0
- google/apiclient: ^2.12.6
- laravel/framework: ^9.41|^10.0|^11.0
- nesbot/carbon: ^2.63
- spatie/laravel-package-tools: ^1.13.7
- symfony/cache: ^6.0
Requires (Dev)
- league/flysystem: ^2.0|^3.0
- mockery/mockery: ^1.5|^1.4.4
- orchestra/testbench: ^7.0|^8.0
- pestphp/pest: ^1.22.2|^1.22
- phpunit/phpunit: ^9.5
- dev-main
- 4.3.0
- 4.2.3
- 4.2.2
- 4.2.1
- 4.2.0
- 4.1.1
- 4.1.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
- dev-chore/laravel-11-compat
- dev-analytics-api-v4
This package is auto-updated.
Last update: 2024-07-22 08:07:12 UTC
README
从Google Analytics检索数据
使用此包可以轻松从Google Analytics检索数据。
以下是提供的一些方法示例
use Analytics; use AG\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 Library
列表中点击“Google Analytics API”。在下一屏幕上点击“启用”。
现在,您已经创建了一个可以访问Analytics API的项目,是时候下载包含这些凭据的文件了。点击侧边栏中的“凭据”。您将想要创建一个“服务帐户密钥”。
在下一屏幕上,您可以给服务帐户起一个名字。您可以起任何名字。在服务帐户id中,您会看到一个电子邮件地址。我们将在本指南的后面使用这个电子邮件地址。
选择“JSON”作为密钥类型,然后点击“创建”以下载JSON文件。
将json保存到您的Laravel项目中,位置在包的配置文件中service_account_credentials_json
键指定的位置。由于json文件可能包含敏感信息,我不建议将其提交到您的git存储库。
授予您的Analytics属性权限
我假设您已经在Analytics网站上创建了一个Analytics账户。在设置属性时,点击“高级选项”并确保您已启用通用Analytics
。
转到属性的Admin部分的“用户管理”。
在此屏幕上,您可以为上一步中下载的json文件中的client_email
键中的电子邮件地址授予访问权限。分析师角色就足够了。
获取视图id
您最后要做的就是填写配置文件中的view_id
。您可以在Analytics网站上获取正确的值。转到属性的Admin部分的“视图设置”。
您需要显示在那里的View ID
。
使用
安装完成后,您可以轻松检索分析数据。几乎所有方法都将返回一个 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。
安全
如果您发现有关安全性的错误,请通过电子邮件发送到 security@spatie.be 而不是使用问题跟踪器。
鸣谢
特别感谢 Caneco 提供的标志 ✨
许可协议
MIT 许可协议(MIT)。有关更多信息,请参阅 许可文件。