关键也/关键-ab

Laravel 的刀片 A/B 测试

1.1.2 2024-05-24 18:12 UTC

This package is auto-updated.

Last update: 2024-09-08 19:36:07 UTC


README

目前正在测试官方版本 - 4.4.2024

example workflow

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)。有关更多信息,请参阅 许可文件