How to Use Channels for Feature Flags and A/B Testing
Capgo’s channel system provides a flexible way to segment users and control feature access. While Capgo doesn’t have built-in plan management or A/B testing, you can implement these features by managing channel assignments yourself.
Memahami Saluran
Saluran di Capgo memungkinkan Anda untuk:
- Mengarahkan kelompok pengguna tertentu dengan fitur yang berbeda
- Menggunakan tes A/B dengan mengasosiasikan pengguna ke saluran yang berbeda
- Mengimplementasikan fitur baru secara bertahap
- Membuat program tes beta
Cara Mengasosiasikan Saluran
1. Pengasosiasian Backend (Dianjurkan)
Metode ini lebih aman. Ini melibatkan:
- Mengambil ID perangkat dari pembarui
- Mengirimkannya ke backend Anda
- Backend Anda memanggil Capgo API untuk menetapkan perangkat
Ini cara melaksanakannya:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Get device ID
const getDeviceId = async () => {
const { deviceId } = await CapacitorUpdater.getDeviceId()
return deviceId
}
// Send device ID to your backend
const assignToChannel = async (channel: string) => {
const deviceId = await getDeviceId()
// Your backend will call Capgo API to assign the device
await yourBackend.assignDeviceToChannel(deviceId, channel)
}
Pengimplementasian Backend
Backend Anda perlu:
- Mendapatkan kunci API dari dashboard Capgo
- Menghubungi Capgo API untuk menetapkan perangkat ke saluran
Untuk mendapatkan kunci API Anda:
- Masuk ke dashboard Capgo Anda
- Pergi ke Pengaturan > Kunci API
- Klik ‘Generate New Key’
- Pilih
allmode untuk mengelola perangkat dan saluran - Salin kunci yang dihasilkan dan simpan dengan aman di variabel lingkungan backend Anda
- Kunci akan berupa string heksadesimal 32 karakter
- Ini adalah kunci rahasia yang tidak boleh terungkap di sisi klien code
Contoh Node.js:
import axios from 'axios'
const CAPGO_API_KEY = 'your_api_key'
const CAPGO_API_URL = 'https://api.capgo.app'
async function assignDeviceToChannel(deviceId: string, channel: string) {
try {
const response = await axios.post(
`${CAPGO_API_URL}/device`,
{
app_id: 'YOUR_APP_ID',
device_id: deviceId,
channel: channel
},
{
headers: {
'authorization': CAPGO_API_KEY,
'Content-Type': 'application/json'
}
}
)
return response.data
} catch (error) {
console.error('Failed to assign device to channel:', error)
throw error
}
}
Backend juga harus:
- Mengvalidasi izin pengguna
- Mengikuti semua pengaturan saluran
- Mengatur batasan kecepatan
- Mengimplementasikan logika ulang untuk pengaturan gagal
2. Pengasasan Sendiri (Lebih Tidak Aman)
Metode ini memungkinkan perangkat untuk secara langsung mengasaskan diri mereka ke dalam saluran. Ini berguna untuk pengujian tetapi kurang aman untuk produksi:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Assign device to channel
const assignToChannel = async (channel: string) => {
await CapacitorUpdater.setChannel(channel)
}
// Get current channel
const getCurrentChannel = async () => {
const { channel } = await CapacitorUpdater.getChannel()
return channel
}
Sebelum pengguna dapat menugaskan diri ke sebuah saluran, Anda perlu mengaktifkan fitur ini di dashboard Capgo :
- Pergi ke bagian Saluran di dashboard Capgo Anda
- Klik pada nama saluran yang ingin Anda kelola
- Dalam pengaturan saluran, aktifkan “ Izinkan perangkat untuk berasosiasi sendiri”
- Simpan perubahan
Jika pengaturan ini palsu, setiap upaya untuk memanggil setChannel dengan saluran ini akan gagal.
Implementasi Flag Fitur
Gunakan saluran untuk mengontrol akses fitur :
const isFeatureEnabled = async (feature: string) => {
// Example: Check if user is in beta channel
const channel = await getCurrentChannel()
return channel === 'beta'
}
Implementasi Uji Coba A/B
Lakukan uji coba A/B dengan menugaskan pengguna ke saluran yang berbeda :
const assignToABTest = async (userId: string) => {
// Use consistent hashing to assign users
const hash = await hashUserId(userId)
const variant = hash % 2 === 0 ? 'variant-a' : 'variant-b'
await assignToChannel(variant)
return variant
}
Praktik Terbaik
- Gunakan Tugas Backend: Untuk produksi, selalu gunakan metode tugas backend
- Penggunaan Konsisten: Gunakan ID pengguna atau identifikasi stabil lainnya untuk penggunaan saluran yang konsisten
- Pengawasan: Ikuti penggunaan fitur dan metrik kinerja masing-masing saluran
- Rollout Berangsur-angsur: Mulai dengan segmen pengguna kecil dan secara bertahap memperluas
- Dokumentasi Jelas: Dokumentasikan strategi saluran dan tujuan Anda
Kesimpulan
Dengan memanfaatkan sistem saluran Capgo’, Anda dapat membuat pengalaman aplikasi yang lebih personal dan menjalankan tes A/B. Untuk produksi, selalu prefer metode tugas backend untuk keamanan dan kontrol yang lebih baik.
Untuk informasi lebih lanjut tentang pengelolaan saluran, silakan lihat dokumentasi __CAPGO_KEEP_0__.
Teruskan dari Cara Menggunakan Saluran untuk Flag Fitur dan Uji Coba A/B
Jika Anda menggunakan Cara Menggunakan Saluran untuk Flag Fitur dan Uji Coba A/B untuk merencanakan routing saluran dan peluncuran tahap demi tahap, hubungkannya dengan Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Saluran, Saluran untuk detail implementasi di Saluran, Sistem Uji Beta untuk alur kerja produk di Sistem Uji Beta, dan Sistem Target Versi untuk alur kerja produk di Sistem Target Versi.