Remote Config 条件式リファレンス

このページには、Remote Config バックエンド API または Firebase コンソールを使用して条件式を作成する際のリファレンス情報が記載されています。バックエンド API の設定と使用方法について詳しくは、プログラムで Remote Config を変更するをご覧ください。

条件を作成するために使用される要素

Remote Config REST API でサポートされる要素は、Firebase コンソールで Remote Config を構成するときに条件の作成に使用できる要素と同じです。

要素 説明
&&

条件に複数の要素を使用するときに、要素の論理「積」を示すために使用する要素。REST 構文内で && なしで要素が使用されている場合、その要素は条件として扱われます。

注: アンパサンドの前後にスペースが必要です。例: element1 && element2

app.build

アプリのビルド番号の値に基づいて、TRUE または FALSE と評価されます。

注: Apple デバイスと Android デバイスでのみ使用できます。Apple の場合は CFBundleVersion の値を使用し、Android の場合は versionCode の値を使用します。

app.version

アプリのバージョン番号の値に基づいて、TRUE または FALSE と評価されます。

注: Android デバイスの場合は versionName の値を使用し、Apple デバイスの場合は CFBundleShortVersionString の値を使用します。

app.id アプリの Firebase アプリ ID に基づく要素。
app.audiences ユーザーが 1 つ以上の Firebase 向け Google アナリティクスのオーディエンスに含まれるかどうかに基づいて、TRUE または FALSE と評価される要素。
app.firstOpenTimestamp ユーザーが初めてアプリを起動した時刻に基づく要素。Google アナリティクスの first_open イベントから取得されます。ISO 日付形式を使用して、固定のタイムゾーンを指定するオプションを設定します。例: app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles')。タイムゾーンが指定されていない場合、GMT が使用されます。
app.userProperty Firebase 向け Google アナリティクスのユーザー プロパティの数値または文字列値に基づいて、TRUE または FALSE と評価される要素。
app.operatingSystemAndVersion

アプリが実行されているオペレーティング システムに基づく要素。OS と OS バージョンが指定したターゲットに一致する場合に TRUE と評価されます。

注: ウェブアプリでのみ使用できます。

app.browserAndVersion

アプリが実行されているブラウザに基づく要素。ブラウザとブラウザのバージョンが指定したターゲットに一致する場合に TRUE と評価されます。

注: ウェブアプリでのみ使用できます。

app.firebaseInstallationId 特定のデバイス インストールの ID に基づく要素。インストール ID が指定のインストール ID のいずれかと一致する場合に TRUE と評価されます。
device.country デバイスが存在する地域や国に基づく要素。ISO 3166-1 alpha-2 規格(US、UK など)を使用します。国が想定された国コードと一致する場合に TRUE と評価されます。
device.dateTime デバイスが最後にフェッチした時刻に基づく要素。ISO 日付形式を使用して、固定のタイムゾーンを指定するオプションを設定します。例: dateTime('2017-03-22T13:39:44', 'America/Los_Angeles')
device.language デバイスで選択されている言語に基づく要素。言語は、es-ES、pt-BR、または en-US などの IETF 言語タグを使用して表されます。言語が想定された言語コードと一致する場合に TRUE と評価されます。
device.os デバイスのオペレーティング システム(Apple または Android)に基づく要素。デバイスの OS が想定されたタイプである場合に TRUE と評価されます。
percent ランダムに割り当てられた小数パーセンテージ(0.000001% 程度のサンプルサイズ)にユーザーが含まれる場合に TRUE と評価されます。

単一要素条件には、次の 3 つのフィールドがあります。

  1. 任意に定義される name(最大 100 文字)。
  2. 上記の要素で構成される、TRUE または FALSE と評価される条件式。
  3. (省略可)tagColor として、「BLUE」、「BROWN」、「CYAN」、「DEEP_ORANGE」、「GREEN」、「INDIGO」、「LIME」、「ORANGE」、「PINK」、「PURPLE」、「TEAL」のいずれかを指定できます。色の指定では大文字と小文字は区別されません。この色は、Firebase コンソールでの条件の表示にのみ適用されます。

サポートされている演算子

たとえば app.build.notContains([123, 456]) とすると、実際のアプリのビルド番号が 123 または 492 である場合は TRUE、999 である場合は FALSE が返されます。app.version.notContains([123, 456]) とすると、実際のアプリのバージョン番号が 123 か 492 である場合は TRUE、999 である場合は FALSE が返されます。
要素 サポートされている演算子 説明
app.audiences .inAtLeastOne([...]) 実際のオーディエンスが、リスト内の少なくとも 1 つのオーディエンス名と一致する場合に、TRUE を返します。
例:

app.audiences.inAtLeastOne(['Audience 1', 'Audience 2'])

