1. 初始化后是否开始采集数据  

iOS 1.10.0+ 版本 SDKAndroid 1.10.1+ 版本 SDK 支持通过在线控制关闭 SDK,可以联系神策运维人员进行操作开启和关闭。

2. 采集的数据是否进行上报

iOS SDK 可以通过 - setFlushNetworkPolicy: 接口设置允许数据上报的网络类型,
可以通过设置 SensorsAnalyticsNetworkTypeNONE 来阻止 SDK 数据上报。待用户允许后,再调用该接口设置为相应策略即可恢复 SDK 数据上报功能。

// 用户允许前,关闭 SDK 上报功能
[[SensorsAnalyticsSDK sharedInstance] setFlushNetworkPolicy:SensorsAnalyticsNetworkTypeNONE];

// 用户允许后,恢复 SDK 上报功能
[[SensorsAnalyticsSDK sharedInstance] setFlushNetworkPolicy:SensorsAnalyticsNetworkType3G
														 |SensorsAnalyticsNetworkType4G
														 |SensorsAnalyticsNetworkTypeWIFI];
OBJECTIVE-C


Android SDK 可以通过 setFlushNetworkPolicy 接口设置允许数据上报的网络类型,
可以通过设置 SensorsDataAPI.NetworkType.TYPE_NONE 来阻止 SDK 数据上报。待用户允许后,再调用该接口设置为相应策略即可恢复 SDK 数据上报功能。

// 用户允许前,关闭 SDK 上报功能
SensorsDataAPI.sharedInstance().setFlushNetworkPolicy(SensorsDataAPI.NetworkType.TYPE_NONE);

// 用户允许后,恢复 SDK 上报功能
SensorsDataAPI.sharedInstance().setFlushNetworkPolicy(SensorsDataAPI.NetworkType.TYPE_3G
													 |SensorsDataAPI.NetworkType.TYPE_4G
													 |SensorsDataAPI.NetworkType.TYPE_WIFI);
JAVA

3. 禁止特定属性的采集

iOS 1.11.16+ 版本 SDK 支持通过 - trackEventCallback: 接口对即将入库的数据进行修改,可以移除事件中特定属性。

[[SensorsAnalyticsSDK sharedInstance] trackEventCallback:^BOOL(NSString *eventName, NSMutableDictionary<NSString *,id> *properties) {
	// 移除所有事件的 price 属性
	properties removeObjectForKey:@"price"];

	return YES;
}];
OBJECTIVE-C


Android 3.2.10+ 版本 SDK 支持通过 setTrackEventCallBack 接口对即将入库的数据进行修改,可以移除事件中特定属性。

SensorsDataAPI.sharedInstance().setTrackEventCallBack(new SensorsDataTrackEventCallBack() {
	@Override
	public boolean onTrackEvent(String eventName, JSONObject eventProperties) {
		// 移除所有事件的 price 属性
		eventProperties.remove("price");
		return true;
	}
});
JAVA

4. 禁止特定埋点的采集

iOS 1.11.16+ 版本 SDK 支持通过 - trackEventCallback: 接口对即将入库的数据进行修改,可以禁止特定事件入库和上报。

[[SensorsAnalyticsSDK sharedInstance] trackEventCallback:^BOOL(NSString *eventName, NSMutableDictionary<NSString *,id> * properties) {
	// 不采集 BuyProduct 事件
	if (eventName isEqualToString:@"BuyProduct"]) {
		return NO;
	}
	return YES;
}];
OBJECTIVE-C


Android 3.2.10+ 版本 SDK 支持通过 setTrackEventCallBack 接口对即将入库的数据进行修改,可以禁止特定事件入库和上报。

SensorsDataAPI.sharedInstance().setTrackEventCallBack(new SensorsDataTrackEventCallBack() {
	@Override
	public boolean onTrackEvent(String eventName, JSONObject eventProperties) {
		// 不采集 BuyProduct 事件
		if(eventName.equals("BuyProduct")){
			return false;
		}
	return true;
	}
});
JAVA

5. 禁止特定埋点下的特定属性的采集

iOS 1.11.16+ 版本 SDK  支持通过 - trackEventCallback: 接口对即将入库的数据进行修改,可以移除事件中特定属性。

[[SensorsAnalyticsSDK sharedInstance] trackEventCallback:^BOOL(NSString *eventName, NSMutableDictionary<NSString *,id> *properties) {
	// 移除 BuyProduct 事件的 productID 属性
	if (eventName isEqualToString:@"BuyProduct"]) {
		properties removeObjectForKey:@"productID"];
	}
	return YES;
}];
OBJECTIVE-C


Android 3.2.10+ 版本 SDK 支持通过 setTrackEventCallBack 接口对即将入库的数据进行修改,可以移除事件中特定属性。

SensorsDataAPI.sharedInstance().setTrackEventCallBack(new SensorsDataTrackEventCallBack() {
	@Override
	public boolean onTrackEvent(String eventName, JSONObject eventProperties) {
		// 移除 BuyProduct 事件的 productID 属性
		if(eventName.equals("BuyProduct")){
			eventProperties.remove("productID");
		}
	return true;
	}
});
JAVA

6. 当前用户的识别 ID,用于导出数据

  • iOS 1.11.5+ 版本 SDK 可以通过 - distinctIdloginId- anonymousId 获取相关 ID 信息,用于导出特定数据。
// 获取当前上报事件所使用的 distinctId
[[SensorsAnalyticsSDK sharedInstance] distinctId];

// 获取当前匿名 ID
[[SensorsAnalyticsSDK sharedInstance] anonymousId]

// 获取当前登录 ID,未登录返回 nil
[[SensorsAnalyticsSDK sharedInstance] loginId];
OBJECTIVE-C



Android 3.1.2+ 版本 SDK 可以通过 getDistinctIdgetAnonymousIdgetLoginId 获取相关 ID 信息,用于导出特定数据。

// 获取当前上报事件所使用的 distinctId
SensorsDataAPI.sharedInstance().getDistinctId();

// 获取当前匿名 ID
SensorsDataAPI.sharedInstance().getAnonymousId();

// 获取当前登录 ID,未登录返回 null
SensorsDataAPI.sharedInstance().getLoginId();
JAVA


7. 删除特定用户数据的功能


iOS SDK 可以通过 - unset:、 - deleteUser 接口删除相应用户在神策系统中的属性信息。

// 删除用户在神策的 gender 属性信息
[[SensorsAnalyticsSDK sharedInstance] unset:@"gender"];

// 删除用户在神策系统中的全部属性信息
[[SensorsAnalyticsSDK sharedInstance] deleteUser];
OBJECTIVE-C



Android SDK 可以通过 profileUnsetprofileDelete 接口删除相应用户在神策系统中的属性信息。

// 删除用户在神策的 gender 属性信息
SensorsDataAPI.sharedInstance().profileUnset("gender");

// 删除用户在神策系统中的全部属性信息
SensorsDataAPI.sharedInstance().profileDelete();
JAVA

8. 基于接口/工具删除数据的功能

iOS SDK 可以通过 - deleteAll 接口删除本地缓存的所有事件信息。

// 删除本地缓存的所有事件
[[SensorsAnalyticsSDK sharedInstance] deleteAll];
OBJECTIVE-C


Android SDK 可以通过 deleteAll 接口删除本地缓存的所有事件信息。

// 删除本地缓存的所有事件
SensorsDataAPI.sharedInstance().deleteAll();
JAVA