Qwen3 惊喜上线阿里云百炼,8款模型全开源!点击免费领取 800万 tokens! 了解详情
写点什么

使用 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:5122224
用户头像

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

关注

评论

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

JDK还是Google,正则表达式引擎孰优孰劣?

后台技术汇

正则表达式 11月日更

一个基于web服务器的PoW案例(一)

Regan Yue

区块链 共识算法 11月日更

听说你还在写双层for循环解两数之和?

老表

Python LeetCode 11月日更 两数之和 算法与数据结构

安全测试之XCodeGhost随想-2015

刘冉

软件测试 安全测试

Python Qt GUI设计:窗口布局管理方法【强化】(基础篇—6)

不脱发的程序猿

Python qt GUI设计 窗口布局管理方法

数据仓库之数据质量建设(深度好文)

五分钟学大数据

11月日更

shell原样输出字符串

WindFlying

🏆【Alibaba中间件技术系列】「RocketMQ技术专题」帮你梳理RocketMQ相关的消费问题以及原理分析总结

码界西柚

RocketMQ 消息队列 11月日更 重复消费

孔夫子旧书网数据采集,举一反三学爬虫,Python爬虫120例第21例

梦想橡皮擦

11月日更

意外发现,原来你不知道自己每天都在用门面模式

Tom弹架构

Java 架构 设计模式

应届生学的java,转自动化测试拿到15k薪资,送给大家的经验积分

六十七点五

Java 程序员 软件测试 自动化测试 测试工程师

数据流水线架构

俞凡

架构 数据

模块四作业-考试试卷-Redis存储方案设计

沐风

Go语言,反射机制,反射三定律!

微客鸟窝

Go 语言 11月日更

dart系列之:dart类中的构造函数

程序那些事

flutter dart 程序那些事 11月日更

Redis计算UV的4种方法

大数据技术指南

11月日更

2021年最新获取url参数的方法,用正则就落后啦

CRMEB

【高并发】不得不说的线程池与ThreadPoolExecutor类浅析

冰河

Java 并发编程 多线程 高并发 异步编程

QA应该更新的测试工具-2013

刘冉

软件测试

重点人员管控系统开发方案,重点人员动态管理系统

电微13828808271

一个程序员日常工作中对于Github的一些另类用法

汪子熙

JavaScript GitHub SAP 11月日更

模块三 架构文档

Asha

质量基础设施一站式服务平台方案,NQI一站式公共平台开发

电微13828808271

Android C++系列:JNI引用管理

轻口味

c++ android 11月日更

架构实战营模块5课后作业

胡颖

架构实战营

博文推荐|传智教育 x Pulsar:互联网教育的未来

Apache Pulsar

架构 云原生 消息中间件 Apache Pulsar 消息系统 互联网教育

Flutter怎么实现地图导航功能?

坚果

flutter 11月日更

【Flutter 专题】10 图解底部状态栏小尝试

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 11月日更

Vue进阶(幺玖捌):js 判断 document.getElementByid(““) 获得的对象是否存在

No Silver Bullet

Vue 11月日更

模块三-外包学生管理系统架构

小何

「架构实战营」

TDD之让我们再聊聊TDD

刘冉

TDD

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