Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

A / Bテストを使用してFirebaseRemoteConfig実験を作成する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Firebase Remote Config を使用して、アクティブなユーザー ベースを持つアプリケーションの設定をデプロイする場合は、設定が正しく行われていることを確認する必要があります。 A/B テストの実験を使用して、次のことを最適に判断できます。

  • ユーザー エクスペリエンスを最適化する機能を実装する最良の方法。アプリ開発者は、アプリ ストアでのアプリの評価が下がるまで、ユーザーが新機能や更新されたユーザー エクスペリエンスを嫌っていることに気付かないことがよくあります。 A/B テストは、ユーザーが機能の新しいバリアントを好むかどうか、または現在存在するアプリを好むかどうかを測定するのに役立ちます。さらに、ほとんどのユーザーをベースライン グループに保持することで、実験が終了するまで、ほとんどのユーザー ベースがアプリの動作や外観を変更することなくアプリを使い続けることができます。
  • ビジネス目標のためにユーザー エクスペリエンスを最適化する最良の方法。収益やリテンションなどの指標を最大化するために、製品の変更を実装する場合があります。 A/B テストでは、ビジネス目標を設定すると、Firebase が統計分析を実行して、バリアントが選択した目標のベースラインを上回っているかどうかを判断します。

ベースラインを使用して機能バリアントを A/B テストするには、次の手順を実行します。

  1. 実験を作成します。
  2. テスト デバイスで実験を検証します。
  3. 実験を管理します。

実験を作成する

Remote Config の実験では、1 つ以上のRemote Config パラメータで複数のバリアントを評価できます。

  1. Firebase コンソールにサインインし、プロジェクトで Google アナリティクスが有効になっていることを確認して、実験でアナリティクス データにアクセスできるようにします。

    プロジェクトの作成時に Google アナリティクスを有効にしなかった場合は、[統合] タブで有効にすることができます。このタブには、 Firebase コンソールの [ ] > [プロジェクト設定] を使用してアクセスできます。

  2. Firebase コンソールのナビゲーション バーのEngageセクションで、 A/B Testingをクリックします。

  3. [実験の作成]をクリックし、実験するサービスを求められたら [ Remote Config]を選択します。

  4. 実験の名前とオプションの説明を入力し、[次へ] をクリックします。

  5. ターゲティングフィールドに入力し、最初に実験を使用するアプリを選択します。およびをクリックし、次のリストからオプションを選択することで、ユーザーのサブセットをターゲットにして実験に参加させることもできます。

    • バージョン:アプリの 1 つ以上のバージョン
    • ビルド番号:アプリのバージョン コード
    • 言語:実験に含まれる可能性のあるユーザーを選択するために使用される 1 つ以上の言語とロケール
    • 国/地域:実験に含めるユーザーを選択するための 1 つ以上の国または地域
    • ユーザー オーディエンス:実験に含まれる可能性のあるユーザーを対象とするために使用されるアナリティクス オーディエンス
    • ユーザー プロパティ:実験に含める可能性のあるユーザーを選択するための 1 つ以上の Analytics ユーザー プロパティ
  6. ターゲット ユーザーの割合を設定する: [ターゲットユーザー] で設定された条件に一致するアプリのユーザー ベースの割合を入力し、実験でベースラインと 1 つ以上のバリアントの間で均等に分割します。これは、0.01% から 100% の間の任意のパーセンテージです。ユーザーは、複製された実験を含め、各実験にランダムに割り当てられます。

  7. 必要に応じて、アクティブ化イベントを設定して、Analytics イベントを最初にトリガーしたユーザーからのデータのみが実験でカウントされるようにします。ターゲティング パラメータに一致するすべてのユーザーが Remote Config の実験値を受け取りますが、アクティブ化イベントをトリガーしたユーザーのみが実験結果に含まれることに注意してください。

    有効な実験を確実に行うには、アプリがフェッチされた構成値をアクティブ化した後に、選択したイベントが発生することを確認してください。さらに、次のイベントは、フェッチされた値がアクティブ化される前に常に発生するため、使用できません。

    • app_install
    • app_remove
    • app_update
    • dynamic_link_first_open
    • first_open
  8. 実験の目標については、追跡する主要な指標を選択し、ドロップダウン リストから必要な追加の指標を追加します。これらには、組み込みの目標 (購入、収益、維持、クラッシュのないユーザーなど)、Analytics コンバージョン イベント、およびその他の Analytics イベントが含まれます。完了したら、[次へ] をクリックします。

  9. [バリアント]セクションで、実験のベースラインと少なくとも 1 つのバリアントを選択します。 [ Choose or create new]リストを使用して、実験する 1 つ以上のパラメーターを追加します。以前に Firebase コンソールで使用されたことのないパラメーターを作成できますが、効果を得るにはアプリに存在する必要があります。この手順を繰り返して、実験に複数のパラメーターを追加できます。

  10. (省略可)実験に複数のバリアントを追加するには、[別のバリアントを追加] をクリックします。

  11. 特定のバリアントの 1 つ以上のパラメーターを変更します。変更されていないパラメーターは、実験に含まれていないユーザーと同じです。

  12. バリアントの重みを展開して、実験のバリアントの重みを表示または変更します。デフォルトでは、各バリアントは均等に重み付けされます。重みが不均一であると、データ収集時間が長くなる可能性があり、実験の開始後に重みを変更できないことに注意してください。

  13. [確認] をクリックして、実験を保存します

