Tutorial

チャネルを使用して機能フラグおよびA/Bテストを行う方法

CapGoのチャンネルを使用して、ユーザーを自己割り当てまたはバックエンドを使用して、機能フラグやA/Bテストを行う方法を学びましょう

チャネルを使用して機能フラグおよびA/Bテストを行う方法

チャンネルを使用した機能フラグとA/Bテストの方法

CapGoのチャンネルシステムは、ユーザーのセグメント化と機能アクセスの制御に柔軟な方法を提供します。CapGoには組み込みのプラン管理やA/Bテスト機能はありませんが、チャンネル割り当てを自身で管理することでこれらの機能を実装できます。

チャンネルについて

CapGoのチャンネルでは以下が可能です:

  • 異なる機能を特定のユーザーグループに提供
  • ユーザーを異なるチャンネルに割り当ててA/Bテストを実行
  • 新機能の段階的なロールアウト
  • ベータテストプログラムの作成

チャンネル割り当ての方法

1. バックエンド割り当て(推奨)

これはより安全な方法です。以下を含みます:

  1. アップデーターからデバイスIDを取得
  2. バックエンドに送信
  3. バックエンドが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)
}

バックエンドの実装

バックエンドで必要な作業:

  1. CapGoダッシュボードからAPIキーを取得
  2. CapGo APIを呼び出してデバイスをチャンネルに割り当て

APIキーの取得方法:

  1. CapGoダッシュボードにログイン
  2. 設定 > APIキーに移動
  3. 「新規キーを生成」をクリック
  4. デバイスとチャンネルを管理するためallモードを選択
  5. 生成されたキーをコピーし、バックエンドの環境変数に安全に保存
    • キーは32文字の16進数文字列
    • クライアントサイドのコードに決して公開してはいけない秘密キー

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ダッシュボードでこの機能を有効にする必要があります:

  1. CapGoダッシュボードのチャンネルセクションに移動
  2. 管理したいチャンネル名をクリック
  3. チャンネル設定で「デバイスの自己関連付けを許可」を有効化
  4. 変更を保存

この設定が無効の場合、このチャンネルに対する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
}

ベストプラクティス

  1. バックエンド割り当ての使用: 本番環境では常にバックエンド割り当て方式を使用
  2. 一貫した割り当て: 一貫したチャンネル割り当てにユーザーIDなどの安定した識別子を使用
  3. モニタリング: 各チャンネルの機能使用状況とパフォーマンスメトリクスを追跡
  4. 段階的なロールアウト: 小規模なユーザーセグメントから開始し、徐々に拡大
  5. 明確なドキュメント: チャンネル戦略と目的を文書化

結論

CapGoのチャンネルシステムを活用することで、よりパーソナライズされたアプリ体験を作成し、A/Bテストを実行できます。本番環境では、よりよいセキュリティと制御のために、常にバックエンド割り当て方式を優先してください。

チャンネル管理の詳細については、チャンネルのドキュメントをご確認ください。

CapacitorJSアプリのための即時更新

CapacitorJSアプリに即座に更新、修正、機能をプッシュし、アプリストアの遅延を回避します。Capgoでシームレスな統合、エンドツーエンドの暗号化、リアルタイムの更新を体験してください。

今すぐ始めよう

最新のニュース

Capgoは、真にプロフェッショナルなモバイルアプリを作成するために必要な最高のインサイトを提供します。