Topics API

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

非標準:此特性未標準化。我們不建議在生產環境中使用非標準特性,因為它們瀏覽器支援有限,並且可能會更改或被移除。但是,在沒有標準選項的特定情況下,它們可以是合適的替代方案。

警告: 此功能目前受到兩個瀏覽器供應商的反對。有關詳細資訊,請參閱下面的 標準立場 部分。

注意: 在您的應用程式中使用 Topics API 需要一個 註冊流程。有關哪些子功能需要註冊才能使用的詳細資訊,請參閱 註冊 部分。

Topics API 提供了一種機制,供開發者實現諸如 興趣導向廣告 (IBA) 等用例。這種廣告基於瀏覽器在使用者瀏覽不同頁面時收集的主題,而不是由開發者使用 第三方 Cookie 跟蹤使用者在不同網站上的活動來收集。

概念與用法

網路廣告的一個典型機制是使用者訪問釋出商網站,這些網站使用廣告技術 (ad tech) 平臺為廣告商的產品或服務釋出廣告。釋出商會因展示廣告而獲得報酬,這有助於為其內容提供資金,併為廣告商網站帶來更多業務。

上述過程可以透過興趣導向廣告 (IBA) 來提高效率。其理念是,當用戶訪問釋出商網站時,他們會看到基於其興趣的個性化廣告。使用者的興趣是透過他們之前訪問過的網站推斷出來的。過去,第三方跟蹤 Cookie 被用於收集使用者興趣資訊,但瀏覽器正在逐步淘汰對越來越多的使用者提供第三方 Cookie 的支援。Topics API 為實現這一目標提供了一部分途徑——它提供了一種實現 IBA 的機制,而這種機制不依賴於使用者跟蹤。

首先,瀏覽器會根據使用者訪問的、嵌入了廣告技術 <iframe> 的網站的 URL 來推斷使用者的興趣。這些興趣會被對映到特定的興趣主題,並且瀏覽器會在每個週期結束時計算並記錄使用者最感興趣的主題(即,他們的興趣對映次數最多的主題)。一個週期預設為一週。每週都會更新最感興趣的主題,以便使興趣保持最新,避免使用者看到他們不再感興趣的主題的廣告。

注意: 此過程僅發生在使用了 Topics API 功能的網站上(請參閱 哪些 API 功能可以啟用 Topics API?)。

一旦瀏覽器觀察到一個或多個使用者主題,Topics API 就可以檢索它們並將它們傳送到廣告技術平臺。然後,該平臺可以使用這些主題為使用者個性化投放的廣告。該 API 透過僅將它們在當前使用者訪問的頁面上被API呼叫者觀察到的主題返回給API呼叫者來幫助保護隱私。

有關 API 工作原理的說明,請參閱 使用 Topics API

有哪些主題?

瀏覽器可能計算出的可用熱門主題儲存在公開可用的興趣分類表中。最初的分類表由 Chrome 提出,目的是成為一個由可信生態系統貢獻者維護的資源。該分類表經過人工精心策劃,排除了通常被認為是敏感的類別,例如種族或性取向。

介面

Topics API 沒有自己獨立定義的介面。

其他介面的擴充套件

Document.browsingTopics()

返回一個 Promise,該 Promise 會解析為一個物件陣列,每個物件代表使用者在最近三個週期中的熱門主題。預設情況下,該方法還會導致瀏覽器記錄當前頁面訪問作為呼叫者所觀察到的,以便稍後在主題計算中使用該頁面的主機名。

fetch() / Request()browsingTopics 選項

一個布林值,指定應將當前使用者的選定主題作為 Sec-Browsing-Topics 標頭與關聯請求一起傳送。

HTMLIFrameElement.browsingTopics

一個布林屬性,指定當前使用者的選定主題應與關聯 <iframe> 的源請求一起傳送。這反映了 browsingtopics 內容屬性的值。

HTML 元素

<iframe>browsingtopics 屬性

一個布林屬性,如果存在,則指定當前使用者的選定主題應與 <iframe> 的源請求一起傳送。

HTTP 標頭

Sec-Browsing-Topics

將當前使用者的選定主題與請求一起傳送,廣告技術平臺使用這些主題來選擇要展示的個性化廣告。

Observe-Browsing-Topics

用於將從呼叫網站的 URL(即嵌入廣告技術 <iframe> 的網站)推斷出的興趣主題標記為在對由啟用 Topics API 的功能生成的請求的響應中已觀察到。瀏覽器隨後將使用這些主題來計算當前使用者在未來週期的熱門主題。

Permissions-Policybrowsing-topics 指令

控制對 Topics API 的訪問。如果策略明確禁止使用 Topics API,則任何呼叫 Document.browsingTopics() 方法或傳送帶有 Sec-Browsing-Topics 標頭的請求的嘗試都將以 NotAllowedError DOMException 失敗。

註冊

要在您的網站上使用 Topics API,您必須在 隱私沙盒註冊流程 中指定它。如果您不這樣做,以下子功能將無法正常工作:

  • Document.browsingTopics() 方法返回的 Promise 將以 NotAllowedError DOMException 拒絕。
  • 建立或修改 Sec-Browsing-Topics 標頭將靜默失敗,並且任何現有的 Sec-Browsing-Topics 標頭都將被刪除。

示例

有關程式碼示例,請參閱 使用 Topics API

規範

此功能不是官方標準的一部分,儘管它在Topics API 非官方提案草案中有所說明。

標準立場

兩個瀏覽器供應商反對此規範。已知的標準立場如下:

瀏覽器相容性

另見