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;
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// 初始化配置 配置TSConfigOptions对象,默认server_url值SDK会自动判断
let options = TSConfigOptions(appKey: "qa157646865XXX", launchOptions: launchOptions);
// 如果需要自定义指定server_url参数,则使用下面的方法进行配置
//let options1 = TSConfigOptions(appKey: "qa157646865XXX",serverURL: "XXX", launchOptions: launchOptions);
// 开启 Debug模式
options.debugMode = TSAnalyticsDebugMode.only;
//用于区分一个项目下的多个应用, 可选
options.ts_app = "";
//全局自定义扩展属性
options.ts_ext = "";
// 初始化SDK
TSAnalyticsSDK.start(with: options);
return true
}
}
二、设置用户属性
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 | 否 | 城市 |
示例
//在登录成功后设置用户信息
let userInfo = TSConfigUserInfo();
userInfo.guid = "9527";
TSAnalyticsSDK.sharedInstance().setUserInfo(userInfo);
2.2 采集页面数据
示例
在需要自定义页面名称的控制器中继承协议,实现对应的协议方法即可
import UIKit
class ViewController: UIViewController,TSAnalyticsSDKAutoTracker {
var channel:String = "";
var firstName:String = "";
var age:NSInteger = 0;
var isShow:Bool = false;
var lastName:String = "";
override func viewDidLoad() {
super.viewDidLoad()
self.title = "test页面";
self.view.backgroundColor = UIColor.white;
// getProperties()
}
///自定义页面名称
func setPageName() -> String {
return NSStringFromClass(testViewController.self) + "的page_name";
}
///自定义页面标题
func setPageTitle() -> String {
return NSStringFromClass(testViewController.self) + "的page_title";
}
}
至此已完成对页面数据的采集,用户访问页面,即可监测到对应数据
三、自定义事件埋码
示例
⻚⾯有⼀个获取⼿机验证码的按钮需要,需要添加监测,可在点击按钮时调用事件采集接口
接口参数类型:JsonObject
JsonObject 中的每个参数如下
- event_name:String,必须,事件名称
- event_param:JsonObject,选填,事件属性
let eventInfo = TSConfigEvent();
// 事件名 必须
eventInfo.eventName = "获取验证码";
let eventParam = [
"phone": "1861087138x",//事件属性 非必须 手机号
];
eventInfo.eventParam = eventParam;
// 上报数据
TSAnalyticsSDK.sharedInstance().event(eventInfo);
通过上面的监测代码,我们可以监测到获取手机验证码的按钮,被点击了几次,以及哪些手机号在获取验证码
示例 1:查看商品,加入购物车流程
// 在进入商品详情页面加载完成后埋点上传「商品详情」事件
let eventInfo = TSConfigEvent();
// 定义事件名称
eventInfo.eventName = "商品详情";
let eventParam = [
"productId": "1",// 设置商品ID
"productName": "源慧大礼品",// 设置商品名称
"productCategory": "电子",// 设置商品类别
];
//设置事件属性
eventInfo.eventParam = eventParam;
// 调用采集事件接口
TSAnalyticsSDK.sharedInstance().event(eventInfo);
// 在商品详情页面为加入购物车按钮进行埋点上传,事件为「加入购物车」
let eventInfo = TSConfigEvent();
// 定义事件名称
eventInfo.eventName = "加入购物车";
let eventParam = [
"productId": "1",// 设置商品ID
"productName": "源慧大礼品",// 设置商品名称
"productCategory": "电子",// 设置商品类别
];
//设置事件属性
eventInfo.eventParam = eventParam;
// 调用采集事件接口
TSAnalyticsSDK.sharedInstance().event(eventInfo);
示例 2:用户登录流程
// 点击登录按钮后未提交登录请求前进行埋点上传,事件为「登录」
let eventInfo = TSConfigEvent();
// 定义事件名称
eventInfo.eventName = "登录";
// 定义事件属性,该事件属性为空
let eventParam = [];
//设置事件属性
eventInfo.eventParam = eventParam;
// 调用采集事件接口
TSAnalyticsSDK.sharedInstance().event(eventInfo);
// 点击登录按钮提交登录请求后进行埋点上传,事件为「登录成功」
let eventInfo = TSConfigEvent();
// 定义事件名称
eventInfo.eventName = "登录成功";
let eventParam = [
"status": "success",// 设置登录状态 success/fail
"errMsg": ""// 设置登录失败错误信息
];
//设置事件属性
eventInfo.eventParam = eventParam;
// 调用采集事件接口
TSAnalyticsSDK.sharedInstance().event(eventInfo);
通过上面的示例,可以在任意流程进行事件埋点