Come usare i Channel per Feature Flag e A/B Testing
Il sistema di channel di Capgo offre un modo flessibile per segmentare gli utenti e controllare l'accesso alle feature. Anche se Capgo non include la gestione dei piani o l'A/B testing, puoi implementare queste funzionalità gestendo autonomamente l'assegnazione dei channel.
Capire i Channel
I Channel in Capgo ti permettono di:
- Assegna funzionalità diverse a gruppi specifici di utenti
- Esegui A/B test assegnando gli utenti a canali differenti
- Rilascia nuove feature in modo graduale
- Crea programmi di beta testing
Metodi di assegnazione dei canali
1. Assegnazione via Backend (Consigliata)
Questo è il metodo più sicuro. Prevede:
- Ottenere il device ID dall'updater
- Inviarlo al tuo backend
- Il tuo backend chiama Capgo API per assegnare il device
Ecco come implementarlo:
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)
}
Implementazione Backend
Il tuo backend deve:
- Ottenere una chiave API dalla dashboard di Capgo
- Chiamare l'API Capgo per assegnare il dispositivo a un canale
Per ottenere la tua chiave API:
- Accedi alla dashboard di Capgo
- Vai su Settings > API Keys
- Clicca su “Generate New Key”
- Seleziona
allmodalità per gestire dispositivi e canali - Copia la chiave generata e salvala in modo sicuro tra le variabili d'ambiente del tuo backend
- La chiave sarà una stringa esadecimale di 32 caratteri
- È una chiave segreta che non deve mai essere esposta nel code lato client
Ecco un esempio in 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
}
}
Il backend dovrebbe anche:
- Validare i permessi dell'utente
- Loggare tutte le assegnazioni ai canali
- Gestire il rate limiting
- Implementare la logica di retry per le assegnazioni fallite
2. Self-Assignment (Meno sicuro)
Questo metodo permette ai dispositivi di assegnarsi direttamente a un canale. È utile per i test, ma meno sicuro in produzione:
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
}
Prima che gli utenti possano auto-assegnarsi a un canale, devi abilitare questa funzione nella dashboard di Capgo:
- Vai alla sezione Channels nella dashboard di Capgo
- Clicca sul nome del canale che vuoi gestire
- Nelle impostazioni del canale, abilita “Allow devices to self associate”
- Salva le modifiche
Se questa impostazione è disattivata, ogni tentativo di chiamare setChannel con questo canale fallirà.
Implementazione dei Feature Flags
Usa i canali per controllare l'accesso alle feature:
const isFeatureEnabled = async (feature: string) => {
// Example: Check if user is in beta channel
const channel = await getCurrentChannel()
return channel === 'beta'
}
Implementazione A/B Testing
Esegui test A/B assegnando gli utenti a canali diversi:
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
}
Best practice
- Usa l'assegnazione lato backend: In produzione, usa sempre il metodo di assegnazione lato backend
- Assegnazione coerente: Usa gli ID utente o altri identificatori stabili per un'assegnazione coerente dei canali
- Monitoraggio: Traccia l'utilizzo delle funzionalità e le metriche di performance per ogni canale
- Rollout graduali: Inizia con piccoli segmenti di utenti e amplia gradualmente
- Documentazione chiara: Documenta la tua strategia e gli obiettivi dei canali
Conclusione
Sfruttando il sistema di canali di Capgo, puoi creare esperienze app più personalizzate ed eseguire A/B test. Per l'uso in produzione, preferisci sempre il metodo di assegnazione via backend per maggiore sicurezza e controllo.
Per maggiori dettagli sulla gestione dei canali, consulta la nostra documentazione sui canali.
Continua da Come usare i canali per Feature Flag e A/B Testing
Se stai usando Come usare i Channel per Feature Flag e A/B Testing per pianificare il routing dei canali e il rollout graduale, connettilo a Canali per i dettagli di implementazione nei Channels, Canali per i dettagli di implementazione nei Channels, Canali per i dettagli di implementazione nei Channels, Soluzione Beta Testing per il workflow di prodotto nella Soluzione Beta Testing, e Soluzione Version Targeting per il workflow di prodotto nella Soluzione Version Targeting.