Parameter dan Kondisi Remote Config

Anda dapat mengonfigurasi template untuk kasus penggunaan klien dan server. Template klien disajikan ke semua instance aplikasi yang menerapkan SDK klien Firebase untuk Remote Config, termasuk aplikasi Android, Apple, Web, Unity, Flutter dan C++. Parameter dan nilai Remote Config dari template khusus server disajikan ke implementasi Remote Config (termasuk Cloud Run dan Cloud Functions) yang menggunakan Firebase Admin Node.js SDK v12.1.0+.

Saat menggunakan Firebase console atau API backend Remote Config, Anda menetapkan satu atau beberapa parameter (key-value pair) dan memberikan value default dalam aplikasi untuk parameter tersebut. Anda dapat mengganti nilai default dalam aplikasi dengan menetapkan parameter value. Kunci parameter dan parameter value berupa string, tetapi parameter value dapat berperan sebagai jenis data lain jika nilai tersebut digunakan dalam aplikasi Anda.

Dengan menggunakan Firebase console, Admin SDK atau REST API Remote Config, Anda dapat membuat value default baru untuk parameter, serta value kondisional yang digunakan untuk menarget grup instance aplikasi. Setiap kali Anda memperbarui konfigurasi di Firebase console, Firebase akan membuat dan memublikasikan versi baru template Remote Config Anda. Versi yang sebelumnya akan disimpan, sehingga Anda dapat mengambil atau melakukan rollback sesuai kebutuhan. Operasi ini tersedia untuk Anda melalui Firebase console, Firebase Admin SDK, dan REST API, serta dijelaskan secara lebih dalam di bagian Mengelola versi template Remote Config.

Panduan ini menjelaskan parameter, kondisi, aturan, value kondisional, dan bagaimana berbagai parameter value diprioritaskan di Server Remote Config dan di aplikasi Anda. Panduan ini juga menguraikan detail tentang jenis aturan yang digunakan untuk membuat kondisi.

Kondisi, aturan, dan value kondisional

Kondisi digunakan untuk menarget grup instance aplikasi. Kondisi terdiri dari satu atau beberapa aturan yang semuanya harus bernilai true agar kondisi dapat bernilai true untuk instance aplikasi tertentu. Jika nilai untuk aturan tidak ditentukan (misalnya, saat tidak ada nilai yang tersedia), aturan tersebut akan bernilai false.

Misalnya, parameter yang menentukan halaman pembuka aplikasi dapat menampilkan gambar yang berbeda berdasarkan jenis OS, dengan menggunakan aturan sederhana if device_os = Android:

Screenshot parameter 'splash_page' di Firebase console yang menunjukkan nilai default untuk iOS dan value kondisional untuk Android

Atau, kondisi waktu dapat digunakan untuk mengontrol kapan aplikasi Anda menampilkan item promosi khusus.

Sebuah parameter dapat memiliki beberapa value kondisional yang menggunakan kondisi berbeda, dan parameter dapat berbagi kondisi dalam satu project. Di tab Parameters pada Firebase console, Anda dapat melihat persentase pengambilan untuk value kondisional setiap parameter. Metrik ini menunjukkan persentase permintaan dalam 24 jam terakhir yang menerima setiap nilai.

Prioritas parameter value

Sebuah parameter dapat memiliki beberapa value kondisional yang terkait dengannya. Aturan berikut menentukan value mana yang diambil dari Server Remote Config, dan value mana yang digunakan dalam instance aplikasi tertentu pada titik waktu tertentu:

Nilai parameter diambil sesuai dengan daftar prioritas berikut

  1. Pertama, value kondisional diterapkan, jika ada yang memiliki kondisi yang bernilai true untuk instance aplikasi tertentu. Jika beberapa kondisi bernilai true, kondisi pertama (teratas) yang ditampilkan di UI Firebase console akan lebih diutamakan, dan value kondisional yang terkait dengan kondisi tersebut akan diberikan saat aplikasi mengambil nilai dari backend. Anda dapat mengubah prioritas kondisi dengan menarik lalu melepas kondisi di tab Conditions.

  2. Jika tidak ada nilai kondisional dengan kondisi yang bernilai true, nilai default Remote Config akan diberikan ketika aplikasi mengambil nilai dari backend. Jika parameter tidak ada pada backend, atau jika value default disetel ke Use in-app default, tidak ada nilai yang akan diberikan untuk parameter tersebut ketika aplikasi mengambil value.

