How to Use Channels for Feature Flags and A/B Testing
Capgo’s canale di rete fornisce un modo flessibile per segmentare gli utenti e controllare l'accesso alle funzionalità. Mentre Capgo non dispone di una gestione di piani integrata o di test A/B, puoi implementare queste funzionalità gestendo le assegnazioni dei canali da te stesso.
Capire i Canali
I canali in Capgo ti consentono di:
- Targetare gruppi di utenti specifici con funzionalità diverse
- Eseguire test A/B assegnando gli utenti a canali diversi
- Rilasciare gradualmente nuove funzionalità
- Creare programmi di testing beta
Metodi di Assegnazione dei Canali
1. Assegnazione da Backend (Consigliato)
Questo è il metodo più sicuro. Prevede:
- Ottenere l'ID dispositivo dal relativo aggiornatore
- Invia i dati al tuo backend
- Il tuo backend chiama il Capgo API per assegnare il dispositivo
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 del backend
Il tuo backend deve:
- Ottenere una chiave API dal dashboard di Capgo
- Chiamare il Capgo API 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 su “Genera nuova chiave”
- Seleziona
allmodalità per gestire dispositivi e canali - Copia la chiave generata e memorizzala in modo sicuro nelle tue variabili di ambiente backend
- La chiave sarà una stringa esadecimale a 32 caratteri
- È una chiave segreta che non dovrebbe mai essere esposta nel lato client-side code
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 le autorizzazioni dell'utente
- Registrare tutte le assegnazioni di canali
- Gestire il limitatore di velocità
- Implementare la logica di riprova per le assegnazioni fallite
2. Auto-assegnazione (Meno Sicura)
Questa modalità consente ai dispositivi di assegnarsi direttamente a un canale. È utile per i test, ma meno sicura per la 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 assegnarsi automaticamente a un canale, è necessario abilitare questa funzionalità nel Capgo dashboard:
- Vai alla sezione Canali del tuo Capgo dashboard
- Clicca sul nome del canale che desideri gestire
- Nelle impostazioni del canale, abilita “Consenti ai dispositivi di associarsi automaticamente”
- Salva le modifiche
Se questa impostazione è falsa, qualsiasi tentativo di chiamata setChannel con questo canale fallirà.
Implementazione delle Bandiere di 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 dei Test A/B
Esegui test A/B assegnando gli 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
}
Pratiche Consigliate
- Usa l'assegnazione di backend: Per la produzione, utilizza sempre il metodo di assegnazione di backend
- Assegnazione coerente: Utilizza gli ID degli utenti o altri identificatori stabili per l'assegnazione coerente dei canali
- Monitoraggio: Traccia l'utilizzo delle funzionalità e i metri di prestazione per ogni canale
- Rulli progressivi: Inizia con piccoli segmenti di utenti e espandi gradualmente
- Documentazione chiara: Documenta la tua strategia dei canali e i relativi scopi
Conclusioni
Con l'ausilio del sistema dei canali di Capgo puoi creare esperienze di app più personalizzate e eseguire test A/B. Per l'uso in produzione, preferisci sempre il metodo di assegnazione di backend per una maggiore sicurezza e controllo.
Per ulteriori informazioni sulla gestione dei canali, consultate la nostra __CAPGO_KEEP_0__.
Continua da Come utilizzare i canali per le bandiere di feature e il testing A/B
Se stai utilizzando Come utilizzare i canali per le bandiere di feature e il testing A/B per pianificare la routing dei canali e la distribuzione in fasi, connettilo con Canali per i dettagli di implementazione in Canali, Canali per i dettagli di implementazione in Canali, Canali per i dettagli di implementazione in Canali, Soluzione di Test Beta per il flusso di lavoro del prodotto in Soluzione di Test Beta, e Soluzione di Targeting della Versione per il flusso di lavoro del prodotto in Soluzione di Targeting della Versione.