Saltar al contenido principal
Tutorial

Cómo usar Channels para feature flags y A/B testing

Aprende a usar los canales de Capgo para feature flags y pruebas A/B asignando usuarios manualmente o mediante tu backend

Cómo usar canales para feature flags y pruebas A/B Capgo ilustración del blog

Cómo usar Channels para feature flags y A/B testing

El sistema de canales de Capgo ofrece una forma flexible de segmentar usuarios y controlar el acceso a funciones. Aunque Capgo no tiene gestión de planes ni pruebas A/B integradas, puedes implementar estas funciones gestionando tú mismo las asignaciones de canales.

Entender los Channels

Los canales en Capgo te permiten:

  • Segmenta grupos de usuarios con distintas funciones
  • Realiza tests A/B asignando usuarios a distintos canales
  • Lanza nuevas funciones de forma gradual
  • Crea programas de beta testing

Métodos de asignación de canales

Este es el método más seguro. Consiste en:

  1. Obtener el device ID desde el updater
  2. Enviarlo a tu backend
  3. Tu backend llama a la Capgo API para asignar el dispositivo

Así es como puedes 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)
}

Implementación en el backend

Tu backend necesita:

  1. Obtener una clave API desde el dashboard de Capgo
  2. Llamar a la API Capgo para asignar el dispositivo a un canal

Para obtener tu clave API:

  1. Inicia sesión en tu dashboard de Capgo
  2. Ve a Settings > API Keys
  3. Haz clic en “Generate New Key”
  4. Selecciona all modo para gestionar dispositivos y canales
  5. Copia la clave generada y guárdala de forma segura en las variables de entorno de tu backend
    • La clave será una cadena hexadecimal de 32 caracteres
    • Es una clave secreta que nunca debe exponerse en el code del lado del cliente

Aquí tienes un ejemplo en 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
  }
}

El backend también debería:

  • Validar los permisos del usuario
  • Registrar todas las asignaciones a canales
  • Gestionar el rate limiting
  • Implementar lógica de reintento para asignaciones fallidas

2. Autoasignación (Menos seguro)

Este método permite que los dispositivos se asignen directamente a un canal. Es útil para testing, pero menos seguro para producción:

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
}

Antes de que los usuarios puedan autoasignarse a un canal, debes habilitar esta función en el dashboard de Capgo:

  1. Ve a la sección Canales en tu dashboard de Capgo
  2. Haz clic en el nombre del canal que quieras gestionar
  3. En la configuración del canal, activa “Permitir que los dispositivos se autoasocien”
  4. Guardar cambios

Si esta configuración es false, cualquier intento de llamar setChannel con este channel fallará.

Implementación de Feature Flags

Usa channels para controlar el acceso a funciones:

const isFeatureEnabled = async (feature: string) => {
  // Example: Check if user is in beta channel
  const channel = await getCurrentChannel()
  return channel === 'beta'
}

Implementación de pruebas A/B

Ejecuta pruebas A/B asignando usuarios a diferentes channels:

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
}

Buenas prácticas

  1. Usar asignación por backend: Para producción, usa siempre el método de asignación por backend
  2. Asignación consistente: Usa IDs de usuario u otros identificadores estables para una asignación consistente de canales
  3. Monitoreo: Registra el uso de funciones y métricas de rendimiento de cada canal
  4. Rollouts graduales: Comienza con segmentos de usuarios pequeños y expándelos gradualmente
  5. Documentación clara: Documenta tu estrategia de canales y sus propósitos

Conclusión

Aprovechando el sistema de canales de Capgo, puedes crear experiencias de app más personalizadas y ejecutar pruebas A/B. Para uso en producción, prefiere siempre el método de asignación por backend para mayor seguridad y control.

Para más detalles sobre la gestión de canales, consulta nuestra documentación de canales.

Continúa desde Cómo usar canales para feature flags y pruebas A/B

Si estás usando Cómo usar Channels para feature flags y A/B testing para planificar el enrutamiento de canales y el despliegue gradual, conéctalo con Canales para los detalles de implementación en Channels, Canales para los detalles de implementación en Channels, Canales para los detalles de implementación en Channels, Solución de beta testing para el workflow del producto en la solución de beta testing, y Solución de segmentación por versión para el workflow del producto en la solución de segmentación por versión.

Live updates para apps Capacitor

Cuando un bug de la capa web está en producción, publica el fix a través de Capgo en lugar de esperar días a la aprobación de la app store. Los usuarios reciben la actualización en segundo plano mientras los cambios nativos siguen el flujo de revisión habitual.

Lo último de nuestro blog

Capgo te da la información clave que necesitas para crear una app móvil realmente profesional.