整套解决方案:iOS SDK 自动采集指南

优采云 发布时间: 2020-08-31 19:37

  iOS SDK自动采集指南

  iOS SDK自动采集指南1.自动采集简介

  TA系统提供了自动数据采集的界面. 您可以根据业务需要选择需要自动采集的数据.

  当前支持的自动数据采集是:

  APP安装,记录正在安装的APP的日志,APP启动(包括打开APP并从后台唤醒),关闭APP(包括关闭APP并转移到后台)以及采集启动时间. 用户浏览APP中的页面(本机页面). 点击APP中的控件,以在APP崩溃时记录崩溃信息

  接下来,我们将详细介绍每种数据的采集方法

  2. 打开自动采集

  您可以调用enableAutoTrack: 打开自动采集功能:

  // 开启某个APPID实例的自动采集事件,支持多个APPID实例都开启自动采集

[[ThinkingAnalyticsSDK sharedInstanceWithAppid:APP_ID]enableAutoTrack:ThinkingAnalyticsEventTypeAppStart |

ThinkingAnalyticsEventTypeAppInstall |

ThinkingAnalyticsEventTypeAppEnd |

ThinkingAnalyticsEventTypeAppViewScreen |

ThinkingAnalyticsEventTypeAppClick |

ThinkingAnalyticsEventTypeAppViewCrash];

// 单APPID实例时可调用以下方法开启

// [[ThinkingAnalyticsSDK sharedInstance] enableAutoTrack:ThinkingAnalyticsEventTypeAppStart |

// ThinkingAnalyticsEventTypeAppInstall |

// ThinkingAnalyticsEventTypeAppEnd |

// ThinkingAnalyticsEventTypeAppViewScreen |

// ThinkingAnalyticsEventTypeAppClick |

// ThinkingAnalyticsEventTypeAppViewCrash];

  以上参数分别表示为:

  根据业务情况,您可以传递要采集的事件的相应参数. 对于多个参数,请使用|. 分裂.

  如果您需要设置公共事件属性或设置自定义访问者ID,请确保在打开自动采集之前调用setSuperProperties: 或identify:.

  

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

[ThinkingAnalyticsSDK startWithAppId:@"APP_ID"

withUrl:@"SERVER_URL"];

return YES;

}

[[ThinkingAnalyticsSDK sharedInstance] identify:@"123ABCabc"];

[[ThinkingAnalyticsSDK sharedInstance] setSuperProperties:@{

@"Channel":@"ABC",

@"Server":123,

@"isTest":@YES

}];

//设置完访客ID与公共属性后,再开启自动采集

[[ThinkingAnalyticsSDK sharedInstance] enableAutoTrack:ThinkingAnalyticsEventTypeAppStart |

ThinkingAnalyticsEventTypeAppInstall |

ThinkingAnalyticsEventTypeAppEnd |

ThinkingAnalyticsEventTypeAppViewScreen |

ThinkingAnalyticsEventTypeAppClick |

ThinkingAnalyticsEventTypeAppViewCrash];

  3. 自动采集事件3.1 APP安装事件的详细说明

  APP安装事件将记录APP的实际安装并在启动APP时报告. 事件触发时间是安装后首次启动APP的时间. APP升级不会触发安装事件,并且在删除并重新安装后将报告安装事件.

  3.2 APP启动事件

  当用户启动APP或从后台唤醒APP时,将触发APP启动事件. 详细的事件描述如下:

  3.3 APP关闭事件

  当用户关闭APP或将APP转移到后台时,将触发APP关闭事件. 详细的事件描述如下:

  3.4 APP浏览页面事件

  APP浏览页面事件将在用户切换页面(View Controller)时触发浏览页面事件. 详细的事件描述如下:

  可以将其他属性添加到页面浏览事件以扩展其分析价值. 以下是自定义页面浏览事件的属性的方法:

  3.4.1自定义页面浏览事件的属性

  对于从UIViewController继承的View Controller,您可以实现Protocol

  要设置页面的属性和URL信息,SDK会自动将getTrackProperties: 的返回值添加到View Controller的APP浏览页面事件中;另外,getScreenUrl: 的返回值将用作页面的URL架构. 触发该页面的浏览事件时,将添加预设属性#url,其值为当前页面的URL架构. 同时,SDK将在跳转之前采用页面的URL架构. 如果可以获取,它将被添加到预设属性#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的click事件,有很多方法可以设置更多属性以扩展其分析价值:

  3.5.1设置控件元素ID

  您可以在页面上设置元素(视图)的元素ID,以区分具有不同含义的元素. 您可以使用以下方法设置元素ID:

  //对所有APPID实例进行设置

