FlurryAnalytics for ios

来源:互联网 发布:什么叫贵州大数据 编辑:程序博客网 时间:2024/06/01 09:24

Flurry 是第三方的工具,包括三个部分,数据分析工具,广告,视频广告.

对于一般的开发来说使用第一种就就足够了. FlurryAnalytics

可以上官网去看的参考文档,全是英文的,不过内容也不是很多,很快就能熟悉,然后在和自己的业务联系起来,能很快上手.

这里就自己这几天研究的情况记录下:

1: 首先注册,注册完了后下载sdk. sdk里面带有说明文档和appkey

2: 我首先下载的是3.6的sdk,后来升级为3.7的, 现在的sdk支持xcode 3.2.5及以上, 设备支持ios3,系列,不过需要设置,如下:

To support OS 3.x, please set Base SDK to iOS 4.3 and iOS Deployment Target to iOS 3.x. Extra linker flags maybe needed if NSConcreteGlobalBlock and UIBackgroundTaskInvalid runtime error occur under 3.x. 

文档里面有说明。

弄清楚这些我们开始编码

1:下载sdk后解压,添加FlurryAnalytics文件夹到工程,注意创建的工程名是你再Flurry主站上申请的工程名,(在Flurry主站看到这个可以再修改,没尝试)。

2:导入头文件,开始记录事件

说明:这里的session看文档说明是一个用户从启动程序到结束程序的整个过程,也就是说数据的发送再程序结束的时候,(关于数据发送机制可以修改为在程序挂起是发送,后面有介绍),个人理解这个最好定义为程序的一次使用过程,即程序进入前台和推出前台的这个过程,这样这个过程的记录数据就可以直接发送

#import "FlurryAnalytics.h"- (void)applicationDidFinishLaunching:(UIApplication *)application {[FlurryAnalytics startSession:@"YOUR_API_KEY"];
YOUR_API_KEY 这个再下载的sdk里面可以找到
//your code}
startSession: 后就可以开始记录事件了。当然为了区别不同版本的程序,Flurry也支持设置程序的版本

[FlurryAnalytics setAppVersion:K_APP_VERSION]; 设置当前app的版本,这个函数需要在startSession 之前调用。

3:事件记录函数:

[FlurryAnalytics logEvent:@"EVENT_NAME"]; 记录单一事件,最多300个不同的事件类型,每个event的name的最大长度为255个字符
 
[FlurryAnalytics logEvent:@"EVENT_NAME" withParameters:YOUR_NSDictionary];

可以以NSDictionary的形式记录事件集,但是有限制:NSDictionary 的key和value必须是NSString 类型的对象,而且这种事件集的事件类型最多为100个,EVENT_NAME最多255个字符,每个event最多10个不同类型的子事件即一个NSDictionary最多10个key。

[FlurryAnalytics logEvent:@"EVENT_NAME" timed:YES];

Use this version of logEvent to start timed event.

[FlurryAnalytics logEvent:@"EVENT_NAME" timed:NO];
通过这两个函数可以确定这个事件发生的时常

[FlurryAnalytics logEvent:@"EVENT_NAME" withParameters:YOUR_NSDictionary timed:YES];


[FlurryAnalytics endTimedEvent:@"EVENT_NAME" withParameters:YOUR_NSDictionary];

通过这两个函数可以确定这个事件集发生的时常

endTimedEvent 如果不手动调用,会自动再程序退出的时候自动调用。

[FlurryAnalytics logAllPageViews:navigationController];

这个函数可以自动追踪所有启动的view,传入根UINavigationController or UITabBarController

[FlurryAnalytics logPageView];

这个函数可以手动追踪view的启动,可以加载viewwilldidload里面

Tracking Application Errors

[FlurryAnalytics logError:@"ERROR_NAME" message:@"ERROR_MESSAGE" exception:e];

flurry可以记录错误事件(暂时没研究)
也可以对用户进行区分:

Tracking Demographics

[FlurryAnalytics setUserID:@"USER_ID"];

Use this to log the user's assigned ID or username in your system after identifying the user.

[FlurryAnalytics setAge:21];

Use this to log the user's age after identifying the user. Valid inputs are 0 or greater.

[FlurryAnalytics setGender:@"m"];

Use this to log the user's gender after identifying the user. Valid inputs are m (male) or f (female)

flurry支持位置的采集,但是默认不是不采集的,需要开发者手动采集,因为牵扯到用户的隐私
数据的发送:

Controlling Data Reporting

[FlurryAnalytics setSessionReportsOnCloseEnabled:(BOOL)sendSessionReportsOnClose];


默认是yes,数据发送是在程序的推出,启动,恢复,挂起的时候发送,iOS 3.2一下非多任务,所以程序到后台就发送,
但是多任务必须程序退出的时候才发送,所以需要设置
[FlurryAnalytics setSessionReportsOnPauseEnabled:(BOOL)sendSessionReportsOnPause];
默认是 NO 可以通过这个函数设置,程序再挂起的时候发送数据,或者启动的时候
可以设置数据的安全发送:
[FlurryAnalytics setSecureTransportEnabled:(BOOL)secureTransport];

默认为NO, 启动后则以SSL形式发送,以上的3个设置当网络不是很好的时候都会拖延时间
最后:Flurry推荐异常的记录:

We recommend adding an uncaught exception listener to your application (if you don't already have one) and use logError to record any application crashes. Adding an uncaught exception listener is easy; you just need to create a function that looks like the following:

void uncaughtExceptionHandler(NSException *exception) {[FlurryAnalytics logError:@"Uncaught" message:@"Crash!" exception:exception];}

You then need to register this function as an uncaught exception listener as follows:

- (void)applicationDidFinishLaunching:(UIApplication *)application {NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);[FlurryAnalytics startSession:@"YOUR_API_KEY"];....}

Note that you can name the function whatever you'd like and record whatever error information you'd like in the error name and event field.




原创粉丝点击