Attribution-Reporting-Register-Source
Attribution-Reporting-Register-Source 標頭將頁面功能註冊為歸因來源。這是對包含Attribution-Reporting-Eligible 標頭的請求的響應的一部分。它提供了瀏覽器在與歸因來源互動時應儲存的資訊。您在此標頭中包含的資訊還決定了瀏覽器可以生成哪種型別的報告。
有關更多詳細資訊,請參閱歸因報告 API。
注意:如果呼叫站點未在成功的隱私沙盒註冊流程中包含歸因報告 API,則會忽略Attribution-Reporting-Register-Source 標頭,並且不會註冊歸因來源。
| 標頭型別 | 響應標頭 |
|---|---|
| 禁止的標頭名稱 | 否 |
| CORS 安全列表響應標頭 | 否 |
語法
Attribution-Reporting-Register-Source: <json-string>
指令
<json-string>-
一個 JSON 字串,提供瀏覽器在與歸因來源互動時應儲存的資訊。可用的欄位如下
"source_event_id"可選-
表示歸因來源 ID 的字串,可在與歸因來源互動時將其對映到其他資訊,或在報告端點聚合資訊。該字串必須僅由以基數 10 格式表示的 64 位無符號整陣列成。
"destination"-
單個字串或 1-3 個字串的陣列。這些字串必須包含與預期發生觸發器的網站(方案 + eTLD+1)相對應的完整 URL。當與觸發器互動時,這些用於將歸因觸發器與來源匹配。
"aggregation_keys"可選-
包含使用者提供的鍵的物件,這些鍵表示要彙總報告值的不同資料點。
"aggregatable_report_window"可選-
表示時間的字串(以秒為單位),在此時間之後,觸發器資料將不再包含在生成的聚合報告中(這稱為**報告視窗**)。如果未設定,則預設為
"expiry"值。 "debug_key"可選-
表示除錯金鑰的以基數 10 格式表示的 64 位無符號整數。如果您想與關聯的歸因報告一起生成除錯報告,請設定此值。
"debug_reporting"可選-
布林值。如果設定了
debug_key,則將其設定為true以指定生成的除錯報告應為詳細除錯報告。 "event_level_epsilon"可選-
等於或大於
0的數字,它控制新增到報告中的噪聲量。epsilon 值越低,噪聲越大,因此提供的隱私保護越好。最大值和預設值因實現而異;例如,Chrome 的最大值和預設值為14。 "event_report_window"可選-
表示時間的字串(以秒為單位),在此時間之後,後續觸發器將無法歸因於此來源以生成事件級報告(這稱為**報告視窗**)。如果未設定,則事件報告視窗將回退到
"expiry"值。注意:如果指定了
"event_report_window",則不能指定"event_report_windows",否則來源註冊將失敗。 "event_report_windows"可選-
表示一系列報告視窗的物件,從
"start_time"開始,在"end_times"中指定的每個結束時間之後交付此來源的報告。這可用於在多個報告中更改報告交付時間。如果未設定,則事件報告視窗將回退到"expiry"值。屬性如下"start_time"可選:指定報告視窗開始時間的非負數。如果未指定,則預設為0。"end_times":指定後續報告視窗結束時間的正數陣列。這些值必須遞增,並且大於"start_time"。注意:如果指定了
"event_report_windows",則不能指定"event_report_window",否則來源註冊將失敗。
"expiry"可選-
表示歸因來源過期時間的字串(以秒為單位),在此時間之後,它將不再處於活動狀態(即,後續觸發器將無法歸因於此來源)。允許的最大過期時間為 2592000 秒(30 天),如果未顯式設定
"expiry",則這也是預設值。 "filter_data"可選-
定義自定義資料的物件,該資料可用於篩選哪些轉化生成報告。有關更多詳細資訊,請參閱篩選器。
"max_event_level_reports"可選-
介於
0和20(含)之間的數字,指定此來源可以生成的事件級報告的總數。達到此最大值後,該來源將不再能夠生成任何新資料。如果未指定,則對於基於導航的來源,"max_event_level_reports"預設為3,對於基於事件的(基於影像或指令碼的)來源,預設為1。 "priority"可選-
表示歸因來源優先順序值的字串。預設情況下,轉化將歸因於最近匹配的來源。對於事件級報告和彙總報告,您可以設定更高的優先順序編號以優先考慮特定來源。例如,值
2優先於預設值1。有關更多資訊,請參閱報告優先順序和限制。 "trigger_data"可選-
表示資料的 32 位無符號整數陣列,這些資料描述了可能與該來源匹配的不同觸發器事件。例如,“使用者將商品新增到購物車”或“使用者註冊郵件列表”可能是觸發器網站上發生的事件,這些事件可能與該來源匹配,並指示廣告客戶嘗試衡量某種型別的轉化。必須將其與觸發器中指定的
"trigger_data"匹配,才能進行事件級歸因。如果省略,則對於基於導航的來源,"trigger_data"預設為[0, 1, 2, 3, 4, 5, 6, 7],對於基於事件的(基於影像或指令碼的)來源,預設為[0, 1]。注意:用於表示每個事件的值以及陣列中的元素數量完全是任意的,由您作為開發人員定義。陣列可能包含未使用的值,但必須在陣列中存在值,以便在註冊觸發器時由瀏覽器歸因於來源。
"trigger_data_matching"可選-
指定如何將觸發器的
"trigger_data"與來源的"trigger_data"匹配的字串。可能的值為"exact":觸發器的"trigger_data"必須與來源的"trigger_data"中包含的值完全匹配;如果沒有這樣的匹配,則不會發生任何事件級歸因。"modulus":在這種情況下,將執行以下計算 —d % allowedValues.size— 其中d是觸發器的"trigger_data",allowedValues是來源的"trigger_data"陣列中的值序列。如果此計算的結果與來源的"trigger_data"陣列中的值匹配,則匹配成功。在這種情況下,值將始終匹配,除非allowedValues為空。
"modulus"模式主要用於與引入"exact"之前的 API 行為向後相容,因此您不太可能使用它。它在需要非常具體的壓縮型別的特定情況下仍然有用,從而導致更小的註冊標頭。當使用需要根據來源型別根據來源"trigger_data"項的最大數量設定不同觸發器資料的複雜篩選邏輯時,可能需要這樣做。注意:如果使用
"modulus",則來源的"trigger_data"必須形成從 0 開始的連續整數序列。如果觸發器資料未形成此類序列,則會發生錯誤。如果未指定,則
"trigger_data_matching"預設為"modulus"。同樣,這樣做的原因是向後相容:省略"trigger_data_matching"欄位需要導致與引入此欄位之前觀察到的相同行為。
示例
註冊事件級報告的來源
Node.js 伺服器可能會如下設定Attribution-Reporting-Register-Source響應標頭,以便在觸發器與來源匹配時使瀏覽器生成事件級報告
res.set(
"Attribution-Reporting-Register-Source",
JSON.stringify({
source_event_id: "412444888111012",
destination: "https://shop.example",
trigger_data: [0, 1, 2, 3, 4],
trigger_data_matching: "exact",
expiry: "604800",
priority: "100",
debug_key: "122939999",
event_report_window: "86400",
}),
);
註冊彙總報告的來源
要使瀏覽器在觸發器與來源匹配時生成彙總報告,您需要包含一些其他欄位,除了事件級報告生成所需的欄位之外。
res.set(
"Attribution-Reporting-Register-Source",
JSON.stringify({
source_event_id: "412444888111012",
destination: "https://shop.example",
trigger_data: [0, 1, 2, 3, 4],
trigger_data_matching: "exact",
expiry: "604800",
priority: "100",
debug_key: "122939999",
event_report_window: "86400",
aggregation_keys: {
campaignCounts: "0x159",
geoValue: "0x5",
},
aggregatable_report_window: "86400",
}),
);
規範
| 規範 |
|---|
| 歸因報告 # parse-source-registration-json |
瀏覽器相容性
BCD 表格僅在啟用了 JavaScript 的瀏覽器中載入。