A/B テストを使用したメッセージング テストの作成

ユーザーに働きかけたり、新しいマーケティング キャンペーンを開始したりするときには、確実に効果が得られるように方策を練る必要があります。A/B テストでは、ユーザーベース内の選択した集合に向けたいくつかのメッセージ バリアントをテストすることにより、最適な表現やプレゼンテーションを見出すことができます。リテンション(定着率)の改善が目的の場合も、オファーに対するコンバージョンの改善が目的の場合も、A/B テストでは統計的分析を実行することにより、メッセージの特定のバリアント(言い回し)が、選択した目的に関連するコントロール グループにとって効果的かどうかを判断できます。

コントロール グループを使って機能バリアントの A/B テストを実施する方法は、以下のとおりです。

  1. テストを作成します。
  2. テスト端末でテストを検証します。
  3. テストを管理します。

テストの作成

Notifications Composer を使用したテストでは、単一の通知メッセージで複数のバリアントを評価できます。

  1. Firebase コンソールのナビゲーション バーで、[Grow] を展開し、[Notifications] をクリックして、[テストを作成] をクリックします。
  2. 以下の各フィールドに情報を入力して、テストの基本を定義します。

    • 名前: テストの名前を入力します。
    • 説明(オプション): テストを説明する追加的なテキストを入力します。
    • ターゲット ユーザー: テストを使用するアプリを選択します。以下のオプションを選択すると、テストに参加するユーザーのサブセットをターゲット設定することもできます。

      • バージョン: アプリの 1 つ以上のバージョン。
      • ユーザー: テスト対象となる可能性のあるユーザーが属する、Firebase 向け Google アナリティクスのユーザー層。
      • ユーザー プロパティ: アナリティクス ユーザー プロパティを使用して、テスト対象となる可能性のあるユーザーを選択します。ユーザー プロパティ値を選択するためのさまざまなオプションがあります。
      • 言語: テスト対象となる可能性のあるユーザーを選択するための 1 つ以上の言語。
    • ターゲット ユーザーの割合: テストのコントロール グループと 1 つ以上のバリアントの間で均等に分散させる、[ターゲット ユーザー] で設定した条件に一致するアプリのユーザーベースの割合を入力します。これは 0.01%~100% の任意のパーセント値にすることができます。パーセント値は、重複したテストも含め、各テストでユーザーにランダムに再割り当てされます。
  3. [メッセージのテキストを入力] フィールドに、コントロール グループに送信するメッセージを入力します。コントロール グループにメッセージを送信しない場合は、このフィールドを空白のままにしておきます。

  4. (オプション)複数のバリアントをテストに追加するには、[バリアントを追加] をクリックします。デフォルトでは、テストには 1 つのコントロール グループと 1 つのバリアントがあります。

  5. (オプション)テストの各バリアントの名前を入力して、[バリアント A]、[バリアント B] などの名前を置き換えます。

  6. テストの各バリアントのメッセージ テキストを入力します。

  7. テストのバリアントを評価する際に使用する、テストの目標指標を定義します。この指標には、組み込みの目標(エンゲージメント、購入、収益、維持など)、アナリティクスのコンバージョン イベント、その他のアナリティクス イベントなどがあります。

    バリアントによるテスト目標の達成度を測定するために使用されるアナリティクス イベントの詳細については、目標指標をご覧ください。

  8. テスト結果を追跡するその他の指標を定義し、テスト バリアントの副作用を検出します。追跡するほかの指標の詳細については、その他の指標をご覧ください。

  9. メッセージのオプションを選択します。

    • 配信日: すぐにテストを開始するには [今すぐ送信] を選択し、テストを後で開始する時間を指定するには [後で送信] を選択します。
    • 詳細オプション: テストに含まれるすべての通知の詳細オプションを選択するには、[詳細オプション] を展開し、次のいずれかのオプションを変更します。

      • タイトル: Android 端末と Apple watchOS 端末に表示される通知のタイトル
      • カスタムデータ: 通知とともにアプリに配信される Key-Value ペアのセット
      • 優先度: [] または []
      • 通知音: [無効] または [有効]
      • (iOS のみ)iOS バッジ: [無効] または [有効]
      • 有効期限: 最初の配信が失敗した場合に、メッセージが再配信されるまでの時間
  10. [レビュー] をクリックしてテストを保存します。[配信日] を [今すぐ送信] に設定すると、テストの対象となるユーザーに対してすぐにメッセージが送信されます。

