文档:browsingTopics() 方法
非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。
警告:此功能目前遭到两家浏览器供应商的反对。有关反对的详细信息,请参阅下面的标准立场部分。
注意:在您的应用程序中使用此功能需要注册过程。
Document 接口的 browsingTopics() 方法返回一个 Promise,该 Promise 兑现一个对象数组,表示用户的热门话题,每个对象来自过去三个周期中的一个。这些话题随后可以在后续的 fetch 请求中返回给广告技术平台。默认情况下,该方法还会导致浏览器记录调用者观察到的当前页面访问,以便页面的主机名稍后可用于话题计算。
有关更多详细信息,请参阅使用 Topics API。
注意: browsingTopics() 不依赖 HTTP 标头来发送话题并将其标记为已观察,不像其他Topics API 启用功能,但其性能略低。建议您使用 HTTP 标头功能,仅在无法修改标头的情况下才退回使用 browsingTopics()。
语法
browsingTopics()
browsingTopics(options)
参数
options可选-
一个选项对象,可以包含以下属性:
skipObservation-
一个布尔值,如果设置为
true,则在调用browsingTopics()时,浏览器将不观察话题。默认值为false,这将导致话题被观察。
返回值
一个Promise,它兑现一个数组,其中包含最多三个对象,代表当前用户在过去三个周期中选择的话题。每个对象包含以下属性:
configVersion-
一个字符串,标识用于计算话题的算法(模型部分除外)。
modelVersion-
一个字符串,表示用于将字符串(如网页的主机名)分类为话题 ID 的模型。
taxonomyVersion-
一个字符串,表示使用的分类法版本。
topic-
一个数字,表示话题的 ID,浏览器可以使用它从分类法中检索话题(参见一个兴趣分类法示例)。
版本-
configVersion、modelVersion和taxonomyVersion,用冒号 (:) 连接。
确切的属性值可能因浏览器实现而异。来自 Chrome 的示例对象可能如下所示:
{
"configVersion": "chrome.1",
"modelVersion": "1",
"taxonomyVersion": "1",
"topic": 43,
"version": "chrome.1:1:1"
}
异常
NotAllowedErrorDOMException-
在以下情况下抛出
- 使用 Topics API 受
browsing-topics权限策略的限制。 - 调用站点未在成功的隐私沙盒注册过程中包含 Topics API。
- 使用 Topics API 受
示例
// 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 非官方提案草案中有所说明。
浏览器兼容性
加载中…