Comment utiliser les canaux pour les feature flags et l'A/B testing
Le système de canaux de Capgo offre un moyen flexible de segmenter les utilisateurs et de contrôler l'accès aux fonctionnalités. Bien que Capgo ne propose pas de gestion de plan ou d'A/B testing intégrée, vous pouvez implémenter ces fonctionnalités en gérant vous-même l'assignation des canaux.
Comprendre les canaux
Les canaux dans Capgo vous permettent de :
- Target specific user groups with different features
- Réalisez des tests A/B en assignant les utilisateurs à différents canaux
- Déployez progressivement de nouvelles fonctionnalités
- Créez des programmes de bêta-test
Méthodes d'assignation aux canaux
1. Assignation via le backend (recommandé)
C'est la méthode la plus sécurisée. Elle consiste à :
- Récupérer l'ID de l'appareil via l'updater
- L'envoyer à votre backend
- Votre backend appelle l'Capgo API pour assigner l'appareil
Voici comment l'implémenter :
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)
}
Implémentation backend
Votre backend doit :
- Récupérer une clé API depuis le dashboard Capgo
- Appeler l'API Capgo pour assigner l'appareil à un canal
Pour obtenir votre clé API :
- Connectez-vous à votre dashboard Capgo
- Allez dans Settings > API Keys
- Cliquez sur « Generate New Key »
- Sélectionnez
allmode pour gérer les appareils et les canaux - Copiez la clé générée et stockez-l’en toute sécurité dans les variables d'environnement de votre backend
- La clé sera une chaîne hexadécimale de 32 caractères
- C'est une clé secrète qui ne doit jamais être exposée dans le code côté client
Voici un exemple 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
}
}
Le backend doit également :
- Valider les permissions de l'utilisateur
- Journaliser toutes les affectations de canaux
- Gérer la limitation de débit
- Implémenter une logique de retry pour les échecs d'affectation
2. Auto-affectation (moins sécurisée)
Cette méthode permet aux appareils de s'affecter directement à un canal. C'est utile pour les tests, mais moins sécurisé pour la production :
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
}
Avant que les utilisateurs ne puissent s'auto-affecter à un canal, vous devez activer cette fonctionnalité dans le dashboard Capgo :
- Allez dans la section Channels de votre dashboard Capgo
- Cliquez sur le nom du canal que vous souhaitez gérer
- Dans les paramètres du canal, activez « Allow devices to self associate »
- Enregistrer les modifications
Si ce paramètre est à false, toute tentative d'appel setChannel avec ce canal échouera.
Implémenter des feature flags
Use channels to control feature access:
const isFeatureEnabled = async (feature: string) => {
// Example: Check if user is in beta channel
const channel = await getCurrentChannel()
return channel === 'beta'
}
Mise en œuvre de l'A/B testing
Lancez des tests A/B en assignant les utilisateurs à différents canaux :
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
}
Bonnes pratiques
- Utiliser l'assignation backend: Pour la production, utilisez toujours la méthode d'assignation backend
- Assignation cohérente: Utilisez les IDs utilisateurs ou d'autres identifiants stables pour une assignation de canal cohérente
- Monitoring: Suivez l'usage des fonctionnalités et les métriques de performance par canal
- Déploiements progressifs: Start with small user segments and gradually expand
- Documentation claire: Documentez votre stratégie de canaux et leurs objectifs
Conclusion
En exploitant le système de canaux de Capgo, vous pouvez créer des expériences d'application plus personnalisées et effectuer des tests A/B. Pour la production, privilégiez toujours la méthode d'assignation côté backend pour une sécurité et un contrôl’accrus.
Pour plus de détails sur la gestion des canaux, consultez notre documentation sur les canaux.
Continuer avec Comment utiliser les canaux pour les feature flags et les tests A/B
Si vous utilisez Comment utiliser les canaux pour les feature flags et l'A/B testing pour planifier le routage des canaux et le déploiement progressif, connectez-l’à Canaux pour les détails d'implémentation des canaux, Canaux pour les détails d'implémentation des canaux, Canaux pour les détails d'implémentation des canaux, Solution de test bêta pour le workflow produit de la solution de test bêta, et Solution de ciblage de version pour le workflow produit de la solution de ciblage de version.