Wagtail的A/B测试
项目描述
Wagtail Experiments
Wagtail的A/B测试
此模块支持在Wagtail站点内创建A/B测试实验。为页面设置了几个不同的版本,当访问指定的控制页面时,用户会随机展示这些版本之一(使用PlanOut算法的简化版本)。记录了接收每个版本的访问者数量,以及随后来访问指定目标页面并完成实验的数量。
安装
“wagtail-experiments”与Wagtail 5.2至6.0和Django 4.2至5.0兼容。它依赖于Wagtail ModelAdmin模块,从Wagtail 5.0开始作为一个外部包提供;我们建议使用这个模块而不是捆绑的《wagtail.contrib.modeladmin》模块,以避免弃用警告。从Wagtail 6.0开始需要这个外部包。
安装步骤
pip install wagtail-experiments wagtail-modeladmin
并确保应用wagtail_modeladmin和experiments包含在项目的INSTALLED_APPS中
INSTALLED_APPS = [
# ...
'wagtail_modeladmin',
'experiments',
# ...
]
然后执行迁移
./manage.py migrate
使用方法
安装后,在设置下的Wagtail管理菜单中会添加一个新的“实验”项目。这对超级用户以及拥有实验添加/编辑权限的任何其他用户都可用。通过指定一个控制页面和该页面的任意多个替代版本(以及可选的目标页面)创建一个实验。最初实验处于“草案”状态,不会在网站前端生效;要开始实验,请将状态更改为“实时”。
当实验处于实时状态时,访问控制页面URL的用户将被随机分配到一个测试组,以提供控制页面或其中一种替代变体。这种分配将保持用户会话期间(根据Django的会话配置),因此每个用户每次都收到相同的变体。当用户随后访问目标页面时,他们认为已经完成了实验,并将完成记录在用户的测试组中。然后可以通过管理界面下的“查看报告”查看每个测试组随时间变化的完成率。
从报告页面,管理员可以选择一个获胜的变体;然后实验状态更改为“完成”,所有访问控制页面的访客都将提供所选的变体。
通常,页面的替代版本将被保留未发布状态,因为这可以防止它们在网站导航中作为控制页面的副本出现。如果选定了未发布的页面作为替代,则用户前端显示的页面修订版将是实验状态设置为“实时”时存在的草案修订版。在显示替代变体时,标题和树位置将被覆盖以显示为控制页面的标题和位置;这意味着可以将替代页面的标题设置为描述性的内容,例如“注册页面(蓝色文本)”,而不会将此文本“泄漏”给网站访客。
目标完成的直接URL
如果您想将目标完成与访问指定的Wagtail页面以外的某些操作相关联 - 例如,点击“关注我们的Twitter”链接 - 您可以设置一个JavaScript操作,该操作向类似于/experiments/complete/twitter-follow/ 的URL发送请求,其中twitter-follow是实验的别名。要设置此URL路由,请将以下内容添加到您的URLconf中
from experiments import views as experiment_views
urlpatterns = [
# ...
url(r'^experiments/complete/([^\/]+)/$', experiment_views.record_completion),
# ...
]
替代后端
“wagtail-experiments”支持用于跟踪参与者和完成的可插拔后端。默认后端experiments.backends.db将这些记录在数据库表中,按天聚合。可以通过WAGTAIL_EXPERIMENTS_BACKEND设置指定替代后端
WAGTAIL_EXPERIMENTS_BACKEND = 'mypackage.backends.thecloud'
后端是一个Python模块,提供以下函数
record_participant(experiment, user_id, variation, request)
当用户访问实验的experiment的控制页面时调用。user_id是分配给该访客的持久用户ID;variation是要提供的服务变体的页面对象;request是用户的当前请求。
record_completion(experiment, user_id, variation, request)
当访客完成实验时被调用,无论是访问目标页面还是触发record_completion。 user_id 是分配给该访客的持久用户 ID;variation 是最初为该用户服务的变体页面对象;而 request 是用户的当前请求。
get_report(experiment)
返回实验的报表数据,包含一个包含以下内容的字典
- 变体
记录列表,每项变体一个记录(包括控制页面)。每个记录是一个包含以下内容的字典
- 变体_pk
页面对象的键
- is_control
一个布尔值,指示这是否是控制页面
- is_winner
一个布尔值,指示此变体是否被选为获胜者
- total_participant_count
分配此变体的访客数量
- total_completion_count
分配此变体的访客中完成实验的数量
- 历史
显示参与者和完成情况随时间变化的列表,每个字典包含 date、participant_count 和 completion_count。
测试数据
Wagtail-experiments 提供了一个管理命令 experiment-data,允许为测试或演示目的向实验中填充模拟数据,并清除现有数据。此命令使用实验的别名调用
# 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
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
wagtail-experiments-0.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 32adc3e85685ef44e1760806208b426bcc722646f3624ff72cf81c662f78f93a |
|
MD5 | e87425b24e1245a1cd9e5c117e2ee719 |
|
BLAKE2b-256 | b142d9588872b824913fa1850736c47178c6dbd0d40e0efbf9fa4a4a0f55f112 |
wagtail_experiments-0.4-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 66ac71dee90c601446f1f7260e4d4d5c2863bdccf89bb92eda5400b18087e032 |
|
MD5 | 1ecf912b45727072aa84e8a819985064 |
|
BLAKE2b-256 | 048f6108175c121165fb920367e4b830c9b340870527be47c86a84a9af14bbfc |