lemoonade / laravel-analytics
一个用于检索Google Analytics数据的Laravel 5包。
Requires
- php: ^7.0
- google/apiclient: ^2.0
- illuminate/contracts: ~5.4.0|~5.5.0|~5.6.0
- illuminate/support: ~5.4.0|~5.5.0|~5.6.0
- madewithlove/illuminate-psr-cache-bridge: ^1.0
- nesbot/carbon: ^1.21
Requires (Dev)
- league/flysystem: >=1.0.8
- mockery/mockery: ^1.0
- orchestra/testbench: ~3.4.6|~3.5.0|~3.6.0
- phpunit/phpunit: ^6.1|^7.0
This package is not auto-updated.
Last update: 2024-09-22 12:40:47 UTC
README
使用此包,您可以轻松地从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 对象。
Spatie 是一家位于比利时安特卫普的网络设计公司。您可以在我们的网站上找到我们所有开源项目的概述 这里。
如果您正在使用此包的v1版本,请参阅 较早版本的readme 以获取安装和使用指南。
安装
此包可以通过Composer安装。
composer require spatie/laravel-analytics
在Laravel 5.5及以上版本中,该包将自动注册服务提供程序。在Laravel 5.4中,您必须安装此服务提供程序。
// config/app.php 'providers' => [ ... Spatie\Analytics\AnalyticsServiceProvider::class, ... ];
在Laravel 5.5及以上版本中,该包将自动注册外观。在Laravel 5.4中,您必须手动安装外观。
// config/app.php 'aliases' => [ ... 'Analytics' => Spatie\Analytics\AnalyticsFacade::class, ... ];
可选地,您可以使用以下命令发布此包的配置文件
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文件中找到的电子邮件地址授予访问权限。只读访问权限就足够了。
获取视图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
变更日志
有关最近更改的更多信息,请参阅 变更日志。
贡献
有关详细信息,请参阅 贡献。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 freek@spatie.be 联系我们,而不是使用问题跟踪器。
明信片软件
您可以使用此软件包,但如果它进入您的生产环境,我们非常感谢您从您的家乡给我们寄一张明信片,说明您正在使用我们的哪个软件包。
我们的地址是:Spatie,Samberstraat 69D,2060 安特卫普,比利时。
我们在我们的公司网站上发布所有收到的明信片 在这里。
鸣谢
支持我们
Spatie 是一家位于比利时安特卫普的网页设计公司。您可以在我们的网站上找到我们所有开源项目的概述 这里。
您的业务是否依赖于我们的贡献?请联系我们并在 Patreon 上支持我们。所有承诺都将专门用于分配人力以维护和新奇事物。
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。