Channels für Feature Flags und A/B-Tests nutzen
Das Channel-System von Capgo bietet eine flexible Möglichkeit, Nutzer zu segmentieren und den Zugriff auf Features zu steuern. Da Capgo kein integriertes Plan-Management oder A/B-Testing besitzt, kannst du diese Funktionen durch die eigene Verwaltung der Channel-Zuweisungen implementieren.
Channels verstehen
Channels in Capgo ermöglichen es dir:
- Gezielte Ansprache von Nutzergruppen mit unterschiedlichen Features
- A/B-Tests durch Zuweisung verschiedener Channels durchführen
- Features schrittweise ausrollen
- Beta-Testprogramme erstellen
Methoden zur Channel-Zuweisung
1. Backend-Zuweisung (Empfohlen)
Dies ist die sicherere Methode. Sie umfasst:
- Abrufen der Device ID vom Updater
- Senden der ID an dein Backend
- Dein Backend ruft die Capgo API auf, um das Device zuzuweisen
So implementierst du es:
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)
}
Backend-Implementierung
Dein Backend muss:
- Einen API Key im Capgo Dashboard abrufen
- Die Capgo API aufrufen, um das Device einem Channel zuzuweisen
So erhältst du deinen API Key:
- Logge dich in dein Capgo Dashboard ein
- Gehe zu Settings > API Keys
- Klicke auf „Generate New Key“
- Wähle
allModus zur Verwaltung von Devices und Channels - Kopiere den generierten Key und speichere ihn sicher in deinen Backend-Umgebungsvariablen
- Der Key ist ein 32-stelliger Hexadezimal-String
- Es ist ein Secret Key, der niemals im clientseitigen code exponiert werden darf
Hier ist ein Node.js-Beispiel:
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
}
}
Das Backend sollte zudem:
- Die Berechtigungen des Nutzers validieren
- Alle Channel-Zuweisungen loggen
- Rate Limiting handhaben
- Retry-Logik für fehlgeschlagene Zuweisungen implementieren
2. Self-Assignment (weniger sicher)
Mit dieser Methode können sich Geräte direkt einem Channel zuweisen. Das ist nützlich für Tests, 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 Nutzer sich selbst einem Channel zuweisen können, musst du diese Funktion im Capgo Dashboard aktivieren:
- Gehe zum Bereich Channels in deinem Capgo Dashboard
- Klicke auf den Channel, den du verwalten möchtest
- Aktiviere in den Channel-Einstellungen „Allow devices to self associate“
- Änderungen speichern
Wenn diese Einstellung auf false steht, wird jeder Versuch, setChannel mit diesem Channel aufgerufen, fehlschlagen.
Feature Flags implementieren
Nutze Channels, um den Feature-Zugriff zu steuern:
const isFeatureEnabled = async (feature: string) => {
// Example: Check if user is in beta channel
const channel = await getCurrentChannel()
return channel === 'beta'
}
A/B-Testing Implementierung
Führe A/B-Tests durch, indem du User verschiedenen Channels zuweist:
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
}
Best Practices
- Backend-Zuweisung nutzen: Nutze für die Produktion immer die Backend-Zuweisungsmethode
- Konsistente Zuweisung: Nutze User-IDs oder andere stabile Identifier für eine konsistente Channel-Zuweisung
- Monitoring: Verfolge die Feature-Nutzung und Performance-Metriken pro Channel
- Graduelle Rollouts: Beginne mit kleinen Nutzersegmenten und erweitere sie schrittweise
- Klare Dokumentation: Dokumentiere deine Channel-Strategie und deren Zweck
Fazit
Durch die Nutzung des Channel-Systems von Capgo kannst du personalisiertere App-Erlebnisse schaffen und A/B-Tests durchführen. Für den Produktivbetrieb solltest du aus Sicherheits- und Kontrollgründen immer die Backend-Zuweisung bevorzugen.
Weitere Details zum Channel-Management findest du in unserer Channels-Dokumentation.
Weiterlesen: How to Use Channels for Feature Flags and A/B Testing
Wenn Sie ... verwenden Channels für Feature Flags und A/B-Tests nutzen nutzt, um das Channel-Routing und Staged Rollouts zu planen, verbinde es mit Kanäle für die Implementierungsdetails in Channels, Kanäle für die Implementierungsdetails in Channels, Kanäle für die Implementierungsdetails in Channels, Beta-Testing-Lösung für den Produkt-Workflow in der Beta-Testing-Lösung, und Version-Targeting-Lösung für den Produkt-Workflow in der Version-Targeting-Lösung.