归因报告:完整的系统概览

针对技术决策者的归因报告关联服务概要。

借助 Attribution Reporting API,广告技术平台和广告客户可以衡量广告点击或观看何时促成了转化(例如购买)。此 API 依赖于客户端和服务器端集成的组合,具体取决于您的业务需求。

在继续操作之前,请务必阅读归因报告概览。这有助于您了解 API 的用途以及不同输出报告(事件级报告摘要报告)的流程。如果您遇到不熟悉的术语,请参阅 Privacy Sandbox 词汇表

本文档的适用对象

在以下情况下,您应阅读本文档:

  • 您是广告技术平台或广告客户的技术决策者。您可能从事运营、DevOps、数据科学、IT、营销或其他需要做出技术实施决策的职位。您想知道 API 如何实现隐私保护型效果衡量。
  • 您是一位技术实践者(例如开发者、系统操作员、系统架构师或数据科学家),将使用此 API 和汇总服务环境设置实验。

本文档将从宏观层面全面介绍 Attribution Reporting API 的服务运作方式。如果您是技术从业者,可以在本地试用此 API

概览

Attribution Reporting API 包含多项服务,需要进行特定的设置、客户端配置和服务器部署。如需确定您需要哪些信息,请先执行以下操作:

  • 做出设计决策。定义要收集的信息,确定您希望从任何给定广告系列中获得哪些转化,并确定要收集的报告类型。最终输出结果是以下两种报告类型中的一种或两种:事件级报告和摘要报告。

通常有两个(有时是三个)组件协同工作来支持报告:

  • 网站与浏览器之间的通信。在基于 Cookie 的系统中,转化和广告互动的信息会附加到标识符,以便您或分析服务日后联接这些事件。借助此 API,浏览器会根据您的指示,在交付转化数据以供分析之前,将转化与广告点击/观看相关联。因此,您的广告呈现代码和转化跟踪必须:
    • 告知浏览器哪些转化应归因于哪些广告点击或展示。
    • 指示要包含在最终报告中的任何其他数据。
  • 数据收集。您需要一个收集器端点来接收在用户浏览器中生成的报告。浏览器输出的内容可能是以下两种报告之一:事件级报告和可汇总报告(已加密,用于生成摘要报告)。

如果您收集的是可汇总报告,则还需要第三个组件:

  • 生成摘要报告。批量处理可汇总报告,并使用汇总服务处理这些报告以生成摘要报告。

设计决策

归因报告的一项关键原则是尽早做出设计决策。您可以决定在哪些类别中收集哪些数据,以及处理这些数据的频率。输出报告可提供有关广告系列或业务的分析数据。

输出报告可以是:

  • 事件级报告可将特定广告点击或观看(在广告端)与转化端的数据相关联。为了保护用户隐私,我们限制了跨网站的用户身份联接,因此转化端数据非常有限,并且数据存在噪声(这意味着在少数情况下,系统会发送随机数据,而不是真实报告)。
  • 摘要报告与广告端的特定事件无关。这些报告可提供更详细的转化数据,并可灵活地将点击数据和浏览数据与转化数据联接起来。

您选择的报告类型决定了您需要收集哪些数据。

您还可以将最终输出视为用于制定决策的工具的输入。例如,如果您生成摘要报告来确定有多少转化带来了某个总支出价值,这可能有助于您的团队确定下一个广告系列应以什么为目标,才能产生更高的总支出。

确定要衡量的内容后,您可以为 Attribution Reporting API 设置客户端。

网站与浏览器之间的通信

发布商网站上的归因来源与广告客户网站上的触发因素相关联。
发布商网站上的归因来源与广告客户网站上的触发器相关联。

归因事件流

假设有一个展示广告的发布商网站。每个广告客户或广告技术提供商都希望了解用户与其广告的互动情况,并将转化归因于正确的广告。系统会生成以下报告(包括事件级报告和可汇总报告):

  1. 在发布商网站上,广告元素(<a><img> 代码)配置了特殊属性 attributionsrc。其值为网址,例如 https://adtech.example/register-source/ad_id=...

    以下是一个链接示例,点击后会注册来源:

    <a href="https://shoes.example/landing"
      attributionsrc="http://adtech.example/register-source?..."
      target="_blank">
    Click me</a>
    

    以下是一个示例图片,当用户查看该图片时,系统会注册来源:

    <img href="https://advertiser.example/landing"
      attributionsrc="https://adtech.example/register-source?..."/>
    

    或者,您也可以使用 JavaScript 调用,而不是使用 HTML 元素。

    下面是一个使用 window.open() 的 JavaScript 示例。请注意,该网址已进行网址编码,以避免特殊字符导致的问题。

    const encodedUrl = encodeURIComponent(
      'https://adtech.example/attribution_source?ad_id=...');
    window.open(
      "https://shoes.example/landing",
      "_blank",
      `attributionsrc=${encodedUrl}`);
    
  2. 当用户点击或查看广告时,浏览器会向 attributionsrc(通常是广告客户或广告技术提供商端点)发送 GET 请求。

  3. 收到此请求后,广告客户或广告技术提供商决定指示浏览器为与广告的互动注册来源事件,以便日后将转化归因于此广告。为此,广告客户或广告技术提供商会在其响应中添加一个特殊的 HTTP 标头。它会向此标头附加自定义数据,以提供有关来源事件(广告点击或观看)的信息;如果最终发生此广告的转化,此自定义数据最终会显示在归因报告中。

    查看或点击广告。

  4. 之后,用户访问了广告客户的网站。

  5. 在广告客户网站的每个相关网页(例如购买确认页或产品页)上,转化像素(<img> 元素)或 JavaScript 调用会向 https://adtech.example/conversion?param1=...&param2=... 发出请求。

  6. 此网址处的服务(通常是广告客户或广告技术提供商)会收到请求。它决定将此归类为转化,因此需要指示浏览器记录转化,即触发归因。为此,广告客户或广告技术提供商会在其对像素请求的响应中添加一个特殊的 HTTP 标头,其中包含有关转化的自定义数据。

  7. 用户本地设备上的浏览器会收到此响应,并将转化数据与原始来源事件(广告点击或浏览)进行匹配。

  8. 浏览器安排向 attributionsrc 发送报告。此报告包含以下内容:

    1. 广告技术平台提供商或广告客户在第 3 步中附加到来源事件的自定义归因配置数据。
    2. 第 6 步中的自定义转化数据集。
    该图显示了触发 Attribution Reporting 的元素,这些元素会生成事件级报告和可汇总报告。
    此图显示了触发 Attribution Reporting 导致生成事件级报告和可汇总报告的元素。
  9. 随后,浏览器会将报告发送到 attributionsrc 中定义的端点,但会有一些延迟和干扰。可汇总报告是加密的,而事件级报告不是。

