developeruz / laravel-analytics
Laravel 5 包,用于检索 Google Analytics 数据。(PHP v5.4)
Requires
- php: ^5.4 || ^7.0
- google/apiclient: ^1.1
- illuminate/contracts: ~5.1.0|~5.2.0|~5.3.0
- illuminate/support: ~5.1.0|~5.2.0|~5.3.0
- nesbot/carbon: ^1.21
Requires (Dev)
- mockery/mockery: ^0.9.5
- orchestra/database: 3.3.x@dev
- orchestra/testbench: 3.3.x@dev
- phpunit/phpunit: ^4.0
README
使用此包,您可以轻松地从 Google Analytics 获取数据。
以下是提供的几个方法示例
use developeruz\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 developeruz/laravel-analytics
您必须安装此服务提供者。
// config/app.php 'providers' => [ ... developeruz\Analytics\AnalyticsServiceProvider::class, ... ];
此包还附带一个门面,它提供了一种轻松调用类的方法。
// config/app.php 'aliases' => [ ... 'Analytics' => developeruz\Analytics\AnalyticsFacade::class, ... ];
您可以使用此命令发布此包的配置文件
php artisan vendor:publish --provider="developeruz\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 账户。转到属性的“管理”部分中的“用户管理”。
在此屏幕上,您可以授予访问之前步骤中下载的 json 文件中找到的 client_email 键中的电子邮件地址的权限。只读访问就足够了。
获取视图 id
最后,您需要在配置文件中填写 view_id。您可以在 Analytics 网站 上获取正确的值。转到属性的“管理”部分中的“视图设置”。
您将需要显示在那里的 View ID。
使用
安装完成后,您可以轻松地检索 Analytics 数据。几乎所有方法都将返回一个 Illuminate\Support\Collection-实例。
以下是一个检索当前天和过去七天访问者和页面浏览数据的示例。
$analyticsData = Analytics::fetchVisitorsAndPageViews(Period::days(7));
$analyticsData 是一个包含键 date、visitors 和 pageViews 的数组的 Collection。
如果您想更精确地控制要获取数据的日期范围,可以向日期对象传递一个 startDate 和一个 endDate。
$startDate = Carbon::now()->subYear(); $endDate = Carbon::now(); Period::create($startDate, $endDate);
提供的方法
访问者和页面浏览量
public function fetchVisitorsAndPageViews(Period $period): Collection
该函数返回一个集合,其中每个项都是一个包含键date、visitors、pageTitle和pageViews的数组。
总访问量和页面浏览量
public function fetchTotalVisitorsAndPageViews(Period $period): Collection
该函数返回一个集合,其中每个项都是一个包含键date、visitors和pageViews的数组。
最常访问的页面
public function fetchMostVisitedPages(Period $period, int $maxResults = 20): Collection
该函数返回一个集合,其中每个项都是一个包含键url、pageTitle和pageViews的数组。
顶级推荐来源
public function fetchTopReferrers(Period $period, int $maxResults = 20): Collection
该函数返回一个集合,其中每个项都是一个包含键url和pageViews的数组。
顶级浏览器
public function fetchTopBrowsers(Period $period, int $maxResults = 10): 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
贡献
有关详细信息,请参阅CONTRIBUTING
安全性
如果您发现任何与安全相关的问题,请通过电子邮件freek@spatie.be联系,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。