Topics API 演示

进行实验,了解如何通过最少的设置根据主机名推断主题。

实现状态

Topics API 演示介绍了如何根据主机名推断主题。在访问演示版网站时,您可以预览观察到的主题,只需进行极少量的设置。

我们的演示版是预览版,演示了 Topics API 的大部分功能,以便您熟悉该 API 的实现方式。

您还可以运行 Topics Colab 来试用 Topics 分类器模型

下面的视频展示了演示的工作原理。

使用 chrome://flags 或功能标志进行测试

以单个用户的身份试用 Topics API 的方法有两种;您需要运行 Chrome 101 或更高版本:

  • 在 Chrome 页面 chrome://flags/#privacy-sandbox-ads-apis 中启用该 API:

    通过 chrome://flags/#privacy-sandbox-ads-apis 页面启用 Topics API
    用于启用或停用 API 的 chrome://flags/#privacy-sandbox-ads-apis 页面。
  • 通过带有以下标志的命令行运行 Chrome:

    --enable-features=BrowsingTopics,BrowsingTopicsParameters:time_period_per_epoch/15s/browsing_topics_max_epoch_introduction_delay/3s,PrivacySandboxAdsAPIsOverride,PrivacySandboxSettings3,OverridePrivacySandboxSettingsLocalTesting
    

Topics API 演示

Topics 演示展示了如何使用其他标志来调整设置,例如周期长度。如果您通过带有命令行 flag 的 Chrome 运行 Chrome 来访问 Topics API,请勿设置 chrome://flags,因为这些设置可能会替换命令行设置。

使用标记运行 Chromium 介绍了如何在从命令行运行 Chrome 和其他基于 Chromium 的浏览器时设置标记,不过,此演示仅适用于 Google Chrome。

Topics API 标头演示

topics-fetch-demo.glitch.me 中的演示显示了如何使用 fetch() 请求和响应标头访问主题并将其标记为观察对象。

访问 Sec-Browsing-Topics 请求标头

API 调用方无需使用 iframe 中的 document.browsingTopics() 来查看用户主题,而是可以通过 fetch() 请求Sec-Browsing-Topics 请求标头(其 options 参数中包含 {browsingTopics: true})或通过将 deprecatedBrowsingTopics 属性设置为 trueXHR 请求的同一标头访问观测到的主题。

例如:

fetch('https://topics-server.glitch.me', {browsingTopics: true})
    .then((response) => {
        // Process the response
 })

在支持该 API 的浏览器中,fetch() 请求将包含一个 Sec-Browsing-Topics 标头,其中列出了针对请求网址主机名观察到的主题:在此示例中为 topics-server.glitch.me

如果未在此主机名和此用户中观察到任何主题,则会包含标头,但值为空。换言之,fetch() 请求中的 Sec-Browsing-Topics 标头仅包含由来源与请求网址的主机名匹配的调用方针对当前用户浏览器观察到的主题。这与从 iframe 调用 document.browsingTopics() 以查看当前用户观察到的主题相同。

只要请求具有适当的权限政策、上下文是安全的,并且用户设置允许,请求标头就会随请求一起发送。导航请求的标头中不提供主题。

Topics 请求标头如下所示:

Sec-Browsing-Topics: 186;version="chrome.1:1:2206021246";config_version="chrome.1";model_version="2206021246";taxonomy_version="1", 265;version="chrome.1:1:2206021246";config_version="chrome.1";model_version="2206021246";taxonomy_version="1"

此示例包含主题分类中的两个主题(186 和 265),以及每个主题的版本信息。

在 XHR 请求中包含主题标头只是暂时可用,未来将不再支持。

使用 Observe-Browsing-Topics 将主题标记为观察对象

如果请求包含 Sec-Browsing-Topics 标头且对该请求的响应包含 Observe-Browsing-Topics: ?1 标头,浏览器会将请求标头中的主题标记为观察到的主题。观察到的主题可由 Topics API 进行计算。此机制旨在与从 iframe 中使用 JavaScript API 提供的功能相匹配。

下面的屏幕截图显示了在 API 演示页面上访问网站时记录的主题。

glitch.me 上的 Topics API 演示页面
试用 API 的 glitch.me 演示。

此列表显示了你可以从演示中访问的网站,以录制感兴趣的主题。如您所见,屏幕截图中的艺术与娱乐/幽默类别并不是上述某个网站的主题,因此录制的主题是作为系统随机添加的主题的 5%。

  • pets-animals-pets-cats.glitch.me
  • cats-cats-cats-cats.glitch.me
  • cats-pets-animals-pets.glitch.me
  • cats-feline-meow-purr-whiskers-pet.glitch.

您可以在 chrome://topics-internals 页面的“主题状态”标签页中查看哪些主题是真实的,哪些是随机的。此屏幕截图显示了一个来自不同浏览会话的示例。

“主题状态”标签页提供有关观察到的主题的信息。
显示实际和随机主题的“主题状态”标签页。

后续步骤

如果您是广告技术开发者,请试用并参与 Topics API。如需更多深度资源,请参阅开发者指南

互动和分享反馈