チャンネルを使用した機能フラグとA/Bテストの方法
Capgoのチャンネルシステムは、ユーザーを分割して機能へのアクセスを制御するための柔軟な方法を提供します。 Capgoには、組み込みのプラン管理機能やA/Bテスト機能はありませんが、チャンネル割り当てを自分で管理することで、これらの機能を実装できます。
チャンネルの理解
Capgoのチャンネルでは、次のことができます。
- 特定のユーザー グループに異なる機能を対象にする
- ユーザーを異なるチャンネルに割り当ててA/Bテストを実行する
- 新機能を段階的にロールアウトする
- ベータテストプログラムを作成する
チャンネル割り当ての方法
1. バックエンド割り当て (推奨)
この方法はより安全です。次の手順が含まれます。
- アップデータからデバイスIDを取得する
- それをバックエンドに送信する
- バックエンドはCapgo APIを呼び出してデバイスを割り当てる
実装方法はこちらです。
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)
}
バックエンド実装
バックエンドには次のことが必要です。
- API キーをCapgo ダッシュボードから取得する
- Capgo APIを呼び出してデバイスをチャンネルに割り当てる
API キーを取得するには
- あなたのCapgo ダッシュボードにログインする
- 設定に移動してください > API キー
- 「新しいキーを生成」ボタンをクリック
- モードを選択
allデバイスとチャンネルの管理 - 生成されたキーを安全にバックエンド環境変数に保存してください
- キーは32桁の16進数の文字列になります
- クライアントサイドでは code を公開してはいけません
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
}
}
バックエンド側も
- ユーザーの権限を検証
- チャンネル割り当てをログ
- リクエスト制限を実行
- 再試行ロジックを実装する
2. 自動割り当て (セキュリティが低い)
この方法では、デバイスは直接チャネルに割り当てられる。テストに便利ですが、生産環境ではセキュリティが低い:
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
}
ユーザーがチャネルに自動割り当てできるようにする前に、Capgo ダッシュボードでこの機能を有効にする必要があります:
- Capgo ダッシュボードのチャネルセクションに移動する
- チャネル名をクリックして管理する
- チャネル設定で「デバイスが自動で関連付けられることを許可する」を有効にする
- 変更を保存する
この設定がfalseの場合、チャネル名を指定して setChannel 再試行ロジックを実装する
機能フラグを実装する
チャネルを使用して機能へのアクセスを制御する
const isFeatureEnabled = async (feature: string) => {
// Example: Check if user is in beta channel
const channel = await getCurrentChannel()
return channel === 'beta'
}
A/B テスト実装
A/B テストを実行するには、ユーザーを異なるチャネルに割り当てます:
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
}
ベスト プラクティス
- バックエンド割り当てを使用する: 製品環境では、常にバックエンド割り当てを使用する
- 一貫した割り当て: 一貫したチャネル割り当てのために、ユーザー ID または他の安定した識別子を使用する
- モニタリング: 各チャネルで機能の使用状況とパフォーマンス メトリックを追跡する
- 段階的なロールアウト: 小さなユーザー セグメントから始めて段階的に拡大する
- 明確なドキュメント: チャンネル戦略と目的をドキュメント化してください。
結論
By leveraging Capgo’s channel system, you can create more personalized app experiences and run A/B tests. For production use, always prefer the backend assignment method for better security and control.
チャンネル管理の詳細については、以下のドキュメントを参照してください。 チャンネル管理のドキュメント.
チャンネルを使用して機能フラグとA/Bテストの実行方法については、以下の記事を参照してください。
チャンネルを使用している場合 機能フラグとA/Bテストの実行方法については、以下の記事を参照してください。 チャンネルルーティングとステージドロールアウトの計画を行うには、以下の機能と接続してください。 チャンネル context チャンネル チャンネル機能の実装詳細については チャンネル チャンネル機能の実装詳細については ベータテストソリューション ベータテストソリューションの製品ワークフローについて バージョン対象ソリューション バージョン対象ソリューションの製品ワークフローについて