Remote Config でできること

アプリ デベロッパーは、独自の要件に合わせて Remote Config をさまざまな方法で使用しています。Google でも、このような使い方をおすすめしています。ここでは、モバイル デベロッパーが幅広く応用できるユースケースをご紹介します。Remote Config の使い方を考えるうえで参考にしてください。

パーセンテージ ロールアウトで新機能をリリースする

Remote Config を使用してパーセンテージ ロールアウトを行い、新しい機能を段階的に公開していくことができます。このユースケースで、たとえば、new_search_feature_flag という Remote Config パラメータを使用して有効または無効にできる新しい検索機能があり、最初はインストールされたユーザーベースの 10% にロールアウトするとします。

そのためには、new_search_feature_flag パラメータを編集して新しい条件を追加し、[ユーザー(ランダム %)] を選択します。スライダーを使用して、0~10 の範囲のランダム パーセンテージを設定します。

Firebase コンソールの GUI の手順を使用して、既存のパラメータでパーセンテージ ロールアウトを行う画像
パーセンテージによる機能ロールアウトのためのパラメータを追加する

これで、Remote Config から new_search_feature_flag の値がフェッチされると、ランダムに選択された 10% のユーザーが値 true を受け取り、残りの 90% のユーザーは値 false を受け取ります。

ユーザー母集団の 10% がこの機能の安定性に満足した場合、パーセンテージを 30%、50% と上げて満足度を確認し、最終的には 100% に設定します。

アプリにプラットフォーム / ロケール固有のプロモーション バナーを定義する

e コマースのセールが近づいたので、アプリでプロモーション用のスプラッシュ ページを有効にするとします。さらに、ユーザーのデバイスに設定されているロケールに合わせて、このスプラッシュ ページをカスタマイズします。この場合、promo_splash_graphic パラメータを定義して、その値を静的 URL(Firebase Storage または他の場所)に設定し、アプリ内から動的に参照できるようにします。

また、プロモーション キャンペーンで最も重要なロケールでは、Android と Apple で異なる値を割り当てます。 特定の時間にプロモーションをトリガーする必要がある場合は、Remote Config の時間条件を使用できます。また、リアルタイム Remote Config を使用して、テンプレートの公開直後に変更を取得し、必要に応じてアプリ内で有効にすることもできます。

Firebase コンソールの GUI の手順を使用して、プラットフォームとロケール固有のプロモーション バナーを定義するアニメーション画像
ローカライズされたプロモーション バナーのパラメータを追加する

Remote Config バックエンド API を使用すると、パラメータ値をプログラムによって更新し、cron ジョブから機能を開始できます。

アプリの初回起動時間に基づいて、カスタマイズしたエクスペリエンスをユーザーに提供する

Remote Config を使用すると、ユーザーがアプリを最初に起動した日時に基づいてカスタム エクスペリエンスを提供できます。次のようなユースケースがあります。

  • ユーザーがアプリを利用する際に、別のオンボーディング フローを提供する。
  • ある特定の日をすぎたら、フィーチャー トグルや切り替えボタンで無効になっているインセンティブや機能を新規ユーザーに公開する。
  • 特定の期間中にアプリを利用開始したユーザーに対して、カスタマイズしたエクスペリエンスを提供する。

たとえば、新規ユーザーにゲーム内ギフトを贈ってゲームの初回利用と利用の継続を促したり、長期間利用しているユーザーのグループには別の特典を贈ったりできます。extra_coin_splash というパラメータを作成し、カスタマイズ可能なメッセージ、ボーナスコインの数、ユーザーが特典を利用していない場合に特典を再表示できる最大回数を指定して、ゲーム内通貨の無料特典を提供するポップアップ メッセージを制御できます。アプリ内デフォルト値をパラメータのデフォルト値として使用して、次の 2 つの条件を作成できます。

最初に、特定の Android アプリまたは iOS アプリをターゲットとする、1 つの条件値extra_coins_splash Remote Config パラメータに追加して初回起動に将来の日時を指定し、パラメータ値を以下のように設定します。

