146
在创建移动应用程序时,开发人员会想象一个模型以及用户使用该应用程序的方式。开发人员面临的一个问题是,用户并不总是像开发人员设想的那样使用应用程序。
用户如何与应用互动?他们在应用程序中做了什么?他们做了开发人员希望他们做的事情吗?移动分析有助于回答这些问题。通过分析,开发人员可以了解应用程序在现实生活中会发生什么,并在查看用户实际使用方式后提供调整和改进应用程序的机会。简而言之,分析就是对用户行为的研究。
通过本文,我们将比较一些最流行的移动分析系统。将分析添加到应用程序的过程包括考虑许多细节,我们的目标是为您提供有关实施分析的有用提示。此信息可帮助您找到符合您需求的移动分析系统,并帮助您在应用中正确实施该系统。
韶关网站制作
让我们以我们开发的小型iOS应用程序为例。它叫做“我吃什么”,它旨在追踪用户的饮食习惯。
用户可以跟踪他们的膳食,检查每日膳食日志,并在日历中的天数之间切换以查看以前的日志。该应用程序有一个广告横幅,但用户可以付费来禁用它。
在设计“我吃什么”时,我们主要关注的是让用户轻松添加新的膳食记录,并轻松查看他们的每日用餐史。我们还希望通过应用内购买来获取应用,以删除广告。要了解我们是否设法执行此操作,我们会在应用中跟踪以下事件:
当用户第一次启动应用程序时(应用程序安装),
当用户打开每日膳食列表(主应用程序屏幕)时,
当用户添加新的膳食记录时
当用户进行应用内购买以移除广告时。
在本文的后面部分,我们将展示如何使用分析来确定用户是否已开始使用该应用,以及在安装应用后,有多少用户开始跟踪用餐。
如今,市场上出现了大量的分析服务,从谷歌分析等知名系统到小众工具。分析和比较所有这些将永远; 所以,对于这篇文章,我们将选择那些我们发现最方便的。也就是说,我们选择的仪表板界面和数据挖掘工具箱相对容易理解,并且对于那些没有太多分析经验的人(如我们的客户)也很容易使用。作为面向移动的分析系统,从开发角度来看,它们也很方便,因为分析代码可以在移动应用程序中轻松实现和调整。以下是系统:
雅虎乱舞
Crashlytics的答案
振幅
Mixpanel
为了分析我吃什么,我们使用几乎每个分析系统提供的两个主要工具:事件和漏斗。事件描述用户在应用程序中执行的操作,而渠道则允许对此数据进行定性分析。让我们来看看每个系统如何实现我吃的东西。
Mixpanel允许您跟踪自定义事件。开发人员可以向事件添加自定义参数,并使用这些参数来细分转化渠道。
我们构建了一个包含两个事件的漏斗:“安装”(表示安装后应用程序的初始启动)和“添加餐”(每次用户添加一餐时跟踪)。这些显示了我们有多少用户不仅下载了应用程序,而且还开始使用它。转化率估计为65%,这意味着在安装应用程序的100人中,多达65人开始跟踪膳食。
有时,开发人员需要实时显示在分析仪表板中的事件,或者在应用程序中发生事件后最小延迟。例如,开发人员可能已经发起了社交媒体营销活动,并且需要实时跟踪它如何影响他们的应用程序。Mixpanel几乎实时显示事件。新创建的渠道几乎可以立即计算和可视化。
在开发人员将Amplitude的软件开发工具包(SDK)添加到他们的项目之后,并且没有任何进一步的事件或漏斗设置之后,该软件开始跟踪每日和每月活跃用户(DAU和MAU)数据。我们在What I Eat中使用了很多东西来了解每天有多少人使用该应用程序。
与Mixpanel一样,Amplitude提供了一个功能强大的工具箱,用于处理事件和漏斗; 开发人员可以创建一个漏斗并按参数对其进行细分。与Mixpanel不同,Amplitude可以直接在漏斗图中显示细分,当您需要了解参数如何影响转换率时,这非常方便。下图显示了从“安装”到“添加餐”的转换如何根据界面的语言而有所不同。
正如您所看到的,俄语界面显示出比英语界面更好的转换率(83%对66%)。因此,通过我们的下一个应用更新,我们可能需要更多地关注我们的非俄罗斯观众。
与Amplitude一样,一旦将Answers的SDK添加到应用程序项目中,它就会开始跟踪数据。几乎没有开发人员的努力,Answers提供了移动应用程序的一些关键性能指标(KPI)的整洁视图:MAU,DAU,每日新用户和会话。
开发人员可以将自定义KPI定义和跟踪为事件,Answers将以相同的方式将它们可视化。
答案还可以深入了解受众群体的活跃程度以及用户在应用中花费的时间。
答案的分析可以保存过去30天的数据,而且没有漏斗。因此,它仅适用于对应用程序性能的简单和短期分析。
当您需要构建漏斗并进行群组分析时,Flurry不像Mixpanel或Amplitude那样方便。
Flurry用户最多可以创建10个细分,并将其应用到渠道。将新细分添加到现有渠道需要重新计算,这可能需要一天左右的时间。用户无法创建超过10个细分以应用于其渠道。新创建的渠道的计算最多可能需要三天。
我们还没有发现Flurry的事件和漏斗对我吃什么有用,我们主要使用Mixpanel和Amplitude。
虽然事件和渠道是关键功能,但还有一些其他因素可用于选择正确的分析系统。
一些分析服务提供有关应用程序受众的洞察数据,即使它未在应用程序中收集。他们通过从移动应用程序以外的来源获取用户数据来实现此目的。当您需要识别超级用户但您的应用程序未收集有关它们的任何数据时,这会派上用场。例如,在What I Eat应用程序中,用户无需注册,也没有其他方式可以接收用户数据,但我们仍然想知道谁使用它以便使用app准确定位新用户更新。
答案提供有关受众的数据,例如他们的性别和兴趣。您可能想知道它是如何做到的?好吧,Answers与Twitter紧密结合,因为Twitter知道关于使用该平台的每个人的一切,所以这些个人数据被Answers利用。
Flurry通过估计从共享它的应用程序收到的用户信息来估算人口统计数据。开发人员共享此信息的原因是,他们通过向Flurry提供洞察数据来获得更精确的受众数据集。Flurry向您显示用户的兴趣,年龄范围和性别。
在Flurry和Answers的帮助下,我们可以看到What I Eat的观众主要是对健康和健身感兴趣的中年女性。
Mixpanel和Amplitude不提供任何人口统计数据。
分析允许通过外部API导入和导出数据。导出允许分析分析仪表板之外的数据(即借助Windrush和DataHero等第三方数据挖掘软件)。通过导入API,您可以从后端服务器和归属跟踪系统(如AppsFlyer)等来源将数据部署到分析平台。我们来看看哪些分析服务提供了这样的功能:
Amplitude为事件的导入和导出提供了外部API。
Mixpanel具有导入和导出API。它支持JavaScript查询语言,以允许复杂的导出查询。
答案没有外部API。您可以从仪表板下载事件数据作为CSV文件,但不包括任何事件参数。
Flurry没有导入API。您只能使用其导出API导出数据。
移动分析公司试验定价并可能经常改变其价格。以下数据来自2016年7月:
乱舞和答案是完全免费的。
Amplitudes的免费计划每月提供1000万个事件。如果您希望跟踪的数量超过这个数字,那么每月费用为2,000美元。虽然我们在很多项目中都使用过Amplitude,但我们从来没有必须切换到付费等级,因为免费计划的限制也很高。
Mixpanel每月免费提供25,000个活动。一百万个活动每月花费300美元。对于超过1000万个活动,您必须每月支付1,250美元。
现在我们已经了解了每个分析系统之间的主要差异,让我们深入探讨实施分析的实际方面。
如果您已经确定需要在应用程序中进行分析,那么编码就不是您应该考虑的第一件事。我们相信优秀的开发人员应该从以下步骤开始:
写下你需要跟踪的内容。。首先编写一个您希望分析人员回答的问题列表。根据该列表,列出您需要跟踪的事件和参数,以便回答问题。不要为了它而在应用程序中包含分析。
根据您的分析来改写它。。完成事件列表后,请根据您选择的分析平台对其进行正式化。例如,虽然Amplitude允许具有任何参数集的事件,但Google Analytics具有一组预定义的参数。在实施分析时考虑这些细微差别。
做一个小演示。。一个好主意是建立一个小型测试应用程序,在其帮助下跟踪十几个事件,然后检查这些事件在您选择的平台中可视化的方式以及可用的数据挖掘工具。在实时应用程序中实施分析时,使用此知识可最大化所选平台的功能。
设计分析代码,使其独立于项目的代码和分析SDK。因此,将分析代码放在单独的子系统或类中,并定义可从应用程序代码调用的接口方法。例如,当用户点击菜单按钮时,应用程序代码将调用分析类代码。对于用Swift编写的iOS应用程序,它看起来像这样:
/**Application code: menu tap handler*/@IBAction func menuButtonPressed(sender: UIButton) { //Showing menu, etc... AnalyticsManager.sharedInstance.userTapMenuButton()}
应用程序代码调用的常规分析类收集参数列表,并将此数据发送到特定的分析类。
/**General analytics class: a bridge between the application code and the specific analytics class*/class AnalyticsManager { static let sharedInstance = AnalyticsManager() private var services: [AnalyticsService] private init() { services = [AmplitudeAnalyticsService()] } func userTapMenuButton() { let name = "MenuTap" let properties: [String: AnyObject] = [/* define your properties */] for service in services { service.trackEvent(withName: name, properties: properties) } }}
特定分析类将数据发送到分析SDK。在我们的例子中,它是Amplitude的SDK。
/**Specific analytics class.*/class AmplitudeAnalyticsService: AnalyticsService { func trackEvent(withName name: String, properties: [String : AnyObject]?) { if let propertiesToTrack = properties { Amplitude.instance().logEvent(name, withEventProperties: propertiesToTrack) } else { Amplitude.instance().logEvent(name) } }}
有了这样的结构,每当您决定迁移到另一个分析平台或调整要跟踪的参数集时,您只需要更改分析类代码而不是应用程序代码。
从您选择的分析平台中的所有来源收集数据。使用外部API不仅可以从移动应用程序发送数据,还可以从后端发送数据。如果你运行一个广告活动,使用安装跟踪系统,如AppsFlyer或调整,以衡量其效率和深入了解您的用户来源。提前选择您将使用的安装跟踪系统,以确保它与您的分析平台配合良好。
尝试使用应用程序中已有的分析平台的SDK。如果您使用Crashlytics跟踪崩溃,那么您可以使用Answers的分析而无需任何其他代码,因为Crashlytics和Answers都包含在Fabric SDK中。如果您的应用程序允许在Facebook注册,那么它已经拥有实现Facebook移动分析的SDK,因此您也可以使用它。
尝试组合不同的分析系统,但不要用太多的SDK压倒你的应用程序的二进制文件。
最后,在为应用程序实施分析的同时,处理其文档:记下您跟踪的事件和参数以及执行方式。为此,我们通常使用Readme.md存储在项目核心文件夹中的文件。每个事件由以下数据描述:
事件名称(例如,“用户注册”);
跟踪时(例如,“新用户注册成功后”);
参数(例如,“Email / String”);
控制跟踪代码的控制器(例如,“SignInController”)。
这些细节很容易被遗忘,但是当您想要更改要跟踪的数据集或希望迁移到其他分析平台时,这些细节变得至关重要。
没有分析服务是完美的; 每个都有其优点和缺点。选择一个时,您应该权衡诸如应用程序类型,分析仪表板界面,预算等因素。您甚至可能希望使用利基解决方案,例如为分析非线性用户体验(例如,GameAnalytics)或面向开发人员的分析(例如,Keen IO)而创建的游戏分析。
我们找到了Answers和Amplitude的组合,可以与我吃的东西完美配合,并为应用程序提供所有必要的分析。虽然答案是免费的,并显示人口统计数据和应用程序KPI,但Amplitude允许更复杂的行为队列分析。我们还使用Answers的Fabric SDK跟踪应用程序崩溃。
我们很想知道您在移动应用程序中使用的分析工具箱。请在评论中分享您的想法。
韶关网站制作
热门分享
最新文章
2019.09.11
韶关设计网站:设计CSS与奥多比风格Web应用程序编辑器
2019.08.13
韶关做网站:如何构建诚实的用户界面
2019.08.13
韶关企业网站建设:真正的乐观用户界面
2019.08.13
韶关网站制作:寻找更好的移动分析
2019.08.12
韶关做网站:设计原则之成分流动和节奏
2019.08.12
韶关网站优化:如何保持框架开发简单和无错误
2019.08.12
韶关网站建设:响应式界面设计的可视化测试驱动开发
2019.08.12
韶关网页设计:浏览器输入事件——我们能比点击更好吗?
2019.08.12
韶关高端建站:使用移动内容策略帮助您的内容随处可见
2019.08.09
韶关高端建站:构建点击原型以支持参与式设计
随机推荐
2019.08.12
韶关高端建站:使用移动内容策略帮助您的内容随处可见
2019.08.09
韶关网站优化:更好的SEO的HTML5语义指南
2019.08.12
韶关做网站:设计原则之成分流动和节奏
2019.08.09
韶关做网站:A型设计它是什么,为什么重要?
2019.08.13
韶关企业网站建设:真正的乐观用户界面
2019.08.09
韶关高端建站:构建点击原型以支持参与式设计
2019.08.12
韶关网页设计:浏览器输入事件——我们能比点击更好吗?
2019.08.12
韶关网站建设:响应式界面设计的可视化测试驱动开发
2019.08.09
韶关网页设计:重新思考响应式SVG
2019.08.12
韶关网站优化:如何保持框架开发简单和无错误