我希望使用PostgreSQL创建基于位置的归因模型,但无法正确使用它。
我尝试了不同的方法,但我最接近的是均匀分布模式,因此,为每次转换提供所有营销渠道均匀的信用。
这是我最后一次单击模型,用于我需要的表结构的引用,这将为channel_path中的每个最后一个通道分配一个完整的一个(带有count(distinct order_id):
select
coalesce(unique_channel_path[array_length(unique_channel_path,1)],
'not_tracked') as source,
order_date,
count(distinct order_id) as count_orders
from base_conversions cvr
group by 1,2,3,4,5,6
order by 2 desc;
我希望拥有的属性是第一个通道分配0.4,所有中间通道分配0.2,最后一个分配0.4。
示例:
order_id channel_path 1个数组['seo','refferal','social_media'] 2阵列['seo','social_media'] 3阵列['social_media','sem','display','seo'] 4阵列['social_media']
结果:
channel credit
display 0.4+0.5+0.4+0.1 = 1.4
refferal 0.2 = 0.2
social_media 0.4+0.5+0.4+1 = 2.3
sem 0.1 = 0.1
seo 0.4+0.5+0.4 = 1.3
注意sem如何只得到0.1,因为它与sem属于order_id 3的中间类别,所以回顾一下:
所有第一个频道获得0.4,所有中间频道获得0.2,所有最后频道获得0.4,总共1.0
总结:
我正在寻找的最终结果是一个具有以下结构的表:
Date Channel Weight
1 sem 1.4
2 display 1.0
3 seo 0.4
.
.
.
考虑到我按每个订单出现的顺序对每个频道都有数组:
order_id unique_channel_path
1 array['display','seo','social_media'....]
2 array['sem','seo','seo'....]
.
.