{"banner_text": "Welcome! Enjoy some extra coins!", "bonus_coins": 15, "max_display_retries": 2}

次に、特典を付与する既存のユーザー グループに関する条件を追加します。たとえば、7 月にゲームの利用を開始し、10 月になっても継続して利用しているすべてのユーザーを対象にするとしましょう。そのためには、別の条件値extra_coins_splash パラメータに追加して初回起動に 7 月 1 日から 8 月 1 日までの期間を指定し、パラメータ値を以下のように設定します。

{"banner_text": "Thanks for being a loyal user!", "bonus_coins": 30, "max_display_retries": 2}:

最終的な extra_coins_splash パラメータは次のようになります。

<span class=条件値が指定された Remote Config パラメータ" title="Remote Config 条件値が指定されたパラメータ" width="55%">

このパラメータを使用して構成を公開すると、両方のユーザー グループが次回のフェッチ後に、設定したパラメータ値に相当する追加コインを受け取ります。

次のステップでは、パラメータやターゲティング条件のバナー メッセージやボーナス金額を変えて A/B Testing テストパーソナライズを試してみます。

限られたテストグループで新機能をテストする

通常、限られたテストグループで新機能をテストする場合は、Google Play の Alpha チャンネルや Apple アプリの Test Flight を使用します。これらのツールは、通常の開発サイクルと同じサイクルで新しい機能をテストしたい場合に最適です。

ただし、通常の開発サイクルの次のリリース タイミングに関係なく、機能のテストをすぐに行い、有効または無効にしたいこともあります。このような場合に、Remote Config は非常に便利なツールです。

たとえば、社員間で新しいグラフィックのテストを行うときに、Remote Config でこれを有効にするにはどうすればよいですか?

ユーザーがアプリにログインするときに、ユーザーのメール ID を確認し、メールアドレスが自社のドメインに属している場合にのみ、ユーザー プロパティ is_mydomain_employee=true を設定します。次に、そのユーザー プロパティの追跡条件を作成します。Remote Config でこのユーザー プロパティをターゲットに設定し、これらのユーザーに対してのみ新しい機能を有効にできます。

Firebase コンソールの GUI の手順を使用して、限られたテストグループで新機能をテストするアニメーション画像
条件付きテストグループをターゲットに設定する

JSON を使用してアプリやゲームで複雑なエンティティを構成する

アプリが複雑になるにつれ、アプリに構成を提供する方法を改善していく必要があります。たとえば、新しいログイン システムを構成するときに、制御する動的値ごとに 1 つの Remote Config パラメータを作成するとします。しかし、この方法ではログイン システムの構成が煩雑になり、理解するのも保守するのも難しくなります。

このようなログイン システムに構成を提供する方法としては、JSON を使用して、すべてのパラメータを 1 つにまとめるという方法のほうが適切です。この場合、長期的に login パラメータを編集して管理する作業がはるかに容易になります。

Firebase コンソールには、Remote Config パラメータの編集時に使用できる JSON バリデータとプリティ プリンタが用意されています。コンソールで作業中に {} アイコンをクリックすると、エディタが開きます。

Firebase コンソールの GUI の手順を使用し、JSON を使用して複雑なエンティティを構成するアニメーション画像
JSON エディタを使用してパラメータをグループ化する

Remote Config の更新公開時に Slack / メール メッセージを送信する

Remote Config を大規模なチームで使用している場合、チーム内で Remote Config を公開しているユーザーや時間を追跡するのが難しくなります。

共同作業のワークフローを簡素化するため、よく使う方法(Slack またはメール)でアラートをほぼリアルタイムで受け取ることができます。Remote Config REST API と Cloud Functions for FirebaseRemote Config バックグラウンド トリガーを使用すると、Remote Config テンプレートが変更されるたびに通知を送信できます。

eBay は最近、Cloud FunctionsRemote Config を使用して、以前のテンプレートと新しい Remote Config テンプレートの差分を Slack チャンネルに公開する実装をオープンソースとして公開しました。