Di aplikasi Anda, parameter value ditampilkan dengan metode get sesuai dengan daftar prioritas berikut

  1. Jika value diambil dari backend lalu diaktifkan, aplikasi akan menggunakan value yang diambil tersebut. Parameter value yang diaktifkan bersifat tetap.
  2. Jika tidak ada value yang diambil dari backend, atau jika value yang diambil dari backend Remote Config belum diaktifkan, aplikasi akan menggunakan value default dalam aplikasi.

    Untuk mengetahui informasi lebih lanjut tentang cara mendapatkan dan menetapkan value default, lihat Mendownload default template Remote Config.

  3. Jika nilai default dalam aplikasi tidak ditetapkan, aplikasi akan menggunakan nilai jenis statis (seperti 0 untuk int dan false untuk boolean).

Gambar ini merangkum cara memprioritaskan parameter value pada backend Remote Config dan aplikasi Anda:

Diagram yang menunjukkan alur yang dijelaskan oleh daftar yang diurutkan di atas

Jenis data parameter value

Dengan Remote Config, Anda dapat memilih jenis data untuk setiap parameter dan memvalidasi semua nilai Remote Config terhadap jenis tersebut sebelum update template. Jenis data disimpan dan ditampilkan dengan permintaan getRemoteConfig.

Jenis yang didukung saat ini adalah:

  • String
  • Boolean
  • Number
  • JSON

Di UI Firebase console, jenis data dapat dipilih dari dropdown di samping kunci parameter. Di REST API, jenis dapat ditetapkan menggunakan kolom value_type dalam objek parameter.

Grup parameter

Dengan Remote Config, Anda dapat mengelompokkan beberapa parameter agar mendapat UI dan model mental yang lebih teratur.

Misalnya, Anda perlu mengaktifkan atau menonaktifkan tiga jenis autentikasi yang berbeda saat meluncurkan fitur login baru. Dengan Remote Config, Anda dapat membuat tiga parameter untuk mengaktifkan jenis yang diinginkan, lalu mengaturnya dalam grup bernama "Login baru", tanpa perlu menambahkan awalan atau pengurutan khusus.

Anda dapat membuat grup parameter menggunakan Firebase console atau REST API Remote Config. Setiap grup parameter yang Anda buat memiliki nama unik di template Remote Config Anda. Saat membuat grup parameter, perhatikan:

  • Parameter dapat disertakan hanya dalam satu grup pada waktu tertentu, dan kunci parameter harus tetap unik di semua parameter.
  • Nama grup parameter dibatasi hingga 256 karakter.
  • Jika Anda menggunakan REST API dan Firebase console, pastikan bahwa logika REST API diperbarui untuk menangani grup parameter saat publikasi.

Membuat atau mengubah grup parameter menggunakan Firebase console

Anda dapat mengelompokkan parameter di tab Parameters pada Firebase console. Untuk membuat atau memodifikasi grup:

  1. Pilih Manage groups.
  2. Centang kotak untuk parameter yang ingin Anda tambahkan dan pilih Move to group.
  3. Pilih grup yang ada, atau buat grup baru dengan memasukkan nama dan deskripsi, lalu pilih Create new group. Setelah disimpan, grup tersedia untuk dipublikasikan menggunakan tombol Publish changes.

Membuat grup secara terprogram

REST API Remote Config menyediakan cara otomatis untuk membuat dan memublikasikan grup parameter. Dengan asumsi bahwa Anda sudah terbiasa menggunakan REST dan siap mengizinkan permintaan ke API, Anda dapat melakukan langkah-langkah berikut untuk mengelola grup secara terprogram:

  1. Mengambil template saat ini
  2. Menambahkan objek JSON untuk mewakili grup parameter Anda
  3. Memublikasikan grup parameter menggunakan permintaan HTTP PUT.

Objek parameterGroups berisi kunci grup, dengan deskripsi bertingkat dan daftar parameter yang dikelompokkan. Perhatikan bahwa setiap kunci grup harus unik secara global.

