数据采集API
1. 初始化是否成功
isInitializedSuccessfully()
返回是否初始化成功
示例
- Swift Package Manager
- Cocoapods(Swift)
- Cocoapods(Objective-C)
// 无埋点
let success = Autotracker.isInitializedSuccessfully()
// 埋点
let success = Tracker.isInitializedSuccessfully()
// 无埋点
let success = GrowingAutotracker.isInitializedSuccessfully()
// 埋点
let success = GrowingTracker.isInitializedSuccessfully()
// 无埋点
BOOL success = [GrowingAutotracker isInitializedSuccessfully];
// 埋点
BOOL success = [GrowingTracker isInitializedSuccessfully];
2. 数据采集开关
setDataCollectionEnabled(_ enabled: Bool)
打开或关闭数据采集
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
enabled | Bool | true 打开数据采集,false 关闭数据采集,默认 true |
示例
- Swift Package Manager
- Cocoapods(Swift)
- Cocoapods(Objective-C)
// 无埋点
Autotracker.setDataCollectionEnabled(true)
// 埋点
Tracker.setDataCollectionEnabled(true)
// 无埋点
GrowingAutotracker.sharedInstance().setDataCollectionEnabled(true)
// 埋点
GrowingTracker.sharedInstance().setDataCollectionEnabled(true)
// 无埋点
[[GrowingAutotracker sharedInstance] setDataCollectionEnabled:YES];
// 埋点
[[GrowingTracker sharedInstance] setDataCollectionEnabled:YES];
3. 设置登录用户 ID
setLoginUserId(_ userId: String)
setLoginUserId(_ userId: String, userKey: String?)
当用户登录之后调用,设置登录用户ID
-
如果您的App每次用户升级版本时无需重新登录的话,为防止用户本地缓存被清除导致的无法被识别为登录用户,建议在用户每次升级App版本后初次访问时重新调用setLoginUserId方法
-
当需要标记用户ID类型时,请先进行规划,并在平台的数据中心,添加新的用户身份类型,再设置userkey,误设会影响数据质量。 同时在初始化 SDK 时设置
idMappingEnabled
为true
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
userId | String | 长度限制大于0且小于等于1000,如果大于长度1000将只截取前1000长度 |
userKey | String | 适用于ID-MAPPING,可设置 userId 的类型, 默认不传 |
示例
- Swift Package Manager
- Cocoapods(Swift)
- Cocoapods(Objective-C)
// 无埋点
Autotracker.setLoginUserId("123456")
Autotracker.setLoginUserId("13111111111", userKey: "phone")
// 埋点
Tracker.setLoginUserId("123456")
Tracker.setLoginUserId("13111111111", userKey: "phone")
// 无埋点
GrowingAutotracker.sharedInstance().setLoginUserId("123456")
GrowingAutotracker.sharedInstance().setLoginUserId("13111111111", userKey: "phone")
// 埋点
GrowingTracker.sharedInstance().setLoginUserId("123456")
GrowingTracker.sharedInstance().setLoginUserId("13111111111", userKey: "phone")
// 无埋点
[[GrowingAutotracker sharedInstance] setLoginUserId:@"123456"];
[[GrowingAutotracker sharedInstance] setLoginUserId:@"13111111111" userKey:@"phone"];
// 埋点
[[GrowingTracker sharedInstance] setLoginUserId:@"123456"];
[[GrowingTracker sharedInstance] setLoginUserId:@"13111111111" userKey:@"phone"];
4. 清除登录用户 ID
cleanLoginUserId()
当用户登出之后调用,清除已经设置的登录用户 ID。
示例
- Swift Package Manager
- Cocoapods(Swift)
- Cocoapods(Objective-C)
// 无埋点
Autotracker.cleanLoginUserId()
// 埋点
Tracker.cleanLoginUserId()
// 无埋点
GrowingAutotracker.sharedInstance().cleanLoginUserId()
// 埋点
GrowingTracker.sharedInstance().cleanLoginUserId()
// 无埋点
[[GrowingAutotracker sharedInstance] cleanLoginUserId];
// 埋点
[[GrowingTracker sharedInstance] cleanLoginUserId];
5. 设置用户的地理位置
setLocation(latitude: Double, longitude: Double)
设置用户当前的地理位置,基于 WGS-84 坐标
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
latitude | double | 地理坐标点纬度 |
longitude | double | 地理坐标点经度 |
示例
- Swift Package Manager
- Cocoapods(Swift)
- Cocoapods(Objective-C)
// 无埋点
Autotracker.setLocation(latitude: 39.9, longitude: 116.36)
// 埋点
Tracker.setLocation(latitude: 39.9, longitude: 116.36)
// 无埋点
GrowingAutotracker.sharedInstance().setLocation(latitude: 39.9, longitude: 116.36)
// 埋点
GrowingTracker.sharedInstance().setLocation(latitude: 39.9, longitude: 116.36)
// 无埋点
[[GrowingAutotracker sharedInstance] setLocation:39.9 longitude:116.36];
// 埋点
[[GrowingTracker sharedInstance] setLocation:39.9 longitude:116.36];
6. 清除用户的地理位置
cleanLocation()
清除用户当前的地理位置
示例
- Swift Package Manager
- Cocoapods(Swift)
- Cocoapods(Objective-C)
// 无埋点
Autotracker.cleanLocation()
// 埋点
Tracker.cleanLocation()
// 无埋点
GrowingAutotracker.sharedInstance().cleanLocation()
// 埋点
GrowingTracker.sharedInstance().cleanLocation()
// 无埋点
[[GrowingAutotracker sharedInstance] cleanLocation];
// 埋点
[[GrowingTracker sharedInstance] cleanLocation];
7. 设置埋点事件
Autotracker.track(_ eventName: String, attributes: [String: Any]?)
发送一个埋点事件;注意:在添加发送的埋点事件代码之前,需在 CDP 平台事件管理界面创建埋点事件以及关联事件属性;
如果事件属性需关联维度表,请在事件属性下关联维度表( CDP 平台版本>= 2.1 )
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
eventName | String | 事件名,事件标识符 |
attributes | [String: Any]? | 事件发生时所伴随的属性信息;当事件属性关联有维度表时,属性值为对应的维度表模型 ID(记录 ID)(可选) |
示例
- Swift Package Manager
- Cocoapods(Swift)
- Cocoapods(Objective-C)
// 无埋点
Autotracker.track("eventName")
Autotracker.track("eventName", attributes: ["property": "value"])
// 埋点
Tracker.track("eventName")
Tracker.track("eventName", attributes: ["property": "value"])
// 无埋点
GrowingAutotracker.sharedInstance().trackCustomEvent("eventName")
GrowingAutotracker.sharedInstance().trackCustomEvent("eventName", withAttributes: ["property": "value"])
// 埋点
GrowingTracker.sharedInstance().trackCustomEvent("eventName")
GrowingTracker.sharedInstance().trackCustomEvent("eventName", withAttributes: ["property": "value"])
// 无埋点
[[GrowingAutotracker sharedInstance] trackCustomEvent:@"eventName"];
[[GrowingAutotracker sharedInstance] trackCustomEvent:@"eventName" withAttributes:@{@"property": @"value"}];
// 埋点
[[GrowingTracker sharedInstance] trackCustomEvent:@"eventName"];
[[GrowingTracker sharedInstance] trackCustomEvent:@"eventName" withAttributes:@{@"property": @"value"}];
详细使用示例:埋点事件示例
8. 事件计时器
trackTimer(_ eventName: String)
初始化一个事件计时器,参数为计时事件的事件名称,返回值为该事件计时器唯一标识
pauseTimer(_ timerId: String)
暂停事件计时器,参数为 trackTimer 返回的唯一标识
resumeTimer(_ timerId: String)
恢复事件计时器,参数为 trackTimer 返回的唯一标识
endTimer(_ timerId: String, attributes: [String: Any]?)
停止事件计时器,参数为 trackTimer 返回的唯一标识。调用该接口会自动触发删除定时器。
removeTimer(_ timerId: String)
删除事件计时器,参数为 trackTimer 返回的唯一标识。
该接口会将标识为 timerId 的计时器置为空。调用停止计时器接口,会自动触发该接口。注意移除时不论计时器处于什么状 态,都不会发送事件。
clearTimers()
清除所有已经注册的事件计时器。
存在所有计时器需要清除时调用。注意移除时不论计时器处于什么状态,都不会发送事件。
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
eventName | String | 事件名,事件标识符 |
attributes | [String: Any]? | 事件发生时所伴随的属性信息;当事件属性关联有维度表时,属性值为对应的维度表模型 ID(记录 ID)(可选) |
参数 | 参数类型 | 说明 |
---|---|---|
timerId | String | 计时器唯一标识符,由trackTimer 返回 |
示例
- Swift Package Manager
- Cocoapods(Swift)
- Cocoapods(Objective-C)
// 无埋点
let timerId = Autotracker.trackTimer("eventName")
if let timerId = timerId {
Autotracker.pauseTimer(timerId)
Autotracker.resumeTimer(timerId)
Autotracker.endTimer(timerId)
Autotracker.endTimer(timerId, attributes: ["property": "value"])
Autotracker.removeTimer(timerId)
}
Autotracker.clearTimers()
// 埋点
let timerId = Tracker.trackTimer("eventName")
if let timerId = timerId {
Tracker.pauseTimer(timerId)
Tracker.resumeTimer(timerId)
Tracker.endTimer(timerId)
Tracker.endTimer(timerId, attributes: ["property": "value"])
Tracker.removeTimer(timerId)
}
Tracker.clearTimers()
// 无埋点
let timerId = GrowingAutotracker.sharedInstance().trackTimerStart("eventName")
if let timerId = timerId {
GrowingAutotracker.sharedInstance().trackTimerPause(timerId)
GrowingAutotracker.sharedInstance().trackTimerResume(timerId)
GrowingAutotracker.sharedInstance().trackTimerEnd(timerId)
GrowingAutotracker.sharedInstance().trackTimerEnd(timerId, withAttributes: ["property": "value"])
GrowingAutotracker.sharedInstance().removeTimer(timerId)
}
GrowingAutotracker.sharedInstance().clearTrackTimer()
// 埋点
let timerId = GrowingTracker.sharedInstance().trackTimerStart("eventName")
if let timerId = timerId {
GrowingTracker.sharedInstance().trackTimerPause(timerId)
GrowingTracker.sharedInstance().trackTimerResume(timerId)
GrowingTracker.sharedInstance().trackTimerEnd(timerId)
GrowingTracker.sharedInstance().trackTimerEnd(timerId, withAttributes: ["property": "value"])
GrowingTracker.sharedInstance().removeTimer(timerId)
}
GrowingTracker.sharedInstance().clearTrackTimer()
// 无埋点
NSString *timerId = [[GrowingAutotracker sharedInstance] trackTimerStart:@"eventName"];
if (timerId) {
[[GrowingAutotracker sharedInstance] trackTimerPause:timerId];
[[GrowingAutotracker sharedInstance] trackTimerResume:timerId];
[[GrowingAutotracker sharedInstance] trackTimerEnd:timerId];
[[GrowingAutotracker sharedInstance] trackTimerEnd:timerId withAttributes:@{@"property" : @"value"}];
[[GrowingAutotracker sharedInstance] removeTimer:timerId];
}
[[GrowingAutotracker sharedInstance] clearTrackTimer];
// 埋点
NSString *timerId = [[GrowingTracker sharedInstance] trackTimerStart:@"eventName"];
if (timerId) {
[[GrowingTracker sharedInstance] trackTimerPause:timerId];
[[GrowingTracker sharedInstance] trackTimerResume:timerId];
[[GrowingTracker sharedInstance] trackTimerEnd:timerId];
[[GrowingTracker sharedInstance] trackTimerEnd:timerId withAttributes:@{@"property" : @"value"}];
[[GrowingTracker sharedInstance] removeTimer:timerId];
}
[[GrowingTracker sharedInstance] clearTrackTimer];
endTimer 时发送 CUSTOM 事件上报数据:
- eventName 埋点事件标识符(trackTimer 传入)
- attributes 用户自定义事件属性(endTimer 传入)
- event_duration 事件时长 (SDK 内部根据 timerId 自动计算获取 )
event_duration 按照秒上报,小数点精度保证到毫秒
event_duration 变量及其值会自动添加在 attributes 中
event_duration 时间统计不会计算后台时间 - eventName 对应的埋点事件需要在平台中绑定标识符为 event_duration, 且类型为小数的事件属性
9. 设置登录用户属性
setLoginUserAttributes(_ attributes: [String: Any])
以登录用户的身份定义登录用户属性,用于用户信息相关分析。
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
attributes | [String: Any] | 用户属性信息 |
示例
- Swift Package Manager
- Cocoapods(Swift)
- Cocoapods(Objective-C)
// 无埋点
Autotracker.setLoginUserAttributes(["property": "value"])
// 埋点
Tracker.setLoginUserAttributes(["property": "value"])
// 无埋点
GrowingAutotracker.sharedInstance().setLoginUserAttributes(["property": "value"])
// 埋点
GrowingTracker.sharedInstance().setLoginUserAttributes(["property": "value"])
// 无埋点
[[GrowingAutotracker sharedInstance] setLoginUserAttributes:@{@"property" : @"value"}];
// 埋点
[[GrowingTracker sharedInstance] setLoginUserAttributes:@{@"property" : @"value"}];
详细使用示例:用户属性事件示例