渠道归因(一)传统渠道归因

小P:小H,我又来了。。。最近在做ROI数据,但是有个问题。。。

小H:什么问题,不就是收入/成本吗?

小P:是的,每个渠道的成本很容易计算,但是收入就有点问题了。

小H:是不是不知道怎么分配啊?

小P:不愧是你,对的,用户在付费前经历过很多渠道,我感觉把收入分给谁都不好说

小H:这个也不复杂,关于渠道归因的方式有很多种,比如传统渠道归因、基于马尔可夫链、基于shapley value甚至是基于Attention-RNN深度学习。

说到渠道归因,那最容易想到的就是传统的渠道归因,这种方法一般是基于业务决策的。

首次归因:首次点击渠道赋予全部转化

末次归因:末次点击渠道赋予全部转化

线性(平均)归因:每个渠道均分转化

位置归因:自定义位置的权重,一般首位占50%,其余为0

时间衰减归因:距离转化的时间越短的渠道,可以获得越多的功劳权重,权重自定义

首次/末次/线性归因

# pip install Cython
# pip install ChannelAttribution
import pandas as pd
from ChannelAttribution import *
Looking for attribution at path level? Try markov_model_local_api() or ask for ChannelAttributionPro at info@channelattribution.io! Visit https://channelattribution.io for more information.
Version: 2.1.3

本文所有数据如果有需要的同学可关注公众号HsuHeinrich,回复【数据挖掘-渠道归因】自动获取~

Data = pd.read_csv('./Markov/Data.csv',sep=";")
Data.head()

数据格式要求:

path:转化路径,以>连接

total_conversions:累计转化次数

total_conversion_value:累计转化收益

total_null:累计未转化次数

path total_conversions total_conversion_value total_null
0 eta > iota > alpha > eta 1 0.244 3
1 iota > iota > iota > iota 2 3.195 6
2 alpha > iota > alpha > alpha > alpha > iota > ... 2 6.754 6
3 beta > eta 1 2.402 3
4 iota > eta > theta > lambda > lambda > theta >... 0 0.000 2
# 传统启发式算法计算各渠道转化次数和转化收益
# first_touch:首次点击模型;last_touch:末尾点击模型;linear_touch:线性(平均)点击模型
heuristic_models(Data,"path","total_conversions", var_value='total_conversion_value')

位置归因

# 自定义位置归因函数,设置首尾权重各50%
def posAttribution(df, path, conversions):'''df:数据集path:用户旅程路径conversions:成功转化次数'''df=df.copy()df['leng']=df[path].map(lambda x: len(x.split(">")))df['first_touch']=df[path].map(lambda x: [x.strip() for x in x.split(">")][0])df['last_touch']=df[path].map(lambda x: [x.strip() for x in x.split(">")][-1])df['first_touch_conversions']=df[['leng',conversions]].apply(lambda x: x[conversions]*1 if x['leng']==1 else x[conversions]*0.5, axis=1)df['last_touch_conversions']=df[['leng',conversions]].apply(lambda x: 0 if x['leng']==1 else x[conversions]*0.5, axis=1)df1=df.groupby(['first_touch'])['first_touch_conversions'].sum()df2=df.groupby(['last_touch'])['last_touch_conversions'].sum()df_f=pd.merge(df1, df2, left_index=True, right_index=True, how = 'outer').reset_index()df_f['first_last_touch_conversions']=df_f['first_touch_conversions']+df_f['last_touch_conversions']df_f.drop(['first_touch_conversions','last_touch_conversions'], axis=1, inplace=True)return df_f
# 位置归因(首尾归因)
posAttribution(Data,"path","total_conversions")
first_touch first_last_touch_conversions
0 alpha 7377.5
1 beta 1910.0
2 delta 3.0
3 epsilon 315.0
4 eta 3665.5
5 gamma 128.5
6 iota 3980.5
7 kappa 152.0
8 lambda 1054.5
9 mi 2.0
10 theta 1129.5
11 zeta 67.0

时间衰减归因

from sklearn.preprocessing import StandardScaler, MinMaxScaler
from pandas.api.types import is_string_dtype, is_numeric_dtype
import warnings
import pandas as pd
# 读取数据 数据为自定义的
df=pd.read_excel('datas.xlsx')
df.head()

# 自定义时间衰减归因 衰减权重为半衰。例如1->2,则1的权重是66.6%;1->2->3,则1的权重是50%,2的权重是33.3%
def lapsAttribution(df, path, conversions, last_time_lapse):def scum(l):s=0for i in range(1, len(l)+1):s+=ireturn sdef lw(l):lw=[]n=scum(l)for i in range(1, len(l)+1):lw.append(1/n*i)return lwdf['last_time_sp']=df[last_time_lapse].map(lambda x: str(x).split('>'))df['path_sp']=df[path].map(lambda x: [x.strip() for x in x.split(">")])df['lts_w']=df['last_time_sp'].map(lambda x:lw(x))df['conversions_sp']=df[[conversions,'lts_w']].apply(lambda x: [i*x[conversions] for i in x['lts_w']], axis=1)laps_touch=[]conversions_all=[]for i in df[['path_sp', 'conversions_sp']].values:for m in zip(i[0],i[1]):laps_touch.append(m[0])conversions_all.append(m[1])df_temp=pd.DataFrame({'laps_touch':laps_touch, 'laps_touch_conversions':conversions_all})df_f=df_temp.groupby(['laps_touch'])['laps_touch_conversions'].sum().reset_index()return df_f
lapsAttribution(df, 'path', 'total_conversions', 'last_time_lapse')
laps_touch laps_touch_conversions
0 alpha 0.300000
1 beta 1.333333
2 eta 2.833333
3 iota 13.033333
4 kappa 0.500000