Misalnya, berikut adalah kutipan dari revisi template yang menambahkan grup parameter "new menu" dengan satu parameter, pumpkin_spice_season:

{
  "parameters": {},
  "version": {
    "versionNumber": "1",

    …


  },
  "parameterGroups": {
    "new menu": {
      "description": "New Menu",
      "parameters": {
        "pumpkin_spice_season": {
          "defaultValue": {
            "value": "true"
          },
          "description": "Whether it's currently pumpkin spice season."
        }
      }
    }
  }
}

Jenis aturan kondisi

Jenis aturan berikut ini didukung di Firebase console. Fungsionalitas yang setara tersedia di REST API Remote Config, seperti yang dijelaskan dalam referensi ekspresi kondisional.

Jenis aturanOperatorValueCatatan
App == Pilih dari daftar ID Aplikasi untuk aplikasi yang terkait dengan project Firebase Anda. Saat menambahkan aplikasi ke Firebase, Anda harus memasukkan ID paket iOS atau nama paket Android, yang menentukan atribut yang ditunjukkan sebagai ID Aplikasi dalam aturan Remote Config.

Gunakan atribut ini seperti berikut:
  • Untuk platform Apple: Gunakan CFBundleIdentifier aplikasi. Anda dapat menemukan ID Paket dalam tab General untuk target utama aplikasi Anda di Xcode.
  • Untuk Android: Gunakan applicationId aplikasi. Anda dapat menemukan applicationId di file build.gradle level aplikasi Anda.
App version Untuk nilai string:
exactly matches,
contains,
does not contain,
ekspresi reguler

Untuk nilai numerik
=, ≠, >, ≥, <, ≤

Tentukan versi aplikasi yang akan ditargetkan.

Sebelum menggunakan aturan ini, Anda harus menggunakan aturan App ID untuk memilih aplikasi Android/Apple yang terkait dengan project Firebase Anda.

Untuk platform Apple: Gunakan CFBundleShortVersionString aplikasi.

Catatan: Pastikan aplikasi Apple Anda menggunakan Firebase Apple Platform SDK versi 6.24.0 atau yang lebih tinggi, karena CFBundleShortVersionString tidak dikirim di versi sebelumnya (lihatcatatan rilis).

Untuk Android: Gunakan versionName aplikasi.

Perbandingan string untuk aturan ini peka terhadap huruf besar dan kecil. Saat menggunakan operator exactly matches, contains, does not contain, atau ekspresi reguler, Anda dapat memilih beberapa value.

Saat menggunakan operator ekspresi reguler, Anda dapat membuat ekspresi reguler dalam format RE2. Ekspresi reguler Anda dapat cocok dengan semua atau sebagian dari string versi target. Anda juga dapat menggunakan tanda ^ dan $ untuk mencocokkan bagian awal, akhir, atau keseluruhan string target.

Build number Untuk nilai string:
exactly matches,
contains,
does not contain,
ekspresi reguler

Untuk nilai numerik
=, ≠, >, ≥, <, ≤

Tentukan build aplikasi yang akan ditargetkan.

Sebelum menggunakan aturan ini, Anda harus menggunakan aturan App ID untuk memilih aplikasi Apple atau Android yang terkait dengan project Firebase Anda.

Operator ini hanya tersedia untuk aplikasi Apple dan Android. Ini sama dengan CFBundleVersion aplikasi untuk Apple dan versionCode aplikasi untuk Android. Perbandingan string untuk aturan ini peka huruf besar/kecil.

Saat menggunakan operator exactly matches, contains, does not contain, atau ekspresi reguler, Anda dapat memilih beberapa value.

Saat menggunakan operator ekspresi reguler, Anda dapat membuat ekspresi reguler dalam format RE2. Ekspresi reguler Anda dapat cocok dengan semua atau sebagian dari string versi target. Anda juga dapat menggunakan tanda ^ dan $ untuk mencocokkan bagian awal, akhir, atau keseluruhan string target.

Platform == iOS
Android
Web
 
Operating system ==

Tentukan sistem operasi yang akan ditargetkan.

Sebelum menggunakan aturan ini, Anda harus menggunakan aturan App ID untuk memilih aplikasi Web yang terkait dengan project Firebase Anda.

