iOS成长之路

iOS统计服务的集大成者--ARAnalytics

2015-11-05  本文已影响823人  a5da958858b8

移动应用开发过程中,跟踪和统计用户的行为(即跟踪用户如何使用你的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,KeenAdobe。在OS X平台上,ARAnalytics支持KISSmetrics, MixpanelHockeyApp

集成统计服务

如果我们需要集成某一个(或几个)统计服务,我们只需要指定申请好的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,即beginLogPageViewendLogPageView来记录页面信息。

最后

大家好好学习,玩的开心。

上一篇 下一篇

猜你喜欢

热点阅读