核心内容摘要
Android音乐播放器开发:用ExoPlayer轻松实现状态栏控制(附完整代码)
谁偷走了我的广告费—— 多渠道时代的“罗生门”做投放的兄弟们大概都有过这种甚至想砸电脑的时刻打开Google Ads后台显示带来了100个转化切到Facebook Ads这货说他也贡献了80个转化再看TikTok、KOL投放、加上百度SEM……各家后台邀功的数据加起来总转化数居然有350个然而你打开自家的CRM或者交易后台一看实际成交只有150单。
剩下的200单哪去了被吃了吗这不仅仅是数据对不上的问题这是利益分配的修罗场。
Facebook告诉你“用户是在我这儿看到广告才想买的Google只是摘了桃子。
” Google反驳“放屁用户最后是在我这儿搜索下单的没有我这临门一脚你那广告就是打水漂。
”作为操盘手你手握几百万预算面临着一个灵魂拷问如果不投Facebook这150单会变成100单吗还是根本没影响要回答这个问题我们得先把你脑子里那些过时的“单一归因”思维格式化。
在今天这个用户触点碎片化Fragmented Touchpoints的时代一个用户在下单前可能在早高峰地铁刷到了你的小红书笔记午休时被朋友圈广告击中晚上回家在PC端搜索了品牌词最后蹲坑时通过短信优惠券完成了支付。
这中间的每一个环节都在影响决策。
如果只看最后那个点击Last Click你就等于把功劳全给了收银员而无视了那个费尽口舌甚至陪酒陪笑的销售员。
这就引出了我们今天要死磕的核心——多触点归因Multi-Touch Attribution, MTA。
这玩意儿不只是个数学模型它是你在这个乱世中分配预算的上帝之眼。
那些年我们用错的尺子规则归因模型的爱恨情仇很多刚入门的数据分析师或者甚至干了三五年的运营依然在用拍脑袋的方式选模型。
我们先扒一扒那些常见的“规则类模型”Rule-Based Models看看它们到底错在哪又该怎么救。
最后的赢家通吃末次点击归因 (Last Click)这是Google AnalyticsUA版本和大多数电商后台的默认设置。
简单、粗暴、不讲理。
逻辑不管用户之前经历了九九八十一难谁让他最后点了功劳就是谁的。
适用场景几乎没有。
除非你的业务是那种“冲动型消费”比如
9元包邮的手机壳看到就买不需要犹豫。
致命伤它会严重低估那些负责“种草”和“教育市场”的渠道。
实例暴击你花重金在抖音找头部达人做了一场直播用户看爽了记住了牌子。
三天后他想买了去百度搜了一下官网下单。
在Last Click模型下抖音的ROI是0百度的ROI是无穷大。
于是你下个月砍了抖音预算全投百度。
结果发现百度的量也崩了。
这就是典型的“自杀式优化”。
初恋最美首次点击归因 (First Click)逻辑谁把用户第一次领进门谁就是最大的功臣。
适用场景极度依赖拉新的业务或者那种全新的、甚至有点所谓“智商税”概念的产品需要极强的强曝光来建立认知。
潜台词这模型有点像渣男逻辑——“得到你之后就不重要了”只在乎怎么把你弄到手。
和稀泥的艺术线性归因 (Linear)逻辑大家都不容易功劳平分。
用户经历了5个触点每个渠道分20%的功劳。
槽点这绝对是最平庸的模型。
它假设用户看一眼Banner广告和看一篇5000字的深度测评文章影响力是一样的。
这怎么可能一样这种平均主义会让你无法识别真正的“关键转化点”。
三明治战术位置衰减 (Position Based / U-Shape)这是很多高阶玩家比较喜欢的折中方案。
逻辑头尾最重要中间随大流。
通常是给首次互动和末次互动各分配40%的权重剩下20%的权重平分给中间的所有触点。
为什么好用它承认了“引流”的价值First Click也认可了“收割”的作用Last Click同时也没完全忽略中间的助攻。
实战建议如果你的客单价较高比如SaaS软件、奢侈品、在线教育决策周期长需要多次说服U-Shape通常比Last Click靠谱得多。
喜新厌旧时间衰减 (Time Decay)逻辑离转化越近的触点功劳越大。
比如按7天半衰期计算转化当天的点击权重最高7天前的点击权重减半。
适用场景短周期的促销活动双11大促。
因为在促销期越临近Deadline的刺激对下单的促动越直接。
告别玄学用Shapley Value沙普利值重构上帝视角如果说上面那些模型是经验主义那Shapley Value就是科学主义的重锤。
这玩意儿源自博弈论Game Theory还拿过诺贝尔经济学奖。
它的核心思想是解决一个经典的“分赃”问题如果几个玩家合作完成了一个任务每个人到底贡献了多少这不就是我们要在10个渠道里干的事吗咱们用人话来解释一下Shapley Value想象一下你们公司三个销售A、B、C。
A单独去谈客户成交概率0%。
B单独去成交概率0%。
C单独去成交概率也是0%。
A和B一起去成交概率30%。
A、B、C三个一起去成交概率100%。
在传统的Last Click模型里可能是C拿着合同找客户签字的所以C拿100%提成。
公平吗显然不公平没有A和B铺垫C签个毛线。
Shapley Value的算法逻辑是它会把所有可能的“组合”都算一遍看某个渠道加入后转化率提升了多少边际贡献。
计算没有A时所有组合的转化率。
计算加入A后所有组合的转化率增量。
对这些增量求加权平均。
这就剔除了“因为我存在所以我有功”的虚假繁荣真正衡量了“没有我你会损失多少”。
技术实现的痛点Data Engineer Note我知道你可能会写Python也玩过大数据。
要在业务中落地Shapley Value哪怕用Spark也是个算力黑洞。
假设你有10个渠道可能的组合就是 $2^{10}$ 种。
如果是20个渠道那就是100万种组合。
如果你还要细分到Campaign级别……那是指数级的爆炸。
实战中怎么搞通常我们不会真的算完全的Shapley Value而是采用采样法或者简化版链式算法。
代码逻辑示例 (Python伪代码)# 这是一个极其简化的逻辑展示别直接粘到生产环境跑 import itertools def calculate_marginal_contribution(channel, current_coalition, conversion_map): # 计算当前组合的转化价值 val_without conversion_map.get(tuple(sorted(current_coalition)),
# 计算加入该渠道后的组合价值 new_coalition current_coalition [channel] val_with conversion_map.get(tuple(sorted(new_coalition)),
return val_with - val_without # 核心在于遍历该渠道在所有可能的排列组合中的边际贡献 # 然后取平均值注意在真实的大数据环境下比如你是做Flink/Spark开发的你需要处理的是基于user_id的超长序列。
先把用户的session串联成pathClick_Google - Click_FB - Click_Email - Convert统计每种path的转化率。
再套用Shapley公式。
为什么你必须尝试Shapley因为它能揪出那些“混子渠道”。
有些渠道看起来点击量很大参与度很高但一算Shapley值发现它在任何组合里出现对转化率的提升都微乎其微。
这种渠道往往就是我们在Last Click模型下看不见的“预算黑洞”。
相反有些渠道比如某些垂类的高质量博客投放可能点击很少但只要它出现在路径里转化率就飙升。
Shapley会公正地给它高分。
像侦探一样思考跨渠道用户路径分析选好了模型只是第一步。
更重要的是看到路径Path。
你得知道用户到底是怎么在你的渠道网络里流窜的。
常见的几种“典型路径”直接收割型Search (Brand) - Direct - Conversion这类用户其实早就被种草了他们搜品牌词只是为了找入口。
如果你的预算大部分花在这说明你在吃老本。
长尾犹豫型Social (Display) - Search (Generic) - Social (Retargeting) - Direct - Conversion这才是大多数B2B或者高客单价B2C的真实写照。
注意中间那个Retargeting重定向。
关键点你需要分析到底是在第几次触达时Retargeting的效果最好是第3次还是第10次无效循环型Display - Display - Display - ... - Drop这种路径最要命。
用户一直在看广告就是不转化。
这时候要查的是频次控制Frequency Cap是不是设高了还是素材早就让用户产生审美疲劳了怎么做重叠度计算Channel Overlap很多老板喜欢问“Facebook和Google覆盖的人群重合度高不高”如果重合度高达80%说明你在左手打右手浪费钱给同一个人看了两遍不同平台的广告。
Venn图韦恩图是最好的可视化工具。
实操建议如果发现某两个高花费渠道的Jaccard系数超过
4这是一个经验阈值你就得警惕了。
策略要么搞差异化素材A渠道推品牌片B渠道推促销要么直接做排除包在Facebook投放时排除掉Google广告近期点击过的用户——虽然这在隐私政策收紧的今天越来越难做但基于一方数据First-Party Data还是可以搞的。
那些数据报表里不会告诉你的“隐形陷阱”在你兴冲冲地准备去写SQL跑模型之前我得先泼几盆冷水。
现实世界的数据比教科书里脏得多。
陷阱一跨设备断层Cross-Device Gap用户早上在手机上点广告晚上用电脑下单。
如果没有强制登录体系User IDCookie是没法把这两次行为连起来的。
结果手机端的广告被判定为“只看不买”电脑端的直接访问被判定为“自然流量”。
解法如果你没法强制用户登录就别过度迷信确定性归因。
这时候你需要引入概率归因Probabilistic Matching通过IP、地理位置、浏览器指纹去猜这俩是不是同一个人。
虽然不精准但比当瞎子强。
陷阱二浏览转化View-Through Conversion的虚荣很多展示类广告平台Display Ads会极力推销“浏览转化”——用户没点广告但看到了后来转化了也算我的。
警惕这水分太大了用户可能只是在刷新闻时手指划过了一个Banner压根没过脑子。
平台非说这是“潜意识影响”。
我的建议在初期评估时直接把View-Through的权重砍掉80%或者干脆只看Click-Through。
除非你是在做纯品牌曝光Brand Awareness。
陷阱三点击欺诈与机器人你算的那些复杂的Shapley Value如果底层的点击数据里混进了30%的爬虫那算出来的结果就是屎上雕花。
必须做的清洗步骤剔除并在极短时间内比如1秒内产生多次点击的IP。
剔除Session Duration会话时长为0的记录。
检查User Agent干掉那些明目张胆的Bot。
撕开伪装增量测试Lift Test与因果推断如果说归因模型是“分蛋糕”那Lift Test就是“做实验”。
它的核心任务只有一个验证“如果没有投这个广告用户到底会不会买”很多时候你引以为傲的所谓高ROI渠道其实是在收割自然流量。
举个最经典的例子品牌词搜索广告Brand SEM。
用户搜“耐克”点击广告进官网买了双鞋。
Last Click模型会显示这个广告ROI高达50。
但在Lift Test里我们关掉这个广告发现用户虽然没点广告但他直接点了下面的自然搜索结果SEO还是买了那双鞋。
结论这个广告的增量价值Incrementality接近于0。
你花的钱只是为了防止竞品买你的词而不是为了带来新客。
怎么设计一场科学的Lift Test别天真地以为就是简单地“停投一半人”。
现在的广告系统太智能了直接停投会改变竞价环境。
高阶玩家通常用这两种手段
PSA公益广告对照法把目标人群切成两半实验组看你的产品广告。
对照组看一个完全无关的公益广告比如保护野生动物。
逻辑如果实验组的转化率是5%对照组的转化率是1%这1%的人是本来就要买的那么你的广告带来的真实增量Lift就是4个点。
缺点你需要花真金白银去投那个没用的公益广告老板会心疼。
幽灵竞价Ghost Ads/Bids—— 这是Google和Facebook内部用的黑科技这是目前最精准的方法。
原理是在广告后台模拟竞价。
系统标记出一群“如果你出价了就能赢得展示”的用户。
然后随机把他们分成两组A组真的展示你的广告。
B组虽然赢了竞价但故意不展示展示下一个顺位的广告或者干脆不投。
这样A组和B组的人群属性、活跃度、对广告的兴趣程度是完全一致的。
唯一的变量就是“看没看过你的广告”。
通过对比A和B的后续转化算出来的Lift才是纯金的。
实战警告做Lift Test要有耐心。
不要跑了两天看数据没差异就停了。
转化的归因窗口期Attribution Window通常需要
天让子弹飞一会儿。
预测未来的水晶球马尔可夫链Markov Chain如果你的用户路径非常复杂比如A - B - A - C - D - ConversionShapley模型计算起来会非常吃力而且它容易忽略顺序的重要性。
这时候数学系的朋友会告诉你用马尔可夫链。
简单说马尔可夫链把用户的每一次点击看作一种状态State把点击之间的跳转看作概率Transition Probability。
为什么它比Shapley更适合现在的环境时序性它天生就是处理序列的。
它知道“先看Facebook再搜百度”和“先搜百度再看Facebook”是完全不同的概率路径。
移除效应Removal Effect这是马尔可夫归因的核心魔法。
移除效应怎么算假设我们要计算“小红书”这个渠道的价值。
我们在建好的马尔可夫图谱中强行把“小红书”这个节点删掉。
这时候所有通向“小红书”的路径都断了所有从“小红书”出来的路径也断了。
我们重新计算整个图谱走到“转化”状态的总概率。
如果总转化率从10%掉到了2%说明小红书的移除效应极其巨大它是关键的连接器。
如果总转化率只从10%掉到了
9%说明小红书就是个盲肠虽然在路径里但用户绕过它也能通过其他路走到终点。
技术实现的骚操作Python/R Graph Theory构建转移矩阵Transition Matrix是关键。
你会得到一个巨大的 矩阵每一行代表用户现在的状态每一列代表用户下一步可能去的状态。
Start FB Google Email Conv Null Start 0
4
3
2
05
05 FB 0
1
5
2
1
1 ...Start - FB (
0.
: 40%的用户第一站去了Facebook。
FB - Google (
0.
: 在Facebook看过广告的人有一半下一站去了Google搜索。
这个
5就是我们要找的黄金线索洞察如果发现Social - Search的转移概率很高这就验证了“社交种草搜索收割”的策略。
你的预算分配就应该Social投宽定向BroadSearch投精准词Exact。
别光看热闹渠道组合优化与预算分配模型跑完了图表画完了PPT也写好了。
老板只会问一句“所以下个月这500万预算到底怎么分”这时候千万别只扔给他一个ROI数字。
你要给的是投资组合策略Portfolio Strategy。
区分“收割型”与“助攻型”渠道利用我们算出的归因权重重新定义渠道角色收割者The Closers特征Last Click ROI极高但First Click或Shapley值较低。
典型品牌词搜索、重定向Retargeting、购物车召回邮件。
策略保量不保价。
这类流量通常有天花板买完就没了。
预算策略是“有多少吃多少”直到边际成本CPA高到不可接受。
助攻者The Introducers/Influencers特征Last Click ROI惨不忍睹但Shapley值很高且移除效应显著。
典型信息流广告Feeds、KOL合作、展示广告。
策略这是增长的引擎。
不要用CPA考核它们要用CPA (Assist)或者iROAS (Incremental ROAS)考核。
如果你砍了这部分预算下个月你的“收割者”渠道就会面临无鱼可捕的尴尬。
边际ROASMarginal ROAS定生死经济学第一定律边际收益递减。
一个渠道投1万块时ROI是5投到100万时ROI可能只有
5。
最佳的预算分配点在哪里是所有渠道的边际ROAS相等的时候。
这听起来很理论但操作上可以简化画出每个渠道的花费-回报曲线Response Curve。
如果Facebook的曲线还在陡峭上升说明还没饱和加钱如果Google的曲线已经平缓Saturate每多花1块钱带来的增量微乎其微砍预算把钱挪给Facebook。
不要追求每个渠道的平均ROI相等那是数学上的平庸。
你要追求的是最后一分钱花出去带来的回报相等。
一个具体的优化建议模板当你写付费专栏给读者建议时可以直接给他们这个Talk Track“老板基于跨渠道归因分析我们发现A渠道虽然表面ROI只有
8但它贡献了30%的首次用户触达。
如果我们砍掉A根据马尔可夫模拟整体转化量预计会在3周后下滑15%。
建议方案维持A渠道预算但优化素材点击率降低前链路成本。
将B渠道重叠度高且助攻弱的20%预算挪给C渠道高潜力助攻。
下周开启针对A渠道的幽灵竞价Lift Test最终确认其增量价值。
”
尾声给操盘手的几句心底话在这个算法黑箱越来越厚的时代做投放和归因本质上是在与不确定性博弈。
没有一个模型是完美的。
Last Click是短视的Linear是偷懒的Time Decay是刻板的Shapley和Markov是复杂且昂贵的。
真正的高手不是死守某一个模型而是多模型对比Ensemble Approach。
当Last Click、Shapley和Lift Test都指向同一个结论时你就找到了那个确定的Alpha。
哪怕你现在的公司还没条件跑Spark集群算马尔可夫链哪怕你只能用Excel拉个透视表思维的转变比工具更重要。
从今天开始试着不再问“这个渠道带来了多少单”而是问“这个渠道在用户的决策链条里扮演了什么角色”。