Aturan ini bernilai true untuk instance aplikasi Web tertentu jika sistem operasi dan versinya cocok dengan nilai target dalam daftar yang ditentukan.
Browser ==

Tentukan browser yang akan ditargetkan.

Sebelum menggunakan aturan ini, Anda harus menggunakan aturan App ID untuk memilih aplikasi Web yang terkait dengan project Firebase Anda.

Aturan ini bernilai true untuk instance aplikasi Web tertentu jika browser dan versinya cocok dengan nilai target dalam daftar yang ditentukan.
Device category is, is not mobile Aturan ini mengevaluasi apakah perangkat yang mengakses aplikasi web Anda adalah perangkat seluler atau non-seluler (desktop atau konsol). Jenis aturan ini hanya tersedia untuk aplikasi web.
Languages is in Pilih satu atau beberapa bahasa. Aturan ini bernilai true untuk instance aplikasi tertentu jika instance aplikasi tersebut diinstal pada perangkat yang menggunakan salah satu bahasa yang terdaftar.
Country/Region is in Pilih satu atau beberapa region atau negara. Aturan ini bernilai true untuk instance aplikasi tertentu jika instance berada di region atau negara yang terdaftar. Kode negara perangkat ditentukan menggunakan alamat IP perangkat dalam permintaan atau kode negara yang ditentukan oleh Firebase Analytics (jika data Analytics dibagikan kepada Firebase).
User audience(s) Minimal menyertakan satu item Pilih satu atau beberapa dari daftar audience Google Analytics yang telah Anda siapkan untuk project Anda.

Aturan ini memerlukan aturan App ID untuk memilih aplikasi yang terkait dengan project Firebase Anda.

Catatan: Karena banyak audience Analytics ditentukan berdasarkan peristiwa atau properti pengguna, yang dapat didasarkan pada tindakan pengguna aplikasi, mungkin perlu waktu beberapa saat agar aturan User in audience dapat berlaku untuk instance aplikasi tertentu.

User property Untuk nilai string:
exactly matches,
contains,
does not contain,
ekspresi reguler

Untuk nilai numerik:
=, ≠, >, ≥, <, ≤

Catatan: Pada klien, Anda dapat menetapkan nilai string saja untuk properti pengguna. Untuk kondisi yang menggunakan operator numerik, Remote Config akan mengonversi nilai properti pengguna yang terkait menjadi bilangan bulat/float.
Pilih dari daftar properti pengguna Google Analytics yang tersedia. Guna mempelajari cara menggunakan properti pengguna untuk menyesuaikan aplikasi Anda untuk segmen basis pengguna yang sangat spesifik, lihat Remote Config dan properti pengguna.

Untuk mempelajari properti pengguna lebih lanjut, lihat panduan berikut ini:

Saat menggunakan operator exactly matches, contains, does not contain, atau ekspresi reguler, Anda dapat memilih beberapa nilai.

Saat menggunakan operator ekspresi reguler, Anda dapat membuat ekspresi reguler dalam format RE2. Ekspresi reguler Anda dapat cocok dengan semua atau sebagian dari string versi target. Anda juga dapat menggunakan tanda ^ dan $ untuk mencocokkan bagian awal, akhir, atau keseluruhan string target.

Catatan: Properti pengguna yang dikumpulkan secara otomatis saat ini tidak tersedia ketika membuat kondisi Remote Config.
Pengguna dalam persentase acak Penggeser (di Firebase console. REST API menggunakan operator <=, >, dan between). 0-100

Gunakan kolom ini untuk menerapkan perubahan pada sampel acak dari instance aplikasi (dengan ukuran sampel hingga sekecil 0,0001%), menggunakan widget penggeser untuk menyegmentasi pengguna yang diacak (instance aplikasi) ke dalam grup.

Setiap instance aplikasi secara terus-menerus dipetakan ke suatu bilangan bulat atau pecahan secara acak, berdasarkan seed yang ditentukan dalam project tersebut.

Aturan akan menggunakan kunci default (ditampilkan sebagai Edit seed di Firebase console), kecuali jika Anda mengubah nilai seed. Anda dapat menampilkan aturan untuk menggunakan kunci default dengan mengosongkan kolom Seed.