プロジェクトごとに最大 300 個の実験を行うことができます。これは、最大 24 個の実行中の実験で構成され、残りは下書きまたは完了済みです。

テスト デバイスで実験を検証する

Firebase インストールごとに、それに関連付けられているインストール認証トークンを取得できます。このトークンを使用して、アプリがインストールされたテスト デバイスで特定の実験バリアントをテストできます。テスト デバイスで実験を検証するには、次の手順を実行します。

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

    迅速

    Installations.installations().authTokenForcingRefresh(true, completion: { (result, error) in
      if let error = error {
        print("Error fetching token: \(error)")
        return
      }
      guard let result = result else { return }
      print("Installation auth token: \(result.authToken)")
    })
    

    Objective-C

    [[FIRInstallations installations] authTokenForcingRefresh:true
                                                   completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) {
      if (error != nil) {
        NSLog(@"Error fetching Installation token %@", error);
        return;
      }
      NSLog(@"Installation auth token: %@", [result authToken]);
    }];
    

    Java

    FirebaseInstallations.getInstance().getToken(/* forceRefresh */true)
            .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() {
        @Override
        public void onComplete(@NonNull Task<InstallationTokenResult> task) {
            if (task.isSuccessful() && task.getResult() != null) {
                Log.d("Installations", "Installation auth token: " + task.getResult().getToken());
            } else {
                Log.e("Installations", "Unable to get Installation auth token");
            }
        }
    });

    Kotlin+KTX

    FirebaseInstallations.getInstance().getToken(/* forceRefresh */ true)
        .addOnCompleteListener { task ->
            if (task.isSuccessful) {
                Log.d("Installations", "Installation auth token: " + task.result?.token)
            } else {
                Log.e("Installations", "Unable to get Installation auth token")
            }
        }

    C++

    firebase::InitResult init_result;
    auto* installations_object = firebase::installations::Installations::GetInstance(
        firebase::App::GetInstance(), &init_result);
    installations_object->GetToken().OnCompletion(
        [](const firebase::Future& future) {
          if (future.status() == kFutureStatusComplete &&
              future.error() == firebase::installations::kErrorNone) {
            printf("Installations Auth Token %s\n", future.result()->c_str());
          }
        });
    

    団結

    Firebase.Installations.FirebaseInstallations.DefaultInstance.GetTokenAsync().ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("Installations token {0}", task.Result));
        }
      });
    
  2. Firebase コンソールのナビゲーション バーで、[ A/B Testing ] をクリックします。
  3. Draft (および/または Remote Config 実験の実行中) をクリックし、実験にカーソルを合わせ、コンテキスト メニュー ( ) をクリックしてから、 Manage test devicesをクリックします。
  4. テスト デバイスのインストール認証トークンを入力し、そのテスト デバイスに送信する実験バリアントを選択します。
  5. アプリを実行し、選択したバリアントがテスト デバイスで受信されていることを確認します。

Firebase インストールの詳細については、Firebase インストールの管理をご覧ください。

実験を管理する

Remote Config、Notifications Composer、または Firebase In-App Messaging を使用して実験を作成する場合でも、実験を検証して開始し、実行中に実験を監視し、実行中の実験に含まれるユーザーの数を増やすことができます。

