问题由来
新版本覆盖速度,这个概念说起来大家都不会陌生。在每次发布新版本的时候大家都会十分留意新版本的覆盖情况。特别进行了比较重要的更新之后,我们也经常会受到来自各方面需要提高新版本覆盖速度的要求。
想要提升覆盖速度,那么首先要面对的是,如何将这个版本覆盖速度进行量化。
其实这个问题,说来可以很简单,比如可以说成“xx天之后,新版本活跃用户超过总量一半”。但如果仔细去考虑,这样评估有很多不准确的地方。第一,灰度量是我们自己控制的,灰度放的快或慢,这会根本上影响覆盖速度;第二,在买量或者新增用户数量波动较大的时候,也会影响到覆盖速度,大多老用户升级都不会很及时,但是新增用户的版本可以看作是按照灰度量分布的。新增越多,升级越快。
更新事件的角度
如果将新老用户进行拆分,也就是将安装事件和更新事件进行拆分。那么这个指标看起来就清晰了很多。安装事件其实我们并不需要去关心,有多少新用户用到新版本,这就是我们的灰度量,我们可以充分控制 。我们只要关心的重点放在更新事件就可以了。
更新事件这一指标,在谷歌后台版本信息中心查看到,可以在配置报告中,选择更新事件,维度选择应用版本,将数据下载至本地。
这里要注意的是,谷歌后台给出的更新事件,是在升级完成后上报进行上报。也就是我们看到的是最新版本中有多少人是升级上来的。这也就带来一个问题,我们无法将每个更新事件追溯到用户之前用的版本,也就是我们无法直接得到“旧版本中有多少人进行了更新”。
不过我们仍然可以将这个指标拆分一下:老用户旧版本升级比例=老用户旧版本更新事件量/(老用户旧版本用户总量+老用户旧版本更新时间量)
(1)因为上报了更新事件的,在更新前也是这一天的旧版本老用户,所以计算时应该把更新事件量算回到分母中去
(2)在这里,我们只讨论更新与不更新的行为。老用户的留存长期都是稳定的数据(90%+),因此在这里(也只能)忽略掉有老用户的卸载的情况
(3)谷歌后台是不会区分新老用户的,在实际计算中,我将“旧版本的Active Device Installs-旧版本的Daily Device Installs”,视为旧版本老用户总量
以我们九月份所发布的1.6.1版本数据举例,所计算出的,旧版本中老用户升级行为比例,以及每天所设置的灰度量如下图所示:
我们可以看出,每一次增加灰度量,都会使得老用户升级比例得到明显提升,并且在一天之后迅速衰减。我们可以做这样一个假设,提升灰度量第一天就升级的用户,大概就是可以通过谷歌后台自动更新的用户。对老用户来说,在某个量级上灰度三天还是灰度五天,没有多大差别。能够及时升级的老用户,给一两天时间基本就都升级上来了。
版本比例的角度
之前所讨论的,是属于比较微观的,针对到用户升级行为层面。
那我们直接从宏观的版本分布层面,直接用版本分布的比例进行统计。为了保证数据源的一致性,我们还是选择GP后台的数据。
相比于计算老用户升级行为比例,各版本覆盖情况在Excel中很容易得到。installs_包名_月份_app_version这份表格中,进行数据透视时,行和列选择“Date”和“App version code”,值选择“求和项:Active Device Installs”,并且在值显示方式中选择“行汇总百分比”,就可以直接得到每一天各个版本所占比例。(当然同样的方式也可以用于我们自己后台导出的数据)
仍然用v1.6.1版本的数据来看:
前三天我们灰度量是30%,在开始发布三天后,版本覆盖比例达到了14.33%。第四天灰度量为50%,第五天开始100%全量发布。可以看到,在每一次提升灰度量的时候都会让版本覆盖程度有着明显的提升。而这也和我们之前通过升级事件得到的结果想吻合。
另外,从第五天之后,该版本开始全量发布,在此之后的覆盖比例曲线,看起来像是非常平滑的对数形式的曲线。我们也可以利用Excel的趋势线功能进行拟合。甚至可以得到发布天数与版本覆盖比例的公式:
提升覆盖速度的一些思路
所以我们也可以看出,想提升新版本的覆盖速度,最有效的方法就是一句废话,快点放量。直接上全量,肯定覆盖的最快。这是提升速度的最大瓶颈。但这有时候很难做到,毕竟灰度期间对比数据差异是非常重要的事情。
当然还有第二有效的方法,也是废话,发了新版多买量。老用户能够及时自动更新的比例很有限,从之前数据上估算,这个比例不会超过一半。但是这也执行起来也不容易,而且也只是对新产品起效。
那么就是否有一种,即方便我们对比数据,又能使得老用户的升级过程不至于太慢呢?
在这里,我提出一个假设。从第一张表中我们能看到,提升一次灰度量级,就会使得老用户升级比例提升一大截。那么是否可以通过,均匀增加灰度量级,来使得老用户升级比例始终保持在一个较高的水平上?之前自己的产品发灰度有时候很由着性子,有时在一个量级灰上好几天,看数据觉得差不多了突然从30%提到100%。其实这样做,30%这样的灰度量级,对于占用户总量90%多的老用户来说,只有前一两天是有效果的。如果改成每天都均匀地去增加10%,有可能会提升整体的覆盖速度。
刚好我们的产品即将发布新版本,可以借此机会验证下这个假设。