Come utilizzare i Canali per Feature Flag e Test A/B
Il sistema dei canali di CapGo fornisce un modo flessibile per segmentare gli utenti e controllare l’accesso alle funzionalità. Sebbene CapGo non abbia una gestione dei piani o test A/B integrati, puoi implementare queste funzionalità gestendo autonomamente le assegnazioni dei canali.
Comprendere i Canali
I canali in CapGo ti permettono di:
- Targetizzare gruppi specifici di utenti con diverse funzionalità
- Eseguire test A/B assegnando gli utenti a canali diversi
- Rilasciare gradualmente nuove funzionalità
- Creare programmi di beta testing
Metodi di Assegnazione dei Canali
1. Assegnazione Backend (Consigliato)
Questo è il metodo più sicuro. Prevede:
- Ottenere l’ID del dispositivo dall’updater
- Inviarlo al tuo backend
- Il tuo backend chiama l’API CapGo per assegnare il dispositivo
Ecco come implementarlo:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Get device IDconst getDeviceId = async () => { const { deviceId } = await CapacitorUpdater.getDeviceId() return deviceId}
// Send device ID to your backendconst 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 CapGo
- Chiamare l’API CapGo per assegnare il dispositivo a un canale
Per ottenere la tua chiave API:
- Accedi alla tua dashboard CapGo
- Vai su Impostazioni > Chiavi API
- Clicca su “Genera Nuova Chiave”
- Seleziona la modalità
all
per gestire dispositivi e canali - Copia la chiave generata e salvala in modo sicuro nelle variabili d’ambiente del tuo backend
- La chiave sarà una stringa esadecimale di 32 caratteri
- È una chiave segreta che non dovrebbe mai essere esposta nel codice lato client
Ecco un esempio in Nodejs:
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
- Registrare tutte le assegnazioni dei canali
- Gestire il rate limiting
- Implementare la logica di retry per le assegnazioni fallite
2. Auto-Assegnazione (Meno Sicuro)
Questo metodo permette ai dispositivi di assegnarsi direttamente a un canale. È utile per i test ma meno sicuro per la produzione:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Assign device to channelconst assignToChannel = async (channel: string) => { await CapacitorUpdater.setChannel(channel)}
// Get current channelconst getCurrentChannel = async () => { const { channel } = await CapacitorUpdater.getChannel() return channel}
Prima che gli utenti possano auto-assegnarsi a un canale, devi abilitare questa funzionalità nella dashboard CapGo:
- Vai alla sezione Canali nella tua dashboard CapGo
- Clicca sul nome del canale che vuoi gestire
- Nelle impostazioni del canale, abilita “Permetti ai dispositivi di auto-associarsi”
- Salva le modifiche
Se questa impostazione è falsa, qualsiasi tentativo di chiamare setChannel
con questo canale fallirà
Implementazione dei Feature Flag
Usa i canali per controllare l’accesso alle funzionalità:
const isFeatureEnabled = async (feature: string) => { // Example: Check if user is in beta channel const channel = await getCurrentChannel() return channel === 'beta'}
Implementazione Test A/B
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 Backend: Per la produzione, usa sempre il metodo di assegnazione backend
- Assegnazione Consistente: Usa ID utente o altri identificatori stabili per un’assegnazione consistente dei canali
- Monitoraggio: Traccia l’utilizzo delle funzionalità e le metriche di performance per ogni canale
- Rilasci Graduali: Inizia con piccoli segmenti di utenti e espandi gradualmente
- Documentazione Chiara: Documenta la tua strategia e gli scopi dei canali
Conclusione
Sfruttando il sistema dei canali di CapGo, puoi creare esperienze app più personalizzate ed eseguire test A/B. Per l’uso in produzione, preferisci sempre il metodo di assegnazione backend per una migliore sicurezza e controllo.
Per maggiori dettagli sulla gestione dei canali, consulta la nostra documentazione sui canali