実験が完了したら、勝者の亜種で使用された設定をメモし、それらの設定をすべてのユーザーにロールアウトできます。または、別の実験を実行できます。

実験を開始する

  1. Firebase コンソールのナビゲーション バーのEngageセクションで、 A/B Testingをクリックします。
  2. [下書き] をクリックし、実験のタイトルをクリックします。
  3. 実験に含まれるユーザーがアプリに含まれていることを確認するには、下書きの詳細を展開し、[ターゲティングと配布] セクションで0%より大きい数値を確認します (たとえば、条件に一致するユーザーの 1% )。
  4. テストを変更するには、[編集] をクリックします。
  5. テストを開始するには、[テストを開始] をクリックします。一度にプロジェクトごとに最大 24 の実験を実行できます。

実験を監視する

テストがしばらく実行されたら、進行状況を確認して、これまでにテストに参加したユーザーの結果を確認できます。

  1. Firebase コンソールのナビゲーション バーのEngageセクションで、 A/B Testingをクリックします。
  2. [実行中] をクリックし、実験のタイトルをクリックするか検索します。このページでは、次のような、実行中の実験に関するさまざまな観測統計とモデル統計を表示できます。

    • ベースラインとの差 (%) : ベースラインと比較した、特定のバリアントのメトリックの改善の尺度。バリアントの値の範囲をベースラインの値の範囲と比較して計算されます。
    • ベースラインを上回る確率: 特定のバリアントが選択したメトリックのベースラインを上回る推定確率。
    • ユーザーごとのobserved_metric : 実験結果に基づく、これはメトリック値が時間の経過とともに収まる予測範囲です。
    • Total observed_metric : ベースラインまたはバリアントの観測された累積値。この値は、各テスト パターンのパフォーマンスを測定するために使用され、改善値の範囲ベースラインを上回る確率、最良のパターンになる確率を計算するために使用されます。測定される指標に応じて、この列には「ユーザーあたりの期間」、「ユーザーあたりの収益」、「維持率」、または「コンバージョン率」というラベルが付けられます。
  3. 実験をしばらく実行した後 (FCM とアプリ内メッセージングの場合は少なくとも 7 日間、Remote Config の場合は 14 日間)、このページのデータは、バリアントが存在する場合、どのバリアントが「リーダー」であるかを示します。一部の測定値には、データを視覚的な形式で表示する棒グラフが付いています。

すべてのユーザーに実験を展開する

テストが十分に長く実行され、目標指標の「リーダー」または勝者のバリアントが得られたら、テストを 100% のユーザーにロールアウトできます。これにより、今後すべてのユーザーに公開するバリアントを選択できます。テストで明確な勝者が得られなかった場合でも、バリアントをすべてのユーザーに展開することを選択できます。

  1. Firebase コンソールのナビゲーション バーのEngageセクションで、 A/B Testingをクリックします。
  2. [完了] または [実行中] をクリックし、すべてのユーザーにロールアウトする実験をクリックして、コンテキスト メニュー ( ) をクリックし、[バリアントのロールアウト] をクリックします。
  3. 次のいずれかを実行して、すべてのユーザーに実験を展開します。

    • Notifications composerを使用する実験では、メッセージのロールアウトダイアログを使用して、実験に参加していない残りのターゲット ユーザーにメッセージを送信します。
    • Remote Config実験の場合、バリアントを選択して、更新する Remote Config パラメータ値を決定します。実験の作成時に定義されたターゲティング基準は、新しい条件としてテンプレートに追加され、ロールアウトが実験の対象ユーザーにのみ影響するようにします。 Remote Config で [Review ] をクリックして変更を確認したら、[ Publish changes ] をクリックしてロールアウトを完了します。
    • アプリ内メッセージングの実験では、ダイアログを使用して、スタンドアロンのアプリ内メッセージング キャンペーンとしてロールアウトする必要があるバリアントを決定します。選択すると、FIAM 作成画面にリダイレクトされ、公開する前に (必要に応じて) 変更を加えることができます。

実験を展開する

