3.7 Server端编程式试验

Server端编程式试验

对于 Server 端的优化(例如后端的推荐算法的测试等),这些操作都必须以编程的方式、通过调用 Testin 的试验 API 来完成。

在这部分中,我们将说明如何通过Testin A/B 测试完成一个Server端的编程试验。先通过一张简单的流程图了解所需的步骤,再一步步进行具体操作:


1.一个完整的A/B 测试需要根据目前已有的用户数据进行分析判断,推断并建立假设,才能针对性的做出改变和调整,点击怎么使用A/B 测试详细了解。根据具体需求,构建产品A/B 测试的需求文档,即明确本次试验的几个要素。

登录Testin A/B 测试,选择相应的项目环境创建应用。建议以「产品名+环境+项目主题」的方式命名,例如:「AppAdhocServer端试验」。需要注意的是,Testin A/B 测试对名称的设置只支持中英文和数字输入,无法使用特殊字符。



2.点击「完成」,可以看到生成的APP Key,这是该应用的授权标识。在 Server 端根据编程语言的类型可以选择相应的 AppAdhoc SDK,包括 Java、Node.js、PHP 和 Python 等,请参考相关的 SDK 集成文档。 您也可以直接在 Server 端使用 Testin 的 REST API 来实施 AB 测试。



3.创建试验,选择「编程模式」,进入下一步。输入试验名称,填写相关的试验描述说明。为了方便寻找,可以将此次测试的内容设置为试验名称。



4.进入「编辑版本」模块,自动生成试验版本,点击版本名称即可进行修改。新建试验变量(即此次试验需要改动的内容):设置变量名称,填写变量说明,选择相应的变量类型。「String」代表用字符串表示的优化类型(如:文案内容、颜色),「Boolean」代表用逻辑判断表示的优化类型(如:是、否),「Number」代表用数字表示的优化类型(如:数量、尺寸)。

请注意,在添加变量时,务必以原始版本的默认值为准进行填写(点击“+”确认后,原始版本的变量值不可更改)。

Server 端的测试内容是很灵活的,都可以通过试验变量进行定义,而 Server 端的代码需要获取当前用户的变量值,然后根据不同的变量值对试验版本(内容)进行相应的操作。

例如,您要在 Server 端测试商品推荐的算法,有三个不同的版本,默认是 A,另外两个测试版本是 B 和 C。可以创建一个变量 shangpin_suanfa 来代表测试的内容, 原始版本 A 的 shangpin_suanfa 值是 'A',试验版本 B 的 shangpin_suanfa 值是 'B',试验版本 C 的 shangpin_suanfa 值是 'C'。 在商品推荐的代码处,调用AppAdhoc REST API 中用于获取用户变量的 get_flags 接口来获得当前用户 shangpin_suanfa 变量的值,如果是 'B' 则使用算法 B; 如果是 'C' 则使用算法 'C';如果是 'A' 则使用默认算法 A。

get_flags 接口是用于获取试验参数的重要接口,它从 AppAdhoc 试验服务器获取由 client_id 参数指定的用户的所有变量值。 一个用户的变量值是多少取决于该用户被试验服务器分配到哪个试验版本。例如上面的例子中,如果 get_flags 中 client_id 参数指定的用户被分配到了试验版本 B, 那么 get_flags 接口返回该用户的模块开关 shangpin_suanfa 值是 'B'。

因此,Server 端代码中不需要知道当前用户被分配到哪个试验及试验版本,只需要通过 get_flags 接口获取各变量的值,就可以根据其值采取相应的操作。



之后,点击试验版本的变量值进行编辑修改。若有多个试验版本,可在当前版本的变量创建完成后,在页面下方点击“添加版本”进行创建。

设置好变量后,需要在产品代码中同步集成,请确保变量名称在平台与试验页面的一致性。



5.接下来进行「优化指标」设置(点击了解如何选取优化指标),这里为「TitleClick」。同样,将优化指标设置完成后,需要对其进行代码集成。在 Server 端进行 AB 测试,需要通过 Testin REST API 中用于汇报指标数据的 tracker 接口来把试验关注的用户指标上报 Testin 的数据统计服务器。若在试验开始运行前,有指标增减的情况,应及时将代码同步。

Testin A/B 测试支持在编程模式下对复合指标的统计,也就是通过对已添加优化指标的组合计算,来表现一个复合型指标的数据,目前支持+-*÷及()运算。需要说明的是,复合指标无需单独集成代码埋点。


6.点击「开始试验」按钮,正式运行试验所有试验版本。进入试验运行中的控制页面,可以实时对试验流量进行调整。编程模式下可以直接在版本管理界面新增版本、变量,或者修改版本名称、说明、文案等。若想更换变量与优化指标,则需要重新集成代码。



7.进入试验控制页面,开始分配版本流量。我们提倡先从小流量入手,逐渐增大流量分配。在这里我们首先给试验版本分配了10%的流量,为了便于数据对比,我们同样将原始版本的流量设置为10%。剩余未被分配的80%流量,用户仍将看到原始版本,但这部分的用户行为数据不会计入平台统计中。



8.运行一段时间后,可以通过「试验概况」和「指标详情」查看试验数据详情。关于不同图表的具体解读,请参见如何用数据决策。



9.根据试验情况,适当调整流量。案例中的试验版本在小流量内的表现较好,因此我们将版本流量逐步放大至20%。为了保证版本流量的一致性,原始版本也同时提高到20%。



10.一般来说,为了获得更加可信的数据结果,试验运行周期应至少保证1-2个完整的自然周,如果遇到节假日,运行周期应适当延长。对比不同版本的指标数据,若置信区间上下限同为正或同为负,说明试验结果显著;否则,请延长运行时间,若依然无显著表现,则说明版本间差异不大。在这里,试验版本的95%置信区间显示为[+30%,+35%],说明若上线试验版本,则有95%的可能将转化率提高30%~35%,点击了解更多置信区间详情。在得出可信的试验结果后,根据数据报告,选出表现最优的版本,将试验关停或一键发布。由于试验版本的结果显著且增长,因此我们在「运行控制」页面确定将其发布。



11.至此,我们就完成了一个Server端的编程式A/B 测试。试验版本正式发布后,所有用户都会看到优化过的推荐算法。若试验结果显示原始版本的表现更好,则可选择关停试验版本,关停后,所有用户都将回到原始版本。



12.Testin A/B 测试支持在同一账户下创建多个应用和试验,可分别在登录页面和「试验列表」模块查看详情。同时,账户内的所有变量和优化指标设置,都可以在任意应用内的「SDK集成」模块中查看。

已邀请:

要回复问题请先登录注册