Topics API 并非 HTML5 标准,而是 Chrome 隐私沙盒的本地主题推断机制,仅支持 HTTPS 下通过 navigator.getInterestCohort() 获取宽泛主题(如“Fitness”),用于前端轻量适配,不参与广告精准定向。

HTML5 中并没有 Topics API。Topics API 是 Chrome 浏览器(基于 Chromium)在 2023 年起逐步推出的隐私沙盒(Privacy Sandbox)机制之一,属于浏览器原生能力,并非 HTML5 标准规范的一部分,也不通过 <script></script> 或 HTML 标签直接调用,更不用于“向特定兴趣人群精准推送网页横幅广告”这种服务端或广告平台级操作。
它的真实定位和作用是:
- 由浏览器本地自动推断用户近期(过去三周)浏览过的、宽泛的公开主题(如
"Fitness"、"Travel"、"Home Improvement"),每个主题粒度较粗,且每帧最多返回 5 个; - 主题列表每天轮换更新一次,且不包含个人身份、具体网址、搜索词等敏感信息;
- 网站需通过
document.interestCohort()(已弃用)或当前推荐的navigator.getInterestCohort()方法主动请求获取(仅限安全上下文 HTTPS,且用户未禁用该功能); - 获取到的主题仅可用于客户端侧的轻量级内容适配或广告偏好提示,例如:“当前用户最近对‘Education’感兴趣 → 在横幅中优先展示在线课程类文案”,但不能用于跨站追踪、人群包定向、RTB 出价或后端人群圈选。
因此,“通过 Topics API 向特定兴趣人群精准推送横幅广告”这一说法存在根本性误解。真实可行的路径如下:
1. Topics API 只能辅助前端做有限语义适配
将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。
立即学习“前端免费学习笔记(深入)”;
- 调用示例(需 HTTPS + 用户允许):
if ('getInterestCohort' in navigator) { navigator.getInterestCohort().then(cohort => { if (cohort.topic) { // 如 cohort.topic === 'Fitness' document.getElementById('banner').dataset.topic = cohort.topic; // 后续可结合预置文案模板切换标题/按钮文字 } }).catch(e => console.warn('Topics not available:', e)); } - 注意:返回的是单个 topic 字符串(非数组),且可能为空;Chrome 当前默认关闭该 API,需用户在
chrome://settings/adPrivacy中开启“允许网站查看您的兴趣”。
2. 真正的“精准推送”依赖广告平台能力,而非 Topics
- 横幅广告的定向(地域、设备、频次、兴趣标签、自定义人群包等)由广告 SDK(如腾讯 GDT、穿山甲、华为 Ads Kit)在请求时通过
adParam参数传递,例如:TencentGDT.push({ placement_id: '1122334455', app_id: '112233', type: 'banner', // 此处传入的是平台识别的用户标签ID或行为分群ID,非 Topics user_tags: ['sports_fan', 'premium_user'], geo: { city: 'shenzhen' } }); - Topics 不参与此过程,广告平台也不接收、不解析、不映射 Topics 值作为定向维度。
3. 若想提升横幅相关性,更务实的做法是
- 在页面加载时,用 JavaScript 检测用户当前浏览路径、停留时长、点击行为(如点击过健身类文章),动态修改横幅文案与跳转链接;
- 利用 localStorage 记录用户近期行为(如“3天内访问过 5 篇编程教程”),触发技术类横幅;
- 结合 Intersection Observer,当用户滚动到某类内容区域时,才加载对应主题的横幅资源;
- 所有这些都无需 Topics,兼容性更好,控制权完全在开发者手中。
Topics API 目前仍处于实验阶段,覆盖范围有限,且被 Firefox、Safari 明确拒绝支持。把它当作“精准投放工具”不仅技术上不可行,还会误导架构设计。


















