【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

使用 Flurry 来统计和分析用户行为

  • 2013-11-13
  • 本文字数:2236 字

    阅读完需:约 7 分钟

简介

Flurry 是一家专门为移动应用提供数据统计和分析的公司。他们的数据统计分析 SDK 支持的平台包括 iPhone, iPad, Android, Windows Phone, Java ME 和 BlackBerry。使用 Flurry 服务的公司包括 eBay、Yahoo、Hulu 和 Skype 等超过 11 万家公司,涉及的应用超过 36 万个。

利用 Flurry 提供的分析平台,我们可以很容易地自动统计出应用的使用情况,例如:

  1. 每天(每周或每月)登录用户数,应用使用次数
  2. 每天(每周或每月)新用户数,活跃用户数
  3. 用户的所在地、年龄、性别的分布情况

Flurry 也可以自动统计出移动设备的分类情况,例如:

  1. 使用 3G,Wifi 的会话比例
  2. 使用 iOS 系统各版本 (例如 iOS6.0, iOS7.0 等) 的比例
  3. 使用 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 PressedSecond 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 的优点是:

  1. Flurry 专门针对移动端做了许多优化。
  2. Flurry 没有被墙的问题。

Flurry 缺点是:

  1. Google Analytics 的统计功能相对更强大一些。
  2. Google Analytics 可以和网页版的统计数据做整合。

和国内的分析平台友盟相比,Flurry 的优点是:

  1. 使用 Flurry 的应用相对更多。根据 Flurry 和友盟的官方数据,有超过 36 万应用使用 Flurry 1 ,有超过 18 万应用使用友盟 2
  2. Flurry 是国外的公司,保持独立和专注,数据安全性更高;友盟现在已经被阿里收购,当用户的应用涉及领域和阿里有类似或重合的时候,那么该统计数据有潜在的安全性问题。

Flurry 的缺点是:

  1. 友盟因为是中国公司,所以对国内开发者非常友善,相关的文档或界面都是中文的。而 Flurry 并不提供中文的后台管理界面或相关文档。
  2. Flurry 的服务器在国外,在响应速度上应该相对比友盟慢一些。但在测试中,Flurry 服务器都保证了 500ms 左右的响应时间,还是比较好的。

总结

本文介绍了 Flurry 的基本功能以及如何做自定义的统计,最后与业界其它同类工具做了对比。我也将相关示例代码整理到 github 上,地址是: https://github.com/tangqiaoboy/FlurryUsageSample ,愿本文能帮助你更加方便地做应用的统计和分析工作。

2013-11-13 00:5121652
用户头像

发布了 65 篇内容, 共 55.2 次阅读, 收获喜欢 22 次。

关注

评论

发布
暂无评论
发现更多内容

2022最新最全Java面试八股文(整整1685页,14个技术栈,20余万字)

Java全栈架构师

Java spring 面试 JVM 消息中间件

研发效能的道与术 - 道篇

FreeW

架构 研发效能

[ Kitex 源码解读 ] 服务发现

baiyutang

Go 微服务架构 kitex CloudWeGo

基础到高级涵盖11个技术,Alibaba最新出品711页Java面试神册真香

程序员小毕

Java 面试 程序人生 JVM 中间件

兆骑科创海外高层次人才引进平台,创业赛事活动路演

兆骑科创凤阁

高层次人才引进平台

Spark数据格式UnsafeRow

矛始

spark 内存 UnsafeRow

技术风向标 | 云原生技术架构成熟度模型解读

阿里巴巴云原生

阿里云 云原生 成熟度模型

公共数据如何兼顾开放利用和隐私安全合规?

Jessica@数牍

数据安全 隐私计算 公共数据开放 数据开放和利用

如何借助自动化工具落地DevOps|含低代码与DevOps应用实践

云智慧AIOps社区

开源 DevOps 低代码平台 开发与运维

Spark统一内存划分

矛始

spark 统一内存

一文讲清楚SpringBoot六种读取配置方式

王小凡

Java 程序员 Sprint Boot

spark-streaming状态流之mapWithState

矛始

spark 状态流

TDengine 落地协鑫能科,数百亿数据压缩至 600GB

TDengine

数据库 tdengine 时序数据库

6种方法帮你搞定SimpleDateFormat类不是线程安全的问题

华为云开发者联盟

高并发 开发

有一说一,阿里P7的薪资待遇是真的香

程序员小毕

Java 程序员 程序人生 后端 架构师

Qakbot新型感染链:使用Windows7系统侧加载感染设备

郑州埃文科技

dll Windows7 Qakbot

如何通过学会提问,成为更加优秀的数据科学家

Baihai IDP

AI 数据科学 职业发展

MySQL精品学习资源合集 | 含学习教程笔记、运维技巧、图书推荐

墨天轮

MySQL 数据库 学习笔记 运维技术

netty入门之服务端启动过程分析

Hex

Java 后端 Netty

机器视觉在服务机器人中的应用

优必选科技

机器人

kudu设计-tablet

矛始

kudu tablet

就这一次!详细聊聊分布式系统的那些技术方案

Java全栈架构师

程序员 面试 分布式 系统设计 架构师

融云直播 SDK 玩法翻新,入围信通院「实时互动创新应用优秀案例」

融云 RongCloud

直播 sdk

导数、微分、偏导数、全微分、方向导数、梯度的定义与关系

矛始

高数 导数 微分

2022 云原生编程挑战赛火热报名中!看导师如何拆解 Serverless 赛题?

阿里巴巴云原生

阿里云 Serverless 云原生编程挑战赛

极大似然估计

矛始

概率 极大似然估计

图的遍历的定义以及深度优先搜索和广度优先搜索(一)

乔乔

7月月更

超越 Nginx!号称下一代 Web 服务器,用起来够优雅

冉然学Java

Java nginx GitHub 服务器 Web、

浅谈云原生边缘计算框架演进

谐云

7月月更

深圳云管平台厂商哪家好?有哪些功能?咨询电话多少?

行云管家

云计算 云管平台

菜鸟 CPaaS 平台微服务治理实践

阿里巴巴云原生

阿里云 微服务 云原生 CPaaS 菜鸟

使用Flurry来统计和分析用户行为_语言 & 开发_唐巧_InfoQ精选文章