テスト端末でテストを検証する

各 Firebase アプリのインストールには、インスタンス ID トークン(登録トークンとも呼ばれます)が関連付けられています。このトークンを使用して、アプリがインストールされているテスト端末上の特定のテストパターンをテストできます。テスト端末でテストを検証するには、次のようにします。

  1. 次のようにインスタンス ID トークンを取得します。

    Swift

    print("Instance ID Token: \(InstanceID.instanceID().token)")
    

    Objective-C

    NSLog(@"%@", [[FIRInstanceID instanceID] token]);
    

    Android

    Log.d("IID_TOKEN", FirebaseInstanceId.getInstance().getToken());
    

    C++

    firebase::InitResult init_result;
    auto* instance_id_object = firebase::instance_id::InstanceId::GetInstanceId(
        firebase::App::GetInstance(), &init_result);
    instance_id_object->GetToken().OnCompletion(
        [](const firebase::Future<std::string>& future) {
          if (future.status() == kFutureStatusComplete &&
              future.error() == firebase::instance_id::kErrorNone) {
            printf("Instance ID Token %s\n", future.result()->c_str());
          }
        });
    

    Unity

    Firebase.InstanceId.FirebaseInstanceId.DefaultInstance.GetTokenAsync().ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("Instance ID Token {0}", task.Result));
        }
      });
    
  2. Firebase コンソールのナビゲーション バーで、[Remote Config] または [Notifications] をクリックし、[A/B テスト] をクリックします。
  3. [下書き] をクリックしてから、テストのタイトルをクリックします。
  4. [テスト端末を管理] をクリックし、テスト端末のインスタンス ID トークンを入力して、そのテスト端末に送信するテスト バリアントを選択します。
  5. アプリを実行して、選択したバリアントがテスト端末で受信されていることを確認します。

インスタンス ID トークンの詳細については、FIRInstanceID(iOS)または FirebaseInstanceId(Android)をご覧ください。

テストを管理する

Remote Config と Notifications Composer のどちらを使用してテストを作成しても、テストを検証して開始し、実行中のテストを監視し、実行中のテストの対象とするユーザー数を増やすことができます。

テストが終わったら、有効なバリアントで使用された設定をメモして、その設定をすべてのユーザーに適用できます。または、別のテストを実行することもできます。

テストの開始

  1. Firebase コンソールのナビゲーション バーで、[Grow] を展開し、[Remote Config] または [Notifications] をクリックして [A/B テスト] をクリックします。
  2. [下書き] をクリックしてから、テストのタイトルをクリックします。
  3. テストの対象とするユーザーがアプリに含まれていることを確認するには、[テストの概要] で 0% を超える数値(たとえばユーザーの 1% が条件に一致していること)を確認します。
  4. テストを変更するには、[編集] をクリックします。
  5. テストを開始するには、[テストを開始] をクリックします。プロジェクトごとに一度に最大 6 つのテストを実行できます。

テストのモニタリング

しばらくテストを実行したら進行状況をチェックして、これまでにテストに参加したユーザーに関する結果を確認することができます。

  1. Firebase コンソールのナビゲーション バーで、[Grow] をクリックし、[Remote Config] または [Notifications] をクリックして [A/B テスト] をクリックします。
  2. [実行中] をクリックし、テストのタイトルをクリックします。このページでは、目標指標やその他の指標など、テストの下書きに関するさまざまな統計情報を表示できます。指標ごとに次の情報を利用できます。

    • 改善: ベースライン(コントロール グループとも呼ばれます)と比較した場合の、特定のバリアントに関する指標の改善の測定結果。バリアントの値の範囲をベースラインの値の範囲と比較することで計算されます。
    • ベースラインを上回る可能性: 特定のバリアントが選択された指標のベースラインを上回ることが推定される可能性。
    • 最良のバリアントである可能性: 特定のバリアントが選択された指標の他のバリアントを上回ることが推定される可能性。
    • ユーザー 1 人あたりの値: テスト結果に基づき、時間の経過とともに指標の値が収まることが予測される範囲。
    • 合計値: コントロール グループまたはバリアントの観測累積値。この値は、各テスト バリアントがどれだけ適切に実行されているかを測定したり、改善値の範囲ベースラインを上回る可能性最良のバリアントである可能性を計算したりするために使用されます。測定される指標に応じて、この列には「ユーザー 1 人あたりの期間」、「維持率」、「コンバージョン率」と表示されます。
  3. テストの対象とするユーザー数を増やすには、[配信数を増加] をクリックし、より大きな割合を選択して、適格なユーザーをテストに追加します。

  4. テストを一定期間(少なくとも 24 時間)実行すると、このページのデータによって、どのバリアントが「リーダー」であるかが示されます(存在する場合)。一部の測定には、データを視覚的に表現する棒グラフも表示されます。

