谷歌Chrome隐私沙盒下的转化分析

这是极诣的谷歌隐私沙盒系列文章的第三篇。对前两篇感兴趣的读者请参考:
本篇极诣讲的转化分析并不是广告主自己通过类似GA的Web Analytics软件进行分析的范畴,而是在广告网络侧的。为什么广告网络也需要转化分析呢?在广告网络背后的广告科技公司需要这些数据来定期调整投放策略,进行A/B测试,自动优化你的广告投放效果,而广告转化数据是用来建模预测的输入。
第三方Cookie下的转化分析
以往我们依赖第三方Cookie来进行投放的转化跟踪。广告网络在用户点击后甚至广告展示后将记录该用户的广告曝光点击历史,在用户在广告主网站上转化之后会回溯该历史进行转化记录和归因。

第三方Cookie对广告平台来说是该用户的唯一标识,因此在第三方Cookie可用的时代,广告平台可用较为准确地进行跨站跟踪每一个设备,并掌握使用设备的用户的浏览历史和兴趣偏好。显然,这会带来许多用户隐私的问题。
隐私沙盒下转化分析
当第三方Cookie不再可用后,谷歌将提供Event Conversion Measurement API作为应对方案。该方案暂时将不支持View-through转化,仅支持点击。谷歌还配套提出了Aggregate Conversion Measurement API和Trust Tokens作为一揽子方案,涵盖了深度分析洞察和反广告欺诈。

注意上图第二步的browser storage并不是第一方Cookie,第一方Cookie并不能跨域监测View-through转化。正由于不在Cookie中,JavaScript无法轻易对其进行操作,保障了安全性的基础,只能通过API对该存储进行有限操作。而API的调用将会整合到HTML的Parser中,由浏览器来负责。因此使用window对象的window.open和window.location是不能用此API的,因为不是<a>标签。举个例子,之后的一个广告会由这样一段代码构成:
<a
id="ad"
impressiondata="200400600"
conversiondestination="https://advertiser.example"
reportingorigin="https://adtech.example"
impressionexpiry="864000000"
href="https://advertiser.example/shoes07"
target="_blank"
>
<img src="/images/shoe.jpg" alt="shoe" />
</a>
这个例子很直观地展现了Event Conversion Measurement API通过定义了一堆<a>元素的属性,当用户点击了这个广告链接的时候,浏览器会记住这个点击所关联的属性,而当用户在conversiondestination(eTLD+1)转化的时候,浏览器将记录下来并在未来的某一时间(注意不是实时)反馈给reportingorigin。你看
- 广告网络依旧可以用JavaScript记录展现和点击的发生,收集浏览器环境以及广告发布媒体补充的其他一些数据。如果发生点击,这些数据依旧可以通过挂载参数传递给广告主网站并保存为第一方Cookie(注意:这种方法还是会被苹果ITP打击。)
- 当用户在广告主网站完成转化时,广告主依旧可以查看第一方Cookie并将当时的展现情况反馈给广告网络。
我们很容易发现这样做的优点。
- 首先,广告网络无法再跨域跟踪用户了。因为不再有第三方Cookie。(我们在此不讨论浏览器指纹。)
- 其次,至少View-through转化时,广告网络无法轻易将看广告的人和转化的人对应起来。我们说”轻易“是因为还有时序攻击(Timing Attack)的可能。
时序攻击我们在这里简单举个例子,假设A用户在一个在线文学网站点了动漫书籍广告后,广告网络获取了该行为信息,一分钟后同一IP地址购买了BL漫画的转化信息也传到了广告网络,那么这两者很有可能就是同一设备。这样A用户作为一个个体喜爱BL文化的偏好就暴露了。由于在线文学网站会分享A用户的会员ID给广告网络,那么A用户该偏好信息将会曝光给更多其他广告主。不过A用户在其他网站中的身份还不会和在线文学网站的A君联系起来,不至于太糟。
从上面这个A用户的例子我们也能看到其他一些问题,由此Event Conversion Measurement API为了保护用户隐私也给出了三个手段:
- 限制传送的数据字节数——除了回传clickid,转化数据最多3个bit,也就是8种转化类型,这是避免给用户打过细的标签。
- 添加噪音数据——干扰,不多解释了。
- 限制转化数据回馈的时间间隔——有时会长达两周,这是规避时序攻击。
我们最后分析反馈转化的过程,先看下图:

这里的第7步很关键。每次转化pixel都会被调用,让广告网络知道有一个转化发生了。但为什么是每次呢?因为不存在Cookie了呀!广告主的网站如果不做”特殊处理“利用第一方Cookie来标记用户看过的广告,或者不针对某一广告来源做特殊的转化路径来区别载入pixel,那么它是不知道这个用户的转化是否该被归因到某一个广告的。因此每当有一个转化行为发生时,就会有一个pixel傻傻地被调用。是不是非常不环保?而且会对广告网络暴露广告主的商业数据?
而在第8步,广告网络仅仅需要返回一个转化类型给浏览器,这就是我们刚才说的8种转化类型之一。然后在第9步,浏览器对真正的点击+转化数据进行排期。

第10步在浏览器加上了归因后的功劳值(Attribution Credit)然后回传给广告网络,100代表全部归功于这个点击(注:当前仅支持Last-Click转化模型!)。然后在过程的最后,广告网络将收到转化报告。
你有没有发现缺少些什么?如果你想通过收入金额而不是转化数来优化广告行不行呢?很遗憾,你只能在八种转化类型中想办法。因为传输金额就会造成人为利用金额对个体进行细分标签的后果。
好的,我们通过三篇文章把谷歌Chrome的隐私沙盒粗浅地讲了一遍。如果读者有疑问,请在极诣公众号相应文章下留言。