Remote Config のパラメータと条件

Remote Config を使うときは、1 つまたは複数のパラメータ(Key-Value ペア)を定義し、これらのパラメータのアプリ内デフォルト値を設定します。アプリ内デフォルト値は、Firebase console を使用してサーバー側パラメータ値を定義してオーバーライドすることができます。パラメータキーとパラメータ値は文字列ですが、パラメータ値はアプリで値を使用するときに他のデータ型にキャストすることができます。

Firebase console を使って、パラメータの新しいデフォルト値を作成することも、アプリ インスタンスの対象グループとするために使用する条件値を作成することもできます。このガイドでは、パラメータ、条件、ルール、条件値に関する詳細と、Remote Config サーバーとアプリでさまざまなパラメータ値が優先順位で処理される方法について説明します。また、条件の作成に使用するルールのタイプについても詳しく説明します。

条件、ルール、条件値

条件はアプリ インスタンスの特定のグループを対象にするために使用し、1 つまたは複数のルールで構成します。特定のアプリ インスタンスに対して条件が true と評価されるには、すべてのルールが true と評価される必要があります。ルールの値が定義されていない場合(値が利用できない場合など)は、そのルールは false と評価されます。

条件値は、条件と、その条件の対象となるアプリ インスタンスでフェッチされた値で構成されます。パラメータは、異なる条件を使用する複数の条件値を取ることができ、複数のパラメータが単一プロジェクト内の条件を共有することができます。

パラメータ値の優先順位

パラメータには複数の条件値が関連付けられる場合があります。次のルールによって、Remote Config サーバーからどの値をフェッチするか、また、特定のタイミングにおいて特定のアプリ インスタンスでどの値を使用するかが決定されます。

サーバー側パラメータ値は、次の優先順位リストに従ってフェッチされる

  1. まず、特定のアプリ インスタンスに対して true と評価される条件があれば、その条件値が適用されます。複数の条件が true と評価された場合、Firebase console UI の最初(一番上)に表示されている条件が優先されます。アプリがサーバーから値をフェッチすると、その条件に関連付けられた条件値が提供されます。条件の優先順位は、[条件] タブで条件をドラッグ&ドロップすることにより変更できます。
  2. 条件が true と評価される条件値が存在しない場合、アプリがサーバーから値をフェッチするとサーバー側デフォルト値が提供されます。パラメータがサーバーに存在しない場合、またはデフォルト値が No value に設定されている場合は、アプリが値をフェッチしても、そのパラメータの値は提供されません。

アプリでは、次の優先順位リストに従ってパラメータ値が get メソッドによって返される

  1. サーバーから値がフェッチされ、有効化された場合、アプリはそのフェッチした値をします。有効化されたパラメータ値は永続的です。
  2. サーバーから値がフェッチされなかった場合、またはサーバーからフェッチされた値が有効化されていない場合、アプリはアプリ内デフォルト値を使用します。
  3. アプリ内デフォルト値が設定されていない場合、アプリは静的型の値(int の場合は 0boolean の場合は false など)を使用します。

次の図は、サーバー側とアプリ内でパラメータ値の優先順位がどのように決められるかを示しています。

ルールの種類

サポートされるルールの種類は次のとおりです。

ルールの種類 演算子
アプリ == Firebase プロジェクトに関連付けられたアプリのアプリ ID のリストから選択します。 アプリを Firebase に追加する場合、iOS バンドル ID または Android パッケージ名を入力します。これらの情報により Remote Config ルールでアプリ ID を公開する属性が決まります。

この属性は、次のように使用します。
  • iOS の場合: アプリの CFBundleIdentifier を使用します。 バンドル ID は Xcode 内のアプリのメイン ターゲットの [全般] タブにあります。
  • Android の場合: アプリの applicationId を使用します。 applicationId はアプリレベルの build.gradle ファイルにあります。
アプリのバージョン 完全一致、
次を含む、
次を含まない、
正規表現
アプリの特定のバージョン(または関連バージョン)を指定する値を入力します。このルールを使用するには、最初にアプリ ID ルールを使って、Firebase プロジェクトに関連付けられているアプリを選択する必要があります。

iOS アプリの場合はアプリの CFBundleVersion、Android アプリの場合はアプリの android:versionName になります。このルールの文字列の比較では大文字と小文字が区別されます。

