说明
这是iOS SDK新版集成文档,包含:
如果想继续查看旧版文档,请点击这个链接:iOS SDK集成
下图为您概要介绍 SDK 集成相关文档的组织思路,您可参考以下导读示意图了解文档结构,查阅对应文档完成 集成操作。
在进行 SDK 集成前,您需结合您的业务分析情况先进行埋点规划,明确出待分析的业务指标中可能需要埋点的事件有哪些、属性有哪些等。进行埋点规划时,您需了解一些基本概念和 DataFinder 为您预置提供的埋点事件和属性、DataFinder 的用户标识逻辑等前置信息,结合 DataFinder 为您提供的能力进行埋点规划。
基本概念 | 概念说明 | 埋点规划与 SDK 集成要点 | 详细指导文档 |
|---|---|---|---|
事件、事件属性、事件公共属性、用户属性 | DataFinder 的用户行为数据分析是基于事件+用户模型的分析模型。
| 您需根据业务分析需要,规划好待采集的事件、事件属性、用户属性有哪些、类型是什么,进行 SDK 集成时 | 详细概念介绍请参见数据模型。 |
埋点、全埋点、自定义埋点 |
| 通常建议您结合 DataFinder 提供的预置事件/属性和自定义埋点进行埋点规划。 |
进行埋点规划时,您需明确清楚需采集上报的事件、属性的数据格式要求,以及采集上报的一些限制要求,避免后续因为数据格式等不满足要求,进而导致数据采集后无法入库、后续无法查询分析。
SDK上报的数据通常有固定的格式,主要包括 header、事件两个部分。
字段 | 作用 | iOS 端数据示例 |
|---|---|---|
header | 存放事件公共属性。 |
|
事件 | 存放事件及事件属性。 |
其中,需要上报自定义事件、自定义属性时,您需确保事件和属性的数据格式符合要求,当前 DataFinder 支持的数据格式要求和数据上报的限制请参见支持的数据格式与事件/属性分类。
常见问题:
进行埋点规划时,您需要了解 DataFinder 的用户标识逻辑,用于结合自身业务的用户标识逻辑进而最终统一用户的标识数据来源。DataFinder 默认以用户作为统计分析的对象,默认使用 SSID 作为用户唯一标识 ID 来计算指标,此时用户的 SSID 就是默认的统计口径。当您的分析对象为用户时,建议保持默认统计口径 SSID,DataFinder 可通过 ID_Mapping 将用户的device_id、user_unique_id 等进行 mapping 后,尽量通过一个 SSID 还原一个真实的用户个体。
三类 ID 的 mapping 逻辑和更多关于用户标识的介绍详情请参见支持的用户唯一标识。
说明
如上文所述,大部分业务分析场景中,您需要结合自身业务特性进行自定义埋点的规划和集成,在此之前,您可以先了解下当前 DataFinder 已为您提供的预置事件、预置属性有哪些,结合已有的预置事件和属性能力,进一步规划自定义代码埋点的需求。
完成埋点规划后,建议您根据规划将埋点需求创建再 DataFinder 的需求管理页面,并将自定义埋点先录入 DataFinder 完成自定义埋点在 DataFinder 元数据的入库。
进行SDK集成前,您需要先获取在DataFinder上创建应用时,DataFinder生成的应用标识(APPID 或 APP Url),用于后续SDK集成时配置。
注意
进行数据接入上报时,您需要根据当前的环境类型和端类型确认您的数据上报地址。如果上报地址设置错误,后续会导致您无法正常上报、查询到数据。
注意
端类型 | SaaS-云原生环境 | SaaS-云原生环境 | SaaS-云原生环境 | SaaS-非云原生环境 国内环境 | SaaS-非云原生 海外BytePlus环境 |
|---|---|---|---|---|---|
iOS |
|
|
| 引入:'Host/CN' 后,无需配置 | 引入:'Host/SG' 后,无需配置 |
私有化部署场景下,您需要获取部署私有化环境时,自行规划配置的数据上送地址。如您不清楚此地址,请联系您的项目经理或客户成功经理。
以下为您提供了一个简单的 iOS 项目作为示例 demo,下文的 SDK 集成操作指导也基于此 demo,您可先下载 demo 文件用于学习了解 iOS SDK 的集成操作。
操作指导 | 操作录屏 |
|---|---|
使用CocoaPods引入source源,在Podfile中,添加source源。
在Podfile中,引入SDK,并执行
|
子模块说明
子模块 | 说明 | 备注 |
|---|---|---|
Core | 核心模块,必须 | |
Host/CN | SaaS国内非云原生,可选 | 在SaaS国内非云原生环境下需引入这个子模块,其他环境不需要 |
Host/SG | SaaS海外非云原生,可选 | 在SaaS国外非云原生环境下需引入这个子模块,其他环境不需要 |
UITracker | 全埋点功能,可选 | 需要全埋点功能时需引入这个子模块 |
Log | 圈选功能和实时埋点检测,可选 | 希望进行埋点实时检测或圈选功能时,需引入这两个子模块,实时埋点检测和圈选功能仅在开发阶段使用,上线后需要移除这两个子模块 |
Picker | 圈选功能,可选 | |
Unique | 采集IDFA,可选 | 希望在授权后采集IDFA,需引入这个子模块,该库仅在额外购买 Tracer 做归因业务时需要 |
DevTools | DevTools组件,可选 | DevTools是辅助开发者或测试人员进行应用内埋点验证和SDK接入问题排查的组件 |
Exception | 崩溃采集,可选 | 目前仅支持采集 NSException 崩溃 |
DeviceOrientation | 屏幕方向采集,可选 | 版本6.11.0+后开始支持 |
Location | 采集GPS,可选 | 需要定位权限,也可以选择手动传入经纬度坐标,从而不集成该库 |
Encryptor/SM2 | 国密SM2加密,可选 | 仅私有化版本支持 |
Exposure | 组件曝光,可选 | 用于组件曝光事件 |
各环境配置示例
云原生环境 | 私有化 | 非云原生环境 |
|---|---|---|
|
|
|
通常建议集成时参考以下流程:
初始化 SDK ---> 上报事件 ---> 设置用户登录态 ---> 验证上报 |
|---|
以下为一个简单的初始化 SDK 代码示例,您可通过此示例来快速了解 SDK 集成时的代码、涉及的初始化接口、典型的配置参数等,后续步骤中会为您逐步介绍 SDK 集成的详细操作要点。
|
|
以下示例,为您逐步演示大部分场景下初始化SDK的代码接入。
操作指导 | 操作录屏 |
|---|---|
|
设置数据上报域名前,您需要先明确您使用的环境和所在的地域,根据实际情况设置上报域名。确认您当前使用的环境类型请参见:SaaS云原生/非云原生&私有化环境。
云原生环境 | 私有化环境 | 非云原生环境 |
|---|---|---|
|
|
|
根据埋点规划,如果需要采集上报自定义事件,您可以使用“eventV3”设置自定义事件名和事件属性。
操作指导 | 操作录屏 |
|---|---|
|
如果需要设置用户登录态,可以使用setCurrentUserUniqueID 方法设置 user_unique_id 属性。
通常对于需要用户实名登录时,业务上会使用一个 ID 来唯一标识这个用户,您可以通过 setCurrentUserUniqueID 方法上报对应的业务的用户标识 ID。通常这个取值可以通过业务接口获取,或者直接读取已有的固定用户标识 ID 值。
操作指导 | 操作录屏 |
|---|---|
|
DevToolspod 'RangersAppLog', 'SDK-VERSION', :subspecs => [ # ... 'DevTools' ]
#import <RangersAppLog/BDAutoTrack.h> // ... #import <RangersAppLog/BDAutoTrackDevTools.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { /* 初始化SDK开始 */ BDAutoTrackConfig*config = [BDAutoTrackConfig configWithAppID:@"{{APPID}}" launchOptions:launchOptions]; // ... // 配置开启DevTool功能 config.devToolsEnabled = YES; // ... [BDAutoTrack sharedTrackWithConfig:config]; /* 初始化SDK结束 */ // 授权后 [[BDAutoTrack sharedTrack] startTrack]; //SDK启动 // 在 BDAutoTrack 初始化之后添加方法 显示悬浮按钮入口 [BDAutoTrackDevTools showFloatingEntryButton]; return YES; }
接入栏中显示了 DevTools 对增长营销套件 SDK 的核心信息的检查结果。首次接入增长营销套件 SDK 时可以通过该栏信息判断是否接入成功。
在 DevTools 面板中的功能栏点击“事件”即可切换到事件栏。通过实时查看事件信息可以检查事件参数与查看事件状态。
在控制台面板中点击“网络”即可进入网络抓包页面。通过网络请求的状态和请求体可以查看埋点上报是否成功。
说明
Devtools详细文档请查阅iOS埋点开发工具
详情请参见初始化相关配置。
详情请参见事件及属性、事件公共属性。
详情请参见设置用户属性。
详情请参见元素曝光功能API说明。
详情请参见加密设置开关。
更多场景实践请参见iOS SDK 集成场景实践。
完成初始化验证后,您可以在客户端进行测试操作,触发一些待采集上报的事件,测试事件上报后,大约15分钟内,您可以在增长分析平台中的用户细查页面查看具体用户行为流数据,即能看到测试事件及事件属性数据,用于验证埋点数据是否可正常采集上报。
user、header、events三个部分,分别展示采集上报的用户属性数据、公共事件属性属性、事件及事件属性数据,上报的数据包含了开启采集的预置和自定义的数据。DataFinder为您提供了丰富的API接口,除了上述通用流程中介绍的核心接口和典型场景的使用示例外,您也可以了解当前iOS 支持的主要API接口和其作用,根据业务需求可灵活调用对应接口完成业务数据埋点。
分类 | API列表 | API说明 |
|---|---|---|
全局API | 初始化单例,调用时机:1、必须在应用启动时调用,即在 application:didFinishLaunchingWithOptions: 中调用;2、必须在主线程中调用;3、必须在 SDK 其他方法调用之前调用。 | |
如果已初始化,则返回之前初始化好的单例;否则返回nil。本身不会做初始化。调用这个方法之前,必须先调用 sharedTrackWithConfig。 | ||
启动SDK单例,调用时机:1、必须在应用启动时调用,即在 application:didFinishLaunchingWithOptions: 中调用;2、必须在主线程中调用。 | ||
初始化方法,初始化一个实例。初始化接口可以重复调用,会返回一个实例,推荐返回之后,引用住这个实例,下次上报方便使用。 | ||
设置自定义的Host回调,设置一次即可,不需要多次设置,如果多次设置,会覆盖之前的初始化或者上一次设置的回调,如果为nil会清空回调。 | ||
设置用户登录态。 | ||
退出用户登录态。 | ||
上报事件,在初始化之后设置才能调用。 | ||
设置自定义的公共属性。 | ||
移除自定义的公共属性。 | ||
根据App ID获得一个config对象。 | ||
模块API | SDK提供AB实验能力,并提供了一系列的方法:ABTestConfigValueForKey、ABTestConfigValueSyncForKey:key:defaultValue、abVidsSync、allAbVids、allABTestConfigsSync。 | |
提供设置用户属性能力,并提供了一系列的方法:profileSet、profileSetOnce、profileUnset、profileIncrement、profileAppend。 | ||
本功能在6.10.0+后开始支持。当组件出现在屏幕可视范围内会自动触发一个曝光事件。 |