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 プロジェクトは、テンプレート タイプ(クライアントまたはサーバー)ごとに 2,000 個の Remote Config パラメータを設定できます。これらのパラメータには、パラメータと条件の制限に記載されている長さとコンテンツの制限が適用されます。

  • 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 は、画像、動画、音声などのファイルや、ユーザーが作成したその他のコンテンツを保存します。

次のステップ