广告归因:苹果ATT对归因的影响

文章目录

上一篇 广告归因:广告ID与个人隐私保护 一文中,我们介绍了广告 ID 的出现,以及个人隐私保护。

本篇是归因系列五篇文章中的最终篇。我们来聊聊苹果的 ATT 政策对广告行业的巨大影响,以及广告行业是如何应对的。

阅读归因系列的所有文章: 归因系列

苹果的隐私保护政策

苹果一直以来都非常尊重用户隐私。也一直在以雷霆手段不断限制 APP 对于用户隐私的获取。在 广告ID与个人隐私保护 中,我们提到,苹果在 iOS 5 禁止获取 IMEI,在 iOS 6 禁止获取 UDID,在 iOS 7 禁止获取 Mac Address。

2020 年 9 月,iOS 14 发布,苹果开始对自己一手创造的,已经正常运行了 8 年之久,成为了事实上 iOS 广告 ID 标准的 IDFA 下手了。

实际上还有一种「绕过限制」的方法:

开发者「发明」了一种通过将用户数据存在 iCloud 钥匙串中的方法来实现跟踪。苹果对这种方法进行过限制,设计了当用户删除 App 的时候也自动删除钥匙串中的数据的流程。

但许多 App 的正常使用数据也存储在钥匙串中。苹果对此功能进行限制后,收到大量开发者的反对,因此回滚了这个功能。

App Tracking Transparency(ATT)

iOS 14 以来,苹果出台了强制执行的 App Tracking Transparency(ATT)政策,要求开发者必须明确征得用户的许可,才能使用用户的 IDFA 信息。在这之前,iOS 是默认同意 APP 使用 IDFA 信息的。

苹果官网上的说明如下:

App Store 旨在提供一个安全可信的平台,让用户发现由全球才华横溢的开发者所打造的各种 app。App Store 上的 app 在隐私、安全性和内容方面都必须遵循严格标准,因为维护用户的信任至关重要。要提交新 app 和 app 更新,您需要在产品页面上提供有关您 app 的某些数据收集做法的信息。从 iOS 14.5, iPadOS 14.5 和 Apple tvOS 14.5 开始,您必须先征得用户的许可,才能在其他公司拥有的 app 和网站内对其进行跟踪。

Allow Tracking

公布了ATT后,苹果公司并没有立刻启用它,但 2020 年末苹果高管发言称,在2021年春季,苹果公司将会全面推行ATT,如果应用开发者拒绝接入该功能,则会被从 App Store 中强制删除对应 App。

根据我的几个开发者朋友的反馈,他们的 APP 在 2021 年 2 月提审到 AppStore 时被拒审,原因是 APP 中包含的 SDK 有将 IDFA 上传到第三方服务器。从这一点看来,苹果对 IDFA 的管控会越来越严。

ATT 焦虑

ATT 的强制推行对于基于 IDFA 进行归因的移动广告行业带来了下面的焦虑:

  1. 第三方调研机构数据显示,一旦需要通过弹窗来获取权限,就只有 20%~30% 用户会愿意授权。
  2. 苹果对于「诱导」用户授权跟踪的行为会进行及其严厉的打击。
  3. 按照以往数据预测,最新的强制 ATT 的 iOS 版本 14.5,很可能会在更新之后 40 天内被 65% 的苹果手机用户安装。

没有 IDFA,广告平台就无法精准定位 唯一用户,从而不可能对广告价值进行准确的归因。

即使苹果没有明说,这也很可能意味着,IDFA 的时代要结束了。

SKAdNetwork 解决方案

苹果毕竟是一家公司,不可能放弃广告市场。苹果的方案是提供另一个工具 SKAdNetwork 来对 App 进行有限归因:

SKAdNetwork 允许已注册的广告网络通过接收来自 Apple 的签名信号,将 app 安装归因于特定营销活动。这能帮助开发者在保护用户隐私的同时,验证某个广告带来了多少安装次数,并衡量哪些营销活动最为有效。

使用 SKAdNetwork 2.0 或更高版本的广告网络还能访问“来源 App”的信息,该信息会标识具体是由哪个 app 带来了安装。这样有助于在第三方 app 上投放广告的广告网络确定触发用户下载的来源 app。SKAdNetwork 2.0 还能识别重新下载,从而帮助广告网络衡量再互动广告系列的效果。

