Come Utilizzare i Canali per Flag delle Funzionalità e A/B Testing
Il sistema di canali di CapGo fornisce un modo flessibile per segmentare gli utenti e controllare l’accesso alle funzionalità. Anche se CapGo non ha una gestione dei piani integrata o A/B testing, puoi implementare queste funzionalità gestendo tu stesso le assegnazioni dei canali.
Comprendere i Canali
I canali in CapGo ti permettono di:
- Mirare a specifici gruppi di utenti con funzionalità diverse
- Eseguire A/B test assegnando utenti a diversi canali
- Rilasciare gradualmente nuove funzionalità
- Creare programmi di beta testing
Metodi di Assegnazione dei Canali
1. Assegnazione Backend (Raccomandato)
Questo è il metodo più sicuro. Comporta:
- Ottenere l’ID del dispositivo dall’updater
- Inviarlo al tuo backend
- Il tuo backend chiama l’API di 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 dal dashboard di CapGo
- Chiamare l’API di CapGo per assegnare il dispositivo a un canale
Per ottenere la tua chiave API:
- Accedi al tuo dashboard di CapGo
- Vai a Impostazioni > Chiavi API
- Clicca “Genera Nuova Chiave”
- Seleziona la modalità
all
per gestire i dispositivi e i canali - Copia la chiave generata e conservala 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 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
- Registrare tutte le assegnazioni dei canali
- Gestire il rate limiting
- Implementare la logica di ripetizione per le assegnazioni non riuscite
2. Auto-Assegnazione (Meno Sicura)
Questo metodo consente 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, è necessario abilitare questa funzione nel dashboard di CapGo:
- Vai alla sezione Canali nel tuo dashboard di CapGo
- Clicca sul nome del canale che vuoi gestire
- Nelle impostazioni del canale, abilita “Consenti ai dispositivi di auto-associarsi”
- Salva le modifiche
Se questa impostazione è falsa, qualsiasi tentativo di chiamare setChannel
con questo canale fallirà.
Implementazione dei Flag delle Funzionalità
Utilizza 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 dell’A/B Testing
Esegui A/B test assegnando utenti a diversi canali:
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}
Migliori Pratiche
- Utilizza l’Assegnazione Backend: Per la produzione, utilizza sempre il metodo di assegnazione backend
- Assegnazione Coerente: Utilizza ID utente o altri identificatori stabili per un’assegnazione coerente dei canali
- Monitoraggio: Tieni traccia dell’uso delle funzionalità e delle metriche di performance per ogni canale
- Rilasci Graduali: Inizia con piccoli segmenti di utenti e espandi gradualmente
- Documentazione Chiara: Documenta la tua strategia e i tuoi scopi dei canali
Conclusione
Sfruttando il sistema di canali di CapGo, puoi creare esperienze app più personalizzate e eseguire A/B test. Per l’uso in produzione, preferisci sempre il metodo di assegnazione backend per una maggiore sicurezza e controllo.
Per ulteriori dettagli sulla gestione dei canali, dai un’occhiata alla nostra documentazione sui canali.