すべてのユーザーにテストを適用する

目標指標に対する「リーダー」、つまり最良のバリアントを見つけるのに十分な期間テストを実行したら、次は全ユーザーにテストを適用します。この時点でテストがまだ実行中なら中止され、Remote Config ですべてのユーザーを対象に公開する値を選択できるようになります。実施したテストによって明確な候補が示されなかった場合でも、1 つのバリアントをすべてのユーザーに適用することができます。

  1. Firebase コンソールのナビゲーション バーで、[Grow] をクリックし、[Remote Config] または [Notifications] をクリックして [A/B テスト] をクリックします。
  2. [完了] または [実行中] をクリックしてからすべてのユーザーに適用するテストをクリックし、コンテキスト メニュー(more_vert)、[100% に適用] の順にクリックします。
  3. 次のいずれかの手順に従って、すべてのユーザーにテストを適用します。

    • Notifications Composer を使用するテストの場合は、[メッセージ送信] ダイアログを使用して、テストに参加しなかった残りのターゲット ユーザーにメッセージを送信します。
    • Remote Config テストの場合は、ダイアログを使用して、すべてのユーザーに対して変更する Remote Config パラメータ値を決定します。

テストの拡大

A/B テストでリーダーが宣言されない理由が被験者の不足にあると思われる場合は、テストを拡大してアプリのユーザーベースに対する割合を増やすことができます。

  1. Firebase コンソールのナビゲーション バーで、[Grow] をクリックし、[Remote Config] または [Notifications] をクリックして [A/B テスト] をクリックします。
  2. [実行中] をクリックし、テストにカーソルを合わせてコンテキスト メニュー(more_vert)をクリックします。それから、[配信数を増加] をクリックします。
  3. コンソールには、現在実行中のテストに参加しているユーザーの割合を増やすためのオプションを示すダイアログが表示されます。現在の割合より大きい数値を入力し、[送信] をクリックします。指定したユーザーの割合まで、テストが拡大されます。

テストの複製または中止

  1. Firebase コンソールのナビゲーション バーで、[Grow] をクリックし、[Remote Config] または [Notifications] をクリックして [A/B テスト] をクリックします。
  2. [完了] または [実行中] をクリックし、テストにカーソルを合わせてコンテキスト メニュー(more_vert)をクリックし、[複製] または [停止] をクリックします。

ユーザー ターゲティング

ユーザーをターゲット設定してテストのコントロール グループまたはバリアントに含めるには、次のユーザー ターゲティング条件を使用します。

ターゲティング条件 演算子 メモ
バージョン 次を含む
次を含まない
完全に一致する
正規表現を含む
テストに含める 1 つ以上のアプリ バージョンの値を入力します。

[次を含む]、[次を含まない]、[完全に一致する] のいずれかの演算子を使用する場合は、カンマ区切りの値リストを指定できます。

[正規表現を含む] 演算子を使用する場合は、正規表現を RE2 形式で作成できます。正規表現は対象バージョン文字列の全部または一部に一致させることができます。また、対象文字列の先頭、末尾、または全体と一致させるために ^$ アンカーを使うこともできます。

