Tutorial

Come Utilizzare i Canali per i Feature Flag e i Test A/B

Scopri come utilizzare i canali CapGo per i feature flag e i test A/B assegnando automaticamente gli utenti o utilizzando il tuo backend

Come Utilizzare i Canali per i Feature Flag e i Test A/B

Comment utiliser les canaux pour les Feature Flags et les tests A/B

Le système de canaux de CapGo offre une manière flexible de segmenter les utilisateurs et de contrôler l’accès aux fonctionnalités. Bien que CapGo n’ait pas de gestion de plan ou de tests A/B intégrés, vous pouvez implémenter ces fonctionnalités en gérant vous-même les affectations de canaux.

Comprendre les canaux

Les canaux dans CapGo vous permettent de :

  • Cibler des groupes d’utilisateurs spécifiques avec différentes fonctionnalités
  • Exécuter des tests A/B en assignant les utilisateurs à différents canaux
  • Déployer progressivement de nouvelles fonctionnalités
  • Créer des programmes de test bêta

Méthodes d’attribution des canaux

1. Attribution par le Backend (Recommandée)

C’est la méthode la plus sécurisée. Elle implique :

  1. Obtenir l’ID de l’appareil depuis le système de mise à jour
  2. L’envoyer à votre backend
  3. Votre backend appelle l’API CapGo pour attribuer 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 :

  1. Obtenir une clé API du tableau de bord CapGo
  2. Appeler l’API CapGo pour attribuer l’appareil à un canal

Pour obtenir votre clé API :

  1. Connectez-vous à votre tableau de bord CapGo
  2. Allez dans Paramètres > Clés API
  3. Cliquez sur “Générer une nouvelle clé”
  4. Sélectionnez le mode all pour gérer les appareils et les canaux
  5. Copiez la clé générée et stockez-la en 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 en Nodejs :

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
  • Enregistrer toutes les attributions de canaux
  • Gérer la limitation de débit
  • Implémenter une logique de réessai pour les attributions échouées

2. Auto-attribution (Moins sécurisée)

Cette méthode permet aux appareils de s’attribuer 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 puissent s’auto-attribuer à un canal, vous devez activer cette fonctionnalité dans le tableau de bord CapGo :

  1. Allez dans la section Canaux de votre tableau de bord CapGo
  2. Cliquez sur le nom du canal que vous souhaitez gérer
  3. Dans les paramètres du canal, activez “Autoriser les appareils à s’auto-associer”
  4. Sauvegardez les modifications

Si ce paramètre est faux, toute tentative d’appeler setChannel avec ce canal échouera

Implémentation des Feature Flags

Utilisez les canaux pour contrôler l’accès aux fonctionnalités :

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

Implémentation des tests A/B

Exécutez 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
}

Meilleures pratiques

  1. Utiliser l’attribution backend : Pour la production, utilisez toujours la méthode d’attribution backend
  2. Attribution cohérente : Utilisez les ID utilisateur ou d’autres identifiants stables pour une attribution cohérente des canaux
  3. Surveillance : Suivez l’utilisation des fonctionnalités et les métriques de performance pour chaque canal
  4. Déploiements graduels : Commencez par de petits segments d’utilisateurs et élargissez progressivement
  5. Documentation claire : Documentez votre stratégie de canaux et leurs objectifs

Conclusion

En utilisant le système de canaux de CapGo, vous pouvez créer des expériences d’application plus personnalisées et exécuter des tests A/B. Pour une utilisation en production, préférez toujours la méthode d’attribution backend pour une meilleure sécurité et un meilleur contrôle.

Pour plus de détails sur la gestion des canaux, consultez notre documentation sur les canaux

Mises à jour instantanées pour les applications CapacitorJS

Poussez instantanément des mises à jour, des corrections et des fonctionnalités sur vos applications CapacitorJS sans les délais de l'App Store. Expérimentez une intégration transparente, un cryptage de bout en bout et des mises à jour en temps réel avec Capgo.

Commencez Maintenant

Dernières actualités

Capgo vous donne les meilleures informations dont vous avez besoin pour créer une application mobile vraiment professionnelle.