Untuk menangani instance aplikasi yang sama secara konsisten dalam rentang persentase tertentu, gunakan nilai seed yang sama di seluruh kondisi. Atau, pilih grup instance aplikasi baru yang ditetapkan secara acak untuk rentang persentase tertentu dengan menentukan benih baru.

Misalnya, untuk membuat dua kondisi terkait yang masing-masing berlaku untuk 5% pengguna aplikasi yang tidak tumpang-tindih, Anda dapat mengonfigurasi satu kondisi untuk mencocokkan persentase antara 0% dan 5% dan mengonfigurasi kondisi lain untuk dicocokkan dengan rentang antara 5% dan 10%. Agar beberapa pengguna dapat muncul secara acak di kedua grup, gunakan nilai seed yang berbeda untuk aturan dalam setiap kondisi.

Imported segment is in Pilih satu atau beberapa segmen yang diimpor. Aturan ini mengharuskan penyiapan segmen kustom yang diimpor.
Date/Time Before, After Tanggal dan waktu yang ditentukan, di zona waktu perangkat atau zona waktu tertentu seperti "(GMT+11) waktu Sydney". Membandingkan waktu saat ini dengan waktu pengambilan perangkat.
First open Before, After Tanggal dan waktu yang ditentukan, dalam zona waktu yang ditentukan.

Mencocokkan pengguna yang pertama kali membuka aplikasi yang ditarget dalam rentang waktu yang ditentukan.

Memerlukan SDK berikut:

  • Firebase SDK untuk Google Analytics
  • SDK platform Apple v9.0.0+ atau Android SDK v21.1.1+ (Firebase BoM v30.3.0+)

Installation ID is in Tentukan satu atau beberapa ID Penginstalan (hingga 50) yang akan ditargetkan. Aturan ini bernilai true untuk penginstalan tertentu jika ID penginstalan tersebut berada dalam daftar nilai yang dipisahkan koma.

Untuk mempelajari cara mendapatkan ID penginstalan, lihat Mengambil ID klien.
Pengguna ada (tanpa operator) Menargetkan semua pengguna pada semua aplikasi dalam project saat ini.

Gunakan aturan kondisi ini untuk mencocokkan semua pengguna dalam project, terlepas dari aplikasi atau platform yang digunakan.

Menelusuri parameter dan kondisi

Anda dapat menelusuri kunci parameter, parameter value, dan kondisi project dari Firebase console menggunakan kotak penelusuran di bagian atas tab Parameters pada Remote Config.

Batasan pada parameter dan kondisi

Dalam sebuah project Firebase, Anda dapat memiliki hingga 2.000 parameter dan 500 kondisi. Panjang kunci parameter maksimal 256 karakter, harus dimulai dengan garis bawah atau karakter abjad Latin (A-Z, a-z), dan juga bisa menyertakan angka. Panjang total string parameter value dalam satu project tidak boleh melebihi 1.000.000 karakter.

Melihat perubahan pada parameter dan kondisi

Anda dapat melihat perubahan terbaru pada template Remote Config dari Firebase console. Untuk setiap parameter dan kondisi, Anda dapat:

  • Melihat nama pengguna yang terakhir kali mengubah parameter atau kondisi.

  • Jika perubahan terjadi pada hari yang sama, melihat jumlah menit atau jam yang telah berlalu sejak perubahan dipublikasikan ke template Remote Config yang aktif.

  • Jika perubahan terjadi dalam satu atau beberapa hari yang lalu, melihat tanggal saat perubahan dipublikasikan ke template Remote Config yang aktif.

Pembaruan parameter

Di halaman Parameters Remote Config, kolom Last published menampilkan pengguna terakhir yang mengubah setiap parameter dan tanggal publikasi terakhir untuk perubahan tersebut:

  • Untuk melihat metadata yang berubah bagi parameter yang dikelompokkan, luaskan grup parameter.

  • Untuk mengurutkan dalam urutan menaik atau menurun menurut tanggal publikasi, klik label kolom Last published.

Pembaruan kondisi

Di halaman Conditions Remote Config, Anda dapat melihat pengguna terakhir yang mengubah kondisi dan tanggalnya di samping kolom Last modified di bawah setiap kondisi.

Langkah berikutnya

Untuk mulai mengonfigurasi project Firebase Anda, lihat Menyiapkan Project Firebase Remote Config.