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];
通过上面的示例,可以在任意流程进行事件埋点