歸因報告 API

可用性有限

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

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

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

Attribution Reporting API 使開發者能夠衡量轉化——例如,使用者在一個網站上點選廣告,然後在廣告商網站上購買商品——然後訪問這些轉化的報告。它透過不依賴第三方跟蹤 Cookie 來實現這一點。

概念與用法

廣告商通常希望衡量有多少使用者看到廣告,然後又去檢視和購買產品(轉化)。這使他們能夠找出哪些廣告位能帶來最大的投資回報率 (ROI),從而相應地調整其廣告策略。衡量轉化的過程通常包括捕獲以下資料:

  • 哪些使用者發生了轉化(例如,購買了商品或註冊了服務),以及有多少。
  • 他們所在的地理區域。
  • 廣告投放的網站。
  • 售出了多少產品、註冊了多少服務等。
  • 產生了多少收入。

傳統上,在網路上,轉化一直使用第三方跟蹤 Cookie 來衡量。廣告通常會嵌入在網頁的 <iframe> 中,該 iframe 可以設定一個包含使用者及其與廣告互動資訊的 Cookie。

稍後,當用戶決定訪問廣告商的網站時,只要該網站與廣告來自同一域,該網站就可以訪問之前由廣告設定的第三方 Cookie。然後,廣告商可以將廣告資料與他們自己的第一方資料關聯起來,以回答“使用者在與另一個網站上的廣告互動後是否購買了產品?”之類的問題。

這對使用者 隱私 非常不利。此時,來自同一域的任何頁面都可以訪問該 Cookie,以及嵌入這些頁面的網站的資訊。令人驚訝的是,有大量方都可以訪問這些資料,並根據使用者的瀏覽習慣推斷出其他使用者資料。

Attribution Reporting API 提供了一種以保護使用者隱私的方式來衡量廣告轉化的方法。

它是如何工作的?

讓我們透過一個例子來說明 Attribution Reporting API 的工作原理。

假設我們有一個線上商店 shop.example(廣告商),它在其內容網站 news.example(釋出商)上嵌入了其產品的廣告。廣告內容位於 ad.shop.example

線上商店老闆希望衡量使用者與廣告互動、檢視其網站上的產品頁面並將其新增到購物車後獲得的轉化次數。

Image representation of the steps described below

涉及的步驟如下:

  1. 當用戶訪問 news.example 網站時,可以為使用者與嵌入廣告的特定互動註冊一個歸因來源 (attribution source)。使用者可以透過多種方式與頁面上的廣告互動。為了使廣告互動能夠註冊歸因來源,廣告必須傳送一個帶有 Attribution-Reporting-Eligible 標頭的請求,以表明響應有資格註冊歸因來源。如果響應包含合適的 Attribution-Reporting-Register-Source 標頭,則註冊將完成。歸因來源可以是,例如:
    • 一個連結。在這種情況下,互動是使用者點選連結(直接透過 <a> 元素,或透過 Window.open() 呼叫)。源是透過導航請求的響應註冊的。
    • 一張圖片,例如廣告橫幅或 1x1 的透明跟蹤畫素。在這種情況下,互動是使用者訪問頁面。當圖片載入時,即伺服器響應圖片請求時,源就會被註冊。
    • 一個 fetch 請求(即 fetch()XMLHttpRequest)。在這種情況下,互動可以指定為適合您應用的任何內容——例如,fetch 請求可以由 clicksubmit 事件觸發。響應返回後,源就會被註冊。
  2. 當歸因來源互動發生時,Attribution-Reporting-Register-Source 標頭中返回的源資料會儲存在瀏覽器只能訪問的私有本地快取中。這些資料包括頁面和廣告商可用的上下文和第一方資料、收集轉化資料的廣告技術公司的來源,以及您期望該廣告轉化發生的(一個或多個)目標(eTLD+1)(即廣告商的網站,例如 shop.example)。
  3. 當用戶稍後訪問 shop.example 時,該網站可以在互動表明發生轉化時(例如,使用者點選 shop.example 上的“新增到購物車”按鈕)註冊一個歸因觸發器 (attribution trigger)。瀏覽器隨後會發送一個帶有 Attribution-Reporting-Eligible 標頭的請求,以表明響應有資格註冊歸因觸發器,如果響應包含合適的 Attribution-Reporting-Register-Trigger 標頭,則註冊將完成。歸因觸發器可以是,例如:
    • 一張圖片,例如購物車圖示或 1x1 的透明跟蹤畫素。在這種情況下,互動是使用者訪問頁面。當圖片載入時,即伺服器響應圖片請求時,觸發器就會被註冊。
    • 一個 fetch 請求(即 fetch()XMLHttpRequest)。在這種情況下,互動可以指定為適合您應用的任何內容——例如,fetch 請求可以由 clicksubmit 事件觸發。響應返回後,觸發器就會被註冊。
  4. 當歸因觸發器完成時,瀏覽器會嘗試將 Attribution-Reporting-Register-Trigger 標頭中的資料與私有本地快取中儲存的源資料條目進行匹配(參見 2.)。有關匹配方法和要求,請參閱 Registering attribution triggers
  5. 如果匹配成功,瀏覽器會將報告資料傳送到一個通常由廣告技術提供商擁有的報告伺服器上的端點,在那裡可以安全地進行分析。與 Cookie 不同,資料僅可供您傳送到的特定網站訪問——不會與其他任何地方共享。這些報告可以是:
    • 事件級報告 (Event-level reports):基於歸因來源事件的報告,其中詳細的來源資料與粗略的觸發器資料相關聯。例如,報告可能看起來像“ad.shop.example 上的點選 ID 200498 導致了 shop.example 上的購買”,其中“點選 ID 200498”是詳細的來源資料,“購買”是粗略的觸發器資料。詳細的來源資料可能編碼來自源頁面的第一方或上下文資料,觸發器資料可能編碼來自觸發頁面的事件。
    • 彙總報告 (Summary reports):更詳細的報告,將來自源端和觸發端的多個轉化資料組合在一起。例如,“news.example 上的廣告系列 ID 774653 導致 shop.example 上的小部件銷售了 654 件,來自義大利的使用者,總收入為 9540 美元。”編譯彙總報告需要使用聚合服務(例如,請參閱 Google aggregation service)。

