iOS SDK

1、iOS SDK 的最新版本是 2.0.5

一、集成 SDK

1.1、CocoaPods 获取 SDK 库

在 Podfile 文件中添加 pod 'TSAnalyticsSDK-iOS'
打开终端,切换到项目目录
执行 pod install 或 pod update

1.2、初始化 SDK

在 AppDelegate 程序入口引入 SDK,配置参数并调用采集数据接口

// 引入SDK 头文件
#import <AnalyticsSDK/AnalyticsSDK.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // 初始化配置 配置TSConfigOptions对象,默认server_url值SDK会自动判断
  TSConfigOptions *options = [[TSConfigOptions alloc] initWithAppKey:@"qa157646865XXX"  launchOptions:launchOptions];
  // 如果需要自定义指定server_url参数,则使用下面的方法进行配置
  // TSConfigOptions *options = [[TSConfigOptions alloc] initWithAppKey:@"qa157646865XXX" serverURL:@"XXX" launchOptions:launchOptions];
  // 开启 Debug模式
  options.debugMode = TSAnalyticsDebugOnly;
  //用于区分一个项目下的多个应用, 可选
  options.ts_app = @"";
  //全局自定义扩展属性
  options.ts_ext = @"";
   // 初始化SDK
  [TSAnalyticsSDK startWithConfigOptions:options];

    return YES;
}

二、设置用户属性

2.1 调用 setUserInfo 方法设置用户属性

在登录成功后设置用户信息,且最好在发送页面采集数据请求前调用,否则数据上无法准确识别用户

参数说明:JsonObject,只支持以下属性的设置

字段 类型 是否必须 说明
guid String 业务系统用户唯一标识
real_name String 真实姓名
nick_name String 昵称
age Number 年龄
birthday String 生日
gender String 性别: 男/女
account String 账号
country String 国家
province String 省份
city String 城市

示例

//在登录成功后设置用户信息
TSConfigUserInfo *userInfo = [[TSConfigUserInfo alloc] init];
userInfo.guid = @"9527";
[[TSAnalyticsSDK sharedInstance] setUserInfo:userInfo];

2.2 采集页面数据

示例

在需要自定义页面名称的控制器中继承协议,实现对应的协议方法即可

@interface ViewController : UIViewController<TSAnalyticsSDKAutoTracker>
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.title = @"首页";
}

///自定义页面名称
- (NSString*)setPageName {
    return [NSString stringWithFormat:@"%@的page_name", [self class]];
}

///自定义页面标题
- (NSString*)setPageTitle {
    return [NSString stringWithFormat:@"%@的page_title", [self class]];
}

@end

至此已完成对页面数据的采集,用户访问页面,即可监测到对应数据

三、自定义事件埋码

示例 1:查看商品,加入购物车流程

// 在进入商品详情页面加载完成后埋点上传「商品详情」事件
TSConfigEvent *eventInfo = [[TSConfigEvent alloc] init];
  // 定义事件名称
  eventInfo.eventName = @"商品详情";
  NSDictionary *eventParam = @{
      @"productId": @"1",// 设置商品ID
        @"productName": @"源慧大礼品",// 设置商品名称
        @"productCategory": @"电子",// 设置商品类别
  };
  //设置事件属性
  eventInfo.eventParam = eventParam;
// 调用采集事件接口
[[TSAnalyticsSDK sharedInstance] event:eventInfo];


// 在商品详情页面为加入购物车按钮进行埋点上传,事件为「加入购物车」
TSConfigEvent *eventInfo = [[TSConfigEvent alloc] init];
  // 定义事件名称
  eventInfo.eventName = @"加入购物车";
  NSDictionary *eventParam = @{
      @"productId": @"1",// 设置商品ID
        @"productName": @"源慧大礼品",// 设置商品名称
        @"productCategory": @"电子",// 设置商品类别
  };
  //设置事件属性
  eventInfo.eventParam = eventParam;
// 调用采集事件接口
[[TSAnalyticsSDK sharedInstance] event:eventInfo];

示例 2:用户登录流程

// 点击登录按钮后未提交登录请求前进行埋点上传,事件为「登录」
TSConfigEvent *eventInfo = [[TSConfigEvent alloc] init];
  // 定义事件名称
  eventInfo.eventName = @"登录";
// 定义事件属性,该事件属性为空
  NSDictionary *eventParam = @{};
  //设置事件属性
  eventInfo.eventParam = eventParam;
// 调用采集事件接口
[[TSAnalyticsSDK sharedInstance] event:eventInfo];


// 点击登录按钮提交登录请求后进行埋点上传,事件为「登录成功」
TSConfigEvent *eventInfo = [[TSConfigEvent alloc] init];
  // 定义事件名称
  eventInfo.eventName = @"登录成功";
// 定义事件属性,该事件属性为空
  NSDictionary *eventParam = @{
    @"status": @"success",// 设置登录状态 success/fail
    @"errMsg": @""// 设置登录失败错误信息
  };
  //设置事件属性
  eventInfo.eventParam = eventParam;
// 调用采集事件接口
[[TSAnalyticsSDK sharedInstance] event:eventInfo];

通过上面的示例,可以在任意流程进行事件埋点

results matching ""

    No results matching ""