ユーザー 以下をすべて含む
以下を 1 つ以上含む
以下をすべて含まない
以下の少なくとも 1 つを含まない
1 名以上のアナリティクス ユーザーを選択して、テスト対象とする可能性のあるユーザーをターゲット設定します。  
ユーザー プロパティ テキスト:
次を含む
次を含まない
完全一致
正規表現を含む

数字:
<、≤、=、≥、>
アナリティクスのユーザー プロパティは、テスト対象とする可能性のあるユーザーを選択するために使用します。ユーザー プロパティ値の選択についてはさまざまなオプションがあります。 [正規表現を含む] 演算子を使用する場合は、正規表現を RE2 形式で作成できます。正規表現は対象バージョン文字列の全部または一部に一致させることができます。また、対象文字列の先頭、末尾、または全体と一致させるために ^$ アンカーを使うこともできます。
予測 該当なし Firebase Predictions によって定義されたユーザーのターゲット グループ(たとえば、アプリの使用を止めそうなユーザー、またはアプリ内購入を行いそうなユーザー)。Firebase Predictions ツールで定義された値のいずれかを選択します。オプションが利用できない場合は、Firebase コンソールの [Predictions] セクションにアクセスして、Firebase Predictions を有効にする必要があります。  
端末の国 該当なし テスト対象とする可能性のあるユーザーを選択するための、1 つ以上の国またはリージョン。  
端末の言語 該当なし テスト対象とする可能性のあるユーザーを選択するために使用する、1 つ以上の言語とロケール。 このターゲティング条件は Remote Config でのみ使用できます。

A/B テストの指標

テストを作成する際には、テスト バリアントの比較に使用する指標を選択します。追跡対象とする他の指標も選択して、各バリアントの詳細を把握し、重大な副作用(アプリ クラッシュなど)を検出するために役立てることができます。次の表に、目標指標と他の指標の計算方法の詳細を示します。

目標指標

指標 説明
1 日のユーザー エンゲージメント user_engagement アナリティクス イベントをトリガーするのに十分な時間、フォアグラウンドでアプリを使用しているユーザーの数(日単位)。
定着(1 日) アプリを毎日使用するユーザーの数。
定着(2~3 日) アプリの使用間隔が 2〜3 日以内であるユーザーの数。
定着(4~7 日) アプリの使用間隔が 4~7 日以内であるユーザーの数。
定着(8~14 日) アプリの使用間隔が 8~14 日以内であるユーザーの数。
定着(15 日以上) アプリの使用間隔が 15 日以上であるユーザーの数。
通知開封 Notifications Composer によって送信された通知をユーザーが開くかどうかを追跡します。
購入による収益 アプリ内購入による収益を測定する AdMob 指標。
first_open ユーザーがアプリをインストールまたは再インストールした後、最初にそのアプリを開くときにトリガーされるアナリティクス イベント。コンバージョン プロセスの一環として使用されます。
notification_open Notifications Composer によって送信された通知をユーザーが開いたときにトリガーされるアナリティクス イベント。コンバージョン プロセスの一環として使用されます。

その他の指標

指標 説明
クラッシュの影響を受けていないユーザー テスト中に Firebase Crash Reporting SDK によって検出されたアプリ内エラーが発生しなかったユーザーの割合。詳細については、クラッシュの影響を受けていないユーザーの指標をご覧ください。
notification_dismiss Notifications Composer によって送信された通知が拒否されたときにトリガーされるアナリティクス イベント(Android のみ)。
notification_receive アプリがバックグラウンドで動作している場合に、Notifications Composer によって送信された通知が受信されたときにトリガーされるアナリティクス イベント(Android のみ)。
os_update 端末のオペレーティング システムがいつ新しいバージョンに更新されるかを追跡するアナリティクス イベント。詳細は、自動的に収集されるイベントをご覧ください。
screen_view アプリ内で表示される画面を追跡するアナリティクス イベント。詳細については、追跡のスクリーン表示をご覧ください。
session_start アプリ内のユーザー セッション数をカウントするアナリティクス イベント。詳細は、自動的に収集されるイベントをご覧ください。
user_engagement アプリがフォアグラウンドで動作している場合に、定期的にトリガーされるアナリティクス イベント。詳細は、自動的に収集されるイベントをご覧ください。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。