A/B テストがリーダーを宣言するのに十分なユーザーが実験で得られていないことがわかった場合は、実験の配布を増やして、アプリのユーザー ベースのより大きな割合にリーチすることができます。

  1. Firebase コンソールのナビゲーション バーのEngageセクションで、 A/B Testingをクリックします。
  2. 編集する実行中の実験を選択します。
  3. 実験の概要で、コンテキスト メニュー ( ) をクリックし、実行中の実験の編集 をクリックします。
  4. [ターゲティング] ダイアログには、現在実行中の実験に参加しているユーザーの割合を増やすオプションが表示されます。現在のパーセンテージより大きい数値を選択し、 [公開] をクリックします。実験は、指定した割合のユーザーにプッシュされます。

実験を複製または停止する

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

ユーザーターゲティング

次のユーザー ターゲティング基準を使用して、実験に含めるユーザーをターゲティングできます。

ターゲティング基準オペレーターノート
バージョン含む、
含まない、
正確に一致し、
正規表現を含む
実験に含める 1 つ以上のアプリ バージョンの値を入力します。

含む含まない、または正確に一致する演算子のいずれかを使用する場合、コンマ区切りの値のリストを指定できます。

contains regex演算子を使用すると、 RE2形式で正規表現を作成できます。正規表現は、ターゲット バージョン文字列のすべてまたは一部に一致できます。 ^および$アンカーを使用して、ターゲット文字列の先頭、末尾、または全体に一致させることもできます。

ユーザー層のすべてを含み、
の少なくとも 1 つを含む、
のすべてを含むわけではありませんが、
の少なくとも 1 つを含まない
アナリティクスのオーディエンスを 1 つ以上選択して、実験に含める可能性のあるユーザーをターゲットにします。 Google アナリティクスのオーディエンスを対象とする一部のテストでは、アナリティクスのデータ処理の待ち時間が発生するため、データの蓄積に数日かかる場合があります。この遅延が発生する可能性が最も高いのは、通常、作成後 24 ~ 48 時間で適格なオーディエンスに登録される新規ユーザー、または最近作成されたオーディエンスです。

Remote Config の場合、これは、ユーザーが技術的にオーディエンスの資格を得たとしても、「fetchAndActivate()」が実行されたときに Analytics がまだユーザーをオーディエンスに追加していない場合、そのユーザーは実験に含まれないことを意味します。

ユーザー プロパティテキストの場合:
含む、
含まない、
完全に一致し、
正規表現を含む

数字の場合:
<, ≤, =, ≥, >
アナリティクスのユーザー プロパティは、ユーザー プロパティ値を選択するためのさまざまなオプションを使用して、実験に含める可能性のあるユーザーを選択するために使用されます。

クライアントでは、ユーザー プロパティに文字列値のみを設定できます。数値演算子を使用する条件の場合、Remote Config サービスは、対応するユーザー プロパティの値を整数/浮動小数点数に変換します。
contains regex演算子を使用すると、 RE2形式で正規表現を作成できます。正規表現は、ターゲット バージョン文字列のすべてまたは一部に一致できます。 ^および$アンカーを使用して、ターゲット文字列の先頭、末尾、または全体に一致させることもできます。
国/地域なし実験に含める可能性のあるユーザーを選択するために使用される 1 つ以上の国または地域。
言語なし実験に含まれる可能性のあるユーザーを選択するために使用される 1 つ以上の言語とロケール。
最初のオープンより多い
未満
日数で指定された、アプリを初めて開いた時間に基づいてユーザーをターゲティングします。このターゲティング基準は、Firebase アプリ内メッセージングでのみ使用できます。
前回のアプリ エンゲージメントより多い
未満
日数で指定された、アプリを最後に使用した時間に基づいてユーザーをターゲティングします。このターゲティング基準は、Firebase アプリ内メッセージングでのみ使用できます。

A/B テストの指標

実験を作成するときは、主要な、または目標の指標を選択します。これは、勝者のバリアントを決定するために使用されます。また、各テスト バリアントのパフォーマンスをよりよく理解し、ユーザー維持率、アプリの安定性、アプリ内購入の収益など、バリアントごとに異なる可能性がある重要な傾向を追跡するために、他の指標も追跡する必要があります。実験では、最大 5 つの目標以外の指標を追跡できます。

