iOS SDK 快速接入

最后更新于:2019-03-06 18:34:44

在使用前,请先阅读数据模型的介绍。

1. 事件设计表(示例)

事件设计表一般是由神策分析师和你们对接的同事,针对具体业务需求一起梳理的需要做埋点的 Excel 表。

事件和用户属性设计
事件表 用户表
事件名 事件属性 数据类型 用户属性 数据类型
购买商品( ViewProduct ) 商品名称( ProductName ) 字符串(String) 姓名( name ) 字符串(String)
商品价格( ProductPrice ) 数值(Number) 性别( gender ) 字符串(String)

2. iOS SDK 集成

pod 'SensorsAnalyticsSDK'
  1. 下载 iOS SDK 源码
  2. 将解压目录下 SensorsAnalyticsSDK 文件夹拖拽到 Xcode 工程内并请勾选 Copy items if needed 选项
  3. 项目设置 Build Phase —> Link Binary With Libraries 添加依赖库:libicucore、libsqlite3 和 libz

3. iOS SDK 使用

3.1 初始化 SDK

在程序的入口(如 AppDelegate.m )中引入 SensorsAnalyticsSDK.h,并在初始化方法(如 - application:didFinishLaunchingWithOptions:launchOptions )中调用 sharedInstanceWithServerURL:andLaunchOptions: 初始化 SDK。

#import "SensorsAnalyticsSDK.h"

#ifdef DEBUG
#define SA_SERVER_URL @"<#【测试项目】数据接收地址#>"
#else
#define SA_SERVER_URL @"<#【正式项目】数据接收地址#>"
#endif

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    [self initSensorsAnalyticsWithLaunchOptions:launchOptions];
    return YES;
}

- (void)initSensorsAnalyticsWithLaunchOptions:(NSDictionary *)launchOptions {
    // 初始化 SDK
    [SensorsAnalyticsSDK sharedInstanceWithServerURL:SA_SERVER_URL
                                    andLaunchOptions:launchOptions];
    // 设置公共属性
    [[SensorsAnalyticsSDK sharedInstance] registerSuperProperties:@{@"appName": @"HelloSensorsAnalytics"}];
    // 追踪激活事件,详见:https://sensorsdata.cn/manual/app_channel_tracking.html
    [[SensorsAnalyticsSDK sharedInstance] trackInstallation:@"AppInstall"];
    // 打开自动采集, 并指定追踪哪些 AutoTrack 事件
    [[SensorsAnalyticsSDK sharedInstance] enableAutoTrack:SensorsAnalyticsEventTypeAppStart|
     SensorsAnalyticsEventTypeAppEnd|
     SensorsAnalyticsEventTypeAppViewScreen|
     SensorsAnalyticsEventTypeAppClick];
    // 打通 App 与 H5,详见:https://sensorsdata.cn/manual/app_h5.html
    [[SensorsAnalyticsSDK sharedInstance] addWebViewUserAgentSensorsDataFlag];
}

3.2 开启全埋点

开发者集成 Sensors Analytics SDK 后,SDK 可以自动采集一些用户行为,如 App 启动、退出等,开发者可以通过 enableAutoTrack: 接口打开自动采集功能:

// 打开自动采集, 并指定追踪哪些 AutoTrack 事件
[[SensorsAnalyticsSDK sharedInstance] enableAutoTrack:SensorsAnalyticsEventTypeAppStart|
SensorsAnalyticsEventTypeAppEnd|
SensorsAnalyticsEventTypeAppViewScreen|
SensorsAnalyticsEventTypeAppClick];

3.3 track 自定义事件

初始化 SDK 之后,可以在相应业务逻辑处通过 track 方法追踪用户行为事件,并为事件添加自定义属性。

// 用户浏览商品详情
- (void)userDidViewProduct {
    [[SensorsAnalyticsSDK sharedInstance] track:@"ViewProduct"
                                 withProperties:@{@"ProductName" : @"iPhone 8",
                                                  @"ProductPrice" : @(6888)}];
}

3.4 匿名 ID 和用户 ID 关联

用户在登录前 ,SDK 会分配一个匿名 ID 来标识游客。当用户注册成功或登录成功时调用 login 方法,传入对应的用户 ID ;匿名 ID 会与对应的用户 ID 进行关联,关联成功之后视为同一个用户。 调用时机:注册成功、登录成功 、初始化 SDK(如果能获取到用户 ID)都需要调用 login 方法传入用户 ID。

注意:用户 ID 是指可以唯一标识一个用户的 ID,通常是业务数据库里的主键或其它唯一标识。
//注册成功、登录成功、初始化SDK后  调用 login 传入用户ID
[[SensorsAnalyticsSDK sharedInstance] login:@"你们服务端分配给用户具体的用户 ID"];

3.5 设置用户属性

可以使用 set: 或 set:to: 方法设置用户属性,如年龄、性别等。

// 两种设置用户属性的方式
[[SensorsAnalyticsSDK sharedInstance] set:@"name" to:@"Lady Gaga"];

[[SensorsAnalyticsSDK sharedInstance] set:@{@"gender": @"Female"}];

4. 调试查看数据

1.10.23及以后的版本, SDK 调试模式默认为关闭状态,需在代码中配置 scheme 后,通过扫描神策分析「设置调试模式」的二维码开启调试模式; 开启调试模式只针对当前扫码打开的 App 有效,若 App 退到后台,杀掉(划掉) App 后,再次打开 App , SDK 的调试模式恢复为关闭状态.

1、获取并配置 scheme

获取 scheme

使用 admin 账号,登录到神策分析相应的项目,点击右上角的账号,从「数据接入」页面获取 scheme 的值。

配置 scheme

点击项目 target 选择选项卡 Info,添加 URL Types,将第一步获取到的 scheme 配置到 URL Scheme 中。

2、用手机浏览器扫码打开 App,选择调试模式

在神策分析 v1.13 及之后版本中点击「设置设备调试模式」打开二维码。

二维码位置:「神策分析」——「埋点」——「导入实时查看」——「Debug 数据」——「设置设备调试模式」

扫码打开 App 时,会弹出提示,选择想要切换的调试模式。

开启调试模式(导入数据):打开调试模式,校验数据,并将数据导入到神策分析中。

开启调试模式(不导入数据):打开调试模式,仅校验数据,但不进行数据导入,数据最终不会进入到数据库。

3、开启调试模式后,可以在神策分析 「埋点」→ 「导入实时查看」 点击「开始刷新」查看当前设备的调试数据上报情况

4、开启调试模式后,也可以通过 Xcode 控制台查看输出的日志。过滤日志关键字为:SALog,一个事件有两条日志。 日志中如果出现 【track event】 字段, 说明日志采集成功,如果出现 【valid message】 字段,说明数据已同步到服务端。