Firebase Remote Config
アプリのアップデートを公開しなくても、ウェブ クライアントまたはサーバーの動作と外観を変更できます。費用はかからず、1 日あたりのアクティブ ユーザー数の制限もありません。
準備ができたらプラットフォームを選択します。
主な機能
アプリのユーザーベースに変更をすばやくリリースする | パラメータ値をリモートで変更することで、アプリのデフォルトの動作や外観を変更できます。たとえば、Remote Config パラメータをフィーチャー トグルとして使用して、季節限定のプロモーションに対応するようにアプリのレイアウトやカラーテーマを変更できます。アプリの更新を公開する必要はありません。 |
ユーザーベースのセグメントに対してアプリをカスタマイズする | Remote Config を使用すると、ユーザーベースのさまざまなセグメントに対し、アプリのバージョン、言語、Google Analytics オーディエンス、インポートしたセグメントに応じたさまざまなアプリユーザー エクスペリエンスを実現できます。 |
Remote Config のパーソナライズを使用すると、個々のユーザーに合わせてアプリを自動的、継続的にカスタマイズして、戦略的な目標に向けて最適化できます。 | 機械学習を使用して個々のユーザー エクスペリエンスを継続的に調整し、Remote Config パーソナライズを使用して、ユーザー エンゲージメント、広告クリック、収益などの目標や、Google Analytics で測定可能なカスタム イベントに合わせて最適化を行います。 |
ユーザーベースのターゲット セグメントに新機能を反復的にロールアウトし、自動的にプロビジョニングされたコントロール グループと比較する | Remote Config のロールアウトを使用し、パラメータ値をフィーチャー トグルとして使用して対象となるアップデートをリリースするとともに、新機能を段階的にユーザーにリリースします。ロールアウト値を受け取るグループと同サイズのコントロール グループの Crashlytics と Google Analytics の結果を比較して、リリースの安定性と成功を判断します。 |
A/B テストを実施してアプリを改善する | A/B Testing と Google 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 バージョンが公開されるとすぐに、ポーリングなしで更新された値をアプリでフェッチできます。 値をフェッチする最適なタイミングや、サーバーサイドの値が存在するかどうかを心配することなくアプリを作成できます。 アプリでは、 |
|
(必要に応じて)Remote Config のデフォルト値と条件パラメータ値を更新する |
Firebase コンソールまたは Remote Config バックエンド API で値を定義して、アプリ内デフォルト値をオーバーライドできます。アプリ内デフォルト値にも、Remote Config バックエンドからフェッチされた値にも、同じ |
|
(必要に応じて)アプリのデフォルト パラメータ値を更新する | アプリをアップデートするたびに、デフォルト パラメータ値を Remote Config バックエンドと同期する必要があります。XML、プロパティ リスト(plist)、JSON 形式のデフォルト値のファイルを簡単にダウンロードして、REST API と Firebase コンソールを使用してアプリをアップデートできます。詳細については、Remote Config テンプレートのデフォルトをダウンロードするをご覧ください。 | |
A/B Testing と Remote Config のパーソナライズを使用してユーザー エクスペリエンスをカスタマイズし、目標達成に最適なパラメータ値を判別します。 | アプリに Remote Config を実装したら、A/B Testing や Remote 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 は、画像、動画、音声などのファイルや、ユーザーが作成したその他のコンテンツを保存します。
次のステップ
- 一般的なユースケースを確認して、Remote Config で何ができるかを把握する。
- 設計を開始します。Remote Config のパラメータと条件や読み込み方法など、主要なコンセプトと方法を確認する。
- Remote Config とアプリの統合を開始する。Android、iOS+、ウェブの設定ガイドをご覧ください。
- プログラムによって Remote Config パラメータ値を読み取り、変更する方法を学習する。
- A/B テストで Remote Config テストを作成する方法を学習する。
- Remote Config パーソナライズを使用して、個々のユーザー エクスペリエンスを自動的に最適化し、目標を達成する方法を確認する。
- Remote Config ロールアウトを使用して、新機能をユーザーベースに段階的に反復的にリリースし、Crashlytics と Google Analytics の結果を並べて、成功と安定性を確認する方法を学習する。
- サーバー環境で Remote Config を使用する方法を学習する。