Cómo usar canales para banderas de características y pruebas A/B
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 gestión de planes ni pruebas A/B integradas, puedes implementar estas características gestionando las asignaciones de canales por tu cuenta.
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 gradualmente nuevas características
- Crear programas de pruebas beta
Métodos de asignación de canales
1. Asignación de backend (Recomendado)
Este es el método más seguro. Implica:
- Obtener el ID del dispositivo desde el actualizador
- Enviarla a su backend
- Su backend llama a los 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:
- Obtenga una clave API desde la consola de Capgo
- Llame al Capgo API para asignar el dispositivo a un canal
Para obtener su clave API:
- Inicie sesión en su consola de Capgo
- Vaya a Configuración > Claves API
- Haga clic en “Generar Nueva Clave”
- Seleccione
allmodo para administrar dispositivos y canales - Copie la clave generada y almacénela de manera segura en sus 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í hay 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 canal
- Gestionar el límite de velocidad
- Implementar la lógica de reintento para las asignaciones fallidas
2. Autoasignación (Menos Seguro)
Este método permite que los dispositivos se asignen directamente a un canal. Es útil para la prueba, pero menos seguro para la 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 característica en la consola de Capgo:
- Ir a la sección de canales en tu consola de Capgo
- Hacer clic en el nombre del canal que deseas gestionar
- En la configuración del canal, habilitar "Permitir que los dispositivos se asocie automáticamente"
- Guardar los cambios
If esta configuración es falsa, cualquier intento de llamar setChannel con este canal fallará.
Implementación de Flags de Funcionalidad
Usar canales para controlar el acceso a las características:
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
Ejecutar 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
- Usar Asignación de Servidor: Para producción, siempre use el método de asignación de servidor
- Asignación Consistente: Utilice IDs de usuario o otros identificadores estables para una asignación de canal consistente
- Monitoreo: Rastrear el uso de características y métricas de rendimiento para cada canal
- Gradual Rollouts: Comience con segmentos de usuarios pequeños y amplíe gradualmente
- Clear Documentation: Documente su estrategia de canal y propósitos
Conclusion
Al aprovechar el sistema de canales de Capgo , puede crear experiencias de aplicación más personalizadas y realizar pruebas A/B. Para el uso en producción, siempre prefiera el método de asignación de backend para una mayor seguridad y control.
Para obtener más detalles sobre la gestión de canales, consulte nuestra documentación de canales.