mcpField
A
abtesting-mobile

abtesting-mobile

github.com/alphaonedevテスト・品質43 回インストール
リポジトリ

abtesting-mobile について

abtesting-mobileは、iOS・AndroidアプリのA/Bテスト、機能フラグ、段階的ロールアウトを計画・実施するスキルです。Firebase Remote Config、Optimizely、Statsig、アプリストア実験を使う手順を扱います。

主な機能

  1. 01Firebase Remote Configの設定
  2. 02Optimizelyの実験ワークフロー
  3. 03Statsigのフラグと実験
  4. 04段階的ロールアウトとカナリアリリース
  5. 05バリアント割り当てとイベント追跡

活用シーン

  1. 01モバイルアプリのUI変更をテスト
  2. 02一定割合のユーザーに機能を公開
  3. 03Optimizelyでボタンの色を比較
  4. 04再デプロイせずにリモート設定を更新

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill abtesting-mobile

インストール後、Claude Code で/abtesting-mobileを入力して読み込まれたか確認します。

詳細

abtesting-mobile

目的

このスキルでは、Firebase Remote Config、Optimizely、Statsig、アプリストアの実験などのツールを使用して、モバイルアプリの A/B テストを行います。機能フラグ、段階的なロールアウト、カナリアリリースに重点を置き、ユーザーエクスペリエンスの最適化を目指します。

使用するタイミング

UI の変更、機能の切り替え、段階的なロールアウトなど、モバイルアプリで実験を行う場合にこのスキルを使用します。リスクを最小限に抑え、データに基づくインサイトを得る場合や、アプリストアの実験に関するガイドラインを遵守する場合に、iOS/Android アプリに適用してください。

主な機能

  • Firebase Remote Config を設定して、アプリを再デプロイせずにパラメーターを動的に更新します。
  • Optimizely SDK を統合し、イベントトラッキングやオーディエンスセグメンテーションを含む、A/B テストの一連のサイクルを実施します。
  • Statsig を使用して、最小限の設定で機能フラグや実験をすばやく実施します。
  • Firebase またはアプリストアの API を使用して段階的なロールアウトを管理し、ユーザーへの公開範囲を制御します。
  • 新機能の対象割合を指定して、カナリアリリースをサポートします。

使用パターン

A/B テストを設定するには、まずサービスで認証し、次に設定ファイルでパラメーターを定義して、アプリコードで値を取得し、結果を監視します。Firebase では CLI を使用して設定を更新し、Optimizely ではアプリのライフサイクルの早い段階で SDK を初期化します。エラーへの耐性を高めるため、実験は必ず try-catch ブロックで囲んでください。パターン:設定を読み込む → バリアントを割り当てる → イベントを追跡する → データを分析する。

主なコマンド/API

Firebase Remote Config の場合:

  • CLI:パラメーターを取得するには firebase rc:fetch --token $FIREBASE_API_KEY を実行します。
  • API エンドポイント:https://firebaseremoteconfig.googleapis.com/v1/projects/{projectId}/remoteConfig に、{"parameters": {"feature_flag": {"defaultValue": {"value": "true"}}}} のような JSON ボディを指定して POST します。
  • コードスニペット(iOS 向け Swift):
    let remoteConfig = RemoteConfig.remoteConfig()
    remoteConfig.fetch { status, error in
        if status == .success { remoteConfig.activate() }
    }
    

Optimizely の場合:

  • CLI:optimizely project create --apiKey $OPTIMIZELY_API_KEY --name "MobileExperiment" を実行します。
  • API エンドポイント:実験の一覧を取得するには https://api.optimizely.com/v2/experiments に GET します。
  • コードスニペット(Android 向け Kotlin):
    OptimizelyManager.getInstance().optimizely.start { userId, attributes ->
        val variation = optimizely.decide(userId, "experimentKey")
        // Apply variation
    }
    

Statsig の場合:

  • CLI:statsig config set --key $STATSIG_API_KEY --feature "newFeature" --value true を実行します。
  • API エンドポイント:https://api.statsig.com/v1/evaluate に {"userID": "123", "featureKey": "feature"} をボディとして指定して POST します。
  • コードスニペット(React Native 向け汎用 JS):
    import Statsig from 'statsig-react-native';
    Statsig.initialize('your-sdk-key').then(() => {
        const value = Statsig.checkGate('feature_gate');
    });
    

統合に関する注意事項

パッケージマネージャーを使って SDK を追加し、統合します(例:iOS では pod 'Firebase/RemoteConfig'、Android では implementation 'com.optimizely.ab:android-sdk:4.0.0')。認証には環境変数を使用し、CI/CD パイプラインで $FIREBASE_API_KEY を設定してください。設定形式には、次のような JSON ファイルを使用します:

{
  "parameters": {
    "color_scheme": {
      "defaultValue": { "value": "blue" },
      "description": "A/B test for app theme"
    }
  }
}

設定をキャッシュして、アプリがオフラインの状況に対応できるようにしてください。複数のツールを使う場合は、シンプルなフラグには Firebase、複雑な実験には Optimizely を優先します。

エラー処理

認証エラーが発生した場合は、401 レスポンスを確認し、トークンを更新して再試行します。Firebase では、コード 3(ネットワークエラー)の NSError を捕捉し、デフォルト値にフォールバックします。コード例:

try {
    remoteConfig.fetchAndActivate { status, error in
        if let error = error { print("Error: \(error.localizedDescription)") }
    }
} catch { print("Fetch failed: \(error)") }

Optimizely では、判定エラーをログに記録し、デフォルトのバリエーションを使用します。よくある問題:無効な API キー — echo $OPTIMIZELY_API_KEY で確認します。ネットワーク障害 — 指数バックオフを実装します。

具体的な使用例

例 1:Firebase を使用して新機能の段階的なロールアウトを設定します。

  • 手順:$FIREBASE_API_KEY をエクスポートし、firebase rc:set --project myapp --params '{"rollout_percent": 50}' を実行します。次に、アプリコードで値を取得して確認し、50%のユーザーに対して機能を有効にします。

例 2:Optimizely でボタンの色に関する A/B テストを実施します。

  • 手順:optimizely experiment create --apiKey $OPTIMIZELY_API_KEY --key "buttonColorTest" --variations '["red", "blue"]' を実行して実験を作成し、SDK を統合します。次に、コードで決定されたバリエーションを使用してボタンの色を設定し、クリックを追跡します。

グラフの関係性

  • 関連:abtesting クラスター(例:Web バリアント向けの abtesting-web)
  • 接続:mobile タグ経由(mobile-analytics などのスキルにリンク)
  • 依存関係:完全な機能を利用するには、firebase クラスターと optimizely クラスターが必要です
  • 重複:rollout タグとデプロイスキルへのエッジを共有

コメント