这将会是一系列的文章,逐渐构造一个我理想中的比较简洁的统计分析SDK。
这份SDK的会收集如下的一些指标(固定指标):
还有一部分是App通用指标,比如App的启动、使用时长等,最后是自定义的指标,这部分指标通过自定义事件来实现。
对于固定指标很容易采集,App的启动和时长信息,在Android上面不容易判断而且Android和iOS的生命周期也不一样,最好通过比较 灵活的方式来统计,所以定义一组方法
startSession() //App 启动的时候调用,启动Session
pauseSession() //暂停Session
resumeSession()//恢复Session计时
endSession() //结束Session
这样就可以定义一组接口来统计App的启动并且记录使用时长。
自定义事件,现在大部分的统计系统支持的自定义事件统计层级都是很浅的(比如友盟的自定义事件现在为止最多支持3级id-key-value),我想设计一可以伸缩的层级结构,可以无限的嵌套下去。
设计这样的API log(id, cat1, cat2, cat3 ...)
这样在同一个id下的事件属性按照次序可以展开成树形结构,这样就可以随意
的做多层嵌套。
设备Id的获取是比较困难的,因为不同设备上面的一些Id他们的稳定性是不一样的,所以需要特殊处理设备Id的问题。我比较推崇的 一种方式是把所有可以获取的Id全部获取,然后给每个Id分配一定权值,再后端通过权值计算每台设备的归属。//TODO 设备去重问题
关于协议可以参考这里, 为了简单起见,使用json作为传输协议。
nTop 10 December 2014