Firebase远程更新应用
能打造出色的应用不意味着一定能在商业上取得成功,两者之间还有许多工作要做,绝不能简单发布应用后就宣告“收工”。您需要能迅速根据用户反馈作出调整、测试新功能,以及向用户提供他们最关注的内容。
Firebase 远程配置就是为此而生。利用 Firebase 远程配置,您可以在云端更改应用的外观和风格,从而快速响应用户的需求。另外,您还可以利用 Firebase 远程配置向不同用户提供不同内容,从而实现开展实验、逐步推出功能,乃至根据用户在应用中的互动行为向他们提供个性化内容的目的。
更新应用再也不必大费周章
我们应该都有过这样的体验:发布应用后不久,发现应用存在不完美的地方。或许应用中存在不当或难懂的文字,给用户带来不佳体验。或许设置的游戏关卡太难,玩家根本无法通关。又或许您只是要添加一段花费了大把时间创作的动画。
如果要按传统方式解决这些问题,您需要更新应用代码中的值、构建并发布新版本应用,然后还要等待用户下载新版本。
可是,如果为应用使用了 Firebase 平台中的远程配置功能,您就可以直接在云端轻松快捷地更改这些值。在用户下次启动应用时,远程配置可以下载这些新值来满足用户的需求,而您则完全不必发布新版本应用。
向合适的用户提供合适的内容
在 Firebase 远程配置中,您可以利用“条件”有针对性地向不同用户群体提供不同配置,也就是利用定位规则,向不同用户提供特定的值。例如,您可以向位于不同国家/地区的用户发送个性化远程配置数据。或者,您可以单独向 iOS 设备和 Android 设备发送不同的数据集。
另外,您可以根据在 Firebase Analytics 中定义的受众群体向用户提供不同的值,从而实现更复杂的定位。如果您想要更改应用内商店的外观,同时希望将受影响用户局限于曾访问过您的商店,但尚未购买过任何物品的玩家的话,针对这一部分受众群体创建远程配置值即可达到目的。
开展 A/B 测试和逐步推出新功能
利用远程配置“条件”,您可以向随机用户群提供不同的值。您可以通过此功能开展 A/B 测试或逐步推出新功能。
如果您想要在应用中推出一项新功能,但不确定这项新功能是否会受到受众群体的欢迎的话,可以先在代码中通过一个标志将其隐藏。然后,您可以用远程配置更改这个标志的值,从而实现启用或停用这项功能的目的。比如说,通过定义一个“新功能实验”条件,并将这个条件设置为向 10% 的用户开放,您可以先向一小部分用户启用新功能,然后在确保此功能可以给用户带来出色体验后,再向其余用户开放。
与之类似,您可以通过向不同用户群体提供不同的值来开展 A/B 测试。想要了解对于促进用户购买物品而言,应用内购买按钮上显示“立即购买”字样和显示“结帐”字样哪个效果好?只需开展 A/B 测试就能轻松找到类似问题的答案。
现在,如果要跟踪这些 A/B 测试的结果,只需根据实验意图,在 Firebase Analytics 中设置一个用户属性即可。您随后可以利用此属性对所有 Firebase Analytics 报告进行过滤(例如,用户是否开始购买流程)。有关 A/B 测试的新改进即将推出,敬请留意最新动态。
大幅提升客户黏度
Fabulous 是杜克大学开发的一款健康生活习惯养成应用。开发者希望通过实验对引导用户入门的流程进行测试,从而了解哪些方法能最有效地促使用户开始使用应用。除了对图片、文字和按钮标签进行 A/B 测试之外,他们还使用远程配置对整个新手入门流程进行了 A/B 测试,从而确定应该以怎样的顺序向用户显示哪些对话。
他们使用远程配置开展的实验取得了不俗的效果:完成 Fabulous 新手入门流程的用户数由 42% 提升到了 64%,日留存率提升了 27%。
研究表明,平均而言,应用的用户流失主要发生在头 3 天。因此,像 Fabulous 这样对应用新手入门流程进行改进,并通过开展 A/B 测试确定改进措施的效果对确保应用取得长期成功有着至为重要的意义。
您的应用是否已使用远程配置?
使用远程配置后,应用的所有默认值存储在设备本地,只有与默认值不同的新值才会从云端发送给用户。如此一来,您可以通过远程配置功能灵活地对应用中的所有值进行配置,并且由于只需发送有变化的值,因此对网络造成的负担很小。不妨翻出您的所有硬编码字符串、常量和闲置的 AppConstants 文件(没什么,人人都有这样的文件),为它们使用远程配置!
Firebase 远程配置是 Firebase 平台上的一项功能,在 iOS 和 Android 上都可免费使用。若要了解更多信息,请参见我们的文档,并且别忘了探索 Firebase SDK 的所有功能。
Firebase远程更新应用的更多相关文章
- SQL Server 远程更新目标表数据
分享一个远程更新目标库数据的存储过程,适用于更新列名一致,主键为Int类型,可远程链接的数据库. ** 温馨提示:如需转载本文,请注明内容出处.** 本文连接:http://www.cnblogs.c ...
- 固件远程更新之STARTUPE2原语(fpga控制flash)
作者:九章子 来源:CSDN 原文:https://blog.csdn.net/jiuzhangzi/article/details/79471365 有的项目需要远程更新固件,更新完成后断电.重启即 ...
- 7系列FPGA远程更新方案-QuickBoot(转)
reference: http://xilinx.eetrend.com/d6-xilinx/article/2014-04/7009.html reference : quickboot meth ...
- FPGA远程更新之限制条件
FPGA可重配置带来了很高的灵活性,所以基于FPGA的设计/产品往往也会有后期更新/升级的需求.同时,需要更新/升级的FPGA板卡由于物理条件的限制,可能无法现场升级.比如: 1.FPGA板卡部署在异 ...
- ESA2GJK1DH1K升级篇: 移植远程更新程序到STM32F103RET6型号的单片机,基于(GPRS模块AT指令TCP透传方式)
前言 上节实现远程更新是更新的STM32F103C8T6的单片机 GPRS网络(Air202/SIM800)升级STM32: 测试STM32远程乒乓升级,基于(GPRS模块AT指令TCP透传方式),定 ...
- GitLab本地、远程更新已经fork的项目
单用IDEA无法做到,必须配合使用Git命令行才能做到,而且是先从原作者项目更新本地库,再从本地库push到自己远程fork项目,非常坑逼. 1.到项目clone的根目录右键Git Bash,先查看远 ...
- Winform远程更新代码
本软件具备以下形: 1.通过http形式在客户端更新winform代码文件 2.在服务端通过软件生成xml配置文件,客户端通过比对xml配置文件来更新代码文件. 服务端: 在服务器上建立一个IIS发布 ...
- 日志远程更新脚本shell
log_update.sh.bak: #!/bin/bash# To Update Logs... #/bin/rsync -avz --delete --exclude=warn.log @172. ...
- Android UI:机智的远程动态更新策略
问题描述 做过Android开发的人都遇到过这样的问题:随着需求的变化,某些入口界面通常会出现 UI的增加.减少.内容变化.以及跳转界面发生变化等问题.每次发生变化都要手动修改代码,而入口界面通常具有 ...
随机推荐
- oracle监听
启动实例时,监听程序进程会建立一个指向Oracle DB 的通信路径.随后,监听程序可接受数据库连接请求.使用监听程序控制实用程序可控制监听程序.使用lsnrctl,可以:• 启动监听程序• 停止监听 ...
- Linux基础知识(二)
1. 请回答,32位和64位有什么区别呢?什么时候安装32位的,又什么时候安装64位操作系统呢?如何查看系统是32位的还是64位的? 所谓的32位.64位指的是CPU的GPRs(General-Pur ...
- Ubuntu + hadoop2.6.0下安装Hive
第一步:准备hive和mysql安装包 下载hive 1.1.1 地址:http://www.eu.apache.org/dist/hive/ 下载Mysql JDBC 5.1.38驱动:http:/ ...
- UIAlertController的创建以及添加
个人还是更喜欢以前的UIAlertView的创建方法,更新后的UIAlertController虽然说将UIAlertView和UIActionSheet的功能和作用以一种模块化替换的方式来代替,但是 ...
- hdu1520 第一道树形DP,激动哇咔咔!
A - 树形dp Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Sta ...
- poj1094 topsort
Sorting It All Out Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 32275 Accepted: 11 ...
- C语言中的memset函数和数组指针
代码: #include <iostream> #include <cstring> using namespace std; int main(){ ] = {}; mems ...
- js prototype之诡异
想必经常写js的人必然会经常性的用到prototype这个属性,我写这篇文章倒不是自己对prototype这个属性理解有多深刻,相反是因为自己理解肤浅,想通过写文章来加深理解.废话不多说.下面总结一下 ...
- iOS学习之视图加载过程中会触发的方法(loadView/viewDidLoad/didReceiveMemoryWarning)
1.loadView 这是视图控制器用来加载根视图的方法; 如果需要将自定义的视图作为根视图,则不需要调用父类对该方法的实现([super loadView]);直接将自定义视图通过self.view ...
- Nlog从下载到使用例子
第一.首先下载nlog.dll 下载地址:http://pan.baidu.com/s/1i3DQsV7 第二.添加nlog.ll的引用 第三.代码 private static Logger log ...