iOS
全局配置
引入 SDK
使用 cocoapods 接入
# 埋点SDK
pod 'EventTracing-iOS'
# 调试工具
pod 'EventTracing-iOS-Debug', :configurations => ["Debug"]
# 埋点校验工具
pod 'EventTracing-iOS-LogViewer', :configurations => ["Debug"]
启动 SDK
曙光埋点的启动十分简单,您只需要在APP启动时的合适时机(比如 didFinishLaunch
加入如下代码,进行一些简单配置,即可完成SDK的启动
您可以参考关于启动配置的详细的介绍,也可以参考一个完整的启动配置示例
[[EventTracingEngine sharedInstance] startWithContextBuilder:^(id<EventTracingContextBuilder> _Nonnull builder) {
// output channel
[builder addOutputChannel:self];
}];
设置节点 oid
- 启动SDK后,需要将目标元素设置上合适的oid,oid的类型分为2种:
page
和element
- 这取决于BI对节点如何定义,一般来说某个独立的
XXViewController
建议配置为xx_page
的页面节点类型 - 而
按钮、UI组件
等适合设置为xx_btn
xx_cell
的element节点。
但是每个页面的顶层节点必须被设置为page节点,并且它默认情况下会自动成为根节点
名词解释
- oid: object id 的缩写,每个节点对象的都会有一个oid,page id 和 element id 都是 oid
- Page 节点: 页面节点,可以给
XXViewController
XXView
等对象设置,形如home_page
profile_page
等- Element 节点: 元素节点,可以给
XXButton
XXCell
等对象设置,形如login_btn
music_list_cell
- 根节点: 当前页面顶层 Page 节点,每个页面必须要有,否则无法参与到埋点系统打点
- 子节点: 可以是Page节点,大部分时候是 element 节点
设置 page 节点
可以给 UIViewController 设置 page 节点,等价于给 vc.view 设置
/* 下面两种方式等价 */
// 给 vc 设置 page 节点
[EventTracingBuilder viewController:self pageId:@"page_list"];
// 给 view 设置 page 节点
[EventTracingBuilder view:vc.view pageId:@"page_list"];
设置 element 节点
// 给 view 设置为 element 节点
[[EventTracingBuilder view:self.tableView elementId:@"auto_impress_test_list"] build:^(id<EventTracingLogNodeBuilder> _Nonnull builder) {
builder
// 曝光开始、曝光结束、点击等都会自动进行打点
.buildinEventLogDisableStrategy(ETNodeBuildinEventLogDisableStrategyNone)
// 设置一个对象参数,该对象产生的所有埋点都会带上此参数
.params.set(@"auto_key", @"auto_val_123");
}];
自动打点
一些内置事件列表
支持的自动打点事件包括:
- 曝光:默认开启,分为页面曝光(
_pv
)和元素曝光(_ev
) - 点击:默认开启,元素被点击
_ec
- 结束曝光:默认关闭,页面曝光结束(
_pd
)和元素曝光结束(_ed
) - 冷启动:默认开启,
_ac
- 进入前台:默认开启,
_ai
- 进入后台:默认开启,
_ao
- 滚动:默认关闭,列表视图滚动
_es
手动打点
以上事件即支持自动打点,也支持手动触发打点,比如下方代码演示了如何手动触发1次 点击事件 _ec
[EventTracingBuilder logWithView:view event:^(id<EventTracingLogNodeEventActionBuilder> _Nonnull builder) {
builder.ec();
}];
可视化调试工具
- 为了更方便地进行本地埋点调试,我们开发了专门的埋点可视化调试工具,工具的需引入
EventTracing-iOS-Debug
工程 - 引入
EventTracing-iOS-Debug
后,您可以选择合适的时机,开启和关闭工具
/// 开启
[[EventTracingInspectEngine sharedInstance] startInspect2D];
/// 关闭
[[EventTracingInspectEngine sharedInstance] stop];
埋点实时校验工具
部署环境
- 为了更方便地进行本地埋点校验,我们跟平台一起对接,做了埋点实时校验工具,工具的集成需引入
EventTracing-iOS-LogViewer
工程 - 连接平台的API如下
EventTracingLogRealtimeViewerOptions *options = [[EventTracingLogRealtimeViewerOptions alloc] init];
[[EventTracingLogRealtimeViewer sharedInstance] setupWithOptions:options];
NSString * connectToken = @""; // token
NSString * connectPath = @""; // path
[[EventTracingLogRealtimeViewer sharedInstance] connectWithPath:connectPath connectToken:connectToken];
connectToken & connectPath
- 具体的 token 和 path 的示例值,可以参考 demo 中提供的例子,在文件
ETQRCodeScanViewController.m
中- 该值由 Easyinsight 平台提供,一般提供二维码形式
- 【推荐!!!】:您可以借助于app内的 router 能力,对二维码内容配合平台做改造,实现接入 router 系统的二维码扫描链接效果
注意
您应当只在 Debug 下引入 可视化调试工具 && 埋点实时校验工具, 以免影响线上业务
连接服务
- 部署曙光测试页
- 在测试页点开左上角找到「埋点测试」-「实时测试」
- 选择一个需求,点击「规则校验」,弹出二维码
- 打开手机 Demo,最后一个选项「实时校验」扫描该二维码,显示「连接成功」
- 此时曙光测试页会实时展现埋点数据