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 usuarios y controlar el acceso a 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 tú mismo.
Entendiendo los canales
Los canales en Capgo te permiten:
- Destacar grupos de usuarios específicos con características diferentes
- Ejecutar pruebas A/B asignando a los usuarios a diferentes canales
- Desplegar 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 exponerse en el lado del cliente code
Here’s 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 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 Capgo consola:
- Vaya a la sección de canales en su Capgo consola
- Haga clic en el nombre del canal que desea gestionar
- En la configuración del canal, habilite ‘Permitir que los dispositivos se asocie automáticamente’
- Guardar los cambios
Si esta configuración es falsa, cualquier intento de llamar setChannel con este canal fallará.
Implementación de Flags de Funcionalidad
Utilice los 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
}
Prácticas recomendadas
- Utilice la asignación de backend: En producción, siempre utilice el método de asignación de backend
- : Utilice IDs de usuario o otros identificadores estables para una asignación de canal consistenteAsignación consistente
- targetLanguage":"Spanish","protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"texts":["Monitoreo",": Rastrear 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 canal y propósitos","Conclusión","Al aprovechar el sistema de canales de __CAPGO_KEEP_0__ , puede crear experiencias de aplicación más personalizadas y realizar pruebas A/B. Para el uso en producción, prefiera siempre 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","Siga adelante desde Cómo usar canales para banderas de características y pruebas A/B","Si está utilizando"]]} How to Use Channels for Feature Flags and A/B Testing
- If you are usingFor more details on channel management, check out our
- channels documentationKeep going from How to Use Channels for Feature Flags and A/B Testing
Conclusion
By leveraging Capgo’s channel system, you can create more personalized app experiences and run A/B tests. For production use, always prefer the backend assignment method for better security and control.
Clear Documentation : Documente su estrategia de canal y propósitos.
Gradual Rollouts
: Comience con segmentos de usuarios pequeños y amplíe gradualmente 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 etapados, conecte con Canales para los detalles de implementación en Canales, Canales para los detalles de implementación en Canales, Canales para los 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 Enfoque de Versión para el flujo de trabajo del producto en Solución de Enfoque de Versión.