Firebase Remote Config

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

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


準備ができたらプラットフォームを選択します。

iOS+ Android ウェブ Flutter

Unity C++ バックエンド API

主な機能

アプリのユーザーベースに変更をすばやくリリースする

パラメータ値をリモートで変更することで、アプリのデフォルトの動作や外観を変更できます。たとえば、Remote Config パラメータをフィーチャー トグルとして使用して、季節限定のプロモーションに対応するようにアプリのレイアウトやカラーテーマを変更できます。アプリの更新を公開する必要はありません。

ユーザーベースのセグメントに対してアプリをカスタマイズする Remote Config を使用すると、ユーザーベースのさまざまなセグメントに対し、アプリのバージョン、言語、Google Analytics オーディエンスインポートしたセグメントに応じたさまざまなアプリユーザー エクスペリエンスを実現できます。
Remote Config のパーソナライズを使用すると、個々のユーザーに合わせてアプリを自動的、継続的にカスタマイズして、戦略的な目標に向けて最適化できます。 機械学習を使用して個々のユーザー エクスペリエンスを継続的に調整し、Remote Config パーソナライズを使用して、ユーザー エンゲージメント、広告クリック、収益などの目標や、Google Analytics で測定可能なカスタム イベントに合わせて最適化を行います。
ユーザーベースのターゲット セグメントに新機能を反復的にロールアウトし、自動的にプロビジョニングされたコントロール グループと比較する Remote Config のロールアウトを使用し、パラメータ値をフィーチャー トグルとして使用して対象となるアップデートをリリースするとともに、新機能を段階的にユーザーにリリースします。ロールアウト値を受け取るグループと同サイズのコントロール グループの CrashlyticsGoogle Analytics の結果を比較して、リリースの安定性と成功を判断します。
A/B テストを実施してアプリを改善する A/B TestingGoogle Analytics によるランダム パーセンテージ ターゲティングを使用すると、ユーザーベース全体にロールアウトする前に、ユーザーベースのさまざまなセグメントでアプリの改善に関する A/B テストを実行して、改善を検証できます。

仕組み

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

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

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

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

Remote Config のサーバー クライアント ライブラリは、Firebase Admin Node.js SDK v12.1.0 以降にも含まれています。サーバー実装では、これを使用して、Remote Config によって保存されたサーバー固有のテンプレートから値を取得できます。詳しくは、サーバー環境で Remote Config を使用するをご覧ください。

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

実装パス

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

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

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

(必要に応じて)Remote Config のデフォルト値と条件パラメータ値を更新する

Firebase コンソールまたは Remote Config バックエンド API で値を定義して、アプリ内デフォルト値をオーバーライドできます。アプリ内デフォルト値にも、Remote Config バックエンドからフェッチされた値にも、同じ get メソッドを使ってアクセスするため、値のオーバーライドはアプリをリリースする前と後のどちらでも可能です。Remote Config パラメータと値の管理と更新については、Remote Config テンプレートとバージョニングをご覧ください。

(必要に応じて)アプリのデフォルト パラメータ値を更新する アプリをアップデートするたびに、デフォルト パラメータ値を Remote Config バックエンドと同期する必要があります。XML、プロパティ リスト(plist)、JSON 形式のデフォルト値のファイルを簡単にダウンロードして、REST API と Firebase コンソールを使用してアプリをアップデートできます。詳細については、Remote Config テンプレートのデフォルトをダウンロードするをご覧ください。
A/B TestingRemote Config のパーソナライズを使用してユーザー エクスペリエンスをカスタマイズし、目標達成に最適なパラメータ値を判別します。 アプリに Remote Config を実装したら、A/B TestingRemote Config のパーソナライズなどの強化機能を使用して、アプリのテスト、拡張、更新を行うことができます。

ポリシーと制限

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

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

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

次の制限があります。

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

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

  • 実行中の A/B テストRemote Config のロールアウトを合わせて、最大 24 件を実行できます。

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

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

次のステップ