使用功能標幟執行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)並新增第二個體驗,即體驗B,方法是按一下​ Add Experience (2)按鈕。 輸入應用程式中要執行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