归因触发器(广告客户的网站)

归因触发器是告知浏览器捕获转化的事件。

我们建议捕获对广告客户而言最重要的转化,例如购买。摘要报告中可以捕获多种转化类型和元数据。

这可验证这些事件的汇总结果是否详细而准确。

将来源与触发器匹配

当浏览器收到归因触发器响应时,浏览器会访问本地存储空间,以查找同时与归因触发器的来源和相应网页网址的 eTLD+1 相匹配的来源。

例如,当浏览器在 shoes.example/shoes123 上从 adtech.example 收到归因触发器时,浏览器会在本地存储空间中查找同时与 adtech.exampleshoes.example 匹配的来源。

您可以设置过滤条件(或自定义规则)来确定触发器何时与特定来源匹配。例如,您可以设置过滤条件,以便仅统计特定商品类别的转化次数,而忽略所有其他类别。借助过滤条件和优先处理模型,您可以生成更高级的归因报告。

如果在本地存储空间中找到多个归因来源,浏览器会选择最近存储的那个。在某些情况下,如果归因来源被分配了优先级,浏览器将选择优先级最高的来源。

数据收集

匹配到相应来源的归因触发器会由浏览器以报告的形式发送到广告技术平台自有服务器上的报告端点(有时称为收集端点或收集服务)。这些报告可以是事件级报告,也可以是可汇总报告。

可汇总报告用于生成摘要报告。可汇总报告是广告(在发布商的网站上)收集的数据与转化数据(来自广告客户的网站)的组合,由用户设备上的浏览器生成并加密,然后由广告技术平台收集。

事件级报告的延迟时间为 2 到 30 天。可汇总报告会在 1 小时内随机延迟发送,并且事件必须在贡献预算内。这些选择有助于保护隐私,并防止利用任何个人用户的操作。

如果您只对事件级报告感兴趣,那么这是您需要的最后一块基础设施。不过,如果您想生成汇总报告,则需要使用其他服务来处理可汇总的报告。

生成摘要报告

若要生成摘要报告,您需要使用汇总服务(由广告技术平台运营)来处理可汇总的报告。Aggregation Service 会添加噪声以保护用户隐私,并返回最终的摘要报告。

可汇总报告会被收集、批处理并发送到广告技术环境。
此图表示数据从收集端点、批量报告到广告技术平台自有汇总服务的异步处理流程。

在对收集到的可汇总报告进行批处理后,该批次由汇总服务处理。协调器仅向经过证明的汇总服务版本提供解密密钥。然后,汇总服务会解密数据、汇总数据并添加噪声,最后以摘要报告的形式返回结果。

批处理的可汇总报告

可汇总报告必须先进行批处理,然后才能进行处理。批次包含经过策略性分组的可汇总报告。您的策略很可能反映的是特定时间段(例如每天或每周)的情况。此过程可以在充当报告端点的同一服务器上进行。

批次应包含许多报告,以确保信噪比较高。

时间段越长,结果的噪声越小。
比较等待 1 天和 1 周。在 1 小时内,您将获得较小的摘要值,但结果可能包含更多噪声。在一天内,您将获得更大的汇总值,因此噪声可能会更少。

您可以随时更改批次周期,以确保您能捕捉到预计销量会更高的特定活动,例如年度促销活动。无需更改归因来源或触发器,即可更改批处理周期。

汇总服务

汇总服务负责处理可汇总的报告,以生成摘要报告。可汇总报告经过加密,只能由在可信执行环境 (TEE) 中运行的汇总服务读取。

Aggregation Service 从协调器请求解密密钥,以解密和汇总数据。解密并汇总后,结果会添加噪声以保护隐私,并以摘要报告的形式返回。

从业者可以生成可聚合的明文报告,以便在本地测试汇总服务。或者,您也可以在 AWS 上使用 Nitro Enclaves 测试加密报告

后续操作

我们希望与您进行对话,确保我们构建的 API 适合所有人。

讨论 API

与其他 Privacy Sandbox API 一样,此 API 已记录在案并公开讨论

通过 API 进行实验

您可以参与实验并参与有关 Attribution Reporting API 的对话。