iOS统计服务的集大成者--ARAnalytics
移动应用开发过程中,跟踪和统计用户的行为(即跟踪用户如何使用你的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
来记录页面信息。
最后
大家好好学习,玩的开心。