随着iOS14的发布,苹果在用户隐私权限对厂商开放程度这块收的更紧,诸如相机,相册访问的粒度细化啦,定位精确度的可选啦等等。相对于用户来说,这是好事,减少了个人隐私信息的泄露。但是从另一个方向来看,苦了一大批以用户隐私数据为生的厂商,本文要讨论的就是广告追踪这块。
一、广告归因历史背景:
从iOS6开始,苹果为防止厂商滥用用户不能更改的UDID和设备Mac地址推出了专为广告追踪而生的IDFA。
相对于UDID和设备Mac地址来说,IDFA是可以改变的,用户可以手动重置这个标识符。所以,在IDFA推广之初,广告厂商们的内心是拒绝的,万一用户重置了这个标识符呢?用户行为的追踪就会受到很大的影响,但是随着时间的推移,厂商们发现绝大部分用户都不会去点那个重置按钮,IDFA和之前那些不可变的设备ID功能是一样的。
iOS10之后,苹果又推出了用户可以限制广告追踪的功能,厂商们的内心又是一阵惊涛骇浪,因为限制了广告追踪后,厂商们获取到的IDFA是一串没有意义的0。不过一段时间后,厂商们内心又平静了下来,他们发现,由于缺乏相关专业知识,大部分用户都不知道限制广告追踪那个按钮的存在,用户基本上不会去打开限制广告追踪按钮。
如今iOS14的推出,苹果把这个按钮从隐秘的角落直接推到用户面前,在APP需要获取IDFA的时候,系统会直接提示是否允许使用IDFA,把选择权直接交给了用户。用户调研的数据表明,iOS系统的隐私权限选择弹框中,约有40%的用户会选择不允许。这下,厂商们是真的不淡定了。
二、归因方案:
1.ATT
ATT全名是AppTrackingTransparency,是Apple为提高用户隐私透明度提供的解决方案,获取IDFA也要符合ATT的要求
ATT的背后是IDFA,iOS14新的隐私方式,每次安装新的应用,用户都需要对APP获取IDFA进行授权,否则应用将无法获取IOS的IDFA

没有了IDFA 是不是就表示无法归因了呢?
答案显然不是的!因为苹果提供了新的归因方案SKAdNetwork(SK即StoreKit)
2.SKAdNetwork
从iOS11.3开始,苹果发布了一套新的api,SKAdNetwork。意在取代IDFA用在广告投放中追踪用户。
IDFA的背后又是SKAdNetwork、iAd和AdServices
简介:
SKAdNetwork这套框架主要用来评估在保证用户隐私的前提下的广告投放活动的效果。主要涉及到三个方面:
1. 广告网络:(对广告签名,当广告带来转化时接收安装通知)
2. 来源应用:(展示来自广告网络的广告 对照下图App A)
3. 广告主应用:(出现在签名的广告中 对照下图App B)

当用户点击广告时,一个带有签名信息的APP Store产品界面呈现出来,签名信息标记了此次广告活动。如果用户安装并且打开了APP,设备发送一个安装验证通知给广告网络。这个由Apple签名的通知包括广告活动ID,但是不含用户或设备相关的数据。通知还可以包含一个转化数值和来源应用ID,这个取决于苹果设定的一个隐私阈值。
职责:
- 广告网络的责任:
- 在苹果注册自己的广告网络ID,提供给开发者。参见 Registering an Ad Network。
- 为来源应用提供签名的广告。参加 Generating the Signature to Validate an Installation。
- 通过注册时填写的URL接收安装验证通知
- 验证通知。参见 Verifying an Install Validation Postback。
- 来源应用的责任:
- 将广告网络的ID添加到应用的 Info.plist 文件。
- 展示签过名的广告。
- 广告主应用的责任:
- 发起应用安装验证通知,方法:registerAppForAdNetworkAttribution() 或 updateConversionValue(_:)。
- 可选地,更新转化数值,方法:updateConversionValue(_:)。
SKAdNetwork工作流程:
- adnetworkID需要注册并且提供给开发者。详见adnetwork的注册
- 需要将注册过的广告提供给宿主APP。详见如何获取安装验证签名
- 注册adnetwork的时候,回馈用的URL一定要填写,它是用来接收安装验证回馈信息的。
- 如何验证回馈信息。详见验证回馈信息
- 宿主APP要将adnetworkID添加至info.plist文件。详见配置宿主APP
- 宿主APP需要展示向苹果注册签名过的广告内容。详见adnetwork的安装验证
- 被广告APP需要调用registerAppForAdNetworkAttribution()或者 updateConversionValue(_:)这两个方法,来提供APP安装验证信息。
- 被广告APP调用updateConversionValue(_:)来更新转化率。当用于更新转化率的计时器到期时,设备自动发送安装验证回馈。

优点:
- 可以很好的解决广告核销问题
####缺点:
- 颗粒度太粗糙,无法支持用户画像等精细化运营
- 无法获取用户级的信息
但是,苹果却“以权谋私”为自己的广告平台留了一个后门可以提取到IDFA,分别是早期就存在的iAd归因接口和AdServices接口。
SKAdNetwork、AdServices和iAd是作为IDFA的替代者出现;
所不同的是SKAdNetwork是一个通用的归因方案,而AdServices是一个苹果“以权谋私”的归因方案。
特别值得一提的是AdServices框架是苹果在WWDC20之后发布的一个全新的接口,其流程如下图所示。

三、总结
就目前来看,在iOS14的IDFA的可用性大打折扣的情况下,SKAdNetwork还不能做到替代IDFA,广告投放的透明度和精准度完全比不上IDFA,甚至还可能催生出一批广告作弊的黑产,确实令厂商们头疼。不过,随着苹果的慢慢优化,不断的更新迭代,相信在不久的将来,苹果一定能做到用户隐私和厂商们的广告投放效果两者兼得的。
- 本文作者: Grx
- 本文链接: https://ruixiaoguo.github.io/Grx.github.io/Grx.github.io/2022/01/01/iOS广告归因历史演变/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!