チャンネルを使用して機能フラグとA/Bテストの機能を活用する方法
Capgoのチャンネルシステムは、ユーザーを分割して機能へのアクセスを制御するための柔軟な方法を提供します。 Capgoには、プラン管理やA/Bテストの機能は組み込まれていませんが、チャンネル割り当てを自分で管理することで、これらの機能を実装できます。
チャンネルの理解
Capgoのチャンネルでは、次のことができます。
- 特定のユーザーグループに異なる機能を提供する
- A/Bテストを実行するために、ユーザーを異なるチャンネルに割り当てる
- 新しい機能を段階的にロールアウトする
- ベータテストプログラムを作成する
チャネル割り当て方法
1. バックエンド割り当て (推奨)
この方法はより安全です。次の手順が含まれます。
- デバイス ID を取得する
- デバイス 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の場合、チャンネル名を指定してこのAPIを呼び出しても失敗する。 setChannel 機能フラグを実装する
__CAPGO_KEEP_0__
チャンネルを使用して機能へのアクセスを制御する:
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または他の安定した識別子を使用して、一貫したチャンネル割り当てを実行する:
- モニタリング:各チャンネルごとに機能の使用状況とパフォーマンスメトリックを追跡する:
- 段階的なロールアウト:小さなユーザーセグメントから始めて、段階的に拡大する:
- Clear Documentation: __CAPGO_KEEP_0__チャンネル戦略と目的を記述する
Conclusion
Capgoのチャンネルシステムを活用することで、より個別のアプリエクスペリエンスを作成し、A/Bテストを実行できます。生産環境での使用の際は、セキュリティとコントロールの向上のために、バックエンド割り当てメソッドを優先してください。
__CAPGO_KEEP_0__チャンネル管理の詳細については、 channelsドキュメント.
チャンネルを使用して機能フラグとA/Bテストの実行方法
チャンネルを使用して機能フラグとA/Bテストの実行方法 を使用している場合、チャンネルルーティングとステージドロールアウトを計画するには、 Channels チャンネル チャンネル チャンネル チャンネルの実装詳細について チャンネル チャンネルの実装詳細について ベータテスト ソリューション ベータテスト ソリューションの製品ワークフローについて バージョン ターゲット ソリューション バージョン ターゲット ソリューションの製品ワークフローについて