panakour / analytics
从 Google Analytics 获取您所需的数据。
Requires
- php: ^7.1
- google/apiclient: ^2.1
- illuminate/support: ~5.5.0|~5.6.0|~5.7.0|~5.8.0
README
使用 Laravel PHP 框架轻松获取 Google Analytics API V4 中的任何数据。
此包帮助 PHP 开发者以方便的方式使用 Google Analytics API V4。代码清晰,并遵循良好的面向对象编程实践。任何改进此包的帮助都将受到赞赏。
该包与 Laravel 框架兼容。
安装
通过 composer 安装包
composer require panakour/analytics
要在 Laravel 中使用它,请将 GoogleAnalyticsServiceProvider 添加到 config/app.php
'providers' => [ ... Panakour\Analytics\GoogleAnalyticsServiceProvider::class ]
如果想要使用包的 facade,请将其添加到 config/app.php
'aliases' => [ ... 'Analytics' => Panakour\Analytics\Facades\Analytics::class ]
使用以下命令复制 analytics 配置文件
php artisan vendor:publish --provider="Panakour\Analytics\GoogleAnalyticsServiceProvider"
如果您有 Google Analytics API 的凭据,请继续此处,否则请参阅 如何使用 Google Analytics API 创建凭据。
请确保在 storage\app\google-analytics\
中有 service-account-credentials.json
文件。
将视图 ID 添加到 .env
文件
GOOGLE_ANALYTICS_VIEW_ID=324235464
用法
您可以使用 facade 简单地获取分析数据
Panakour\Analytics\Facades\Analytics
要获取上周的所有会话
Analytics::get();
要获取特定日期范围内的所有会话
Analytics::setDateRange('2016-10-01', '2016-11-25'); Analytics::get();
要获取您所需的数据
Analytics::setDateRange('2016-10-01', '2016-11-25'); Analytics::setMaxResults(20); Analytics::setMetrics(['ga:entrances', 'ga:pageviews', 'ga:bounceRate']); Analytics::setDimension(['ga:pagePath', 'ga:pageTitle']); Analytics::setDimensionFilter('ga:pagePath', 'REGEXP', '/i-want-to-get-all-data-that-has-this-page-path'); Analytics::setOrder('ga:pageviews', 'VALUE', 'DESCENDING'); return Analytics::get();
setMetrics
和 setDimension
方法接受一个包含所需指标和维度的数组。可用的 指标和维度
setDimensionFilter
接受 3 个参数。第一个参数获取您想要过滤分析数据的维度名称。第二个参数获取您想要的 运算符(REGEXP、BEGINS_WITH、ENDS_WITH 等)。第三个参数获取表达式。例如,如果您想获取包含 play
或 simple
词汇的所有分析数据,可以使用: Analytics::setDimensionFilter('ga:pagePath', 'REGEXP', '(\/play\/|\/simple\/)');
如果您想在单个请求中获取多个页面的分析数据(通过其精确路径),可以使用 'IN_LIST' 运算符并将路径数组作为第三个参数传递。例如:Analytics::setDimensionFilter('ga:pagePath', 'IN_LIST', ['/i-want-data-for-this-path', '/and/this-path-too']);
setOrder
方法接受 3 个参数。第一个参数获取您想要排序的数据名称。第二个获取 OrderType,通常是 VALUE
。第三个获取 SortOrder,通常是 ASCENDING
或 DESCENDING
。
使用 Analytics 接口获取数据
Panakour\Analytics\Contracts\Analytics
您可以使用 Analytics 接口获取分析数据,而不是使用 facade
use Panakour\Analytics\Contracts\Analytics; class GoogleAnalyticsController { //inject analytics interface public function get(Analytics $analytics) { $analytics->setDateRange('2016-12-01', '2016-12-20'); $analytics->setMaxResults(11); $analytics->setMetrics(['ga:pageviews', 'ga:uniquePageviews', 'ga:avgTimeOnPage', 'ga:entrances', 'ga:bounceRate']); $analytics->setDimension(['ga:pagePath', 'ga:pageTitle']); $analytics->setDimensionFilter('ga:pagePath', 'REGEXP', '(\/this-value-in-path\/|\/or-this-value-in-path\/)'); $analytics->setOrder('ga:pageviews', 'VALUE', 'DESCENDING'); return $analytics->get(); } }
使用 Google Analytics API V4 创建凭据
Google Analytics API V4 指南: https://developers.google.com/analytics/devguides/reporting/core/v4/quickstart/service-php
- 使用 Google API Console 创建项目
- 打开服务账户页面。如有提示,选择您已创建的项目并点击打开。
- 点击
创建服务账户
。 - 在创建服务账户窗口中,为服务账户输入名称,并选择“提供新的私有密钥”。在密钥类型中选择“JSON”,然后点击创建。如果您想授予G Suite域范围权限给服务账户,也请选择“启用G Suite域范围委托”。
- 复制您创建的服务账户ID,然后前往Google分析管理面板,选择
用户管理
,并添加您复制的账户,并赋予您想要的权限。 - 您的新公钥/私钥对已生成并下载到您的计算机上;这是此密钥的唯一副本。您负责安全存储。
- 将
json
文件重命名为service-account-credentials.json
。 - 要获取
视图ID
,您可以使用账户探索器,或从管理面板的Google分析视图设置
中获取。