使用功能标志执行A/B测试

步骤摘要

  1. 为您的组织启用on-device decisioning
  2. 创建A/B Test活动
  3. 定义A和B
  4. 添加受众
  5. 设置流量分配
  6. 将流量分配设置为变量
  7. 设置报表
  8. 添加用于跟踪KPI的量度
  9. 实施代码以使用功能标记执行A/B测试
  10. 使用功能标记激活A/B测试
NOTE
假设您想确定您的主页的秋季主题重新设计能否被用户接受。 您决定通过在Adobe Target中运行A/B试验来测试它。 此外,您还需要确保交付试验时性能良好,以免负面或缓慢的用户体验扭曲结果。

1.为您的组织启用on-device decisioning

启用设备上决策可确保在几乎零延迟的情况下执行A/B活动。 要启用此功能,请在Adobe Target中导航到​ Administration > Implementation > Account details,并启用​ On-Device Decisioning ​切换开关。

<! — 插入image-odd4.png —>
替代图像

NOTE
您必须具有管理员或审批者用户角色才能启用或禁用“设备端决策”切换开关。

启用​ On-Device Decisioning ​切换后,Adobe Target开始为您的客户端生成规则工件。

2.创建A/B Test活动

在Adobe Target中,导航到​ Activities ​页面,然后选择​ Create Activity > A/B test

替代图像

在​ Create A/B Test Activity ​模式中,保留默认的​ Web ​选项(1),选择​ Form ​作为体验编辑器(2),选择没有​ Property Restrictions ​的​ Default Workspace (3),然后单击​ Next (4)。

替代图像

3.定义A和B

  1. 在活动创建​ Experiences ​步骤中,提供活动(1)的名称,然后单击​ Add Experience (2)按钮以添加第二个体验,即体验B。 输入应用程序中要执行A/B测试的位置(3)的名称。 在下面显示的示例中,主页是为体验A定义的位置(也是为体验B定义的位置)。

    体验A定义控制,这是当前的主页设计。

    替代图像

    体验B定义了挑战者,即重新设计的主页。 单击以更改默认内容(1)。

    替代图像

  2. 在体验B中,通过选择​ Create JSON Offer ​将内容从​ Default Content ​更改为重新设计的内容,如下所示(1)。

    替代图像

  3. 使用将用作标志的属性来定义JSON,以使您的业务逻辑能够呈现重新设计的主页,而不是生产环境中的当前主页。

    note note
    NOTE
    当Adobe Target存储用户以查看体验B(重新设计的主页)时,将返回具有示例中定义的属性的JSON。 在您的代码中,您将需要检查属性值以确定是否执行业务逻辑以呈现重新设计的主页。 您可以定义此JSON响应中的名称、值和属性数。

    替代图像

4.添加受众

假设您要首先针对忠诚客户测试重新设计,可以根据他们是否已登录来识别这些客户。

  1. 在​ Targeting ​步骤中,单击以替换​ All Visitors ​受众,如所示。

    替代图像

  2. 在​ Create Audience ​模式中,定义logged-in = true的自定义规则。 这会定义已登录的用户组。 在活动中使用此受众。

    替代图像

5.设置流量分配

定义登录用户的百分比,您要针对该百分比来测试新主页重新设计。 换言之,您希望将此测试转出到用户中的哪个百分比? 在本例中,要将此测试部署到所有登录用户,请将流量分配保持在100%。

替代图像

6.将流量分配设置为变体

定义您的登录用户中将会看到主页当前设计或全新重新设计的百分比。 在此示例中,将流量分配保持为体验A和B之间的50/50比例。

替代图像

7.设置报表

在​ Goals & Settings ​步骤中,选择​ Adobe Target ​作为​ Reporting Source ​以在Adobe Target UI中查看活动结果,或选择​ Adobe Analytics ​以在Adobe Analytics UI中查看这些结果。

替代图像

8.添加用于跟踪KPI的量度

选择​ Goal Metric ​以测量A/B测试。 在本例中,成功的转化取决于用户是否到达页面底部,指示参与度。 因此,将根据用户是否查看了名为bottom-of-the-page的位置来确定​ Conversion

9.实施代码以在应用程序中执行带有功能标记的A/B测试

Node.js
code language-js line-numbers
const TargetClient = require("@adobe/target-nodejs-sdk");
const options = {
  client: "testClient",
  organizationId: "ABCDEF012345677890ABCDEF0@AdobeOrg",
  decisioningMethod: "on-device",
  events: {
    clientReady: targetClientReady
  }
};
const targetClient = TargetClient.create(options);

function targetClientReady() {
  return targetClient.getAttributes(["homepage"]).then(function(attributes) {
    const flag = attributes.getValue("homepage", "feature-flag");
    // ...
  });
}
Java
code language-java line-numbers
import com.adobe.target.edge.client.ClientConfig;
import com.adobe.target.edge.client.TargetClient;
import com.adobe.target.delivery.v1.model.ChannelType;
import com.adobe.target.delivery.v1.model.Context;
import com.adobe.target.delivery.v1.model.ExecuteRequest;
import com.adobe.target.delivery.v1.model.MboxRequest;
import com.adobe.target.edge.client.entities.TargetDeliveryRequest;
import com.adobe.target.edge.client.model.TargetDeliveryResponse;

ClientConfig config = ClientConfig.builder()
    .client("testClient")
    .organizationId("ABCDEF012345677890ABCDEF0@AdobeOrg")
    .build();
TargetClient targetClient = TargetClient.create(config);
MboxRequest mbox = new MboxRequest().name("homepage").index(0);
TargetDeliveryRequest request = TargetDeliveryRequest.builder()
    .context(new Context().channel(ChannelType.WEB))
    .execute(new ExecuteRequest().mboxes(Arrays.asList(mbox)))
    .build();
Attributes attributes = targetClient.getAttributes(request, "homepage");
String flag = attributes.getString("homepage", "feature-flag");

10.使用功能标记激活A/B测试

替代图像

recommendation-more-help
6906415f-169c-422b-89d3-7118e147c4e3