Firebase Remote Config

アプリのアップデートを公開しなくても、アプリの動作と外観を変更できます。コストはかからず、1 日あたりのアクティブ ユーザー数の制限もありません。

Firebase Remote Config は、ユーザーにアプリのアップデートをダウンロードしてもらわなくても、アプリの動作や外観を変更できるクラウド サービスです。Remote Config を使用して、アプリの動作や外観を制御するためのアプリ内デフォルト値を作成できます。その後、Firebase コンソールか Remote Config バックエンド API を使用して、すべてのアプリユーザーまたはユーザーベースの特定セグメントに対して、アプリ内デフォルト値をオーバーライドできます。アップデートを適用するタイミングはアプリ側で制御できます。アプリはアップデートの有無を頻繁にチェックし、パフォーマンスにほとんど影響をおよぼすことなくアップデートを適用できます。

iOS+ の設定 Android の設定 ウェブの設定 Flutter の設定 C++ の設定 Unity の設定 バックエンド API

主な機能

アプリのユーザーベースに機能変更をすばやくロールアウトする サーバーサイド パラメータ値を変更することで、アプリのデフォルトの動作や外観を変更できます。たとえば、Remote Config パラメータをフィーチャー トグルとして使用して、季節限定のプロモーションに対応するようにアプリのレイアウトやカラーテーマを変更できます。アプリの更新を公開する必要はありません。
ユーザーベースのセグメントに対してアプリをカスタマイズする Remote Config を使用すると、ユーザーベースのさまざまなセグメントに対し、アプリのバージョン、言語、Google アナリティクスのオーディエンスインポートしたセグメントに応じたさまざまなアプリユーザー エクスペリエンスを実現できます。
Remote Config のパーソナライズを使用すると、個々のユーザーに合わせてアプリを自動的、継続的にカスタマイズして、戦略的な目標に向けて最適化できます。 機械学習を使用して個々のユーザー エクスペリエンスを継続的に調整し、Remote Config のパーソナライズを使用して、ユーザー エンゲージメント、広告クリック、収益などの目標や、Google アナリティクスで測定可能なカスタム イベントに合わせて最適化を行います。
A/B テストを実施してアプリを改善する A/B TestingGoogle アナリティクスによるランダム パーセンテージ ターゲティングを使用すると、ユーザーベース全体にロールアウトする前に、アプリに関する改善を異なるユーザーベースのセグメントで A/B テストして、改善を検証できます。

仕組み

Remote Config には、パラメータ値のフェッチやキャッシュといった重要なタスクを処理するクライアント ライブラリが含まれています。また、新しい値が有効になる(したがってアプリのユーザー エクスペリエンスに反映される)タイミングを制御できます。このため、変更のタイミングを制御することによって、アプリのエクスペリエンスを保護できます。

最新の Remote Config パラメータ値が公開後すぐに自動的にフェッチされるように、フェッチ ロジックにリアルタイム Remote Config 機能を追加することをおすすめします。

Remote Config クライアント ライブラリの get メソッドを介して、あらゆるパラメータ値にアクセスできます。アプリがサーバーサイドの値を取得するために使用するロジックは、アプリ内デフォルト値を取得する場合と同じであるため、大量のコードを記述することなく Remote Config の機能をアプリに追加できます。

アプリ内デフォルト値をオーバーライドするには、Firebase コンソールか Remote Config バックエンド API を使用して、アプリで使用するパラメータと同じ名前のパラメータを作成します。それぞれのパラメータに、アプリ内デフォルト値をオーバーライドするサーバーサイド デフォルト値を設定できます。また、特定の条件を満たすアプリ インスタンスについてアプリ内デフォルト値をオーバーライドする条件値をパラメータごとに作成することもできます。

パラメータや条件、および Remote Config が条件値間の競合を解決する方法について詳しくは、Remote Config のパラメータと条件をご覧ください。

実装パス

