关于 abtesting-mobile
abtesting-mobile 是用于在 iOS 和 Android 应用中规划和实施 A/B 测试、功能标记及分阶段发布的技能。它介绍使用 Firebase Remote Config、Optimizely、Statsig 和应用商店实验的工作流程。
主要功能
- 01配置 Firebase Remote Config
- 02Optimizely 实验工作流
- 03Statsig 标记与实验
- 04分阶段发布与金丝雀发布
- 05变体分配与事件跟踪
适用场景
- 01测试移动应用界面改动
- 02向一定比例用户开放功能
- 03用 Optimizely 测试按钮颜色
- 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 标签共享指向部署技能的边