自动采集子系统(3.5APP控件点击事件APP的设置及设置属性分析)
优采云 发布时间: 2021-10-23 15:08自动采集子系统(3.5APP控件点击事件APP的设置及设置属性分析)
设置页面的属性和URL信息,SDK会自动将getTrackProperties:的返回值添加到View Controller的APP浏览页面事件中;此外,getScreenUrl: 的返回值将用作页面的 URL Schema。当触发本页面的浏览事件时,会添加预设属性#url,值为当前页面的URL Schema。同时,SDK 会在跳转前获取页面的 URL Schema。如果能获取到就加到预设属性中#referrer为转发地址。
@interface MYController : UITableViewController
@end
@implementation MYController
//对所有APPID实例进行设置
- (NSDictionary *)getTrackProperties {
return @{@"PageName" : @"商品详情页", @"ProductId" : @12345};
}
- (NSString *)getScreenUrl {
return @"APP://test";
/** 多APPID实例单独进行设置
* - (NSDictionary *)getTrackPropertiesWithAppid{
* return @{@"appid1" : @{@"testTrackProperties" : @"测试页"},
* @"appid2" : @{@"testTrackProperties2" : @"测试页2"},
* };
* }
* -(NSDictionary *)getScreenUrlWithAppid {
* return @{@"appid1" : @"APP://test1",
* @"appid2" : @"APP://test2",
* };
* }
*/
}
@end
3.5 APP控制点击事件
APP控件点击事件会在用户点击控件时触发
对于页面上View的点击事件,有几种方法可以设置更多的属性来扩展其解析值:
3.5.1 设置控件元素ID
您可以为页面(视图)上的元素设置元素 ID,以区分具有不同含义的元素。您可以使用以下方法设置元素 ID:
//对所有APPID实例进行设置
self.table1.thinkingAnalyticsViewID = @"testtable1";
// 多APPID实例单独进行设置
// self.table1.thinkingAnalyticsViewIDWithAppid = @{ @"app1" : @"testtableID2",
@"app2" : @"testtableID3" };
此时会在table1的点击事件中添加预设属性#element_id,值为这里传入的值
3.5.2 自定义控件点击事件的属性
对于大多数控件,可以直接使用thinkingAnalyticsViewProperties来设置自定义属性:
//对所有APPID实例进行设置
self.table1.thinkingAnalyticsViewProperties = @{@"key1":@"value1"};
// 多APPID实例单独进行设置
// self.table1.thinkingAnalyticsViewPropertiesWithAppid = @{@"app1":@{@"tablekey":@"tablevalue"},
@"app2":@{@"tablekey2":@"tablevalue2"}
};
3.5.3 UITableView 和 UI采集View 控件点击事件属性
对于 UITableView 和 UI采集View,需要通过实现 Protocol 来设置自定义属性:
1.首先在View Controller类中实现Protocol
2.其次,在类中设置代理。建议在viewDidLoad方法中设置。
self.table1.thinkingAnalyticsDelegate = self;
//对所有APPID实例进行设置,设置UITableView的自定义属性
-(NSDictionary *) thinkingAnalytics_tableView:(UITableView *)tableView autoTrackPropertiesAtIndexPath:(NSIndexPath *)indexPath
{
return @{@"testProperty":@"test"};
}
/** 多APPID实例单独进行设置
* -(NSDictionary *) thinkingAnalyticsWithAppid_tableView:(UITableView *)tableView autoTrackPropertiesAtIndexPath:(NSIndexPath *)indexPath {
* return @{@"app1":@{@"autoPro":@"tablevalue"},
* @"app2":@{@"autoPro2":@"tablevalue2"}
* };
* }
*/
//对所有APPID实例进行设置,设置UICollectionView的自定义属性
-(NSDictionary *) thinkingAnalytics_collectionView:(UICollectionView *)collectionView autoTrackPropertiesAtIndexPath:(NSIndexPath *)indexPath;
{
return @{@"testProperty":@"test"};
}
/** 多APPID实例单独进行设置
* - (NSDictionary *)thinkingAnalyticsWithAppid_collectionView:(UICollectionView *)collectionView autoTrackPropertiesAtIndexPath:(NSIndexPath *)indexPath {
* return @{@"app1":@{@"autoProCOLL":@"tablevalueCOLL"},
* @"app2":@{@"autoProCOLL2":@"tablevalueCOLL2"}
* };
* }
*/
4.最后在类的viewWillDisappear方法中将thinkingAnalyticsDelegate设置为nil
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
self.table1.thinkingAnalyticsDelegate = nil;
}
3.6 APP崩溃事件
当APP有未捕获的异常时,会上报APP崩溃事件
四、忽略自动采集事件
您可以通过以下方式忽略页面或控件的自动采集事件
4.1 忽略页面的自动采集事件
对于某些页面(View Controller),如果不想传递自动采集事件(包括页面浏览和控件点击事件),可以通过以下方法忽略:
NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:@"IgnoredViewController"];
// 多APPID实例时对单个APPID实例设置,忽略某个页面的自动采集事件
[[ThinkingAnalyticsSDK sharedInstanceWithAppid:APP_ID] ignoreAutoTrackViewControllers:array];
// 单APPID实例时可调用
// [[ThinkingAnalyticsSDK sharedInstance] ignoreAutoTrackViewControllers:array];
4.2 忽略某类控件的点击事件
如果需要忽略某类控件的点击事件,可以使用下面的方法忽略
// 多APPID实例时对单个APPID实例设置,忽略某个类型的所有控件
[[ThinkingAnalyticsSDK sharedInstanceWithAppid:APP_ID] ignoreViewType:[IgnoredClass class]];
// 单APPID实例时可调用
// [[ThinkingAnalyticsSDK sharedInstance] ignoreViewType:[IgnoredClass class]];
4.3 忽略一个元素(View)的点击事件
如果想忽略某个元素(View)的点击事件,可以使用下面的方法忽略
// 对所有APPID实例进行设置
self.table1.thinkingAnalyticsIgnoreView = YES;
// 多APPID实例单独进行设置
// self.table2.thinkingAnalyticsIgnoreViewWithAppid = @{@"appid1" : @YES,@"appid2" : @NO};
五、Auto采集预设事件属性
以下预设属性是每个自动采集事件中唯一的预设属性
属性名称中文名称说明
#resume_from_background