使用 SKAdNetwork 进行归因的执行方式如下:

  1. 广告平台通过 SKAdNetwork 对广告签名;
  2. 用户点击广告下载;
  3. 用户在设备中启动 App(激活),调用 SKAdNetwork Register API,记录一次应用激活;
  4. 若需要记录用户行为,调用 SKAdNetwork Update Conversion Value API,记录注册、购买等事件;
  5. 调用 SKAdNetwork API 启用倒计时,每次调用 API(激活或者用户事件) 都会让倒计时重新开始;
  6. 24 小时倒计时结束,计时器会再加上一个 0-24 小时的 随机延迟, 然后将转换的值发给广告平台;
  7. 转换值可以设定 64 个事件,0 代表 install,其他的可以自行设定;
  8. 广告平台得到转换值之后,再回传给归因平台。
sequenceDiagram autonumber iOS设备 ->>+ 用户: 展示SKAdNetwork签名广告 用户 ->>- iOS设备: 点击广告 iOS设备 ->> 广告平台: 跳转到广告平台 Note left of AppStore: 广告平台跳转到 AppStore 广告平台 ->>+ AppStore: 下载 AppStore ->>- iOS设备: 安装APP iOS设备 ->> 广告平台: 激活 loop 24小时倒计时,新事件则重启倒计时 iOS设备 -->> AppStore: registerAppForAdNetworkAttribution() iOS设备 -->> AppStore: updateConversionValue() iOS设备 ->>+ AppStore: 没有新的事件 AppStore -->>- iOS设备: 0-24小时随机倒计时 end iOS设备 ->> 广告平台: 归因结果数据 广告平台 -->> 归因平台: 归因结果数据
SKAdNetwork下的归因流程

这个解决方案与现有的归因流程有很大不同。广告平台和归因平台需要同时面临下面的问题:

  1. 没有实时回传。新的归因方式意味着回传最快也要发生在安装之后的 24 小时,如果运气不好(例如经常重置倒计时),回传可能会发生在数月之后……
  2. 匿名数据问题。SKAdNetwork 的数据采用聚合形式,不提供用户层级的精细数据,难以进行精细的 ROI 优化;
  3. 数据易用性问题。SKAdNetwork 提供的是 6 bit 事件识别码,识别码只能单向变化和向上递进。
  4. 数据量不足。SKAdNetwork 对每个渠道仅显示 100 个不同的推广活动。在对多个国家/地区进行多素材测试的时候是不够用的。这会减少投放上 Campaign 的数量设置;
  5. 回传浪费。SKAdNetwork 先把数据传回广告平台,广告平台再将数据传给归因平台。这意味着归因平台(无论是自建还是第三方)需要和每个广告主进行对接,这是巨大的技术资源浪费。

要了解现有的归因流程,可以阅读 广告归因:归因方法

关于「单向变化和向上递进」,Adjust 提供了一个很好的例子进行解释:

例如,用户在游戏内达成了等级 1,应用为 "等级 1" 创建的事件识别码为 000001;然后用户购买了游戏内货币,这一事件的识别码为 000011。如果用户随后达成了 "等级 2",比特值不会变为 000010,因为变化是单向的。要避免这个问题,开发者需要为排列组合中所有的可能性分配不同的比特值,而不是为每种事件分配比特值。

广告和归因平台的应对

对于 ATT 带来的巨大改变,广告平台和归因平台都推出的自己的应对方案。

另外,在投放的时候使用 In-app Bidding(应用内竞价)方案,也能一定程度上避免 SKAdNetwork 的影响。

ATT 已成事实,对于广告主来说,只能停下抱怨,快速学习如何在新的框架下得到最好的投放效果。如果小扎和库克掰手腕有了效果,我们也乐见其成。

参考链接

结语:我为什么要写这个系列

归因系列一共有五篇文章,全部都在这里了:归因系列

这个系列文章,是我在系统学习互联网商业变现市场与技术的一点点成果。一直以来,我都更习惯用输出的方式来学习较为系统化的知识,这样会让我的学习速度更快,记得更牢。这方法也是 费曼技巧 所推崇的。

对于混合变现的游戏,我们要实现最好的投放效果,必须搭建自己的工具平台。整合多个广告平台和归因平台的数据,最终实现智能投放,让人的力量去做更重要的事。

一个优秀的程序员,应该致力于用自动化的方式去解决所有可以自动化的问题。要以人肉方式为耻,要全力对世界进行自动化改造。优秀的程序员,也必须同时是一个优秀的产品经理。

由于我也在学习中,这个系列文章很可能有错误和疏漏的地方,欢迎提出来,一起讨论,一起成长。

全文完