app.audiences .notInAtLeastOne([...]) 実際のオーディエンスが、リスト内の少なくとも 1 つのオーディエンス名と一致しない場合に、TRUE を返します。
app.audiences .inAll([...]) 実際のオーディエンスが、リスト内のすべてのオーディエンス名のメンバーである場合に、TRUE を返します。
app.audiences .notInAll([...]) 実際のオーディエンスが、リスト内のオーディエンスのメンバーでない場合に、TRUE を返します。
app.firstOpenTimestamp <=, > first_open イベントの時刻と条件で指定されている時刻を比較し、演算子に基づいて TRUE または FALSE を返します。
使用例:
app.firstOpenTimestamp >= ('2022-10-31T14:37:47', 'America/Los_Angeles')
範囲を指定する場合:
app.firstOpenTimestamp >= ('2022-11-01T00:00:00') && app.firstOpenTimestamp < ('2022-12-01T00:00:00') タイムゾーンが指定されていない場合、GMT が使用されます。
app.userProperty <<===!=>=> 実際のユーザー プロパティと指定された値を数値的に比較した結果が演算子と一致する場合に、TRUE を返します。
app.userProperty .contains([...]) いずれかのターゲット値が実際のユーザー プロパティの部分文字列である場合に、TRUE を返します。
app.userProperty .notContains([...]) いずれのターゲット値も実際のユーザー プロパティの部分文字列ではない場合に、TRUE を返します。
app.userProperty .exactlyMatches([...]) 実際のユーザー プロパティが、リスト内のいずれかのターゲット値と正確に一致する(大文字と小文字を区別)場合に、TRUE を返します。
app.userProperty .matches([...]) リスト内のいずれかのターゲット正規表現が、実際の値の部分または全体と一致する場合に、TRUE を返します。文字列全体と照合するには、正規表現の前に「^」、末尾に「$」を付けます。RE2 構文を使用します。
app.id == 指定された値がアプリ ID と一致する場合に TRUE を返します。
app.build <<===!=>=> 実際のアプリのビルドと、指定された値を数値的に比較した結果が演算子と一致する場合に、TRUE を返します。
app.build .contains([...]) いずれかのターゲット値が実際のアプリのビルドの部分文字列である場合に、TRUE を返します(例: 「a」や「bc」は「abc」の部分文字列です)。
app.build .notContains([...]) いずれのターゲット値も実際のアプリのビルドの部分文字列ではない場合に、TRUE を返します。
app.build .exactlyMatches([...]) 実際のアプリのビルドがリスト内のいずれかのターゲット値と完全に一致する場合に TRUE を返します。
app.build .matches([...]) リスト内のいずれかのターゲット正規表現が、実際の値の部分または全体と一致する場合に TRUE を返します。文字列全体と照合するには、正規表現の前に「^」、末尾に「$」を付けます。RE2 構文を使用します。
app.version <<===!=>=> 実際のアプリ バージョンと指定された値を数値的に比較した結果が演算子と一致する場合に、TRUE を返します。
app.version .contains([...]) いずれかのターゲット値が実際のアプリのバージョンの部分文字列である場合に、TRUE を返します(例: 「a」や「bc」は「abc」の部分文字列です)。
app.version .notContains([...]) いずれのターゲット値も実際のアプリのバージョンの部分文字列ではない場合に、TRUE を返します。
app.version .exactlyMatches([...]) 実際のアプリのバージョンがリスト内のいずれかのターゲット値と完全に一致する場合に TRUE を返します。
app.version .matches([...]) リスト内のいずれかのターゲット正規表現が、実際の値の部分または全体と一致する場合に TRUE を返します。文字列全体と照合するには、正規表現の前に「^」、末尾に「$」を付けます。RE2 構文を使用します。
app.operatingSystemAndVersion .inOne([...]) OS とバージョンがリスト内のいずれかのターゲット値と一致する場合に TRUE を返します。
例:

    app.operatingSystemAndVersion.inOne([operatingSystemName('Macintosh').version.==('10.15')])
    

app.browserAndVersion .inOne([...]) ブラウザとバージョンがリスト内のいずれかのターゲット値と一致する場合に TRUE を返します。
例:

    app.browserAndVersion.inOne([browserName('Chrome').anyVersion])
    

app.firebaseInstallationId in [...] インストール ID がリストで指定されたいずれかの値と一致する場合に TRUE を返します。使用例: app.firebaseInstallationId in ['eyJhbGciOiJFUzI1N_iIs5', 'eapzYQai_g8flVQyfKoGs7']
device.country in [...] デバイスの国がリストで指定されたいずれかと一致する場合に TRUE を返します。使用例: device.country in ['gb', 'us']。デバイスの国コードは、リクエスト内のデバイスの IP アドレス、または Firebase 向け Google アナリティクスによって決定された国コード(アナリティクス データが Firebase と共有されている場合)を使用して決定されます。
device.dateTime <=> 現在時刻を条件のターゲット時刻と比較し、演算子に基づいて TRUE または FALSE と評価します。使用例: dateTime < dateTime('2017-03-22T13:39:44')
device.language in [...] アプリの言語がリスト内の言語と一致する場合に、TRUE を返します。使用例: device.language in ['en-UK', 'en-US']
device.os ==!= デバイスのオペレーティング システムと該当のフィールドの値を比較した結果が演算子と一致する場合に、TRUE を返します。
percent <=>between percent フィールドの値とランダムに割り当てられた値を比較した結果が演算子と一致する場合に、TRUE を返します。

条件ルールの種類で説明されているように、指定されたパーセンテージ範囲でランダムに割り当てられるアプリ インスタンスの新しいグループを選択するためのシードを指定できます。

それには、次の例のように、演算子の前にシードの名前を指定します。

percent('keyName') <= 10

特定の範囲を構成するには、between 演算子を使用します。デフォルトのシードを使用してユーザーの範囲を 20~60 に構成するには:

percent between 20 and 60

カスタムシードを使用してユーザーの範囲を 60~80 に構成するには:

percent('seedName') between 60 and 80