文档:browsingTopics() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。

警告:此功能目前遭到两家浏览器供应商的反对。有关反对的详细信息,请参阅下面的标准立场部分。

注意:在您的应用程序中使用此功能需要注册过程

Document 接口的 browsingTopics() 方法返回一个 Promise,该 Promise 兑现一个对象数组,表示用户的热门话题,每个对象来自过去三个周期中的一个。这些话题随后可以在后续的 fetch 请求中返回给广告技术平台。默认情况下,该方法还会导致浏览器记录调用者观察到的当前页面访问,以便页面的主机名稍后可用于话题计算。

有关更多详细信息,请参阅使用 Topics API

注意: browsingTopics() 不依赖 HTTP 标头来发送话题并将其标记为已观察,不像其他Topics API 启用功能,但其性能略低。建议您使用 HTTP 标头功能,仅在无法修改标头的情况下才退回使用 browsingTopics()

语法

js
browsingTopics()
browsingTopics(options)

参数

options 可选

一个选项对象,可以包含以下属性:

skipObservation

一个布尔值,如果设置为 true,则在调用 browsingTopics() 时,浏览器将观察话题。默认值为 false,这将导致话题被观察。

返回值

一个Promise,它兑现一个数组,其中包含最多三个对象,代表当前用户在过去三个周期中选择的话题。每个对象包含以下属性:

configVersion

一个字符串,标识用于计算话题的算法(模型部分除外)。

modelVersion

一个字符串,表示用于将字符串(如网页的主机名)分类为话题 ID 的模型。

taxonomyVersion

一个字符串,表示使用的分类法版本。

topic

一个数字,表示话题的 ID,浏览器可以使用它从分类法中检索话题(参见一个兴趣分类法示例)。

版本

configVersionmodelVersiontaxonomyVersion,用冒号 (:) 连接。

确切的属性值可能因浏览器实现而异。来自 Chrome 的示例对象可能如下所示:

json
{
  "configVersion": "chrome.1",
  "modelVersion": "1",
  "taxonomyVersion": "1",
  "topic": 43,
  "version": "chrome.1:1:1"
}

异常

NotAllowedError DOMException

在以下情况下抛出

示例

js
// Get an array of top topics for this user
const topics = await document.browsingTopics();

// Request an ad creative
const response = await fetch("https://ads.example/get-creative", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
  },
  body: JSON.stringify(topics),
});

// Get the JSON from the response
const creative = await response.json();

// Display ad

规范

此功能不是官方标准的一部分,尽管它在Topics API 非官方提案草案中有所说明。

浏览器兼容性

另见