你好,这里是巡山猫编辑部,我是巡山猫。
最近在梳理过去的项目中的指标,看看不同的场景下,使用哪些指标更合适。随着整理,发现很多时候,我们对指标的应用仅思考是否能够度量一个业务场景,并没有思考是不是有更好的口径,或者指标。
下面我们就以一个具体的例子来讲讲不同指标的不同口径,有什么差异。
指标如何选择
我们来看一个场景:当我们打开京东时,我们要计算页面中「精选」模块的点击情况,我们该怎么计算?
相信你能想到 CTR ,也就是 点击次数 / PV,算出来是 平均一次PV,有多少次点击
但是这么算真的合理吗?思考30秒,再往下看。
就分子来说,点击次数没有异议,点击了多少次就是多少次。但是PV呢?PV其实有三种计算方式:
1、页面展现次数展现就算,不论是首次,还是各种操作后,回到当前页面,都记录
2、页面加载次数首次加载才算,除非页面再次加载,才重新记录,否则就只记录首次进入页面
3、模块曝光次数用户实际看到模块的次数,看到1次后就记录,再次看到则不记录
这3种方法,你认为是哪种方式更合理呢?
想要回答这个问题,我们首先要明确,CTR度量的是什么?
1、是每一次首页展现,精选模块被点击的次数,且需要与其他模块做对比?
2、还是一次首页加载,无论是否从其他页面回退(不再重新加载),精选模块总共被点击了多少次?
3、还是度量这个模块被看到了多少次,有了多少次有效点击?
如果是第1种,那么我们公式中的分母是 页面展现次数。即每次页面被打开,我们都算1次,无论是 首次打开页面,还是一顿操作后,又从别的页面回到首页。这种计算口径,能很好的与其他模块对齐量化口径。但是我们不能保证每次用户都能看到 精选模块。
如果是第2种,与第1种的差异仅仅是,我们无论这个页面展现了多少次,都只算第1次,只要没有重新加载页面,我们就不记录。相比第1种,我们算出来的CTR值更大,指标也会更加敏感。
为什么第2种口径下的CTR的度量会更敏感呢?设想一下,用户在精选模块不断的点击,找不同的想要的商品,找了10次才找到;以及用户一上来就找到了想要的商品,只找了1次。这两种情况,我们肯定希望是后者。
如果用第1种口径来计算,由于我们每次页面展现和点击,都会记录,那么CTR就一直是1(点击1次/展现1次),无论是找了10次,还是找了1次,CTR都是1。
但是如果用第2种口径来计算,找了10次的CTR是10,找了1次的CTR是1。因为无论你点击了多少次,我们都只记录1次。
可以发现,第二种口径,我们能够用CTR来度量相同业务场景下的不同用户操作,从而更好的度量产品的效果。所以第2种口径会更加的敏感。
我们来说下第3种口径。第三种口径较前2种的差异就是,多少用户真实的看到了这个模块,这个模块的点击效果到底是如何的。但是同样也带来了问题,如果我们要将这个模块与页面中的其他模块拉齐,我们就不太容易做到。因为有的模块曝光了,有的没有曝光,我们在计算时,就需要做一定的处理,从而不能做到数据上的易用性。
当然,用这几种口径中的哪种,都需要强结合业务,因为随着业务的不同,我们可能需要关注的越来越细致,就需要曝光口径下的CTR,但前期来说,加载口径的CTR就能满足业务的使用了。
指标如何优化
上面我以CTR为例,说明了一个指标本身就会有多种口径,以及各个口径的差异那么问题来了,是不是每个指标,都会有这样的口径差异呢?
这个问题肯定是仁者见仁,智者见智。结合着不同的业务场景,我们可以有不同的指标,不同的指标我们也可以做相应的拆分。
就指标来说,我们可以将指标拆分为 底层公式 + 业务变量。
底层公式很简单,比如CTR,就是 点击次数 / 展现次数,这个是一个最基础的计算逻辑。
但是业务变量我们就需要强结合业务了。如同上文所说,这个展现可能是服务端记录了展现,也有客户端记录的展现,但是这两种都不是用户实际是否看到模块。所以我们在实际建立指标时,还需要考虑业务变量。
随着业务的迭代与发展,我们常常需要更细致的度量业务,所以指标也需要随着业务不断调整,更加精确的度量业务。
以上,就是本期分享。