「IOS广告归因」匹配式归因,链路式归因以及IOS SKAdNetwork归因说明(一)

众所周知,2020年,苹果在WWDC(全球开发者大会)上,宣布iOS 14 之后IDFA的授权从设备层面移动到APP层面。因此,用户需要对每个APP进行授权。这就意味着如果不能经过用户允许,数据不能被用于定向广告,广告商不能共享用户的信息,这让过去通过 IDFA 来实现的广告归因和效果衡量变得近乎无效。

 

新的隐私方式,每次安装新的应用,用户都需要对APP获取IDFA进行授权,否则应用将无法获取IOS的IDFA,如图:

 

图片

没有了IDFA 是不是就表示无法归因了呢?

答案显然不是的!因为苹果提供了新的归因方案SKAdNetwork(SK即StoreKit)。要了解这个归因的方案,首先需要了解归因的基本逻辑知识。

广告归因存在链路式归因和匹配式(Mapping)归因两种情况。

 

  • Mapping 式广告归因

顾名思义,是通过唯一的设备ID进行匹配来做的归因。这种归因方式对设备ID有严格的要求,需要唯一性,持久性并且容易获得。详细了解请看 《APP归因科普:归因核心关键——用户ID详解》。

之所以使用Mapping 式归因,根本原因在于广告转化链路的追踪ID信息无法透传,广告生命周期无法闭环。如下图 

图片

在这个广告流程中,广告的追踪ID 只能跟踪到调起应用商店如Google play 或者App Store,在应用激活这个关键环节中(即图中的第四标号),没有通用的系统组件和API可以透传追踪ID。

 

因此,为了进行广告的归因,就只能通过Mapping匹配的方式,在一定的归因时间窗口,对设备ID 进行匹配,常用是最后的归因模型(Last Click)。在Mapping 式归因中,唯一的通用的设备ID 就显得非常重要。

 

  • 链路式广告归因

指的是通过在广告的关键链路上带上一个唯一的追踪ID(tracking ID或者签名信息),这个追踪ID 会将广告的曝光,点击,跳转到落地页以及转化都串联起来,实现广告链路的完整归因,链路闭环。

 

链路式归因,无需依赖设备ID,只需要一个唯一的追踪ID或者签名即可。如下图,

图片

能实现链路完整归因,核心关键的因素是存在这一个基础模块,能够将追踪ID从广告的曝光开始一直透传到转化。例如,外链的广告场景,浏览器组件正好可以提供这样的能力。所以我们看到网页广告的归因基本都是通过Tracking ID进行归因,比如表单填写,网页订单购买等;

 

因此,回到应用归因的场景,只要系统愿意提供某些API接口,将追踪ID从广告的核心关键链路上一直透传给广告主的应用,那么整个归因其实就不依赖于设备ID了。

 

从上面的流程原理中看到,链路式的归因,可以完全不依赖用户ID的识别,只需要有相关的归因追踪ID即可。而苹果的SK AdNetWork就是使用这样的一种方式。

 

  • SKAdNetwork的原理和具体逻辑

 

目前 SKAdNetwork2.2 支持曝光归因(View-Through Ads)和StoreKit-Rendered Ads(App Store渲染式广告,可以理解为需要点击跳转App Store 网页页面或者客户端应用落地页的广告)。

StoreKit-Rendered Ads ,主要的归因方式链路式归因,苹果IOS 系统取消IDFA之后,应用的归因由系统提供追踪ID(签名)来实现。如下图:

图片

说明:上图来源于苹果开发者官网

 

第一步,进行广告应用的签名,广告平台(Ad Network)在收到媒体端的广告请求时为广告应用进行签名(可以理解为生成一个广告的追踪ID)。

 

第二步,在广告即将曝光前,调用系统的loadProduct(withParameters:completionBlock:) 函数,目的在于预加载一个App Store的web端或者客户端的广告展示落地页。这样可以提升广告展示的速度,同时,将广告的应用相关签名信息和广告网络ID(Ad network ID)等信息传给App Store。

 

第三步,当用户点击广告时,会调起App Store 客户端广告应用的页面或者web 端页面,同时进行签名和广告网络ID信息的透传;

 

第四步,广告主发送激活通知,当广告主App安装后进行激活时,需要调用系统的函数,发起应用安装验证通知,调用方法registerAppForAdNetworkAttribution() 或 updateConversionValue(_:)。目的是将广告的安装、激活以及转化信息回传给到广告平台。此时默认会启动一个24小时的计时器(Start timer)。超出时间再调用安装验证通知就会无效。当然,广告主可以通过调用updateConversionValue(_:)更新转化的值以及重启一个计时器。

 

第五步,广告平台接收激活和转化信息;当用户安装并启动一个属于广告的应用程序App时,广告主会调用registerAppForAdNetworkAttribution()或updateConversionValue (_:)。这些调用会将激活和转化信息发送到广告平台注册的回包网址(Postback URL),广告平台收到激活和转化通知后对信息进行确认,以此来完成一次的广告生命周期。

 

从上面的链路流程我们可以看到,这个归因完全不依赖于系统的隐私用户ID。核心关键在于系统提供了Storekit 和对应的API使得广告签名信息可以从广告的曝光一直传递到广告的激活和转化。

 

这个链路归因的方案涉及到各方的职责如下:

一、广告平台或者广告网络(Ad Network)的职责

  1. 在Apple 上注册Network ID,用于在广告活动时使用归因验证的各种API。
  2. 为流量媒体侧App(Source App)提供已签名的广告应用;
  3. 通过注册的回包网址(Postback URL)接收来自广告主回传的激活和转化信息;
  4. 确认已接收广告主回传的信息;

 

二、媒体APP(Source App)

  1. 需要在媒体应用的Info.plist 上添加广告网络的ID;
  2. 展示已签名的广告;

 

三、广告主应用(Advertised App)的职责:

  1. 在应用安装激活后,调用系统的API registerAppForAdNetworkAttribution() or updateConversionValue(_:)发送激活归因信息;
  2. 调用updateConversionValue(_:),更新应用后端转化的值,这是一个可选项,广告主根据实际情况决定是否使用;

 

苹果对于应用归因提供了StoreKit-Rendered Ads——基于App Store渲染的广告归因以及View-Through Ads(曝光广告归因)的能力,这块还有更多细节可以探讨,我们留待后续再说明。

尽管广告归因可用这种方案解决,但是这方案对广告平台不透明无法对广告 ID进行数据的串联和打通,势必对模型和画像造成重大的影响。

 

以上关于SKAdNetwork的信息均来源于苹果官方开发者网站(https://developer.apple.com/documentation/storekit/skadnetwork),本人结合对应用广告归因的理解解读出来。由于理解能力有限同时英文水平不高,难免错漏,敬请指正。

THE END
分享
二维码
< <上一篇
下一篇>>