How to Use Channels for Feature Flags and A/B Testing
El sistema de canales de Capgo ofrece una forma flexible de segmentar a los usuarios y controlar el acceso a las características. Si bien Capgo no cuenta con la gestión de planes ni pruebas A/B integradas, puede implementar estas características gestionando las asignaciones de canales usted mismo.
Entendiendo los Canales
Los canales en Capgo te permiten:
- Dirigir grupos de usuarios específicos con características diferentes
- Ejecutar pruebas A/B asignando a los usuarios a diferentes canales
- Implementar nuevas características de manera gradual
- Crear programas de pruebas beta
Métodos de Asignación de Canales
1. Asignación Backend (Recomendado)
Este es el método más seguro. Implica:
- Obtener el ID del dispositivo desde el actualizador
- Enviar a su backend
- Su backend llama a la Capgo API para asignar el dispositivo
Aquí está cómo 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 de Backend
Su backend necesita:
- Obtener una clave API desde la consola de Capgo
- Llamar a la Capgo API para asignar el dispositivo a un canal
Para obtener su clave API:
- Iniciar sesión en su consola de Capgo
- Ir a Configuración > Claves API
- Hacer clic en "Generar Nueva Clave"
- Seleccionar
allmodo para administrar dispositivos y canales - Copie la clave generada y almacénela de manera segura en tus variables de entorno de backend
- La clave será una cadena hexadecimal de 32 caracteres
- Es una clave secreta que nunca debe ser expuesta en el lado del cliente code
Aquí tienes un ejemplo de 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 debe:
- Validar las permisos del usuario
- Registrar todas las asignaciones de canales
- Gestionar el límite de velocidad
- Implementar la 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 pruebas 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 asignarse automáticamente a un canal, debes habilitar esta función en la consola de Capgo:
- Ve a la sección de canales en tu consola de Capgo
- Haz clic en el nombre del canal que deseas gestionar
- En la configuración del canal, habilita "Permitir que los dispositivos se asocien automáticamente"
- Guarda los cambios
Si esta configuración está desactivada, cualquier intento de llamar setChannel con este canal fallará.
Implementación de Flags de Funcionalidad
Utiliza los canales para controlar el acceso a las funcionalidades:
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 a los usuarios a diferentes canales:
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
}
Consejos de Práctica
- Utilice la asignación de backend: Para producción, utilice siempre el método de asignación de backend
- Asignación Consistente: Utilice IDs de usuario o otros identificadores estables para una asignación de canal consistente
- Monitoreo: Registre el uso de características y métricas de rendimiento para cada canal
- Despliegues Graduales: Comience con segmentos de usuarios pequeños y amplíe gradualmente
- Documentación Clara: Documente su estrategia de canales y propósitos
Conclusión
: Al aprovechar el sistema de canales de Capgo , puede crear experiencias de aplicación más personalizadas y realizar pruebas A/B. Para uso de producción, siempre prefiera el método de asignación de backend por una mayor seguridad y control.
Para obtener más detalles sobre la gestión de canales, consulte nuestra documentación de canales.
Sigue adelante desde Cómo usar canales para banderas de características y pruebas A/B
Si está utilizando Cómo usar canales para banderas de características y pruebas A/B para planificar la ruta de los canales y la implementación de lanzamientos escalonados, conecte con Canales contexto: nombre de la característica de canales de Capgo. Página/área: página de marketing de soluciones de Capgo. Rol: etiqueta de IU corta o elemento de navegación. Visto en: página soluciones/white-label.astro. Clave de mensaje `solutions_white_label_visual_cell2_value` (Valor de celda visual de soluciones White Label). para obtener detalles de implementación en Canales, Canales contexto: nombre de la característica de canales de Capgo. Página/área: página de marketing de soluciones de Capgo. Rol: etiqueta de IU corta o elemento de navegación. Visto en: página soluciones/white-label.astro. Clave de mensaje `solutions_white_label_visual_cell2_value` (Valor de celda visual de soluciones White Label). para obtener detalles de implementación en Canales, y para obtener detalles de implementación en Canales, y para obtener detalles de implementación en Canales, Solución de Pruebas Beta para el flujo de trabajo del producto en Solución de Pruebas Beta, y Solución de Alcance de Versión para el flujo de trabajo del producto en Solución de Alcance de Versión.