機能フラグを使用した 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 を挿入 – >
alt 画像

NOTE
オンデバイス判定の切り替えを有効または無効にするには、管理者または承認者 ユーザーの役割が必要です。

On-Device Decisioning」切替スイッチを有効 Adobe Target すると、クライアントのルールアーティファクトの生成が開始されます。

2. A/B Test アクティビティの作成

Adobe Target で、Activities ページに移動し、Create Activity/A/B test を選択します。

alt 画像

Create A/B Test Activity モーダルでは、デフォルトの Web オプションを選択したままにし(1)、experience composer として Form を選択し(2)、「Property Restrictions なし」の Default Workspace を選択し(3)、「Next」(4)をクリックします。

alt 画像

3. A と B を定義する

  1. アクティビティ作成の Experiences の手順で、アクティビティの名前を指定し(1)、「エクスペリ Add Experience ンス」(2) ボタンをクリックして、2 つ目のエクスペリエンスとして「エクスペリエンス B」を追加します。 A/B テストを実行するアプリケーション内の場所の名前(3)を入力します。 次の例では、ホームページは、エクスペリエンス A に対して定義された場所です(また、エクスペリエンス B に対して定義された場所でもあります)。

    エクスペリエンス A は、現在のホームページデザインであるコントロールを定義します。

    alt 画像

    エクスペリエンス B は、新しくデザインされたホームページを表すチャレンジャーを定義します。 クリックすると、既定のコンテンツ (1)を変更できます。

    alt 画像

  2. エクスペリエンス B で、をクリックし、以下に示す(1)を選択して、コンテンツを Default Content から再設計されたコンテンツに変更 Create JSON Offer ます。

    alt 画像

  3. ビジネスロジックが、実稼動環境の現在のホームページではなく、新しく再設計されたホームページをレンダリングできるように、フラグとして利用される属性を使用して JSON を定義します。

    note note
    NOTE
    Adobe Target がユーザーをバケット化してエクスペリエンス B (再設計されたホームページ)を表示すると、例で定義されている属性を含んだ JSON が返されます。 コードでは、属性値を確認して、再設計されたホームページをレンダリングするためにビジネスロジックを実行するかどうかを決定する必要があります。 この JSON 応答では、名前、値、属性の数を定義できます。

    alt 画像

4. オーディエンスの追加

最初に、常連客を対象に再設計をテストするとします。常連客は、ログインしているかどうかに基づいて特定できます。

  1. Targeting の手順で、をクリックして、All Visitors オーディエンスを置き換えます(下図を参照)。

    alt 画像

  2. Create Audience モーダルで、logged-in = true の場所にカスタムルールを定義します。 ログインしているユーザーのグループを定義します。 このオーディエンスをアクティビティで使用します。

    alt 画像

5. トラフィック配分の設定

新しいホームページのデザインをテストする、ログインユーザーの割合を定義します。 つまり、このテストをロールアウトするユーザーの割合を指定します。 この例では、すべてのログインユーザーにこのテストをデプロイするには、トラフィックの割り当てを 100% に保ちます。

alt 画像

6. トラフィック配分をバリエーションに設定する

ホームページの現在のデザインまたはまったく新しいデザインを表示する、ログインユーザーの割合を定義します。 この例では、エクスペリエンス A と B の間でトラフィック配分を 50/50 に分割します。

alt 画像

7. レポートの設定

Goals & Settings の手順で、Adobe Target UI でアクティビティの結果を表示する Reporting Source として Adobe Target を選択するか、Adobe Analytics UI で表示する Adobe Analytics を選択します。

alt 画像

8. KPI を追跡するための指標を追加する

A/B テストを測定する Goal Metric を選択します。 この例では、コンバージョンの成功は、ユーザーがページの下部に達したかどうかに基づいて行われ、エンゲージメントを示します。 したがって、ユーザー 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 テストをアクティブ化する

alt 画像

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