ahmedash95 / laravel-analytics
一个用于获取 Google Analytics 数据的 Laravel 5 包。
Requires
- php: >=5.6
- google/apiclient: ^1.1
- illuminate/contracts: ~5.3.0|~5.4.0
- illuminate/support: ~5.3.0|~5.4.0
- nesbot/carbon: ^1.21
Requires (Dev)
- mockery/mockery: ^0.9.5
- orchestra/testbench: 3.3.x@dev
- phpunit/phpunit: ^4.0
README
使用此包,您可以轻松地从 Google 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 是一家位于比利时安特卫普的网页设计公司。您可以在我们的网站上找到所有开源项目的概述 在这里。
Postcardware
您可以自由使用此包(它遵循 MIT 许可),但如果它进入您的生产环境,您需要从您家乡给我们寄一张明信片,说明您正在使用我们的哪些包。
我们的地址是:Spatie,Samberstraat 69D,2060 安特卫普,比利时。
我们网站上开源页面将发布最好的明信片。
安装
此包可以通过 Composer 安装。
composer require spatie/laravel-analytics
您必须安装此服务提供程序。
// config/app.php 'providers' => [ ... Spatie\Analytics\AnalyticsServiceProvider::class, ... ];
此包还包含一个外观,它提供了一种方便的方式来调用类。
// config/app.php 'aliases' => [ ... 'Analytics' => Spatie\Analytics\AnalyticsFacade::class, ... ];
您可以使用以下命令发布此包的配置文件
php artisan vendor:publish --provider="Spatie\Analytics\AnalyticsServiceProvider"
以下配置文件将发布在 config/laravel-analytics.php
中
return [ /* * The view id of which you want to display data. */ 'view_id' => env('ANALYTICS_VIEW_ID'), /* * Path to the json file with service account credentials. Take a look at the README of this package * to learn how to get this file. */ 'service_account_credentials_json' => storage_path('app/laravel-google-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, /* * The directory where the underlying Google_Client will store it's cache files. */ 'cache_location' => storage_path('app/laravel-google-analytics/google-cache/'), ];
如何获取与 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
。您可以在分析网站上获取正确的值。在属性的“管理”部分中转到“视图设置”。
您需要显示的 视图 ID
。
用法
安装完成后,您可以轻松地检索分析数据。几乎所有方法都会返回一个 Illuminate\Support\Collection
实例。
以下是一个示例,用于检索当前天和过去七天的访问者和页面浏览数据。
$analyticsData = Analytics::fetchVisitorsAndPageViews(Period::days(7));
$analyticsData
是一个 Collection
,其中每个项都是一个包含 date
、visitors
和 pageViews
键的数组。
如果您想对要获取数据的期间有更多控制,可以将 startDate
和 endDate
传递给期间对象。
$startDate = Carbon::now()->subYear(); $endDate = Carbon::now(); Period::create($startDate, $endDate);
提供的方法
访问者和页面浏览量
public function fetchVisitorsAndPageViews(Period $period): Collection
该函数返回一个包含 date
、visitors
、pageTitle
和 pageViews
键的数组的 Collection
。
总访问者和页面浏览量
public function fetchTotalVisitorsAndPageViews(Period $period): Collection
该函数返回一个包含 date
、visitors
和 pageViews
键的数组的 Collection
。
最常访问的页面
public function fetchMostVisitedPages(Period $period, int $maxResults = 20): Collection
该函数返回一个包含 url
、pageTitle
和 pageViews
键的数组的 Collection
。
顶级推荐者
public function fetchTopReferrers(Period $period, int $maxResults = 20): Collection
该函数返回一个包含 url
和 pageViews
键的数组的 Collection
。
顶级浏览器
public function fetchTopBrowsers(Period $period, int $maxResults = 10): Collection
该函数返回一个包含 browser
和 sessions
键的数组的 Collection
。
所有其他 Google Analytics 查询
要执行 Google Analytics 资源上的所有其他查询,请使用 performQuery
。有关可能使用的指标和维度的更多信息,请参阅Google 核心报告 API。
public function performQuery(Period $period, string $metrics, array $others = [])
您可以访问底层的 Google_Service_Analytics
对象
Analytics::getAnalyticsService();
测试
使用以下命令运行测试
vendor/bin/phpunit
贡献
有关详细信息,请参阅CONTRIBUTING。
安全
如果您发现任何安全问题,请通过电子邮件 freek@spatie.be 联系我们,而不是使用问题跟踪器。
致谢
关于 Spatie
Spatie 是一家位于比利时安特卫普的网页设计公司。您可以在我们的网站上找到所有开源项目的概述 在这里。
许可证
MIT 许可证(MIT)。有关更多信息,请参阅许可证文件。