简介
Flurry 是一家专门为移动应用提供数据统计和分析的公司。他们的数据统计分析 SDK 支持的平台包括 iPhone, iPad, Android, Windows Phone, Java ME 和 BlackBerry。使用 Flurry 服务的公司包括 eBay、Yahoo、Hulu 和 Skype 等超过 11 万家公司,涉及的应用超过 36 万个。
利用 Flurry 提供的分析平台,我们可以很容易地自动统计出应用的使用情况,例如:
- 每天(每周或每月)登录用户数,应用使用次数
- 每天(每周或每月)新用户数,活跃用户数
- 用户的所在地、年龄、性别的分布情况
Flurry 也可以自动统计出移动设备的分类情况,例如:
- 使用 3G,Wifi 的会话比例
- 使用 iOS 系统各版本 (例如 iOS6.0, iOS7.0 等) 的比例
- 使用 iOS 各种设备(例如 iPhone4, iPhone5 等) 的比例
除了上面介绍的自动统计项目,Flurry SDK 也提供了统计用的相关 API,便于我们针对自己产品的特点,做针对性的统计。例如统计应用中某个按钮的按下次数,或者网络请求的平均响应时间等。
Flurry 的基本使用
注册和下载对应 SDK
使用 Flurry 前,需要先到官方网站 http://www.flurry.com/ 注册账号。然后登录到 Flurry 后台,依次选择 "Applications" -> “Add a New Application"
,增加一个需要统计分析的应用。如下图所示:
然后,在接下来的界面之后根据你的应用类型,选择 iPhone 或 iPad 应用。如下图所示:
接着,填入应用的名字和分类(名字仅用作在 Flurry 后台和自己的其它应用区分,不需要和应用的真实名字相同),之后点击"Create App",如下所示:
到此,我们就成功在后台创建了一个新的应用统计和分析项目。点击下图中的"Download",可以下载需要集成在应用中的 SDK。而下图中的提示 2 中的 Key:X28BBKTNZ9H3VYTBDBG3
则是我们在集成时用于标识自己应用的 ID。
集成 SDK
我们将下载后的 SDK 解压,可以看到文件列表如下。列表中对我们最重要的文件是 Flurry 目录下的flurry.h
文件和libFlurry_4.3.0.a
文件。这 2 个文件需要复制到 Xcode 的工程中去。
而ProjectApiKey.txt
文件中记录了我们之前创建的应用 ID,在在代码中调用 SDK 初使化时需要使用。
接着我们打开 Xcode 工程,将之前下载解压的 Flurry 目录拖动添加到工程中,同时在工程的.pch 文件中加上 #import "Flurry.h"
,如下图所示:
接着我们在Link Binary With Libraries
中加入如下 2 个依赖的 framework:
- Security.framework
- SystemConfiguration.framework。
接着我们打开 AppDelegate.m
,在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法中,加入代码[Flurry startSession:@"X28BBKTNZ9H3VYTBDBG3"];
,如下图所示:
这样,就完成了 Flurry 最简单的集成。通过以上短短几步,Flurry 就可以帮我们完成应用的基本使用数据的统计和分析。
自定义统计项
Flurry 提供了logEvent
函数,用于实现自定义的统计项。默认情况下,该函数接受一个参数,用于表示当前统计项的名字。
例如我们的界面中有 2 个按钮,我们想统计它们各自被用户的点击次数,则可以如下代码实现。在该代码中,我们定义了 2 个自定义的统计项,名字分别为First Button Pressed
和Second Button Pressed
。
logEvent
函数也支持添加各种参数,用于做更加精细的统计,例如,我们想在统计用户在同一个页面,点击时不同按钮的次数分布,看哪些按钮更加常用,则统计代码可以如下实现:
logEvent
函数也支持统计时间,常常用来统计某个复杂的网络操作的耗时或者用户对于某些界面的响应时间。例如,我们想统计用户停留在某个提示界面的时间,则可以用如下代码完成:
查看统计结果
完成上面的自定义统计的代码后,待应用发布后,我们就可以从后台的Events
栏中看到相应的统计结果了。如下图所示:
统计 Crashlog
Flurry 从 4.2.3 开始,支持应用的 Crashlog 统计。只需要在 AppDelegate.m 文件中,在调用 startSession 方法之前,调用 setCrashReportingEnabled:YES 即可:
[Flurry setCrashReportingEnabled:YES]; [Flurry startSession:@"YOUR_API_KEY"];
这里注意,一定要在 startSession 之前调用 setCrashReportingEnabled,否则将无法记录 Crashlog 信息!切记!!
之后你就可以从后台管理界面的 Errors 项中,获得应用的 Crashlog 信息。和其它统计分析平台的对比
和著名的统计工具 Google Analytics 相比,Flurry 的优点是:
- Flurry 专门针对移动端做了许多优化。
- Flurry 没有被墙的问题。
Flurry 缺点是:
- Google Analytics 的统计功能相对更强大一些。
- Google Analytics 可以和网页版的统计数据做整合。
和国内的分析平台友盟相比,Flurry 的优点是:
- 使用 Flurry 的应用相对更多。根据 Flurry 和友盟的官方数据,有超过 36 万应用使用 Flurry 1 ,有超过 18 万应用使用友盟 2 。
- Flurry 是国外的公司,保持独立和专注,数据安全性更高;友盟现在已经被阿里收购,当用户的应用涉及领域和阿里有类似或重合的时候,那么该统计数据有潜在的安全性问题。
Flurry 的缺点是:
- 友盟因为是中国公司,所以对国内开发者非常友善,相关的文档或界面都是中文的。而 Flurry 并不提供中文的后台管理界面或相关文档。
- Flurry 的服务器在国外,在响应速度上应该相对比友盟慢一些。但在测试中,Flurry 服务器都保证了 500ms 左右的响应时间,还是比较好的。
总结
本文介绍了 Flurry 的基本功能以及如何做自定义的统计,最后与业界其它同类工具做了对比。我也将相关示例代码整理到 github 上,地址是: https://github.com/tangqiaoboy/FlurryUsageSample ,愿本文能帮助你更加方便地做应用的统计和分析工作。
评论