名称: 移动分析 描述: 移动应用分析与崩溃报告集成 版本: 1.0.0 类别: 分析与监控 标识符: mobile-analytics 状态: 活跃
移动分析技能
概述
此技能为移动应用分析和崩溃报告集成提供了全面的能力。它支持配置Firebase Analytics、Crashlytics、Mixpanel、Amplitude以及其他分析平台。
允许使用的工具
bash- 执行Firebase CLI和SDK命令read- 分析分析配置write- 生成分析事件模式和配置edit- 更新分析实现glob- 搜索分析文件grep- 搜索事件跟踪模式
能力
Firebase Analytics
-
事件配置
- 配置自定义事件
- 设置用户属性
- 实现屏幕跟踪
- 配置事件参数
- 处理默认事件
-
用户细分
- 配置受众群体
- 设置用户ID
- 实现用户属性
- 处理人口统计数据
Firebase Crashlytics
-
崩溃报告
- 配置崩溃报告
- 实现自定义键
- 记录非致命错误
- 设置用户标识符
- 配置崩溃警报
-
调试工具
- 启用调试模式
- 配置测试崩溃
- 分析堆栈跟踪
- 处理dSYM文件上传
第三方分析
-
Mixpanel/Amplitude
- 配置SDK
- 实现事件跟踪
- 设置用户画像
- 处理漏斗分析
-
Segment
- 配置数据路由
- 实现目标平台
- 处理身份识别
A/B测试
- 远程配置
- 配置功能开关
- 实现实验
- 处理发布百分比
- 分析结果
目标流程
mobile-analytics-setup.js- 分析实现firebase-backend-integration.js- Firebase服务mobile-performance-optimization.js- 性能监控
依赖项
- Firebase SDK
- 分析平台SDK
- Firebase CLI
使用示例
Firebase Analytics 设置 (iOS)
// AppDelegate.swift
import FirebaseCore
import FirebaseAnalytics
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
return true
}
}
// 分析助手
struct AnalyticsManager {
static func logEvent(_ name: String, parameters: [String: Any]? = nil) {
Analytics.logEvent(name, parameters: parameters)
}
static func setUserId(_ userId: String) {
Analytics.setUserID(userId)
}
static func setUserProperty(_ value: String?, forName name: String) {
Analytics.setUserProperty(value, forName: name)
}
static func logScreenView(screenName: String, screenClass: String) {
Analytics.logEvent(AnalyticsEventScreenView, parameters: [
AnalyticsParameterScreenName: screenName,
AnalyticsParameterScreenClass: screenClass
])
}
}
Firebase Analytics 设置 (Android)
// AnalyticsManager.kt
class AnalyticsManager @Inject constructor(
private val analytics: FirebaseAnalytics
) {
fun logEvent(name: String, params: Map<String, Any>? = null) {
analytics.logEvent(name, params?.toBundle())
}
fun setUserId(userId: String?) {
analytics.setUserId(userId)
}
fun setUserProperty(name: String, value: String?) {
analytics.setUserProperty(name, value)
}
fun logScreenView(screenName: String, screenClass: String) {
analytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) {
param(FirebaseAnalytics.Param.SCREEN_NAME, screenName)
param(FirebaseAnalytics.Param.SCREEN_CLASS, screenClass)
}
}
}
private fun Map<String, Any>.toBundle(): Bundle {
return Bundle().apply {
this@toBundle.forEach { (key, value) ->
when (value) {
is String -> putString(key, value)
is Int -> putInt(key, value)
is Long -> putLong(key, value)
is Double -> putDouble(key, value)
is Boolean -> putBoolean(key, value)
}
}
}
}
事件模式
// analytics/events.ts
export const AnalyticsEvents = {
// 用户事件
USER_SIGNED_UP: 'user_signed_up',
USER_LOGGED_IN: 'user_logged_in',
USER_LOGGED_OUT: 'user_logged_out',
// 功能事件
FEATURE_USED: 'feature_used',
ITEM_VIEWED: 'item_viewed',
ITEM_ADDED_TO_CART: 'item_added_to_cart',
PURCHASE_COMPLETED: 'purchase_completed',
// 参与度事件
SHARE_CLICKED: 'share_clicked',
NOTIFICATION_RECEIVED: 'notification_received',
NOTIFICATION_OPENED: 'notification_opened',
} as const;
export interface EventParameters {
user_signed_up: { method: 'email' | 'google' | 'apple' };
item_viewed: { item_id: string; item_name: string; category: string };
purchase_completed: { transaction_id: string; value: number; currency: string };
}
质量门限
- 强制执行事件命名约定
- 验证必需参数
- 排除个人身份信息数据
- 实现同意管理
相关技能
firebase-mobile- Firebase服务mobile-perf- 性能监控
版本历史
- 1.0.0 - 初始版本