怎么样,这个标题很唬人吧。先看长相吧,如下:
如上所示,非常凶残的客户脚印。
客户脚印
什么是客户脚印?好好观察下面动态展示的变化:
如果客户在10天前购买,那么最后一个脚印就是10天前踩的;
如果客户突然来了购买,那么最后一个脚印就是刚刚新踩的。
不难想象:
- 越新鲜的脚印,说明客户最近刚刚购买;
- 越不新鲜的脚印,说明客户很久前购买,脚印就会变淡。
这样,我们通过脚印的深浅就可以很清楚的看出来客户的新鲜程度。对于不够新鲜的客户,他的脚印变淡了,我们就应该取激活他。
主体思路
思路:
- 这里涉及两个区间:参考区间 历史区间。
- 如果脚印出现在参考区间,则新鲜的,脚印深度:100,对应颜色深度:100%。
- 如果脚印出现在历史区间,则不新鲜,脚印深度:100 × 距参考区间天数 / ( 参考区间天数 历史区间天数 ),对应颜色深度:X %。
这就是主体思路了。
X Y 度量值计算
但实际上的计算会比较复杂,因为 X 轴和 Y 轴,都受到筛选,而又要破除这个限制,不然就无法在历史中计算,因此,我们给出定制的计算,如下:
代码语言:javascript复制Topic.X =
VAR t1 = MIN( 'Model_Calender'[Date] ) - [Var.X.Value]
VAR t2 = MAX( 'Model_Calender'[Date] )
VAR vPeriod = FILTER( ALL( Model_Calender[Date] ) , [Date] >= t1 && [Date] <= t2 )
RETURN
CALCULATE( [KPI.Sales] , vPeriod , REMOVEFILTERS( Model_Calender ) )
类似的,有:
代码语言:javascript复制Topic.Y =
VAR t1 = MIN( 'Model_Calender'[Date] ) - [Var.X.Value]
VAR t2 = MAX( 'Model_Calender'[Date] )
VAR vPeriod = FILTER( ALL( Model_Calender[Date] ) , [Date] >= t1 && [Date] <= t2 )
RETURN
CALCULATE( [KPI.Profit] , vPeriod , REMOVEFILTERS( Model_Calender ) )
这里用到了 REMOVEFILTERS 和日期维度的配合,可以充分学习感受如何灵活驾驭时间智能。
注意,精确地讲,此处可以省略 REMOVEFILTERS( Model_Calender ),这是为什么?
这样在计算 X 和 Y 的时候就摆脱了默认的限制。
脚印深度计算
代码语言:javascript复制Topic.User.Weight =
// 基本设置
VAR ColorLightMax = 40 // 最大饱和度,与原色构成层次
VAR ColorLightMin = 10 // 最小饱和度,太小的话人眼看不见
VAR Y_Value = [Topic.Y]
VAR Days = [Var.X.Value]
RETURN IF( Y_Value <> BLANK() ,
// 当前区间 [T1,T2]
VAR DateEnd = MAX( Model_Calender[Date] )
VAR DateStart = MIN( Model_Calender[Date] )
VAR OrdersInPeriod = FILTER( Model_Order , DateStart <= Model_Order[订单日期] && Model_Order[订单日期] <= DateEnd )
RETURN
IF( NOT ISEMPTY( OrdersInPeriod ) , 100 , // 如果在当前区间有行为记录,则活跃,显示颜色100%
// 否则,考察历史阶段,在当前区间前
// 最后一次交易日期 = 订单的最大日期 [历史最早, T1)[T1,T2]
VAR LastPurchaseDate = CALCULATE( MAXX( FILTER( Model_Order , Model_Order[订单日期] < DateStart ) , Model_Order[订单日期] ) , ALL( Model_Calender ) )
// 距离当前区间的天数
VAR RecentValue = DATEDIFF( LastPurchaseDate , DateStart , DAY )
// 色彩饱和度
VAR ColorLight =
IF( RecentValue >= Days , ColorLightMin , // 如果超出了历史区间,最低透明度。
// 否则,在历史考察范围内
// 其中,RecentValue 肯定比 Days 小,同时兼顾最大颜色饱和度不能太大与原颜色要有层次感
VAR X = MIN( 100 - ( RecentValue / Days * 100 ) , ColorLightMax )
// 如果颜色太淡,则调回来点
RETURN MAX( X , ColorLightMin )
)
RETURN ColorLight
)
)
脚印深度的计算有点复杂,里面用到了非常多的技巧,全部注释如上。
脚印颜色计算
通过脚印深度就可以很好的计算颜色深度,如下:
代码语言:javascript复制Topic.Color =
VAR ColorGreen = "#1AAB40" // 正数色
VAR ColorRed = "#D64554" // 负数色
VAR Y_Value = [Topic.Y]
VAR ColorCurrent = IF( Y_Value > 0 , ColorGreen , ColorRed ) // 利润正负颜色处理
VAR ColorWeight = [Topic.User.Weight]
RETURN
IF(
ColorWeight = 100 ,
ColorCurrent , ColorCurrent & FORMAT( ColorWeight , "00" )
)
这样,主体就实现了。
智能化处理
这里我们还设计了很贴心的智能化批注和提示,如下:
非常清楚地知道重要信息,然后还可以看具体的人:
明细对照
此外还设计了明细,以便运营,如下:
为了便于核对,我们只选择一天参考区间和一天历史,可以看出上面的显示非常精确,计算的逻辑的精确另人兴奋以及惊叹。
驱动运营
我们知道任何分析最后都是要转化为行动的,在这里的行动就是去激活那些脚印变浅了的客户,于是有:
或者:
如何激活呢?方法太多了。
最近大家应该疯狂地收到我激活你们的信息了吧,哈哈,就是这样的。
总结
本文给出了客户活跃脚印分析的方法,思路,实现和里面的诸多技巧,尤其值得注意的是:
- 颜色深度与脚印深度的对应关系
- 时间的灵活控制
- 动画显示的控制
- 各种人性化智能提示
- 转化为激活行动的落地
前几天看到了这个案例,立马吸收了,就是抄袭加创造,很明显这个价值没有我们这里给出的业务价值明显。这也给我们了启发,您可以学习不同来源和老师的知识,但要和自己的知识体系融合,变成自己的内容作用于自己的业务来创造价值。
参考:https://www.youtube.com/watch?v=yP791KGnrek