Skip to content

埋点统计

字数统计:约 7000 字
难度等级:⭐⭐⭐
面试重要度:⭐⭐⭐


1. 简介

埋点用于追踪用户行为:

  • 页面访问
  • 按钮点击
  • 转化漏斗
  • 用户留存

2. 埋点方案

2.1 代码埋点

kotlin
object Analytics {
    
    fun trackEvent(name: String, properties: Map<String, Any> = emptyMap()) {
        // 发送到分析平台
        FirebaseAnalytics.getInstance(context)
            .logEvent(name, bundleOf(*properties.map { it.key to it.value }.toTypedArray()))
    }
    
    fun trackPageView(pageName: String) {
        trackEvent("page_view", mapOf("page" to pageName))
    }
    
    fun trackButtonClick(buttonName: String) {
        trackEvent("button_click", mapOf("button" to buttonName))
    }
}

// 使用
Analytics.trackPageView("Home")
Analytics.trackButtonClick("Login")

2.2 自动埋点

kotlin
// 使用 AspectJ 自动埋点
@Aspect
class AnalyticsAspect {
    
    @Around("execution(* com.example.app.ui.*.onClick*(..))")
    fun trackClick(joinPoint: ProceedingJoinPoint) {
        val view = joinPoint.args[0] as View
        Analytics.trackButtonClick(view.contentDescription.toString())
        joinPoint.proceed()
    }
}

3. 常见平台

  • Firebase Analytics
  • 神策数据
  • GrowingIO
  • 友盟+

4. 面试考点

Q: 埋点方案?

  • 代码埋点(精确)
  • 自动埋点(全面)
  • 可视化埋点(易用)

本文完