关键也 / 关键-ab
Laravel 的刀片 A/B 测试
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.8
- illuminate/contracts: *
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.8
- pestphp/pest: ^2.33
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.2
- spatie/laravel-ray: ^1.26
README
目前正在测试官方版本 - 4.4.2024
Pivotal 的 Laravel A/B 测试包是一个帮助您在 Laravel Blade 模板上创建和管理 A/B 测试的包。它还提供了一种方式,可以本地生成和查看报告,或者通过集成到 Pivotal AB 服务中。
安装
您可以通过 Composer 安装此包
composer require pivotalso/pivotal-ab
在 config/app.php
中添加服务提供者
'providers' => ServiceProvider::defaultProviders()->merge([ ... pivotalso\PivotalAb\PivotalAbServiceProvider::class, ]),
如果您想将事件发送到 Pivotal AB,您必须配置库以监听保存事件。将以下内容添加到您的 EventServiceProvider
.... use pivotalso\PivotalAb\Events\Track; use pivotalso\PivotalAb\Listeners\TrackerLogger; class EventServiceProvider extends ServiceProvider { protected $listen = [ ..., Track::class => [ TrackerLogger::class, ], ];
同时,将 LARAVEL_AB_API_KEY
添加到您的 .env
文件中。您可以从 Pivotal AB 项目的设置页面获取您的 API 密钥。
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --tag="ab-migrations"
php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="ab-config" /// ab.php return [ 'cache_key' => 'laravel_ab_user', 'request_param'=> env('LARAVEL_AB_REQUEST_PARAM', 'abid'), /// listen for query string param to override instance id 'allow_param'=> env('LARAVEL_AB_ALLOW_PARAM', false), /// allows for the use of request param 'api_key' => env('LARAVEL_AB_API_KEY', ''), // the api key for pivotal intelligence ];
文档
您可以在以下地址找到此包的文档:https://docs.pivotal.so/docs/ab/laravel
用法
以下是一个嵌套 A/B 测试跟踪注册和免费试用目标用例的示例
welcome.blade.php
<html>
<head>
<title>My Website</title>
</head>
<body>
@ab('hero-text')
@condtion('my website')
<h1>My Website</h1>
@condition('welcome user')
<h1>Welcome, {{ $user->name }}</h1>
@ab('free offer for new users')
@condtion('free trial')
<button>Start your free trial</button>
@condition('get started')
<button>Get Started</button>
@track('free trial')
@track('sign up')
</body>
</html
您也可以轻松地在控制器中测试逻辑
class PagesController extends Controller { public function welcome() { $option = Ab::choice('kind of homepage', ['control', 'variant'])->track('go-to-ab'); if ($option === 'variant') { return view('variant-welcome'); } return view('welcome'); }
您可以在视图中跟踪目标或是在您的应用程序逻辑中。例如 register.blade.php
<html>
<head>
<title>My Website</title>
</head>
<body>
.... body
@goal('sign up')
</body>
</html
或例如 RegistrationController.php
public function store(Request $request)
{
.... store logic
PivotalAb::goal('sign up');
if($request->has('free_trial')) {
PivotalAb::goal('free trial');
}
}
报告
您可以通过运行以下命令本地查看报告
php artisan ab:report
输出示例
{ "hero-text": [ { "condition": "my website", "hits": 6, "goals": 3, "conversion": 50 }, { "condition": "welcome user", "hits": 12, "goals": 3, "conversion": 25 } ] }
如果您指定了报告 URL、用户名和密码,您也可以在浏览器中查看报告
LARAVEL_AB_REPORT_URL='/hidden/ab/reports'
LARAVEL_AB_REPORT_USERNAME='user123'
LARAVEL_AB_REPORT_PASSWORD='password123'
然后您可以通过访问 http://yourapp.com/hidden/ab/reports
来查看您的报告
测试
composer test
更新日志
有关最近更改的更多信息,请参阅 更新日志
贡献
有关详细信息,请参阅 贡献指南
安全漏洞
有关如何报告安全漏洞的详细信息,请参阅我们的 安全策略
致谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件