Salta al contenuto principale
Tutorial

Come usare i Channel per Feature Flag e A/B Testing

Scopri come usare i canali di Capgo per feature flag e A/B testing, tramite self-assignment o il tuo backend

Come usare i Channel per Feature Flag e A/B Testing Capgo illustrazione blog

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

Questo è il metodo più sicuro. Prevede:

  1. Ottenere il device ID dall'updater
  2. Inviarlo al tuo backend
  3. 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:

  1. Ottenere una chiave API dalla dashboard di Capgo
  2. Chiamare l'API Capgo per assegnare il dispositivo a un canale

Per ottenere la tua chiave API:

  1. Accedi alla dashboard di Capgo
  2. Vai su Settings > API Keys
  3. Clicca su “Generate New Key”
  4. Seleziona all modalità per gestire dispositivi e canali
  5. 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:

  1. Vai alla sezione Channels nella dashboard di Capgo
  2. Clicca sul nome del canale che vuoi gestire
  3. Nelle impostazioni del canale, abilita “Allow devices to self associate”
  4. 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

  1. Usa l'assegnazione lato backend: In produzione, usa sempre il metodo di assegnazione lato backend
  2. Assegnazione coerente: Usa gli ID utente o altri identificatori stabili per un'assegnazione coerente dei canali
  3. Monitoraggio: Traccia l'utilizzo delle funzionalità e le metriche di performance per ogni canale
  4. Rollout graduali: Inizia con piccoli segmenti di utenti e amplia gradualmente
  5. 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.

Live updates per le app Capacitor

Quando un bug nel web-layer è live, rilascia la fix tramite Capgo invece di aspettare giorni l'approvazione degli store. Gli utenti ricevono l'update in background, mentre le modifiche native restano nel normale processo di review.

Ultimi articoli dal blog

Capgo ti offre gli insight migliori che ti servono per creare un'app mobile davvero professionale.