mcpField
A
abtesting-mobile

abtesting-mobile

github.com/alphaonedev测试与质量43 次安装
代码仓库

关于 abtesting-mobile

abtesting-mobile 是用于在 iOS 和 Android 应用中规划和实施 A/B 测试、功能标记及分阶段发布的技能。它介绍使用 Firebase Remote Config、Optimizely、Statsig 和应用商店实验的工作流程。

主要功能

  1. 01配置 Firebase Remote Config
  2. 02Optimizely 实验工作流
  3. 03Statsig 标记与实验
  4. 04分阶段发布与金丝雀发布
  5. 05变体分配与事件跟踪

适用场景

  1. 01测试移动应用界面改动
  2. 02向一定比例用户开放功能
  3. 03用 Optimizely 测试按钮颜色
  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 发送 POST 请求,请求体为 JSON,例如 {"parameters": {"feature_flag": {"defaultValue": {"value": "true"}}}}。
  • 代码片段(适用于 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 端点:使用 GET 请求访问 https://api.optimizely.com/v2/experiments,以列出实验。
  • 代码片段(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 发送 POST 请求,请求体为 {"userID": "123", "featureKey": "feature"}。
  • 代码片段(适用于 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 集群(例如,用于网页变体的 abtesting-web)
  • 连接方式:通过 mobile 标签(链接到 mobile-analytics 等技能)
  • 依赖项:需要 firebase 和 optimizely 集群才能实现完整功能
  • 重叠:与 rollout 标签共享指向部署技能的边

评论

支持 Markdown