移动应用开发过程中,跟踪和统计用户的行为(即跟踪用户如何使用你的App)是必须要做的事情。
传统的事件统计
当我们集成某一个统计服务,我们会在项目的很多地方写大量的统计代码。但是,当我们想切换到另一个统计服务上去的时候,我们需要找到所有的这些统计代码块,并且将之替换成新的统计服务的API。
ARAnalytics为我们解决了这些问题
ARAnalytics的Github地址。还有另外一篇文章介绍。
ARAnalytics集成了大部分的统计库,并且在这些库的上层又做了一层封装。它提供了稳定一致的API,我们调用这些API的时候,ARAnalytics底层会去调用我们实际使用的统计服务提供者(比如UMeng)的API。这样,当我们不想再继续使用当前的统计服务,而转向另一个统计平台的时候(比如从UMeng转到Flurry),我们大部分的统计代码是不需要更改的,这样就减少了开发者的精力。
Providers Supported by ARAnalytics
在iOS平台上,ARAnalytics支持Mixpanel,Localytics,Flurry,GoogleAnalytics,KISSmetrics,Crittercism,Crashlytics,Fabric,Bugsnag,Countly,Helpshift,Tapstream,NewRelic,Amplitude,HockeyApp,HockeyAppLib,ParseAnalytics,HeapAnalytics,Chartbeat,UMengAnalytics,Librato,Segmentio,Swrve,YandexMobileMetrica,Adjust,AppsFlyer,Branch,Snowplow,Sentry,Intercom,Keen 和Adobe。在OS X平台上,ARAnalytics支持KISSmetrics, Mixpanel 和 HockeyApp。
集成统计服务
如果我们需要集成某一个(或几个)统计服务,我们只需要指定申请好的key就好了。比如我们想要集成友盟服务,我们先要去友盟官网申请key,然后在Podfile文件中:
pod 'ARAnalytics', :subspecs => ['UMengAnalytics']
在代码中:
[ARAnalytics setupWithAnalytics: @{
ARUMengAnalyticsID:@"KEY"
}];
事件跟踪
/// 上报用户事件
+ (void)event:(NSString *)event;
+ (void)event:(NSString *)event withProperties:(NSDictionary *)properties;
// 为事件添加额外的属性
+ (void)addEventSuperProperties:(NSDictionary *)superProperties;
/// 事件的开始和结束
+ (void)startTimingEvent:(NSString *)event;
+ (void)finishTimingEvent:(NSString *)event;
错误日志
/// 上传错误信息
+ (void)error:(NSError *)error;
+ (void)error:(NSError *)error withMessage:(NSString *)message;
页面之间的跳转
/// 跟踪页面之间来回的跳转
+ (void)pageView:(NSString *)pageTitle;
+ (void)monitorNavigationViewController:(UINavigationController *)controller;
实际使用体验说明
因为该库的说明文档并不足够细致,加上demo中的代码也好像没什么效果(因为统计服务本来就应该是集成在大的项目中的,一个小的demo展示的东西太少了),所以很多代码的实际效果都要我自己去试。我是通过ARAnalytics集成了友盟的API,并且查看友盟后台的统计数据来测试的。测试效果并不十分出色。(当然有可能是我的测试方法有问题,或许有测试不对的地方,所以不敢对测试的结果打保票。)
首先[ARAnalytics setupWithAnalytics: @{ ARUMengAnalyticsID:@"KEY" }];这段代码是可用的,只要集成这句代码就可以在友盟后台看到统计行为。
其次,对于跟踪用户事件,+ (void)event:(NSString *)event;这段代码是没有效果的,即我调用了这个方法,但是在友盟后台并没有看到任何用户事件行为。+ (void)event:(NSString *)event withProperties:(NSDictionary *)properties;这段代码可以统计用户行为,亲测可用。
记录错误日志的代码是可用的,即可以调用+ (void)error:(NSError *)error withMessage:(NSString *)message;向友盟后台上传错误信息。
+ (void)pageView:(NSString *)pageTitle;这段代码好像并没有什么卵用,我调用这个方法记录用户停留的页面,但是后台并没有什么页面信息。不得已只能使用友盟原生的SDK,即beginLogPageView和endLogPageView来记录页面信息。
最后
大家好好学习,玩的开心。








网友评论