应用尚未配置为使用 Apple 的 SKAdNetwork

许久没看的 Google AdMob 后台出现了如下的提示

一些应用尚未配置为使用 Apple 的 SKAdNetwork。 为确保您的所有广告活动(例如应用安装)都不是徒劳,请务必使用 Google 推荐的广告联盟 ID (opens new window) 来配置 SKAdNetwork。

很多术语其实我看的并不是明白,所以我想要尽可能的搞明白这些术语是什么意思,以及我为什么要配置 Apple 的 SKAdNetwork?

# 一些术语解释

Advertisers: 广告主。即花钱做广告的。比如各种知名品牌耐克,可口可乐等..

Publisher:媒体。将广告展示到用户面前的。比如门户网站的首页的横幅广告信息等。

AD Network:广告平台(或者叫广告网络,网络广告代理商)。主要是链接广告主和媒体的,整合各种资源,提升广告投放效率。但是广告平台不能提供他们想要的透明性,广告主不知道他们的广告投放在哪里。像是谷歌广告联盟(Google AdSense),淘宝联盟就算是广告平台。 Ad Exchange: **广告交易平台。**这个平台是撮合广告交易的买方和卖方交易的。相对于广告平台,广告交易平台给予广告主更多的可控性,他们自己可以决定每一次的投放。

IDFV(Identifier For Vendor): 应用开发商标识符。

IDFA(Identifier For Advertising): 广告标识符。

UDID(Unique Device Identifier): 设备唯一标识符。

# 广告追踪

如果您是 App 广告主,正在投放广告,那你一定希望知道你的广告被曝光过多少次,有多少人点击了你的广告,并安装了你的应用。这是一个完整的流程,作为广告平台,是需要有机制来追踪这个完整的过程的。

早先在每个 iOS 设备上,都有一个设备标识符 UDID,如果你用的广告 SDK 都会采集你的设备标识符传到云端,这样你这个设备上所有的行为都会被广告商识别到。广告商甚至可以将你的手机号和 UUID 关联起来,这样用户就没有隐私可言。

基于此苹果推出了广告标识符(IDFA),这个 IDFA 并不是唯一的,用户可以重置,也可以关闭,这样广告厂商、或者广告平台是没有办法获取到 IDFA 的。这样既保护了用户隐私,也变相保障了广告商的权益。广告主利用 IDFA 去进行用户画像的分析,精准发现目标用户,提高广告投放的效率。

苹果觉得这样还是不够,在 2020 年,苹果再次调整了 IDFA 抓取政策:应用程序追踪透明化(App Tracking Transparency)隐私政策,即 ATT 隐私政策。ATT 隐私政策要求开发者必须明确征得用户的许可,才能获取用户的 IDFA 信息。

Request IDFA

大部分用户其实是不希望自己被追踪的,所以一般点击都不允许跟踪,这样广告主/广告平台就没有机会拿到 IDFA,没有办法追踪用户的行为,至于自己的广告投放效果,用户是否是通过广告安装了广告商的应用,就无从得知,整个广告商追踪体系就没有办法运作了。

这怎么办?苹果推出了 SKADNetwork 方案。

# SKADNetwork

SKADNetwork 是为了在保护用户隐私基础上来帮广告主衡量他们的投放效果的工具。

和普通基于 IDFA 的 Mapping 式广告归因 (opens new window)进行区别,SKADNetwork 使用的是链路是广告归因。

SKADNetwork 参与方有四个:广告平台(AD Network),媒体应用(Source apps),广告主应用(Advertised apps)以及苹果平台。

SKADNetwork 大致的工作方式如下:

  1. 广告平台需要先去Apple 注册 (opens new window)。注册时,需要提供一个回传(postback)地址,给苹果一个公钥用于签名,注册成功后会获取广告网络ID(SKADNetworkID)。
  2. 媒体应用集成广告平台 SDK,并进行配置 (opens new window),当广告需要曝光的时候,SDK 会将广告的应用相关签名信息和广告网络ID(Ad network ID)等信息传给App Store。
  3. 当用户点击广告时,会调起 App Store 客户端广告应用的页面,同时进行签名和广告网络ID信息传给苹果。
  4. 用户下载广告时。苹果为应用程序下载指定了一个特定的数据层级,该层级决定了设备后续处理回传数据时所能包含的详细级别。这样做是为了确保群体匿名性,即在处理和分析数据时不会泄露个人身份或敏感信息。
  5. 广告主 App 也需要进行对应的配置 (opens new window)(比如配置在第一步里回传地址),这样当广告主 App 启动后就能将转化数据回传给广告平台以及广告主开发者(这里的转化数据就是苹果计算好的)。

这种工作方式能成功的本质就是,苹果接管了曝光数据和最终下载App的数据的整个链路,所以它能计算出来最终的转化率。实时上,在保护用户隐私的情况下,也只能是手机平台厂商来开放接口做这件事。

所以回到开头的问题,我们为什么要接入苹果的 SKADNetwork?因为在用户拒绝授权 IDFA 的情况下,广告平台如果不通过 SKADNetwork 是没有办法计算广告主应用的安装归因。即如果用户安装了媒体应用 A,通过媒体应用 A 安装了广告主应用 B,那 B 的安装费用是没有办法算到媒体应用 A 上的,这样就会给媒体应用 A 造成财务损失。

因为我的 App 接 GoogleAdMob 接的比较早,所以当时的官方接入文档里没有提 SKADNetwork 这事儿,现在再去看 GoogleAdMob 的接入文档,文档会显式提醒你接入 SKADNetwork,配置对应的广告网络 ID。

还有一个疑问是,为什么谷歌的广告联盟有那么多广告 ID,难道不应该是只有谷歌广告平台吗?其实 Google AdMob 是谷歌的移动广告中介平台,支持与30多个第三方广告网络进行合作。作为中介平台,AdMob 允许应用开发者通过一种集中的接口来管理和展示来自多个广告网络的广告。所以我们在配置自己的媒体应用的时候要把 GoogleAdMob 支持的其他广告网络也加进去。

参考地址:

  1. 通俗介绍一下 Ad Network? (opens new window)
  2. 一文读懂ios归因框架 SKAdNetwork (opens new window)
  3. Apple-StoreKit SKAdNetwork (opens new window)
  4. 「IOS广告归因」匹配式归因,链路式归因以及IOS SKAdNetwork归因说明(一) (opens new window)
  5. APP归因科普:归因核心关键——用户ID详解 (opens new window)
  6. 比较 Ad Manager、AdSense 和 AdMob (opens new window)

关注我的微信公众号,我在上面会分享我的日常所思所想。