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:
- 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
Metode Pengasosiasian 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 - Salinlah kunci yang dihasilkan dan simpanlah dengan aman di variabel lingkungan backend Anda
- Kunci akan berupa string hexadecimal 32 karakter
- Ini adalah kunci rahasia yang tidak boleh terungkap di sisi klien code
Contoh Node.js berikut ini:
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 yang 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:
- Bergi 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 salah, setiap upaya untuk memanggil setChannel Implementasi Flag Fitur
Gunakan saluran untuk mengontrol akses fitur:
Implementasi Uji Coba A/B
const isFeatureEnabled = async (feature: string) => {
// Example: Check if user is in beta channel
const channel = await getCurrentChannel()
return channel === 'beta'
}
Lakukan uji coba A/B dengan menugaskan pengguna ke saluran yang berbeda:
Praktik Terbaik
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
}
Penggunaan Saluran
- Gunakan Tugas Backend: Untuk produksi, selalu gunakan metode tugas backend
- Penugasan Konsisten: Gunakan ID pengguna atau identifikasi stabil lainnya untuk penugasan saluran yang konsisten
- Pengawasan: Ikuti penggunaan fitur dan metrik kinerja untuk setiap 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 uji coba A/B. Untuk produksi, selalu prefer metode penugasan backend untuk keamanan dan kontrol yang lebih baik.
Untuk informasi lebih lanjut tentang pengelolaan saluran, silakan cek 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, Solusi Pengujian Beta untuk alur kerja produk di Solusi Pengujian Beta, dan Solusi Target Versi untuk alur kerja produk di Solusi Target Versi.