altis / ab-tests
Requires
- altis/aws-analytics: ^2.3.1
- markrogoyski/math-php: ^0.51.0
- dev-master
- 2.4.4
- 2.4.3
- 2.4.2
- 2.4.1
- 2.4.0
- 2.3.0
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.1.0
- 1.0.0
- dev-dependabot/npm_and_yarn/minimist-1.2.6
- dev-2.4.4--branch
- dev-2.4.3--branch
- dev-2.4.2--branch
- dev-2.4.1--branch
- dev-2.4.0--branch
- dev-2.3.0--branch
- dev-2.2.2--branch
- dev-2.2.1--branch
- dev-2.2.0--branch
- dev-v2-branch
- dev-2.1.0--branch
- dev-2.0.4--branch
- dev-updating-npm-deps
- dev-2.0.3--branch
- dev-2.0.2--branch
- dev-2.0.1--branch
- dev-2.0.0--branch
- dev-1.1.0--branch
- dev-1.0.0--branch
- dev-0.1.0--branch
This package is auto-updated.
Last update: 2022-03-24 13:04:33 UTC
README
Altis 的 Web 实验框架。
特性
插件目前提供以下内置特性
文章标题 A/B 测试
启用此功能后,您可以直接从文章编辑屏幕创建文章标题的 A/B 测试。
默认情况下启用,但可以使用以下过滤器禁用:
add_filter( 'altis.experiments.features.titles', '__return_false' );
默认情况下支持文章和页面,但您可以使用以下代码在插件或主题的 functions.php
中添加对自定义文章类型的支持:
add_post_type_support( 'events', 'altis.experiments.titles' );
使用方法
插件提供了一套程序化 API,用于注册用于文章数据的自定义 A/B 测试
register_post_ab_test( string $test_id, array $options )
设置测试。
$test_id
:测试的唯一 ID。$options
:测试的配置选项。label <string>
:测试的人类可读标签。rest_api_variants_field <string>
:使变体可用的字段名称。rest_api_variants_type <string>
:变体的数据类型。goal <string>
:转化目标事件名称,例如 "click" 或 "click:.selector a"。goal_filter <string | callable>
:用于过滤目标结果的 Elasticsearch bool 查询。如果传递了一个可调用对象,它将接收测试 ID 和文章 ID 作为参数。query_filter <string | callable>
:用于过滤正在查询的总事件的 Elasticsearch bool 查询。如果传递了一个可调用对象,它将接收测试 ID 和文章 ID 作为参数。variant_callback <callable>
:用于根据变体值渲染的可选回调。参数$value <mixed>
:变体值。$post_id <int>
:文章 ID。$args <array>
:传递给output_ab_test_html_for_post()
的可选参数。
winner_callback <callable>
:用于在找到获胜者时更新文章的可选回调。默认为无操作。参数$post_id <int>
:文章 ID$value <mixed>
:获胜变体值。
post_types <array>
:测试支持的帖子类型数组。
output_ab_test_html_for_post( string $test_id, int $post_id, string $default_content, array $args = [] )
返回客户端处理的 A/B 测试标记。
$test_id
:测试的唯一 ID。$post_id
:测试的文章 ID。$default_content
:不在测试中的用户的默认内容。$args
:传递给variant_callback
的可选数据数组。
namespace Altis\Experiments; // Register the test. register_post_ab_test( 'featured_images', [ 'rest_api_variants_type' => 'integer', 'goal' => 'click', 'variant_callback' => function ( $attachment_id, $post_id, $args ) { return wp_get_attachment_image( $attachment_id, $args['size'], false, $args['attr'] ); } ] ); // Apply the test by filtering some standard output. add_filter( 'post_thumbnail_html', function ( $html, $post_id, $post_thumbnail_id, $size, $attr ) { return output_ab_test_html_for_post( 'featured_images', $post_id, $html, [ 'size' => $size, 'attr' => $attr, ] ); }, 10, 5 );
目标跟踪
转化目标是确定变体是否成功的方法。这被计算为 转化次数 / 展示次数
。
提供开箱即用的 click
目标处理程序,并将点击事件处理程序添加到最近的 <a>
标签。
范围事件处理
对于渲染更复杂的替代HTML的测试,您可以使用CSS选择器定义事件目标,并将选择器传递给element.querySelectorAll()
。
例如,将目标设置为click:.my-target
,当匹配.my-target
的元素在替代HTML中点击时,将跟踪转化。这适用于所有注册的目标处理器。
自定义目标处理器
您可以在JavaScript中定义自己的目标处理器。
Altis.Analytics.Experiments.registerGoal( name <string>, callback <function>, closest <array> )
此函数添加了一个目标处理器,其中name
对应于注册A/B测试时$options['goal']
的值。
回调函数接收以下参数
element <HTMLElement>
:事件的目标节点。record <function>
:接收目标元素和一个回调函数以记录转化。该函数接受两个可选参数attributes <object>
:与事件一起记录的自定义属性。metrics <object>
:与事件一起记录的自定义指标。
closest
参数允许您确保传递给回调函数的元素是特定类型,通过在DOM树中向上遍历实现,例如,要返回只有锚标签,您将传递[ 'a' ]
。
Altis.Analytics.Experiments.registerGoal( 'scrollIntoView', function ( element, record ) { var listener = function () { // Check element has come into view or not. if ( element.getBoundingClientRect().top > window.innerHeight ) { return; } // Remove event listener immediately. window.removeEventListener( 'scroll', listener ); // Record event. record(); }; // Start listening to scroll events. window.addEventListener( 'scroll', listener ); } );
注意:应通过wp_enqueue_scripts
动作将此JavaScript排队到<head>
中。
创建自己的测试
您如何管理变体数据由您自己决定,例如,您可以使用Fieldmanager或Advanced Custom Fields创建元框以保存变体数据。
请注意,您应使用以下函数来获取和更新变体
get_ab_test_variants_for_post( string $test_id, int $post_id ) : array
update_ab_test_variants_for_post( string $test_id, int $post_id, array $variants )
路线图
- 多变量测试功能
- 功能
- 特色图像测试
由Human Made用❤️制作