選取網址總覽

您可以根據使用者的共用儲存空間資料,選擇要向使用者顯示的內容,而不會揭露基礎儲存資料。

如要根據跨網站資料以注重隱私權的方式顯示內容,可以使用 Select URL API。Select URL API 適用於下列用途:

  • A/B 測試內容,確保多個網站的使用者體驗一致。
  • 為有帳戶的使用者和沒有帳戶的使用者顯示不同的登入按鈕。
  • 輪播廣告素材,限制使用者在多個網站上看到同一則廣告的頻率。

什麼是 Select URL API?

您可以透過 Select URL API,根據跨網站資料從一組網址中選擇。這項 API 建構於共用儲存空間之上,並使用 SharedStorageWorklet 讀取可用的跨網站資料,然後選取其中一個提供的網址。選取的網址會傳回給呼叫端,但只能在設有圍欄的影格內讀取,在 2026 年前,網址也可以在 iframe 中算繪。

這張圖表顯示 shoes.example iframe 內嵌於不同發布商的網站,包括 news.example 和 blog.example。shoes.com 網站可以從每個頂層網站存取自己的未分區儲存空間。

在上圖中,shoes.example 網站可以嵌入其他發布商網站 (例如 news.example),並使用「透過共用儲存空間選取網址」來選擇要嵌入的適當內容,存取相同資料。

「選取網址」的運作方式

您可以使用 Select URL API 選取要使用跨網站資料,在設有圍欄的影格或 iframe 中算繪的網址。使用 JavaScript 在共用儲存空間中讀取及寫入跨網站資料,然後根據儲存的資料,從提供的清單中選取網址。

任何已註冊的網站或來源都可以將資料寫入 Shared Storage,但網站只能透過 Select URL API 讀取該資料。

顯示的網址可包含任何類型的內容:廣告、文章、圖片、HTML、行動號召 (例如按鈕) 等。

在這個範例中,您經營旅遊網站,並放送廣告活動,其中包含三種不同的廣告素材。您想根據使用者的互動 (觀看或點擊) 順序播放這些廣告素材。

三個廣告素材,系統會根據使用者先前的互動顯示。
針對新觀眾的第一個廣告素材會說:「展開下一趟冒險。」使用者只觀看廣告,沒有點擊,下一個看到的廣告素材會顯示「探索週末出遊行程」。第三個廣告素材會鼓勵使用者「按一下即可取得飯店折扣」,如果使用者點選第一則廣告,接下來看到的廣告就是第三個廣告素材。

網站首次觀察到得標廣告空間時,您可以在共用儲存空間中儲存該廣告素材的 ID 和點擊狀態。

例如:

await sharedStorage.set('last-creative', 'globe');
await sharedStorage.set('click', 'true');

也就是說,當您在使用者造訪的其他網站上贏得廣告競價時,可以根據這項資料顯示不同的廣告。

共用儲存空間逐步導覽,包含三個廣告素材和使用者互動。

您的 JavaScript 會在 SharedStorageWorklet 中執行,以擷取這項資訊,但您的程式碼無法與父項網頁上的 iframe 或設有圍欄的影格互動或通訊。

舉例來說,您可能想測試哪篇文章在嵌入式環境中的成效較佳。如要測試這項功能,您可以在網站上看到使用者時,將使用者指派給實驗群組,然後將該群組 ID 儲存在共用儲存空間中,以便在跨網站環境中存取。在另一個網站上,您可以根據 Shared Storage 儲存的使用者實驗群組,使用 Select URL API 選擇要在設有安全範圍的影格中算繪的最合適網址。

使用「選取網址」功能,您就能根據跨網站資料做出明智決策, 不必與嵌入網站分享使用者資訊 (例如瀏覽器記錄或其他個人詳細資料),也不必將資料外洩至自己的伺服器。

預算

