一、朴素的排查思路
对于除法率值指标(比如广告CTR),当指标突变,不外乎从两种原因方向进行排查:
1)分布变化:比如好的变多、差的变少,导致整体变好
比如某些高CTR的资源位(如信息流广告)的曝光占比变高,会引起大盘CTR升高;
比如某些高CTR的 广告物料(如狗血短剧)的曝光占比变高,会引起大盘CTR升高;
2)指标变化:比如好的变更好、或者差的变好,导致整体变好
-
比如,某些资源位曝光埋点上报规则变严苛,导致CTR上升
比如视频广告之前上报规则为露出1个像素就上报,客户端发版后,曝光触发上报规则为至少露出1/3面积才会上报。由于曝光上报变少,就会使得CTR上升
比如,双十一期间受品牌合约广告占量影响,效果广告的流量为剩余尾部流量,精准用户变少,所有效果广告的CTR整体都会下降
无论是指标变化,还是分布变化,我们都希望把整体变化,拆解到最细的某个子维度的变化,以缩小异常排查范围。
一般地,这个子维度占据大盘的量级(分子或者分母)越高,那么对于大盘的变化影响越大。所以,优先查看分子或分母量级大的子维度发生的变化,是属于分布变化、还是指标变化。
二、贡献度介绍
1、贡献度意义
当某率值指标,比如 CTR、人均播放数 发生波动时,波动贡献度可以帮助我们回答:对于某特定维度(比如资源位),哪些子维度(比如文字链、信息流版位)的变化对于大盘指标波动影响较大。
比如,效果广告 某天 CTR 发生异常变化,如果下探「资源位」维度计算贡献度,可以发现是哪些资源位的贡献度较高,引起了大盘CTR波动。
2、计算公式
波动贡献度的业务含义:对于某个特定维度,其中某个子维度 i 对于指标的波动贡献度,实际代表了这个子维度 i 对于「指标变化率」的贡献占比。
指标变化率 = (异常期指标 - 基准期指标)/ 基准期指标 = 子维度1 贡献 + 子维度2 贡献 + .... + 子维度 i 贡献 + ...+ 子维度n 贡献
其中子维度 i 波动贡献度 = 子维度 i 贡献 / 指标变化率
波动贡献度的计算结果公式:
子维度 i 波动贡献度 = (总分母对比值*∆子维度 i 分子-总分子对比值*∆子维度 i 分母)/(总分子当前值*总分母对比值-总分子对比值*总分母当前值)
注:上述基准期,是指业务上认为指标正常的时期,用于与异常期数据进行对比;异常期是指标发生异常波动的时期
3、贡献度解读
对于某特定维度,其所有子维度的贡献度求和后等于100%,解释意义更强;
贡献度为正,说明该子维度的变化,对于大盘变化有同向促进作用;贡献度为负,说明对于大盘变化有逆向抵消作用。
举例说明何为 "逆向抵消":
·比如某天大盘 CTR 变高,但是某个信息流资源位( CTR 一直高于大盘)的曝光占比减少,那么该点位一定不是导致CTR变高的原因。
·理由是:假设其他因素不变,该资源位变化会拉低大盘CTR,与大盘变化为逆向抵消作用
贡献度越高,说明该子维度的变化,对于大盘变化的影响作用越大。
当贡献度大于0,且高于 20%(经验参考值),则说明该子维度对「指标变化率」有较大的贡献占比,值得进一步排查该维度发生了什么变化。
三、业务应用案例
1、异常现象
效果广告在5月5日以后,CTR开始持续下滑。
我们认为 5月5日 CTR 处于近期正常水位,5月20日 CTR 已经严重偏低。因此以 5月5日为对比的基准日期,排查 5月6日~5月20日发生了什么变化,引起了大盘CTR波动
2、贡献度计算
凭借多次排查的经验,我们对于 CTR 波动类型的案例,优先排查资源位是否有异常;此外,由于5月20日 CTR严重偏低,优先排查 5月20日 异常原因。
a. 通过贡献度,锁定5月20日异常资源位
结果发现,对于5月20日的CTR异常,主打推荐位1\2、信息流1-1 的等3个资源位的贡献度较高,超出20%,依次为 52% 、31% 、24%。
注:之所以加起来超过100%,是因为存在部分资源位对于大盘CTR影响为逆向抵消作用,即存在贡献度为负的资源位
注:某资源位对大盘CTR贡献度=(基准期总曝光数*(异常期本资源位点击数-基准期本资源位点击数)-基准期总点击数*(异常期本资源位曝光数-基准期本资源位曝光数))/(异常期总点击数*基准期总曝光数-异常期总曝光数*基准期总点击数)
b. 进一步定位 5月20日 异常资源位,发生了什么
结果发现,3个资源位的【曝光分布】均有变化。进一步排查根因发现,曝光变化与品牌广告占量变化有关。
c. 以上异常原因,同样存在于5月6日~5月19日期间
将5月6日~5月19日期间的数据剔除掉以上异常点位,CTR变化平稳(变化比例仅2%),说明该异常原因在此期间一直存在。同时也说明该方法有效,排查结论成立。
3、异常排查看板建设
前期基于excel模版透视表(见上图)进行异动分析,为了进一步提升效率,后续我们将该套方法基于superset系统 ,固化成自助异动查询看板。上线后,数据分析师的异常排查工作效率被大幅提高。
当指标发生异常变化,分析师需要在superset看板,先选择【异动指标分子】、【异动指标分母】;然后选择【异动日期范围】、【对比日期范围】、【一级下钻维度(比如资源位类型、广告主行业类型)】、【二级下钻维度(比如资源位名称、广告主名称,也可以不选二级下钻维度)】等下拉框参数;
最后,点击「Apply」按钮后,mysql会基于以上下拉框传输的参数变量,自动计算出不同一级子维度*二级子维度下的贡献度,并默认按照降序在表格中排列,同时高亮显示贡献度大于20%的子维度所在行,并自动显示该子维度属于“分布变化”还是“指标变化”。