self.table1.thinkingAnalyticsViewID = @"testtable1";

// 多APPID实例单独进行设置

// self.table1.thinkingAnalyticsViewIDWithAppid = @{ @"app1" : @"testtableID2",

@"app2" : @"testtableID3" };

  这时,预设属性#element_id将添加到table1的click事件中,并且该值是在此处传递的值

  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类中实现协议

  2. 其次,在类中设置代理,建议在viewDidLoad方法中设置

  self.table1.thinkingAnalyticsDelegate = self;

  3. 然后根据视图控制器的类型实现该方法

  //对所有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. 忽略自动采集事件

  您可以通过以下方式忽略页面或控件的自动采集事件

  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忽略某种控件类型的click事件

  如果您需要忽略某种控件类型的click事件,则可以使用以下方法将其忽略

  // 多APPID实例时对单个APPID实例设置,忽略某个类型的所有控件

[[ThinkingAnalyticsSDK sharedInstanceWithAppid:APP_ID] ignoreViewType:[IgnoredClass class]];

// 单APPID实例时可调用

// [[ThinkingAnalyticsSDK sharedInstance] ignoreViewType:[IgnoredClass class]];

  4.3忽略元素的点击事件(视图)

  如果要忽略某个元素(查看)的click事件,可以使用以下方法将其忽略

  // 对所有APPID实例进行设置

self.table1.thinkingAnalyticsIgnoreView = YES;

// 多APPID实例单独进行设置

// self.table2.thinkingAnalyticsIgnoreViewWithAppid = @{@"appid1" : @YES,@"appid2" : @NO};

  5. 自动采集事件的预设属性

  以下预设属性是每个自动采集事件中唯一的预设属性

  属性名称中文名称说明

  #resume_from_background

  是否从后台醒来

  表示是打开还是从后台唤醒APP,值为true表示从后台唤醒,值为false表示直接激活

  属性名称中文名称说明

  #duration

  活动持续时间

  指示此APP访问的持续时间(从开始到结束),单位为秒

  属性名称中文名称说明

  #title

  页面标题

  是View Controller的标题,该值是controller.navigationItem.title属性的值

  #screen_name

  页面名称

  是View Controller的类名

  #url

  页面地址

  当前页面的地址,您需要调用getScreenUrl来设置网址

  #referrer

  转发地址

  跳转前页面的地址,跳转前页面需要调用getScreenUrl来设置网址

  属性名称中文名称说明

  #title

  页面标题

  是View Controller的标题,该值是controller.navigationItem.title属性的值

  #screen_name

  页面名称

  是View Controller的类名

  #element_id

  元素ID

  控件的ID需要通过thinkAnalyticsViewID设置

  #element_type

  元素类型

  控制类型

  #element_selector

  元素选择器

  控件的viewPath的拼接

  #element_position

  元素位置

  控件的位置信息,仅当控件类型为UITableView或UI采集View时才存在,表示单击控件的位置,值为组号(Section): 行号(Row)

  #element_content

  元素内容

  控件上的内容

  属性名称中文名称说明

  #app_crashed_reason

  异常信息

  字符类型,崩溃时记录堆栈跟踪

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线