Wie man Kanäle für Feature-Flags und A/B-Testing verwendet
Capgo's Kanal-System bietet eine flexible Möglichkeit, Benutzer zu segmentieren und die Zugriffsberechtigung auf Funktionen zu steuern. Während Capgo keine integrierte Planverwaltung oder A/B-Testing bietet, können Sie diese Funktionen durch die Verwaltung der Zuweisung von Kanälen selbst implementieren.
Kanäle verstehen
Kanäle in Capgo ermöglichen Ihnen:
- Benutzergruppen mit unterschiedlichen Funktionen anziehen
- A/B-Tests durchführen, indem Benutzer verschiedenen Kanälen zugewiesen werden
- Neue Funktionen allmählich bereitstellen
- Beta-Testprogramme erstellen
Kanalzuweisungsmethoden
1. Hintergrundzuweisung (Empfohlen)
Dies ist die sicherere Methode. Sie umfasst:
- Geräte-ID von dem Updater erhalten
- Sie an Ihren Hintergrund senden
- Ihr Hintergrund ruft die Capgo API auf, um dem Gerät zuzuweisen
Hier erfahren Sie, wie Sie es implementieren:
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)
}
Hintergrundimplementierung
Ihr Hintergrund muss:
- Erhalten Sie einen API-Schlüssel von der Capgo-Oberfläche
- Rufen Sie die Capgo-API auf, um das Gerät einer Kanal zu zuweisen
Um Ihren API-Schlüssel zu erhalten:
- Melden Sie sich bei Ihrem Capgo-Konto an
- Gehe zu Einstellungen > API-Schlüssel
- Klicken Sie auf „Neuen Schlüssel erstellen“
- Wählen Sie
allModus zum Verwalten von Geräten und Kanälen - Kopieren Sie den generierten Schlüssel und speichern Sie ihn sicher in Ihren Backend-Umgebungsvariablen
- Der Schlüssel wird ein 32-stelliger hexadezimaler String sein
- Es ist ein geheimer Schlüssel, der niemals in Client-Seiten-code offenbart werden sollte
Hier ist ein Beispiel für 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
}
}
Die Backend-Instanz sollte auch:
- Die Benutzerrechte überprüfen
- Alle Kanalzuweisungen protokollieren
- Rate Limiting handhaben
- Wiederholungslogik für fehlgeschlagene Zuweisungen implementieren
2. Selbstzuweisung (weniger sicher)
Diese Methode ermöglicht Geräten, sich direkt einem Kanal zuzuweisen. Sie ist für die Testung nützlich, aber weniger sicher für die Produktion:
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
}
Bevor Benutzer sich selbst einem Kanal zuweisen können, müssen Sie diese Funktion in Ihrem Capgo-Dashboard aktivieren:
- Gehen Sie in Ihrem Capgo-Dashboard zur Kanalübersicht
- Klicken Sie auf den Kanalnamen, den Sie verwalten möchten
- In den Kanal-Einstellungen aktivieren Sie 'Geräten die Selbstzuweisung erlauben'
- Die Änderungen speichern
Wenn diese Einstellung falsch ist, schlägt jeder Versuch, diese Methode aufzurufen, fehl. setChannel Mit diesem Kanal wird der Aufruf fehlschlagen.
Implementierung von Feature-Flags
Verwenden Sie Kanäle, um Zugriff auf Funktionen zu steuern:
const isFeatureEnabled = async (feature: string) => {
// Example: Check if user is in beta channel
const channel = await getCurrentChannel()
return channel === 'beta'
}
Implementierung von A/B-Tests
Führen Sie A/B-Tests durch, indem Sie Benutzer verschiedenen Kanälen zuweisen:
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
}
Gute Praktiken
- Verwenden Sie die Backend-Zuweisung: Für die Produktion verwenden Sie immer die Backend-Zuweisungsmethode
- : Verwenden Sie Benutzer-IDs oder andere stabile Identifikatoren für eine konsistente KanalzuweisungÜberwachung
- __CAPGO_KEEP_0__: Nutzungs- und Leistungsmetriken für jeden Kanal verfolgen
- Gradual Rollouts: Mit kleinen Benutzersegmenten beginnen und allmählich ausweiten
- Clear Documentation: Ihre Kanalstrategie und -zwecke dokumentieren
Conclusion
Durch die Nutzung des Kanalsystems von Capgo können Sie personalisiertere App-Erfahrungen erstellen und A/B-Tests durchführen. Für die Produktionsnutzung bevorzugen Sie immer die Backend-Zuweisungsmethode für bessere Sicherheit und Kontrolle.
Für weitere Details zu Kanalverwaltung, besuchen Sie unsere channels Dokumentation.