たとえば、Remote Config を使用してアプリで 2 つの異なるゲーム フローを起動し、アプリ内購入と広告収入を最適化したいが、各バリアントの安定性とユーザー維持率も追跡したいとします。この場合、推定総収益を目標指標として選択することを検討できます。これには、アプリ内購入の収益と広告収益が含まれているためです。次に、追跡するその他の指標に、次を追加できます。

  • 日次および週次のユーザー維持率を追跡するには、 Retention (2-3 days)Retention (4-7 days)を追加します。
  • 2 つのゲーム フローの安定性を比較するには、 Crash-free usersを追加します。
  • 各収益タイプのより詳細なビューを表示するには、[購入収益][推定広告収益]を追加します。

次の表は、目標指標とその他の指標の計算方法の詳細を示しています。

目標指標

メトリック説明
クラッシュのないユーザーテスト中に Firebase Crashlytics SDK によって検出された、アプリでエラーが発生していないユーザーの割合。
推定広告収入推定広告収入。
推定総収益購入額と推定広告収益の合計。
購入収益すべてのpurchaseイベントとin_app_purchaseイベントの合計値。
保持(1日)毎日あなたのアプリに戻ってくるユーザーの数。
保持(2~3日) 2 ~ 3 日以内にアプリに戻ったユーザーの数。
保持(4~7日) 4~7 日以内にアプリに戻ったユーザーの数。
保持(8~14日) 8~14 日以内にアプリに戻ったユーザーの数。
保持 (15 日以上)最後にアプリを使用してから 15 日以上経過してアプリに戻ったユーザーの数。
first_openアプリをインストールまたは再インストールした後、ユーザーが最初にアプリを開いたときにトリガーされる Analytics イベント。コンバージョン ファネルの一部として使用されます。

その他の指標

メトリック説明
通知_却下Notifications Composer によって送信された通知が閉じられたときにトリガーされる Analytics イベント (Android のみ)。
通知_受信アプリがバックグラウンドにあるときに、通知コンポーザーによって送信された通知が受信されたときにトリガーされる Analytics イベント (Android のみ)。
os_updateデバイスのオペレーティング システムがいつ新しいバージョンに更新されたかを追跡する Analytics イベント。詳細については、「自動的に収集されるイベント」を参照してください。
screen_viewアプリ内で表示された画面を追跡する Analytics イベント。詳しくは、スクリーンビューの追跡をご覧ください。
session_startアプリ内のユーザー セッションをカウントする Analytics イベント。詳細については、自動的に収集されるイベントを参照してください。

BigQuery データのエクスポート

BigQueryで A/B テストに関連するすべての分析データにアクセスできます。 BigQuery を使用すると、BigQuery SQL を使用してデータを分析したり、別のクラウド プロバイダにエクスポートしたり、カスタム ML モデルにデータを使用したりできます。詳細については、 BigQuery を Firebase にリンクするをご覧ください。

BigQuery データ エクスポートを最大限に活用するには、Firebase プロジェクトで「Blaze」の従量制料金プランを採用する必要があります。 BigQuery では、データの保存、挿入のストリーミング、データのクエリに対して料金が発生します。データの読み込みとエクスポートは無料です。詳細については、 BigQuery の料金またはBigQuery サンドボックスをご覧ください。

開始するには、Firebase プロジェクトが BigQuery にリンクされていることを確認してください。左側のナビゲーション バーから [設定] > [プロジェクト設定]を選択し、[統合] > [BigQuery] > [リンク] を選択します。このページには、プロジェクト内のすべてのアプリに対して BiqQuery 分析データのエクスポートを実行するためのオプションが表示されます。

実験の分析データを照会するには:

  1. アクティブな実験リストから目的の実験を選択して、実験結果ページを開きます。
  2. [実験の概要] ペインのコンテキスト メニューから、 [実験データのクエリ] を選択します (このオプションは、無料層のプロジェクトでは使用できません) 。

    これにより、BigQuery コンソールのクエリ コンポーザーが開き、レビュー用に事前に読み込まれた実験データの自動生成されたサンプル クエリが表示されます。このクエリでは、実験はユーザー プロパティとしてエンコードされ、キーには実験名が、値には実験バリアントが含まれます。

  3. クエリ コンポーザーで、 [クエリの実行] を選択します。結果は下のペインに表示されます。

BigQuery の Firebase データは 1 日に 1 回しか更新されないため、実験ページで利用できるデータは、BigQuery コンソールで利用できるデータよりも最新である可能性があることに注意してください。