总结

传统渠道归因还是需要依据业务决定的,只要你能说服业务按照其中一种方式进行收入分配,那到这一步基本就够了。实际上,传统的渠道归因是易于理解、好操作、结果接受程度高的~

共勉~

渠道归因(一)传统渠道归因相关推荐

  1. Kappa信息化谋局电子商务与传统渠道的全面管理

    近日,Kappa中国总经理任轶先生与淘宝网首席财务官兼淘宝商城负责人张勇先生会晤于杭州淘宝总部,就淘宝网与Kappa的电子商务战略合作达成全面共识. 非常注重企业信息化建设的Kappa在积极推进电子商 ...

  2. 云之讯刘泽阳:互联网线上流量越来越贵,倒逼营销归于传统渠道|企服三会系列报道...

    "一方面,目前通讯市场处于拐点期,传统通讯竞争更为激烈,而云通讯行业也面临产品差异化和创新程度不高,资源或者产品同质化严重导致价格大战.另一方面,客户的需求也发生了更大的变化,体现在客户业务 ...

  3. 举重若轻,传统渠道如何重构便捷服务

    笔者认为,所谓的"轻渠道"应该是与客户获取服务和解决问题的便捷性正相关,越靠近客户.让客户越轻松便捷解决问题的,就是轻渠道:自助语音(IVR),短信等相对传统的渠道,如果用得好,将 ...

  4. App渠道推广统计:安卓渠道分析和渠道效果统计方法

    随着移动互联网的飞速发展,移动端入口的碎片化时代已经到来,只有掌握用户的内容渠道,就有了移动端入口的能力.APP想要获取用户,就需要借助渠道的力量.下面介绍一些主流的推广渠道和统计方法. 常见的App ...

  5. 工业渠道商管理系统全角色融合渠道商,实现渠道互联网化

    疫情之下,对广大中小企业.尤其是传统工业渠道商提出了新的挑战.工业品传统的流通方式,线下及本地化的客户开发.服务及管理方式,是否依然符合当下的时代特征和竞争环境?面对难以预测的市场环境,企业能否及时改 ...

  6. 保健用品行业渠道转型迫在眉睫,渠道商分销商城开发方案助力企业捕获新机

    近年来,随着互联网的快速发展普及,消费者往线上转移的消费习惯和新兴的线上渠道业务的爆发式增长,使得保健用品行业传统的店铺销售渠道与直销渠道遭受前所未有的冲击.根据欧睿数据显示,保健品的直销渠道占比从2 ...

  7. 全渠道的核心是渠道协同和数据整合

    您是否有过这样的经历:一件事情与网上客服沟通了半天,最后打客服电话过去,结果对方就像什么事情都没发生一样从头开始和您沟通? 客服工作必须把体验放在很重要的位置,这种体验不仅仅是客户单方面的,也包括座席 ...

  8. App推广攻略:6种渠道追踪方法及渠道数据分析的新思路

    市场运营:App 渠道追踪的5种方法以及渠道数据分析的两大思路,移动互联网的流量红利逐渐褪去,数以百万的 App 正在一个存量市场中抢占用户:谁能提高获客效率,谁就有可能在激烈的竞争中胜. 都在做 A ...

  9. 食品行业渠道商商城系统渠道利益透明,加速企业资金回笼

    营销渠道是食品企业发展的根本,优质的渠道销售系统可全方面提升企业品牌形象并巩固提升市场份额,并且能够洞察市场动态依据市场需求状况变化作出快速反应.企业要想实现销售渠道互联网化,快速拓客锁客,提高运营效 ...

最新文章

  1. CVPR2017-最新目标检测相关
  2. python json模块有什么用_Python中json模块与jsonpath模块的区别是什么
  3. 47. 对数组进行冒泡排序,实现冒泡排序的基础版与优化版
  4. Python中’__main__’模块的作用
  5. java hasmoreelements_Java IOException.hasMoreElements方法代码示例
  6. 华为y7可以人脸识别吗_华为手机经常弹出“系统更新”提示,可以不更新吗?看完涨知识了...
  7. Codeforces 213E Two Permutations 线段树 (看题解)
  8. 加密狗Android软件,加密狗app
  9. H3C的认证有用吗?对我来说有什么帮助?
  10. matlab形位公差,基于最小区域法的形位公差精确算法.PDF
  11. 音频输出设备是如何决定的
  12. uniapp获取当前页面路由及参数 _@jie
  13. CSS技巧性实现多边形及各种条纹渐变图形
  14. solr读取word,pdf
  15. [摘抄]给终身学习者的建议
  16. VS2019安装和使用(C语言)
  17. 看了这篇干货,再也不怕Mac内存不足了!
  18. 身体知道酸奶富含LGG益生菌,被称为肠道内的清道夫?
  19. 2018年举办区块链峰会_2015年开放硬件峰会开放接受注册,征求建议
  20. CodeGear Releases 3rdrail

热门文章

  1. WPF制作的小型笔记本-仿有道云笔记
  2. mouseout和mouseleave的区别
  3. SQL server 2008R2安装错误:试图执行未经授权的操作
  4. java小数计算器,java计算器.
  5. 10月11日菜粕期货投资
  6. LAMP1抗体——细胞器标志物解决方案
  7. 对软件工程师提高英语能力的建议
  8. web 漏洞入门之 —— SQL 注入教程
  9. 放电式消除BIOS密码(有图)
  10. Dr.com海淀宽带多人使用拨号软件