A/B testing for wagtail

wagtail-experiments的Python项目详细描述


摇尾实验

https://api.travis-ci.org/torchbox/wagtail-experiments.svg?branch=master

摇尾式飞机的A/B测试

该模块支持在wagtail站点中创建a/b测试实验。设置了页面的多个替代版本,在访问指定的控制页面时,会向用户提供其中一个随机选择的变体(使用简化版的规划算法)。将记录接收到每个变体的访客数,以及随后通过访问指定目标页来完成实验的访客数。

安装

摇尾实验与摇尾1.7至2.3和django 1.8至2.1兼容。要安装:

pip install wagtail-experiments

并确保应用程序wagtail.contrib.modeladmin和 实验包含在项目的 已安装的应用程序中:

INSTALLED_APPS=[# ...'wagtail.contrib.modeladmin','experiments',# ...]

用法

安装后,一个新的"实验"项目将添加到wagtail管理菜单的"设置"下。这对超级用户和对实验具有添加/编辑权限的任何其他用户都可用。通过指定一个控制页和该页的任意多个可选版本以及一个可选的目标页来创建一个实验。最初,实验处于"草稿"状态,不会在站点前端生效;若要开始实验,请将状态更改为"活动"。

当实验处于活动状态时,访问控制页面url的用户将被随机分配到一个测试组,以便为控制页面或其他变体之一提供服务。此分配在用户会话中持续存在(根据django的会话配置,即浏览器长度会话与持久会话的比较)。当用户随后访问目标页面时,他们被认为已经完成了实验,并在该用户的测试组中记录完成情况。然后,可以通过"查看报告"下的管理界面查看每个测试组随时间的完成率。

https://i.imgur.com/tg7jh13.png

>;在"报告"页中,管理员可以选择一个获胜的变体;然后实验状态将更改为"已完成",并且将为所有访问控制页的访问者提供所选变体。

通常,页面的其他版本将保持未发布状态,因为这将防止它们在站点导航中显示为控件页的副本。如果选择未发布的页面作为替代,则在前端向用户显示的页面修订将是实验状态设置为"活动"时存在的草稿修订。显示替代变体时,将重写标题和树位置以显示为控制页的标题和位置;这意味着可以将替代页的标题设置为描述性的内容,例如"注册页(蓝色文本)",而不会将此文本"泄漏"到网站访问者。

直接URL目标完成

如果您希望目标完成链接到某个操作,而不是访问指定的wagtail页面(例如,单击"在twitter上关注我们"链接),则可以设置一个javascript操作,将请求发送到url,例如 /experiments/complete/twitter follow/

fromexperimentsimportviewsasexperiment_viewsurlpatterns=[# ...url(r'^experiments/complete/([^\/]+)/$',experiment_views.record_completion),# ...]

备用后端

wagtail实验支持用于跟踪参与者和完成的可插入后端。默认后端 experiments.backends.db 将这些记录在数据库表中,按天聚合。可通过设置 wagtail_experiments_backend指定可选后端:

WAGTAIL_EXPERIMENTS_BACKEND='mypackage.backends.thecloud'

后端是一个python模块,它提供以下功能:

记录参与者(实验、用户id、变化、请求):

当用户访问 实验的控制页时调用。 用户id 是分配给该访问者的持久用户id; 变体 是要服务的变体的页面对象; 请求 是用户的当前请求。

记录完成(实验、用户id、变化、请求):

当访问者完成 实验 时调用,方法是访问目标页或触发 记录完成 用户id 是分配给该访问者的持久用户id; 变体 是最初服务给该用户的变体的页面对象; 请求 是用户的当前请求。

获取报告(实验):

返回 实验的报告数据,由包含以下内容的dict组成:

< DL>
变化

记录列表,每个变体一个(包括控制页)。每条记录都是一个dict,包含:

< DL>
变异系数
页对象的主键
是控制
指示这是否是控制页的布尔值
是优胜者
一个布尔值,指示是否已选择此变体作为赢家
参与者总数
已分配此变体的访客数
总完成计数
分配此变体并继续完成实验的访客数
历史记录
显示参与者和完成情况随时间的细分的dict列表;每个dict包含 日期 参与者计数 完成计数

测试数据

wagtail实验提供了一个管理命令 实验数据 ,允许使用虚拟数据填充实验以进行测试或演示,并清除现有数据。这个命令是用实验的slug来调用的:

# Populate the experiment 'homepage-banner' with 5 days of test data,
# with 100-200 views per variation. All parameters other than experiment slug
# are optional
./manage.py experiment-data homepage-banner --days 5 --min=100 --max=200

# Purge data for the experiment 'homepage-banner'
./manage.py experiment-data homepage-banner --purge

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JList侦听器找不到符号   多点触摸跨平台java应用程序(Windows、Mac和Linux(Ubuntu)(可能是Android))   在UnitTest中找不到java类加载器资源   java当我尝试在Eclipse中运行我的minecraft mod时,我总是遇到这个错误,这是什么意思?   内部有一个同步块的静态方法,在java中阻止整个类?   不支持java操作:具有BillableStatus的费用在采购中应具有AccountBasedExpenseLineDetail行的CustomerRef   java运行时常量池GC集合   java无法解析配置“:app:\u debugApk”的所有依赖项。找不到名为“default”的配置   在GCP计算引擎中托管Neo4j的java   java如何从BroadcastReceiver更新片段选项卡?   线程“main”组织中的java异常。冬眠注释异常:@org。冬眠注释。表引用未知表:ProductForPractice   在Java/Groovy中嵌入处理   java Android REST教程/示例项目   java我可以在同一测试中在一个模拟器上启动应用程序,在另一个模拟器上启动移动浏览器吗?   java如何更改通知横幅的方向?   安卓 Java帮助实现Firebase授权   if else之后的rs.next()中出现java错误?