benwilkins / laravel-analyst
Laravel 分析包
Requires
- google/apiclient: ^2.1
This package is auto-updated.
Last update: 2024-09-23 05:56:21 UTC
README
使用此包从一个或多个数据源检索您的应用程序的分析数据。当前,此包支持内部数据源和 Google Analytics。
安装
此包可以通过 Composer 安装。
composer require benwilkins/laravel-analyst
安装后,添加服务提供者
// config/app.php 'providers' => [ ... Benwilkins\Analyst\AnalystServiceProvider::class, ... ];
发布配置文件
php artisan vendor:publish --provider="Benwilkins\Analyst\AnalystServiceProvider"
此包还附带了一个门面,使调用类变得容易
// config/app.php 'aliases' => [ ... 'Analyst' => Benwilkins\Analyst\AnalystFacade::class, ... ];
以下配置文件将发布在 config/laravel-analyst.php
return [ /* * Path to the client secret json file. */ 'google_account_credentials_json' => storage_path('app/laravel-analyst/Google/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-analyst/'), /* * The directory where custom internal metrics are stored. */ 'custom_metric_location' => '/app/Metrics/', /* * Default data client */ 'default_client' => 'internal', ];
内部客户端
内部客户端可用于从您应用程序的数据库中拉取分析数据。默认情况下,客户端附带一个度量:NewUsersMetric
。
自定义度量
内部客户端的自定义度量可以通过创建一个度量类并将其添加到自定义度量目录来使用。默认情况下,该目录为 /app/Metrics/
,但可以从配置中更改。
要添加自定义度量
- 创建一个新的类,其命名空间为
Benwilkins\Analyst\Clients\Internal\Metrics
。该类应扩展 Metric 抽象类。 - 您的类必须实现
run
方法。此方法接受两个参数:$period
和$params
。Period 是 Period 类的实例,它定义了度量的日期范围。params 参数允许将自定义参数应用于度量,例如过滤器。
// app/Metrics/MyNewMetric.php namespace Benwilkins\Analyst\Clients\Inernal\Metrics; use Benwilkins\Analyst\Period; class MyNewMetric extends Metric { public function run(Period $period, $params = []) { // Code to run the metric } }
示例用法
要使用内部客户端,请遵循以下示例
use Benwilkins\Analyst\Period; $data = Analyst::metric('new users', Period::days(30));
Google Analytics 客户端
Google Analytics 客户端使用 Analytics Reporting API。您需要从 Google 开发者控制台获取 Google 服务帐户密钥。
- 在控制台中,按照步骤创建一个新的应用程序。
- 启用 Analytics Reporting API
- 点击“凭据”选项卡,按照步骤创建凭据。
- 选择服务帐户密钥作为凭据类型。
- 选择新的服务帐户并给它一个名称。选择 JSON 作为密钥类型。
- 下载 JSON 文件并将其保存在包配置文件中指定的位置。
最后,您需要授予对 Google Analytics 属性的权限
- 转到属性管理部分的“用户管理”。
- 使用在下载的 JSON 文件中找到的
client_email
键中的电子邮件地址。读取访问权限就足够了。
选项
Google Analytics 客户端为配置提供了一些选项
viewId
(必需):要从其中提取数据的 Google Analytics 视图的 ID。这可以在配置文件中设置为默认值。dimensions
:要添加到查询中的维度数组。alias
:用于度量名称的可选别名groupByDimensions
:此选项允许您按维度分组结果。传递一个数组,包含您希望从dimensions
选项中按索引分组的维度的索引。请参见下面的示例。
示例
此示例查询事件,接受 ga:eventCategory
、ga:eventAction
、ga:eventLabel
和 ga:date
维度。结果按 ga:eventCategory
和 ga:eventAction
的组合进行分组。
$metric = Analyst::metric( ['ga:totalEvents'], Period::days(14), Analyst::client('google'), [ 'viewId' => 'XXXXXX', // <- YOUR VIEW ID 'dimensions' => ['ga:eventCategory', 'ga:eventAction', 'ga:eventLabel', 'ga:date'], 'alias' => ['events'], 'groupByDimensions' => [0, 1] ]);
$metric
的值将是 AnalystDataCollection
的实例。
访问您的数据
Analyst 数据集合
两个客户端都返回一个 AnalystDataCollection
实例。此集合有一些访问器方法,使使用数据变得容易。
getTotal
:返回请求的指标的总数。getGroups
:返回一个包含AnalystDataGroup
对象的数组。getRaw
:返回原始格式的数据。
分析师数据组
AnalystDataGroup
类是对您的数据的分组。每个指标调用至少有一个组。一个组由两个主要属性组成:total
和points
。
getTotal
:返回该分组的总指标数。getPoints
:返回每个组的数据点,格式化为可以与Google Charts一起使用的形式。
路线图
- 为Google和内部客户端添加缓存
- 添加Artisan命令以创建新的内部指标
安全性
如果您发现任何与安全相关的问题,请使用GitHub上的问题跟踪器。
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。