有關實現上述步驟所需功能的更多資訊,請參閱:

  1. 註冊歸因源
  2. 註冊歸因觸發器
  3. Generating reports

介面

Attribution Reporting API 本身不定義任何獨特的介面。

其他介面的擴充套件

HTMLAnchorElement.attributionSrc, HTMLImageElement.attributionSrc, HTMLScriptElement.attributionSrc

attributionSrc 屬性允許您以程式設計方式獲取和設定 <a><img><script> 元素上的 attributionsrc 屬性。它反映了該屬性的值。

fetch()Request() 建構函式,attributionReporting 選項

當透過 fetch() 生成請求時,這表示您希望響應能夠註冊歸因來源或觸發器。

XMLHttpRequest.setAttributionReporting()

當透過 XMLHttpRequest 生成請求時,這表示您希望響應能夠註冊歸因來源或觸發器。

Window.open()attributionsrc 功能關鍵字

導致歸因來源的註冊完成,open() 方法完成時觸發瀏覽器儲存相關的來源資料(如 Attribution-Reporting-Register-Source 響應標頭中提供的)。請注意,Window.open() 呼叫不能用於註冊歸因觸發器。

HTML 元素

<a>, <img>, 和 <script>attributionsrc 屬性

指定您希望瀏覽器隨相關的資源請求一起傳送 Attribution-Reporting-Eligible 標頭。在伺服器端,此標頭用於觸發響應中傳送 Attribution-Reporting-Register-SourceAttribution-Reporting-Register-Trigger 標頭。在註冊歸因來源時,這是必需的;在註冊歸因觸發器時,僅當您希望為 src 屬性指向的資源指定一個單獨的註冊伺服器時,才需要它。請注意,<a> 元素不能用於註冊歸因觸發器。

HTTP 標頭

Attribution-Reporting-Eligible

HTTP 請求,表示相應的響應有資格註冊歸因來源或觸發器。

Attribution-Reporting-Register-Source

HTTP 響應,將頁面功能註冊為歸因來源。這是包含在對包含 Attribution-Reporting-Eligible 標頭的請求的響應中。

Attribution-Reporting-Register-Trigger

HTTP 響應,將頁面功能註冊為歸因觸發器。這是包含在對包含 Attribution-Reporting-Eligible 標頭的請求的響應中。

Permissions-Policy attribution-reporting 指令

控制當前文件是否允許使用歸因報告。

註冊和本地測試

要在您的網站中使用 Attribution Reporting API,您必須在 隱私沙盒註冊流程中指定它。如果這樣做,API 流將在響應時被阻止,即忽略響應標頭,並且不會註冊來源和觸發器。

您仍然可以在註冊而無需註冊的情況下在本地測試您的 Attribution Reporting API 程式碼。要允許本地測試,請啟用以下 Chrome 開發者標誌:

chrome://flags/#privacy-sandbox-enrollment-overrides

示例

有關實現示例,請參閱 Demo: Attribution Reporting API(另請參閱 原始碼)。

規範

規範
歸因報告
# element-attrdef-a-attributionsrc

瀏覽器相容性

另見