首页 > 用户手册 > 开发者文档 > 集成IOS SDK

集成IOS SDK

1. 集成准备

1.1 获取AppKey

集成数极客SDK之前,您首先需要到数极客官网(https://www.shujike.com)注册并且添加新应用,获得Appkey

1.2 下载相关SDK (最低支持iOS(8.0)版本)

点击下载SDK

注:私有化部署客户,请联系专属咨询顾问获取SDK。

2. 集成SDK步骤

按照 以下步骤将SDK导入到您的项目中。

2.1解压 iOS SDK 压缩文件;

2.2添加 SjkAgent.h 和 libSjkAgent.a、SjkBundle.bundle 添加到您的 iOS 工程中;

提醒:

  • 记得勾选 "Copy items if needed"

2.3 添加编译参数

在您的工程项目中添加编译参数

a.找到 Linking 设置
b.在 Other Linker Flags 中添加 -ObjC 参数,请注意大小写

提醒:

  • Linking 设置位于 项目设置 target -> 选项卡 Build Settings,左上角选择 All。

2.4 添加初始化函数

在 AppDelegate 中引入#import "SjkAgent.h"并添加启动方法

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

    //初始化SDK
    [[SjkAgent shareAgent] setIsLogEnabled:(true)];//正式发版时请关闭debug模式
    [SjkAgent startWithAppKey:@"a9b4642966ced5c1" appChannel:@"App Store"];
    return YES;

}

2.5 添加URL Scheme

把 URL Scheme 添加到您的项目,以便我们唤醒您的程序,进行圈选。

URL Scheme 的格式是 sjk.xxxxxxxxxxxxxxxx(sjk.appkey)。

a. 添加您的 URL Scheme(sjk.xxxxxxxxxxxxxxxx)到项目中,URL Scheme 位于项目设置 target -> 选项卡 Info -> URL Types
b. 在 AppDelegate 中调用函数 [SjkAgent handleUrl:] 来接收 URL

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    if ([SjkAgent handleUrl:url])
    {
        return YES;
    }
    ...
    return NO;
}

提醒:

  • 如果您的 AppDelegate 中,实现了其中一个或者多个方法,请在已实现的函数中,调用 [SjkAgent handleUrl:],并确保代理方法被执行(未执行将不会启动圈选控制条)。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
  • 如果以上所有函数都未实现,则请实现以下方法并调用 [SjkAgent handleUrl:]。

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation

  • 实际情况可能很复杂,请在调试时确保函数 [SjkAgent handleUrl:] 会被执行到。

    2.6 swift支持

    新建"Bridging-Header.h"文件,并在该文件中引入SjkAgent头文件#import "SjkAgent.h",在 TARGETS —> Build Settings 选项下 Objective-C Bridging Header 写入"Bridging-Header.h"文件的相对路径。

    2.7 验证SDK集成log

    a. 集成SDK 成功后控制台打印

      2019-06-10 09:43:37.542182+0800 SjkAgent[2648:146909] SjkLog : debug模块 启动成功!
      2019-06-10 09:43:37.547010+0800 SjkAgent[2648:146909] SjkLog : agent模块 启动成功!
      2019-06-10 09:43:37.547450+0800 SjkAgent[2648:146909] SjkLog : crash模块 启动成功!
      2019-06-10 09:43:38.297567+0800 SjkAgent[2648:146909] SjkLog : sdk 初始化完成!
      2019-06-10 09:43:38.463103+0800 SjkAgent[2648:146909] SjkLog : get config接口 信息成功!
    

b. 点击任意按钮之后打印

2019-06-10 09:45:35.082576+0800 SjkAgent[2648:146992] SjkLog : post “e=click” 事件成功

3. 添加统计代码

3.1 添加自定义事件接口:

在需要统计事件的位置加入以下代码。

设置单个参数:

[SjkAgent postEventevent:@"自定义事件id" value:@"m_Q1" key:@"1"];

设置多个参数:

NSDictionary *eventAttMap = @{@"m_Q1":@"1",
                              @"m_Q2":@"2",
                              @"d_Q3":@"3"};
[SjkAgent postEventevent:@"自定义事件id" dict:eventAttMap];

自定义事件信息 请参考

3.2 添加自定义属性接口:

在需要定义属性的位置调用以下代码:

设置单个属性:

[SjkAgent setAttributeValue:@"自定义的属性id" key:@"2"];

设置多个属性:

NSDictionary *attributeMap = @{@"自定义的属性id":@"100",
                               @"自定义的属性id":@"101",
                               @"自定义的属性id":@"102"};
[SjkAgent setAttributeDict:attributeMap];

自定义属性信息 请参考

3.3添加绑定用户信息接口:

在需要登陆入口或者其他需要绑定用户信息的地方调用以下代码:

设置用户信息:

//设置用户信息
UserBean *userBean = [[UserBean alloc]init];
userBean.userId = @"788";
userBean.userRegesterChannel = @"微信";
userBean.userGender = @"男";
....
[SjkAgent bindUserInfo:userBean];

4.调试模式

在SDK初始化时可以设置debug模式,此模式下可查看SDK log 。代码如下

[[SjkAgent shareAgent] setIsLogEnabled:(true)];//正式发版时请关闭debug模式
[SjkAgent startWithAppKey:@"a9b4642966ced5c1" appChannel:@"App Store"];. 采集Error数据  

5.采集Error数据

自动采集奔溃日志,无需特殊配置。

登录数极客官网后台查看
例如:

6.实现APP与H5页面数据打通

6.1 为什么要实现APP与H5页面数据打通

APP嵌套H5混合开发在互联网APP中非常多见。但对有h5嵌套的APP端用户行为分析时,传统用户行为分析平台经常会出现“断档”的情况:
a.当用户通过APP端跳转到h5页面,APP端采集的用户属性数据不能迁移到h5,导致数据缺失,原生APP只起到了一个浏览器的作用。
b.APP端贡献给h5的流量,因数据未与APP打通共享,导致APP数据源从根本上出现缺失,造成一定程度上分析决策偏差。
为了更好的解决APP与h5贯通的问题,数极客研发出APP与h5完全贯通的移动端SDK,顺利解决该问题。

6.2 场景

某产品首页上线活动,有多少用户点击跳转到h5页面,有多少用户参加活动,有多少用户真正完成目标事件。在APP与h5贯通的情况下即可以按照用户的设备类型,下载渠道等APP端的用户属性细分进行多维度的细分,研究不同维度活动转化路径的效果的关键影响因素,复盘活动效果,提升活动转化率。

6.3 使用数极客自动采集H5页面的数据,无需特殊配置。

7. 注意事项

7.1 为了不影响圈选,请设置允许 HTTP 协议请求。
7.2 扫码圈选时请使用浏览器,微信和支付宝不支持打开应用。
7.3 需要在工程项目中添加 "libresolv.tbd"库文件

8. 技术支持

8.1 查看集成Demo
8.2 如有任何问题可联系我们公司客服或技术人员进行解答。

results matching ""

    No results matching ""