選取共用儲存空間的網址

根據 Shared Storage 中收集的資料選取網址,並在受限畫面中算繪內容。

您可以使用 Shared Storage API,選取要使用跨網站資料轉譯至圍欄框架的網址。使用 JavaScript 讀取及寫入跨網站資料,然後根據儲存的資料,從提供的清單中選取網址。您可以在圍欄框架中轉譯該網址。

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

舉例來說,假設您經營旅遊網站,並放送包含三個不同廣告素材的廣告活動。您應該根據使用者的互動情形 (觀看或點擊) 排序這些廣告素材。

三則廣告素材,根據使用者先前的互動顯示給使用者。
新觀眾看到的第一則廣告內容為「展開下一次冒險旅程」。如果使用者只瀏覽而未點選,就會看到「探索週末度假勝地」。在觀看或點擊後,第三個廣告素材會鼓勵使用者「按一下取得飯店折扣」。如果使用者點選第一則廣告,下一個看到的廣告就是第三則廣告素材。

當使用者首次看到勝出的廣告空間時,您可以將該廣告素材的 ID 和點擊狀態儲存在共用儲存空間中。也就是說,如果您在使用者造訪的其他網站上贏得廣告競價,就可以根據該資料顯示不同的廣告。

共用儲存空間示範,包含三個廣告素材和使用者互動。

JavaScript 會在工作區中執行,以便擷取這項資訊,但程式碼無法與父頁面上的 iframe 或圍欄框架以外的內容互動或通訊。

再舉另一個例子。假設您想測試哪篇文章在嵌入式內容中的成效較佳。您可以在網站上看到使用者時,將該使用者指派給實驗群組,然後將該群組 ID 儲存在共用儲存空間中,以便在跨網站情境中存取。在其他網站上,您的圍欄框架可以根據該使用者實驗群組,選取透過 Shared Storage 儲存的網址。

共用儲存空間可讓您根據跨網站資料做出明智的決策,無須與嵌入網站分享使用者資訊 (例如瀏覽器記錄或其他個人詳細資料),也不必將資料外洩至您自己的伺服器。

用途

使用共用儲存空間的網址選取功能可支援下列用途:

  • 輪播廣告素材:您可以儲存廣告素材 ID 和使用者互動等資料,藉此決定使用者在不同網站上看到哪些廣告素材。
    • 頻率。瀏覽器觀看次數可儲存在共用儲存空間中,用於決定向使用者顯示哪個廣告素材。
  • 執行 A/B 測試:將使用者指派給實驗群組,然後使用 Shared Storage 儲存該群組 ID,以便跨網站存取。
  • 自訂使用者體驗:根據使用者的註冊狀態或其他使用者驗證狀態,分享自訂內容和行動號召。

預算

為降低跨網站資料外洩的風險,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 屬性 (含所選查詢名稱) 新增至 options 物件,如以下範例所示。

    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;
    
    標記進行測試。

嘗試選取網址

您可以在 Chrome Canary/Dev/Beta 105 以上版本中測試使用 Shared Storage API 的網址選取功能。如要測試網址選取功能,請啟用 chrome://settings/adPrivacy 下方的所有廣告隱私權 API。

試用示範

您可以查看示範,並在 GitHub 上查看程式碼。

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

互動及分享意見回饋

共用儲存空間提案正在進行討論,因此可能隨時會有變動 如果您試用這個 API 並有意見,請不吝與我們分享。