Bagaimana Menggunakan Saluran untuk Flag Fitur dan Uji Coba A/B
Sistem saluran Capgo menyediakan cara yang fleksibel untuk membagi pengguna dan mengontrol akses fitur. Meskipun Capgo tidak memiliki manajemen rencana bawaan atau uji coba A/B, Anda dapat menerapkan fitur-fitur ini dengan mengelola asosiasi saluran secara mandiri.
Pengertian Saluran
Saluran di Capgo memungkinkan Anda:
- Mengarahkan kelompok pengguna spesifik dengan fitur yang berbeda
- Lakukan tes A/B dengan mengalokasikan pengguna ke saluran yang berbeda
- Luncurkan fitur baru secara bertahap
- Buat program tes beta
Metode Pengalokasian Saluran
1. Pengalokasian Backend (Dianjurkan)
Metode ini lebih aman. Ini melibatkan:
- Mengambil ID perangkat dari pembarui
- Mengirimkannya ke backend Anda
- Backend Anda memanggil Capgo API untuk mengalokasikan perangkat
Berikut 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)
}
Implementasi Backend
Backend Anda harus:
- Dapatkan kunci API dari Capgo dashboard
- Tetapkan perangkat ke saluran dengan memanggil Capgo API
Untuk mendapatkan kunci API Anda:
- Masuk ke dashboard Capgo Anda
- Buka Pengaturan > Kunci API
- Klik “Buat Kunci Baru”
- 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
- Itu adalah kunci rahasia yang tidak boleh terungkap di sisi klien code
Berikut adalah 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 hak akses pengguna
- Merekam semua pengaturan saluran
- Mengatur batasan kecepatan
- Mengimplementasikan logika ulang untuk pengaturan yang gagal
2. Pengaturan Otomatis (Lebih Tidak Aman)
Metode ini memungkinkan perangkat untuk langsung mengasosiasikan diri dengan 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 mengasosiasikan diri dengan saluran secara otomatis, Anda perlu mengaktifkan fitur ini di Capgo dashboard:
- Buka bagian Saluran di dashboard Capgo Anda
- Klik nama saluran yang ingin Anda kelola
- Dalam pengaturan saluran, aktifkan “Izinkan perangkat untuk mengasosiasikan diri secara otomatis”
- 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 mengasosiasikan 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 Pengasasan Backend: Untuk produksi, selalu gunakan metode pengasasan backend
- : Gunakan ID pengguna atau identifikasi stabil lainnya untuk pengasasan saluran yang konsistenPengawasan
- Jika pengaturan ini palsu, setiap upaya untuk memanggil __CAPGO_KEEP_0__ dengan saluran ini akan gagal.: Mengikuti penggunaan fitur dan metrik kinerja untuk setiap saluran
- Gradual Rollouts: Mulai dengan segmen pengguna kecil dan secara bertahap memperluas
- Clear Documentation: Dokumentasikan strategi dan tujuan saluran Anda
Conclusion
Dengan memanfaatkan sistem saluran Capgo Anda dapat membuat pengalaman aplikasi yang lebih personal dan menjalankan tes A/B. Untuk penggunaan produksi, selalu prefer metode pengasasan backend untuk keamanan dan kontrol yang lebih baik.
Untuk informasi lebih lanjut tentang pengelolaan saluran, silakan cek dokumentasi channels.