eekay/abtest

Laravel A/B 测试包

1.0.2 2023-03-23 09:59 UTC

This package is auto-updated.

Last update: 2024-09-23 12:59:31 UTC


README

Latest Version Build Status Quality Score Code Coverage

此包可以帮助您找出哪些内容在您的网站上有效,哪些无效。

它允许您创建实验和目标。访客将随机收到下一个实验,您可以自定义您的站点以适应该实验。视图和目标转化将被跟踪,您可以在报告中查看结果。

安装

此包是ben182/laravel-ab的克隆。感谢ben182创建这个有用的A/B实验包!此包已更新以兼容Laravel 10。

您可以通过composer安装此包

composer require eekay/abtest

配置

安装后发布配置文件

php artisan vendor:publish --provider="EeKay\abtest\AbtestServiceProvider"

如果不起作用,您可能需要调用

$ php artisan vendor:publish

然后选择“Provider: EeKay\Abtest\AbtestServiceProvider”后面的数字。

您可以在其中定义您的实验和目标。

最后,运行新添加的迁移

php artisan migrate

应该添加两个新的迁移。

用法

实验

@if (Abtest::isExperiment('logo-big'))

<div class="logo-big"></div>

@elseif (Abtest::isExperiment('logo-grayscale'))

<div class="logo-greyscale"></div>

@elseif (Abtest::isExperiment('brand-name'))

<h1>Brand name</h1>

@endif

这是包最基本的使用方法。您不需要初始化任何东西。如果调用isExperiment,则包会为您处理所有事情。

或者,您可以使用自定义的blade if语句

@ab('logo-big')

<div class="logo-big"></div>

@elseab('logo-grayscale')

<div class="logo-greyscale"></div>

@elseab('brand-name')

<h1>Brand name</h1>

@endab

这将以完全相同的方式工作。

如果您不想进行任何持续的渲染,可以调用

Abtest::pageView()

直接触发一个带有随机实验的新页面视图。此函数也将从isExperiment中调用。

在底层,一个新的会话项将跟踪当前实验。会话将只获得一个实验并只触发一个页面视图。

您可以使用以下方法获取当前实验

// get the underlying model
Abtest::getExperiment()

// get the experiment name
Abtest::getExperiment()->name

// get the visitor count
Abtest::getExperiment()->visitors

或者,还有一个请求助手供您使用

public function index(Request $request) {
    // the same as 'Abtest::getExperiment()'
    $request->abExperiment()
}

目标

要完成一个目标,只需调用

Abtest::completeGoal('signup')

该函数将增加分配给活动实验的目标转化。如果会话中正在运行的活动实验没有活动实验,则会创建一个。您只能在每个会话中触发一次目标转化。这将通过另一个会话项来防止。函数返回底层的目标模型。

要获取当前会话中完成的所有目标

Abtest::getCompletedGoals()

爬虫和机器人

此包可以尝试忽略爬虫和机器人注册页面视图。只需在配置中启用ignore_crawlers选项即可。

报告

要获取页面视图、完成的目标和转化的报告,请调用报告命令

php artisan ab:report

这将打印出类似以下内容

+---------------+----------+-------------+
| Experiment    | Visitors | Goal signup |
+---------------+----------+-------------+
| big-logo      | 2        | 1 (50%)     |
| small-buttons | 1        | 0 (0%)      |
+---------------+----------+-------------+

重置

要重置所有访客和目标完成情况,请调用重置命令

php artisan ab:reset

事件

此外,您还可以挂钩到两个事件

  • ExperimentNewVisitor在将实验分配给新访客时触发一次。您可以获取实验作为事件的属性。
  • GoalCompleted在目标完成时触发一次。您可以获取目标作为事件的属性。

测试

composer test

更新日志

有关最近更改的更多信息,请参阅更新日志

贡献

有关详细信息,请参阅贡献

安全

如果您发现任何与安全相关的任何问题,请通过电子邮件moin@benjaminbortels.de报告,而不是使用问题跟踪器。

鸣谢

许可

麻省理工学院许可(MIT)。请参阅许可文件获取更多信息。

Laravel 包模板

此包是使用Laravel 包模板生成的。