เลือกครีเอทีฟโฆษณาตามความถี่

เรียกใช้ Worklet พื้นที่เก็บข้อมูลที่ใช้ร่วมกันเพื่อเลือก URL และแสดงผลในเฟรมที่มีการปิดกั้น

Shared Storage API เป็นนโยบายความเป็นส่วนตัว ข้อเสนอแซนด์บ็อกซ์สำหรับจุดประสงค์ทั่วไป พื้นที่เก็บข้อมูลข้ามเว็บไซต์ ซึ่งสนับสนุน Use Case ที่เป็นไปได้ ตัวอย่างหนึ่งคือการควบคุมความถี่ ซึ่งมี ใน Chrome เบต้า 104.0.5086.0 ขึ้นไป

เรียกใช้สคริปต์ Worklet เพื่อเลือก URL จากรายการที่มีให้ โดยอิงตาม URL ที่จัดเก็บไว้ ข้อมูล แล้วแสดงผล URL นั้นในเฟรมที่มีการปิดกั้น การตั้งค่านี้สามารถใช้เพื่อเลือก โฆษณาใหม่หรือเนื้อหาอื่นเมื่อถึงขีดจำกัดความถี่แล้ว

ทดสอบการเลือกครีเอทีฟโฆษณาตามความถี่

หากต้องการทดสอบการเลือกครีเอทีฟโฆษณาตามความถี่ในพื้นที่เก็บข้อมูลที่ใช้ร่วมกันและเฟรมที่มีการปิดกั้น ให้ยืนยันว่าคุณ ใช้ Chrome 104.0.5086.0 ขึ้นไป เปิดใช้ API ความเป็นส่วนตัวเกี่ยวกับโฆษณาทั้งหมดใน chrome://settings/adPrivacy

นอกจากนี้คุณยังเปิดใช้พื้นที่เก็บข้อมูลที่ใช้ร่วมกันได้ด้วยแฟล็ก --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames ในบรรทัดคำสั่ง

การทดสอบกับตัวอย่างโค้ด

หากต้องการเลือกและสร้าง URL ที่คลุมเครือ ให้ลงทะเบียนโมดูล Worklet เพื่ออ่าน "แชร์" ข้อมูลพื้นที่เก็บข้อมูล คลาส Worklet จะได้รับรายการ URL สูงสุด 8 รายการ จากนั้น จะแสดงดัชนีของ URL ที่เลือก

เมื่อลูกค้าโทรหา sharedStorage.selectURL() Worklet ดำเนินการและแสดงผล URL ที่คลุมเครือเพื่อแสดงผลเป็นเฟรมที่มีการปิดกั้น

สมมติว่าคุณต้องการเลือกโฆษณาหรือเนื้อหาอื่นที่จะแสดงโดยอิงตามความถี่ที่ผู้ใช้เห็นก่อนหน้านี้ โดยคุณสามารถนับจำนวนครั้งที่ผู้ใช้ดูเนื้อหาและจัดเก็บค่าดังกล่าวไว้ในพื้นที่เก็บข้อมูลที่ใช้ร่วมกันได้ เมื่อจัดเก็บแล้ว ค่าในพื้นที่เก็บข้อมูลที่ใช้ร่วมกันจะพร้อมใช้งานในต้นทางต่างๆ

จากนั้นเวิร์กเล็ตพื้นที่เก็บข้อมูลที่ใช้ร่วมกันจะอ่านค่าในพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน แล้วเพิ่มจำนวนตัวนับด้วยมุมมองเพิ่มเติมแต่ละรายการ หากจำนวนยังไม่ถึงขีดจำกัดที่กำหนดไว้ล่วงหน้า เนื้อหาที่คุณต้องการแสดงผลจะถูกส่งคืน (ดัชนี 1) หากไม่เป็นเช่นนั้น URL เริ่มต้นจะส่งกลับ (ดัชนี 0)

ในตัวอย่างนี้

  • creative-selection-by-frequencyjs โหลดผ่าน iframe ของผู้ผลิตเนื้อหาหรือผู้ลงโฆษณา และเป็นผู้รับผิดชอบ สำหรับโหลดเวิร์กเล็ตพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน และการแสดงผลความทึบแสงที่แสดงผล ลงในเฟรมที่มีการปิดกั้น
  • creative-selection-by-frequency-worklet.js เป็นเวิร์กเล็ตพื้นที่เก็บข้อมูลที่ใช้ร่วมกันซึ่งอ่าน นับจำนวนความถี่เพื่อกำหนด URL ที่จะแสดงผลสำหรับเนื้อหาหรือครีเอทีฟโฆษณา

creative-selection-by-frequency.js

// The first URL is the default content or ad to be rendered when the frequency limits reached.
const CONTENT_URLS = [
  { url: `https://${contentProducerUrl}/default-content.html` },
  { url: `https://${contentProducerUrl}/example-content.html` },
];

async function injectAd() {
  // Load the worklet module.
  await window.sharedStorage.worklet.addModule('creative-selection-by-frequency-worklet.js');

  // Set the initial frequency count
  window.sharedStorage.set('frequency-count', 0, {
    ignoreIfPresent: true,
  });

  // Run the URL selection operation to choose an ad based on the frequency count in shared storage.
  const fencedFrameConfig = await window.sharedStorage.selectURL('creative-selection-by-frequency', CONTENT_URLS, {
    resolveToConfig: true
  });

  // Render the opaque URL into a fenced frame
  document.getElementById('content-slot').config = fencedFrameConfig;
}

injectAd();

creative-selection-by-frequency-worklet.js

const FREQUENCY_LIMIT = 5;

class CreativeSelectionByFrequencyOperation {
  async run(urls, data) {
    // Read the current frequency limit in shared storage
    const count = parseInt(await sharedStorage.get('frequency-count'));

    // Check if the frequency limit has been reached.
    if (count === FREQUENCY_LIMIT) {
      console.log('Frequency limit has been reached, and the default content will be rendered.');
      return 0;
    }

    // Set the new frequency count in shared storage
    await sharedStorage.set('frequency-count', count + 1);
    return 1;
  }
}

// Register the operation as 'creative-selection-by-frequency'.
register('creative-selection-by-frequency', CreativeSelectionByFrequencyOperation);

กรณีการใช้งาน

กรณีการใช้งานทั้งหมดที่ใช้ได้กับ Select URL API จะอยู่ในส่วนนี้ เราจะเพิ่มตัวอย่างอย่างต่อเนื่องเมื่อได้รับความคิดเห็นและค้นพบกรณีทดสอบใหม่ๆ

มีส่วนร่วมและแชร์ความคิดเห็น

โปรดทราบว่าข้อเสนอ Select URL API อยู่ระหว่างการพูดคุยและการพัฒนาอย่างต่อเนื่อง และอาจมีการเปลี่ยนแปลง

เราอยากฟังความคิดเห็นของคุณเกี่ยวกับ Select URL API

ติดตามข้อมูลอยู่เสมอ

  • รายชื่ออีเมล: สมัครรับอีเมลจากรายชื่ออีเมลของเราเพื่อรับข้อมูลอัปเดตและการประกาศล่าสุดเกี่ยวกับ Select URL และ Shared Storage API

หากต้องการความช่วยเหลือ