Verwendung von Kanälen für Feature Flags und A/B-Tests
Das Kanalsystem von CapGo bietet eine flexible Möglichkeit, Benutzer zu segmentieren und den Funktionszugriff zu steuern. Während CapGo keine integrierten Plan-Management- oder A/B-Test-Funktionen hat, können Sie diese Funktionen implementieren, indem Sie die Kanalzuweisungen selbst verwalten.
Kanäle verstehen
Kanäle in CapGo ermöglichen es Ihnen:
- Bestimmte Benutzergruppen mit verschiedenen Funktionen anzusprechen
- A/B-Tests durchzuführen, indem Benutzer verschiedenen Kanälen zugewiesen werden
- Neue Funktionen schrittweise einzuführen
- Beta-Testprogramme zu erstellen
Methoden der Kanalzuweisung
1. Backend-Zuweisung (Empfohlen)
Dies ist die sicherere Methode. Sie beinhaltet:
- Abrufen der Geräte-ID vom Updater
- Senden an Ihr Backend
- Ihr Backend ruft die CapGo API auf, um das Gerät zuzuweisen
So implementieren Sie es:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Get device IDconst getDeviceId = async () => { const { deviceId } = await CapacitorUpdater.getDeviceId() return deviceId}
// Send device ID to your backendconst 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
Ihr Backend muss:
- Einen API-Schlüssel vom CapGo Dashboard abrufen
- Die CapGo API aufrufen, um das Gerät einem Kanal zuzuweisen
So erhalten Sie Ihren API-Schlüssel:
- Melden Sie sich in Ihrem CapGo Dashboard an
- Gehen Sie zu Einstellungen > API-Schlüssel
- Klicken Sie auf “Neuen Schlüssel generieren”
- Wählen Sie den
all
-Modus zur Verwaltung von Geräten und Kanälen - Kopieren Sie den generierten Schlüssel und speichern Sie ihn sicher in Ihren Backend-Umgebungsvariablen
- Der Schlüssel ist eine 32-stellige Hexadezimalzeichenfolge
- Es ist ein geheimer Schlüssel, der niemals im Client-seitigen Code offengelegt werden sollte
Hier 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 außerdem:
- Die Benutzerberechtigungen validieren
- Alle Kanalzuweisungen protokollieren
- Rate-Limiting implementieren
- Wiederholungslogik für fehlgeschlagene Zuweisungen implementieren
2. Selbstzuweisung (Weniger sicher)
Diese Methode ermöglicht es Geräten, sich direkt einem Kanal zuzuweisen. Sie ist nützlich zum Testen, aber weniger sicher für die Produktion:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Assign device to channelconst assignToChannel = async (channel: string) => { await CapacitorUpdater.setChannel(channel)}
// Get current channelconst getCurrentChannel = async () => { const { channel } = await CapacitorUpdater.getChannel() return channel}
Bevor Benutzer sich selbst einem Kanal zuweisen können, müssen Sie diese Funktion im CapGo Dashboard aktivieren:
- Gehen Sie zum Bereich Kanäle in Ihrem CapGo Dashboard
- Klicken Sie auf den Kanalnamen, den Sie verwalten möchten
- Aktivieren Sie in den Kanaleinstellungen “Geräten erlauben, sich selbst zuzuordnen”
- Speichern Sie die Änderungen
Wenn diese Einstellung deaktiviert ist, wird jeder Versuch, setChannel
mit diesem Kanal aufzurufen, fehlschlagen.
Feature Flags implementieren
Verwenden Sie Kanäle zur Steuerung des Funktionszugriffs:
const isFeatureEnabled = async (feature: string) => { // Example: Check if user is in beta channel const channel = await getCurrentChannel() return channel === 'beta'}
A/B-Test-Implementierung
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}
Best Practices
- Backend-Zuweisung verwenden: Verwenden Sie für die Produktion immer die Backend-Zuweisungsmethode
- Konsistente Zuweisung: Verwenden Sie Benutzer-IDs oder andere stabile Identifikatoren für konsistente Kanalzuweisung
- Überwachung: Verfolgen Sie Funktionsnutzung und Leistungsmetriken für jeden Kanal
- Schrittweise Einführung: Beginnen Sie mit kleinen Benutzersegmenten und erweitern Sie schrittweise
- Klare Dokumentation: Dokumentieren Sie Ihre Kanalstrategie und -zwecke
Fazit
Durch die Nutzung des Kanalsystems von CapGo können Sie personalisierte App-Erlebnisse erstellen und A/B-Tests durchführen. Für den Produktionseinsatz sollten Sie immer die Backend-Zuweisungsmethode für bessere Sicherheit und Kontrolle bevorzugen.
Weitere Details zur Kanalverwaltung finden Sie in unserer Kanäle-Dokumentation.