為降低跨網站資料外洩的風險,Select URL API 採用預算系統,結合長期和短期預算:

  • 長期預算:使用 selectURL() 時,長期預算為每個呼叫端網站每天 12 位元。只有在代管所選網址的影格執行頂層導覽時,系統才會收取這筆預算,費用計算方式為 log2(number of URLs)。因此,如果您提供 8 個網址供選擇,費用為 3 位元。當天的剩餘預算計算方式為 12 - (sum of bits deducted in the last 24 hours)。如果預算不足,系統會傳回預設網址 (清單中的第一個網址),並在導向預設網址時記錄 1 位元。
  • 短期預算:在完全強制執行設有範圍的影格之前,以及在事件層級報表可用期間,短期預算是以每個網頁載入為準的額外限制。每個呼叫網站的預算為每個網頁載入 6 位元,限制單一呼叫網站可使用 selectURL() 外洩的資料量。此外,每個網頁載入的整體預算為 12 位元,這是網頁上所有呼叫網站的合併限制。

    儲存的查詢可讓您在同一頁面重複使用先前的selectURL()結果,減少短期預算用量。首次使用已儲存的查詢名稱呼叫 selectURL() 時,系統會儲存產生的索引,直到網頁生命週期結束為止。如果後續呼叫 selectURL() 時使用相同的已儲存查詢名稱,系統會傳回儲存的索引,且不會執行已註冊的作業。在這種情況下,系統只會在第一次使用時收取預算費用,但不會在同一個頁面載入期間重複使用時收費,因為沒有揭露任何新資訊。

    如要實作已儲存的查詢,請將 savedQuery 屬性連同所選查詢名稱新增至選項物件,如以下範例所示。

    const topProductUrls = [
      { url: 'https://ad.example/default-top-product.html' },
      { url: 'https://ad.example/experiment-top-product.html' }];
    const relatedProductUrls = [
      { url: 'https://ad.example/default-related-product.html' },
      { url: 'https://ad.example/experiment-related-product.html' }];
    
    // This is the first call to `selectURL()` with `savedQuery: 'control_or_experiment'`
    // on this page, so it will be charged to both per-page budgets.
    const topProductsConfig = await sharedStorage.selectURL(
      'productExperiment', topProductUrls, {
        savedQuery: 'control_or_experiment',
        keepAlive: true,
        resolveToConfig: true
    });
    document.getElementById('topProductsFencedFrame').config = topProductsConfig;
    
    // This next call with this savedQuery won't charge either of the per-page budgets.
    const relatedProductConfig = await sharedStorage.selectURL(
      'productExperiment', relatedProductUrls, {
        savedQuery: 'control_or_experiment',
        resolveToConfig: true
    });
    document.getElementById("relatedProductFencedFrame").config = relatedProductConfig;
    

選取 URL API 應用實例

如果您要建構的網站功能必須跨不同網域運作,可能會有下列其中一種用途:

  • 輪播廣告素材:儲存廣告素材 ID、觀看次數和使用者互動等資料,判斷使用者在不同網站上看到的廣告素材,藉此限制使用者在多個網站上看到相同廣告的頻率。這樣一來,您就能平衡觀看次數,避免特定內容過度曝光,進而減少可能造成的負面使用者體驗。如要進一步瞭解這個用途,請參閱「輪播廣告素材」一文。
  • 依展示頻率選取廣告素材:將瀏覽器檢視次數儲存在 Shared Storage 中,限制使用者在多個網站上看到相同廣告的頻率。如要進一步瞭解這個用途,請參閱「依頻率選取廣告素材」。
  • 為已知顧客提供個人化使用者體驗:在不同網域提供一致的體驗。根據使用者的註冊狀態或其他使用者狀態,分享自訂內容和號召性動作,並在不同網域提供一致的體驗。如要進一步瞭解這個用途,請參閱「為已知顧客打造專屬使用者體驗」。
  • 執行 A/B 測試:A/B 測試會比較兩種以上的設定版本,判斷哪種版本的成效最佳。您可以將使用者指派給實驗群組,然後將該群組儲存在共用儲存空間中,以供跨網站存取。這樣一來,您就能收集整個網站聯播網路上使用者行為的洞察資料,而不必追蹤個別使用者。如要進一步瞭解這個用途,請參閱「執行 A/B 測試」。

透過 Select URL API 和 Shared Storage,您可以在不同的頂層網站存取相同儲存空間,進而開發這些用途。

試用示範專案

您可以使用共用儲存空間示範,試用「選取網址」功能。

本示範是從廣告主、廣告技術、內容發布商或其他第三方服務的角度建構,這些服務想在不同發布商的網站中儲存資訊。在示範中,每個用途的發布商 A 和發布商 B 網站都會執行相同的第三方程式碼。請前往各發布商的頁面,瞭解資料在跨網站環境中的分享方式。

您也可以在 GitHub 上查看示範的程式碼。

API 狀態

Select URL API 現已正式發布。如要使用 Select URL API 或在本機開發時啟用該 API,請按照說明註冊 Privacy Sandbox

提案 狀態
內容選取功能的事件層級報表 (selectURL()) 至少可使用至 2026 年
個別網站預算
說明
將於 M119 版本推出
使用開發人員工具偵錯共用儲存空間小程式
節段
適用於 M120

參與討論及分享意見

請注意,「選取網址」API 提案目前仍在積極討論和開發中,隨時可能變更。

我們很期待聽到您對 Select URL API 的想法。