Wie Sie Kanäle für Feature-Flags und A/B-Testing verwenden
Das Capgo-Kanalsystem 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-Funktionen bietet, können Sie diese Funktionen durch die Selbstverwaltung der Kanalzuweisungen implementieren.
Kanäle verstehen
Kanäle in Capgo ermöglichen Ihnen:
- Zielgruppen spezifisch ansprechen mit unterschiedlichen Funktionen
- Lauf A/B-Tests, indem du Benutzer verschiedenen Kanälen zuweistest
- Neue Funktionen schrittweise einfügen
- Erstelle Beta-Testprogramme
Kanalzuweisungsmethoden
1. Hintergrundzuweisung (Empfohlen)
Dies ist die sicherere Methode. Sie beinhaltet:
- Das Geräte-ID von dem Updater erhalten
- Es an deinen Hintergrund senden
- Dein Hintergrund ruft die Capgo API auf, um dem Gerät einen Kanal zuzuweisen
Hier ist, wie du es implementieren kannst:
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 Backend muss:
- Erhalten Sie einen API-Schlüssel aus der Capgo-Oberfläche
- Rufen Sie die Capgo-API auf, um dem Gerät einen Kanal zuzuweisen
Um Ihren API-Schlüssel zu erhalten:
- Melden Sie sich bei Ihrer Capgo-Oberfläche an
- Gehe zu Einstellungen > API-Schlüssel
- Klicken Sie auf „Neuen Schlüssel erstellen“
- Wählen Sie
allden Modus 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 auf der Client-Seite code sichtbar sein 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
}
}
Der Backend-Server sollte auch:
- Überprüfen Sie die Berechtigungen des Benutzers
- Alle Kanalzuweisungen protokollieren
- Rate Limiting handhaben
- Implementieren Sie eine Wiederholungslogik für fehlgeschlagene Zuweisungen
2. Selbstzuweisung (weniger sicher)
Diese Methode ermöglicht es 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 der Capgo-Oberfläche aktivieren:
- Gehen Sie zur Kanalbereich in Ihrer Capgo-Oberfläche
- Klicken Sie auf den Kanalnamen, den Sie verwalten möchten
- In den Kanal-Einstellungen aktivieren Sie "Geräten die Selbstzuschreibung erlauben"
- Änderungen speichern
Wenn diese Einstellung falsch ist, schlägt jeder Versuch, setChannel mit diesem Kanal aufzurufen, fehl.
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 Backend-Zuweisung: Für die Produktion verwenden Sie immer die Backend-Zuweisungsmethode
- Konsistente Zuweisung: Verwenden Sie Benutzer-IDs oder andere stabile Identifikatoren für eine konsistente Kanalzuweisung
- Überwachung: Verfolgen Sie die Verwendung von Funktionen und Leistungsmetriken für jeden Kanal
- Schrittweise Rollouts: Beginnen Sie mit kleinen Benutzergruppen und erweitern Sie allmählich
- Klare Dokumentation: Dokumentieren Sie Ihre Kanalstrategie und -zwecke
Zusammenfassung
: Durch die Nutzung von Capgo’s Kanalsystem können Sie personalisiertere App-Erfahrungen erstellen und A/B-Tests durchführen. Für die Produktionsverwendung bevorzugen Sie immer die Backend-Zuweisungsmethode für bessere Sicherheit und Kontrolle.
Für weitere Details zu Kanalverwaltung, besuchen Sie unsere Kanal-Dokumentation.
Fortsetzung von Wie man Kanäle für Funktionsschalter und A/B-Tests verwendet
: Wenn Sie Wie man Kanäle für Feature-Flags und A/B-Testing verwendet um das Routing von Kanälen und die geplante Rollout zu planen, verbinden Sie es mit Kanäle für die Implementierungsdetails in Kanälen Kanäle für die Implementierungsdetails in Kanälen Kanäle für die Implementierungsdetails in Kanälen Beta-Testlösung für den Produktworkflow in der Beta-Testlösung, und Versionziel-Lösung für den Produktworkflow in der Versionziel-Lösung.