进行实验,了解如何通过最少的设置根据主机名推断主题。
实现状态
- Topics API 已完成公开讨论阶段,目前可供 99% 的用户使用,扩容到可以达到 100%。
- 如需提供关于 Topics API 的反馈,请在 Topics 铺垫消息中创建一个问题,或参与改进网络广告业务群组中的讨论。解释器中有一些尚未解决的问题,但仍需进一步定义。
- Privacy Sandbox 时间表提供了 Topics API 和其他 Privacy Sandbox 提案的实现时间表。
- Topics API:最新更新详细介绍了 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:
--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
属性设置为 true
的 XHR 请求的同一标头访问观测到的主题。
例如:
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 演示页面上访问网站时记录的主题。
此列表显示了你可以从演示中访问的网站,以录制感兴趣的主题。如您所见,屏幕截图中的艺术与娱乐/幽默类别并不是上述某个网站的主题,因此录制的主题是作为系统随机添加的主题的 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。如需更多深度资源,请参阅开发者指南。
互动和分享反馈
- GitHub:阅读 Topics API 说明,以及在 API 代码库中提出问题和关注相关问题的讨论。
- W3C:在 Improving Web Advertising Business Group(改进网络广告业务小组)中讨论行业用例。
- 通告:加入或查看邮寄名单。
- Privacy Sandbox 开发者支持:在 Privacy Sandbox 开发者支持代码库中提问并加入讨论。
- Chromium:提交 Chromium 错误,以询问有关目前可在 Chrome 中测试的实现的问题。