tiagosimoesdev / laravel-moloni
一个用于检索Google Analytics数据的Laravel包。
Requires
- php: ^7.2
- laravel/framework: ^7.0
This package is auto-updated.
Last update: 2024-09-12 02:30:38 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
对象。
支持我们
我们投入了大量资源来创建一流的开放源代码包。您可以通过购买我们的付费产品之一来支持我们。
我们非常感谢您从家乡寄给我们明信片,并说明您正在使用我们的哪个包。您可以在我们的联系页面找到我们的地址。我们将所有收到的明信片发布在我们的虚拟明信片墙上。
安装
对于Laravel 5.8,请使用此包的3.7.0版本!
此包可以通过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账户。转到属性的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
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全
如果您发现任何与安全相关的问题,请通过电子邮件freek@spatie.be联系,而不是使用问题跟踪器。
鸣谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅许可证文件。