アプリと Remote Config を統合する Remote Config を使ってアプリの動作と外観のどの側面を変更したいかを定義し、それらをアプリ内で使うパラメータとして作成します。
デフォルト パラメータ値を設定する setDefaults() を使用して Remote Config パラメータのアプリ内デフォルト値を設定し、必要に応じて Remote Config テンプレートのデフォルトをダウンロードします。
パラメータ値のフェッチ、有効化、取得を行うロジックを追加する アプリでは、Remote Config バックエンドから定期的にパラメータ値を安全かつ効率的にフェッチし、フェッチされた値を有効化できます。リアルタイム Remote Config を使用すると、新しい Remote Config バージョンが公開されるとすぐに、ポーリングなしで更新された値をアプリでフェッチできます。

値をフェッチする最適なタイミングや、サーバーサイドの値が存在するかどうかを心配することなくアプリを作成できます。

アプリでは、get メソッドを使用してパラメータの値を取得します。これは、アプリで定義されたローカル変数の値を読み取ることに似ています。

(必要に応じて)サーバーサイド デフォルト値と条件パラメータ値を更新する Firebase コンソールまたは Remote Config バックエンド API で値を定義して、アプリ内デフォルト値をオーバーライドできます。アプリ内デフォルト値にも、Remote Config バックエンドからフェッチされた値にも、同じ get メソッドを使ってアクセスするため、値のオーバーライドはアプリをリリースする前と後のどちらでも可能です。Remote Config のパラメータと値の管理と更新については、Remote Config テンプレートとバージョニングをご覧ください。
(必要に応じて)クライアントサイドのデフォルト パラメータ値を更新する アプリをアップデートするたびに、デフォルト パラメータ値を Remote Config バックエンドと同期する必要があります。XML、プロパティ リスト(plist)、JSON 形式のデフォルト値のファイルを簡単にダウンロードして、REST API と Firebase コンソールを使用してアプリをアップデートできます。詳しくは、Remote Config テンプレートのデフォルトをダウンロードするをご覧ください。

ポリシーと制限

次のポリシーにご注意ください。

  • Remote Config を使って、ユーザーの承認を必要とするアプリのアップデートを作成しないでください。信頼できないアプリであると判断されてしまうおそれがあります。
  • 機密データを Remote Config のパラメータキーまたはパラメータ値に格納しないでください。Remote Config データは転送中に暗号化されますが、エンドユーザーはクライアント アプリ インスタンスで利用可能なデフォルトの Remote Config パラメータまたはフェッチされた Remote Config パラメータにアクセスできます。
  • Remote Config を使ってアプリのターゲット プラットフォームの要件を回避しようとしないでください。

Remote Config のパラメータと条件にはいくつかの制限があります。詳しくはパラメータと条件の制限をご覧ください。

次の制限があります。

  • Firebase プロジェクトは、パラメータと条件の制限に記載された長さとコンテンツの制限事項に従い、Remote Config のパラメータを 2,000 個保有できます。

  • Firebase で保存できる Remote Config テンプレートの存続期間バージョン数は、最大 300 までです。この 300 バージョンの存続期間の上限には、削除されたテンプレートの保存されているバージョン番号も含まれます。詳しくは、テンプレートとバージョニングをご覧ください。

その他の種類のデータを保存する方法

  • Cloud Firestore は、Firebase と Google Cloud からのモバイル、ウェブ、サーバー開発に対応した、柔軟でスケーラブルなデータベースです。
  • Firebase Realtime Database は JSON アプリケーション データ(ゲームの状態やチャット メッセージなど)を格納し、接続されているすべてのデバイスで、変更を瞬時に同期します。データベースのオプションの違いについては、データベースの選択: Cloud Firestore または Realtime Database をご覧ください。
  • Firebase Hosting はグローバル アセット(ウェブサイトの HTML、CSS、JavaScript など)と、デベロッパーが提供するその他のアセット(グラフィック、フォント、アイコンなど)をホストします。
  • Cloud Storage は、画像、動画、音声などのファイルや、ユーザーが作成したその他のコンテンツを保存します。

次のステップ