一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第20天,点击查看活动详情。
全埋点
正常情况下,iOS应用程序主要有5种常见的状态。
- (1
)Not running。非运行状态,指应用程序 还没有被启动,或者已被系统终止。 - (2)
Inactive。前台非活动状态,指应用程序 即将进入前台状态,但当前未接收到任何事件 (可能正在执行其他代码)。应用程序通常只在 转换到其他状态时才会短暂地进入该状态。 - (3)
Active。前台活跃状态,指应用程序正 在前台运行,可接收事件并进行处理。这也是一 个iOS应用程序处于前台的正常模式。 - (4)
Background。进入后台状态,指应用程 序进入后台并可执行代码。大多数应用程序在被 挂起前都会短暂地进入该状态。 - (5)
Suspended。挂起状态,指应用程序进 入后台但没有执行任何代码,系统会自动地将应 用程序转移到该状态,并且在执行该操作前不会 通知应用程序。挂起时,应用程序会保留在内存 中,但不执行任何代码。当系统出现内存不足情 况时,系统可能会在未通知应用程序的情况下清 除被挂起的应用程序,为前台应用程序尽可能腾 出更多的运行资源。
在应用程序的状态转换过程中,系统会回调 实现UIApplicationDelegate协议类的一些方法(如 在Demo中,Xcode默认创建AppDelegate类),并发送相应的本地通知(系统会先回调相应的方法,待回调方法执行后,再发送相应的通知)。 回调方法和本地通知的对应关系,如下图所示:
这里我创建一个SDK工具类(SensorsSDK),方便后续集成。
新建一个SensorsSDK工具SDK,如下图所示:
基本预置属性
一般情况下,用户触发的任何事件都携带一些最基本的信息,比如操 作系统类型、操作系统版本号、运营商信息、应用程序版本号、生产厂商 等,这些信息都可以由埋点SDK自动采集。我们把这些默认由埋点SDK自 动采集的事件基本信息(属性)称为预置属性。 当前你也可以定义需要采集的其他信息。
我们可以在SensorsAnalyticsSDK类初始化时获取这些预置属性,然后 在触发事件时,将这些预置属性添加到每一个事件中。 首先,在SensorsAnalyticsSDK.m文件中新增一个 NSDictionary<NSString *,**id**>类型的属性automaticProperties,用于保存事件 的预置属性。
说明: $为区分系统定义的事件标识前缀
| 预置属性 | 说明 |
|---|---|
| $os | 操作系统类型 |
| $lib | SDK类型 |
| $manufacturer | 设置制造商 |
| $lib_version | SDK版本号 |
| $os_version | 操作系统版本号 |
| $model | 手机型号 |
| $app_version | 应用程序版本号 |