agusrisan / laravel-analytics
一个用于获取 Google Analytics 数据的 Laravel 包。
Requires
- php: ^8.0
- google/apiclient: ^2.7
- laravel/framework: ^9.0
- nesbot/carbon: ^2.0
- spatie/laravel-package-tools: ^1.9
- symfony/cache: ^6.0
Requires (Dev)
- league/flysystem: ^2.0|^3.0
- mockery/mockery: ^1.4
- orchestra/testbench: ^7.0
- phpunit/phpunit: ^9.4
- dev-main
- 4.1.0
- 4.0.2
- 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
This package is auto-updated.
Last update: 2024-09-29 05:49:15 UTC
README
从 Google Analytics 获取数据
使用本包可以轻松获取 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
对象。
支持我们
我们投入了大量资源来创建一流的开放式源代码包。您可以通过购买我们的付费产品之一来支持我们。
我们非常感谢您从家乡寄来明信片,说明您正在使用我们的哪个包。您可以在我们的联系页面找到我们的地址。我们在我们的虚拟明信片墙上发布所有收到的明信片。
安装
此包可以通过 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
。您可以在分析网站上获取正确的值。在属性的“管理”部分转到“视图设置”。
您需要显示那里的视图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联系,而不是使用问题跟踪器。
鸣谢
特别感谢Caneco为标志✨
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。