Parameter dan Kondisi Remote Config

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

Dengan menggunakan Firebase console atau REST API Remote Config, Anda dapat membuat nilai default baru untuk parameter, serta nilai bersyarat yang digunakan untuk menargetkan grup instance aplikasi. Setiap kali Anda memperbarui konfigurasi di Firebase console, Firebase akan membuat dan menerbitkan versi baru dari template Remote Config Anda. Versi yang sebelumnya akan disimpan, sehingga Anda dapat mengambil atau melakukan rollback sesuai kebutuhan. Operasi ini juga tersedia untuk Anda melalui REST API.

Panduan ini menjelaskan parameter, kondisi, aturan, nilai bersyarat, 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 nilai bersyarat

Kondisi digunakan untuk menargetkan 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:

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

Sebuah parameter dapat memiliki beberapa nilai bersyarat yang menggunakan kondisi berbeda, dan parameter dapat memiliki kondisi yang sama dalam satu project.

Prioritas parameter value

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

Parameter value untuk sisi server diambil berdasarkan daftar prioritas berikut

  1. Pertama, nilai bersyarat 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 nilai bersyarat 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 Kondisi.

  2. Jika tidak ada nilai bersyarat dengan kondisi yang bernilai true, nilai default pada sisi server akan diberikan ketika aplikasi mengambil nilai dari backend. Jika parameter tidak ada pada backend, atau jika nilai default disetel ke Tidak ada nilai, maka tidak ada nilai yang akan diberikan untuk parameter tersebut ketika aplikasi mengambil nilai.

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

  1. Jika nilai diambil dari backend lalu diaktifkan, aplikasi akan menggunakan nilai yang diambil tersebut. Parameter value yang diaktifkan bersifat tetap.
  2. Jika tidak ada nilai yang diambil dari backend, atau jika nilai yang diambil dari backend Remote Config belum diaktifkan, aplikasi akan menggunakan nilai default dalam aplikasi.
  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:

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 kapan saja, 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 diupdate untuk menangani grup parameter saat publikasi.

Membuat atau mengubah grup parameter menggunakan Firebase console

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

  1. Pilih Kelola grup.
  2. Centang kotak untuk parameter yang ingin Anda tambahkan dan pilih Pindahkan ke grup.
  3. Pilih grup yang ada, atau buat grup baru dengan memasukkan nama dan deskripsi, lalu pilih Buat grup baru. Setelah disimpan, grup tersedia untuk dipublikasikan menggunakan tombol Publikasikan perubahan.

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 mengotorisasi 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 "menu baru" grup parameter 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. Fungsi yang setara tersedia di REST API Remote Config, seperti yang dijelaskan dalam referensi ekspresi kondisional.

Jenis aturanOperatorNilaiCatatan
Aplikasi == 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 iOS: Gunakan CFBundleIdentifier aplikasi. Anda dapat menemukan ID Paket dalam tab Umum untuk target utama aplikasi Anda di Xcode.
  • Untuk Android: Gunakan applicationId aplikasi. Anda dapat menemukan applicationId di file build.gradle level aplikasi Anda.
Versi aplikasi Untuk nilai string:
sama persis,
berisi,
tidak berisi,
ekspresi reguler

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

Tentukan versi aplikasi yang akan ditargetkan.

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

Untuk iOS: Gunakan CFBundleIdentifier aplikasi.

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

Untuk Android: Gunakan versionName aplikasi.

Perbandingan string untuk aturan ini peka terhadap huruf besar dan kecil. Saat menggunakan operator pencocokan persis, berisi, tidak berisi, 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.

Nomor build Untuk nilai string:
sama persis,
berisi,
tidak berisi,
ekspresi reguler

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

Tentukan versi aplikasi yang akan ditargetkan.

Sebelum menggunakan aturan ini, Anda harus menggunakan aturan ID Aplikasi untuk memilih aplikasi iOS yang dikaitkan dengan project Firebase Anda.

Operator ini hanya tersedia untuk aplikasi iOS, dan sesuai dengan CFBundleVersion aplikasi. Perbandingan string untuk aturan ini peka terhadap huruf besar dan kecil.

Saat menggunakan operator sama persis, berisi, tidak berisi, 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.

Jenis OS == iOS
Android
 
Tanggal/Waktu <=, > 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.
Pengguna dalam persentil acak <=, > 0-100

Gunakan kolom ini untuk menerapkan perubahan pada sampel acak dari instance aplikasi (dengan ukuran sampel hingga sekecil 0,0001%), menggunakan operator <= dan > untuk menyegmentasikan pengguna (instance aplikasi) ke dalam grup.

Setiap instance aplikasi secara terus-menerus dipetakan ke seluruh atau sebagian nomor secara acak, sesuai dengan kunci yang ditentukan dalam project tersebut. Aturan akan menggunakan kunci default (ditunjukkan sebagai DEF dalam Firebase console), kecuali jika Anda memilih atau membuat kunci lainnya. Anda dapat menampilkan aturan untuk menggunakan kunci default dengan mengosongkan kolom Acak pengguna menggunakan kunci ini. Anda dapat menggunakan satu kunci di seluruh aturan untuk secara konsisten menangani instance aplikasi yang sama dalam rentang persentase tertentu. Atau, Anda dapat memilih grup baru yang ditetapkan secara acak dari instance aplikasi untuk rentang persentase tertentu dengan membuat kunci baru.

Misalnya, untuk membuat dua kondisi berkaitan yang masing-masing diterapkan pada 5% pengguna aplikasi yang tidak tumpang tindih, Anda dapat memiliki satu kondisi yang mencakup aturan <= 5%, dan kondisi lainnya yang mencakup aturan > 5% serta aturan <= 10%. Agar memungkinkan beberapa pengguna untuk muncul secara acak pada kedua grup, gunakan kunci yang berbeda untuk aturan dalam setiap kondisi.

Pengguna dalam audience == Pilih satu atau beberapa dari daftar audience Google Analytics yang telah Anda siapkan untuk project Anda.

Aturan ini memerlukan aturan ID Aplikasi 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 Pengguna dalam audience dapat berpengaruh terhadap instance aplikasi tertentu.

Perangkat dalam region/negara == 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).
Bahasa perangkat == 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.
Properti pengguna Untuk nilai string:
berisi,
tidak berisi,
sama persis,
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/desimal.
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 lebih lanjut mengenai properti pengguna, lihat panduan berikut ini:

Saat menggunakan operator sama persis, berisi, tidak berisi, 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.

Menelusuri parameter dan kondisi

Anda dapat menelusuri kunci parameter, parameter value, dan kondisi project dari Firebase console menggunakan kotak penelusuran di bagian atas tab Parameter 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 huruf Bahasa Inggris (A-Z, a-z), dan juga bisa menyertakan angka. Panjang total string parameter value dalam satu project tidak boleh melebihi 800.000 karakter.

Langkah berikutnya

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