[完全一致]、[次を含む]、または [次を含まない] 演算子を使うときは、カンマ区切り値リストを指定できます。

[正規表現] 演算子を使うときは、RE2 形式で正規表現を作成できます。正規表現は対象バージョン文字列の全部または一部に一致させることができます。また、対象文字列の先頭、末尾、または全体と一致させるために ^$ アンカーを使うこともできます。

OS の種類 == iOS
Android 版
 
ユーザー(ランダム %) <=、> 0~100

<=> 演算子を使用し、ユーザー(アプリ インスタンス)を複数グループに分割して無作為に抽出したアプリ インスタンス(0.0001% 程度のサンプルサイズ)に対する変更をグループに適用するには、このフィールドを使用します。

各アプリ インスタンスはプロジェクトで定義されたキーに従って、ランダムな整数または小数に永続的にマッピングされます。別のキーを選択するか作成しない限り、ルールではデフォルトのキー(Firebase コンソールでは DEF と表示されます)が使用されます。[このキーを使用してユーザーをランダム化] フィールドをクリアすると、デフォルトのキーを使うルールに戻すことができます。複数のルールに単一のキーを使用して、指定したパーセント範囲内の同じアプリ インスタンスを一貫性をもって扱うことができます。または新しいキーを作成して、指定したパーセント範囲に対応するランダムに割り当てたアプリ インスタンスの新しいグループを選択することができます。

たとえば、重複しない 5% のアプリのユーザーにそれぞれ当てはまる 2 つの関連する条件を作成するには、<= 5% というルールを含む条件と、> 5%<= 10% というルールを含む条件を作成します。あるユーザーがどちらのグループにもランダムに現れるようにするには、各条件のルールに対して別々のキーを使用します。

ユーザー層 == プロジェクトで設定した Firebase Analytics のユーザーの一覧から 1 人または複数のユーザーを選択します。

このルールを使用するには、アプリ ID ルールを使って、Firebase プロジェクトで関連付けられているアプリを選択する必要があります。

注: 多くの Analytics ユーザーリストは、アプリユーザーの操作に基づくイベントまたはユーザー プロパティによって定義されるため、特定のアプリ インスタンスに対してユーザー層ルールが有効になるまで少し時間がかかる場合があります。

端末の地域 / 国 == 1 つまたは複数の地域や国を選択します。 このルールは、特定のアプリ インスタンスが、リストされている地域や国のいずれかにある場合に、そのアプリ インスタンスに対して true と評価します。
端末の言語 == 1 つまたは複数の言語を選択します。 このルールは、リスト内にあるいずれかの言語を使用する端末に特定のアプリ インスタンスがインストールされている場合に、そのアプリ インスタンスに対して true と評価されます。
ユーザー プロパティ 文字列:
次を含む、
次を含まない、
完全一致、
正規表現

数値:
=、≠、>、≥、<、≤
利用可能な Firebase Analytics のユーザー プロパティの一覧から選択します。 ユーザー プロパティを使用してユーザー層の特定のセグメントをカスタマイズする方法については、Remote Config およびユーザー プロパティをご覧ください。

ユーザー プロパティの詳細については、以下のガイドをご覧ください。

[完全一致]、[次を含む]、または [次を含まない] 演算子を使うときは、カンマ区切り値リストを指定できます。

[正規表現] 演算子を使うときは、RE2 形式で正規表現を作成できます。正規表現は対象バージョン文字列の全部または一部に一致させることができます。また、対象文字列の先頭、末尾、または全体と一致させるために ^$ アンカーを使うこともできます。

注: 自動収集したユーザー プロパティは、現在 Remote Config 条件の作成には利用できません。

パラメータと条件の検索

Firebase console で、Remote Config の [パラメータ] タブ上部にある検索ボックスを使用して、プロジェクトのパラメータキー、パラメータ値、条件を検索できます。

パラメータと条件の制限

Firebase プロジェクト内には、最大 2,000 個のパラメータ、最大 100 個の条件を設定できます。パラメータキーは 256 文字までです。プロジェクト内のパラメータ値文字列の合計長は、500,000 文字を超えることはできません。

次のステップ

Firebase プロジェクトの設定を開始するには、Firebase Remote Config プロジェクトの設定についての記事をご覧ください。

フィードバックを送信...