Xoay vòng mẫu quảng cáo

Sử dụng Bộ nhớ dùng chung để xác định mẫu quảng cáo mà người dùng nhìn thấy trên các trang web.

Shared Storage API là một đề xuất Hộp cát về quyền riêng tư cho mục đích chung, bộ nhớ trên nhiều trang web, hỗ trợ nhiều trường hợp sử dụng có thể có. Một ví dụ như vậy là tính năng xoay mẫu quảng cáo. Bạn có thể thử nghiệm tính năng này trong Chrome 104.0.5086.0 trở lên.

Với tính năng xoay vòng mẫu quảng cáo, bạn có thể lưu trữ dữ liệu, chẳng hạn như mã mẫu quảng cáo, số lượt xem và lượt tương tác của người dùng, để xác định mẫu quảng cáo mà người dùng nhìn thấy trên các trang web.

Chạy một công cụ lưu trữ dùng chung để chọn một URL trong danh sách được cung cấp, dựa trên dữ liệu được lưu trữ, sau đó hiển thị mẫu quảng cáo đó trong một khung được phân vùng. Bạn có thể sử dụng thông tin này để chọn quảng cáo mới hoặc nội dung khác.

Thử xoay vòng mẫu quảng cáo

Để thử nghiệm tính năng xoay mẫu quảng cáo bằng Bộ nhớ dùng chung, hãy xác nhận rằng bạn đang sử dụng Chrome 104.0.5086.0 trở lên. Bật tất cả API Quyền riêng tư trong quảng cáo trong chrome://settings/adPrivacy.

Bạn cũng có thể bật Bộ nhớ dùng chung bằng cờ --enable-features=PrivacySandboxAdsAPIsOverride,OverridePrivacySandboxSettingsLocalTesting,SharedStorageAPI,FencedFrames trong dòng lệnh.

Thử nghiệm với mã mẫu

Nhà quảng cáo hoặc nhà sản xuất nội dung có thể muốn áp dụng nhiều chiến lược cho một chiến dịch và luân phiên nội dung hoặc mẫu quảng cáo để tăng hiệu quả. Bạn có thể sử dụng bộ nhớ dùng chung để chạy nhiều chiến lược xoay, chẳng hạn như xoay tuần tự và xoay phân bổ đều trên nhiều trang web.

Trong ví dụ này:

  • creative-rotation.js được nhúng trong một khung. Tập lệnh này đặt quảng cáo nào là quan trọng nhất ( trọng số) và gọi đến worklet để xác định nội dung nào sẽ hiển thị.
  • creative-rotation-worklet.js là worklet bộ nhớ dùng chung xác định mức phân phối trọng số cho nội dung và trả về nội dung cần hiển thị.

creative-rotation.js

// Ad config with the URL of the content, a probability weight for rotation, and the clickthrough rate.
const DEMO_CONTENT_CONFIG = [
  {
    url: 'https://your-server.example/contents/content-1.html',
    weight: 0.7,
  },
  {
    url: 'https://your-server.example/contents/content-2.html',
    weight: 0.2,
  },
  {
    url: 'https://your-server.example/contents/content-3.html',
    weight: 0.1,
  },
];

// Set the mode to sequential and set the starting index to 0.
async function seedStorage() {
  await window.sharedStorage.set('content-rotation-mode', 'sequential', {
    ignoreIfPresent: true,
  });

  await window.sharedStorage.set('content-rotation-index', 0, {
    ignoreIfPresent: true,
  });
}

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

  // Initially set the storage to sequential mode for the demo
  seedStorage();

  // Run the URL selection operation to determine the next content rendered.
  const urls = DEMO_CONTENT_CONFIG.map(({ url }) => ({ url }));
  const fencedFrameConfig = await window.sharedStorage.selectURL('content-rotation', urls, {
    data: DEMO_CONTENT_CONFIG,
    resolveToConfig: true
  });

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

injectAd();

creative-rotation-worklet.js

class SelectURLOperation {
  async run(urls, data) {
    // Read the rotation mode from Shared Storage
    const rotationMode = await sharedStorage.get('content-rotation-mode');

    // Generate a random number to be used for rotation
    const randomNumber = Math.random();

    let index;

    switch (rotationMode) {
      /**
       * Sequential rotation
       * - Rotates the contents in order
       * - Example: A -> B -> C -> A ...
       */
      case 'sequential':
        const currentIndex = await sharedStorage.get('creative-rotation-index');
        index = parseInt(currentIndex, 10);
        const nextIndex = (index + 1) % urls.length;

        await sharedStorage.set('content-rotation-index', nextIndex);
        break;

      /**
       * Weighted rotation
       * - Rotates the contentswith weighted probability
       * - Example: A=70% / B=20% / C=10%
       */
      case 'weighted-distribution':
        
        // Sum the weights cumulatively, and find the first URL where the
        // sum exceeds the random number. The array is sorted in
        // descending order first.
        let weightSum = 0;
        const { url } = data
          .sort((a, b) => b.weight - a.weight)
          .find(({ weight }) => {
            weightSum += weight;
            return weightSum > randomNumber;
          });

        index = urls.indexOf(url);
        break;

      default:
        index = 0;
    }
    return index;
  }
}

register('content-rotation', SelectURLOperation);

Trường hợp sử dụng

Đây chỉ là một số trường hợp sử dụng có thể có của Bộ nhớ dùng chung. Chúng tôi sẽ tiếp tục thêm các ví dụ khi nhận được ý kiến phản hồi và khám phá các trường hợp sử dụng mới.

Lựa chọn nội dung

Chọn và hiển thị nội dung khác nhau trên các trang web khác nhau trong khung có hàng rào dựa trên thông tin được thu thập trong Bộ nhớ dùng chung. Cổng đầu ra cho các trường hợp sử dụng này là lựa chọn URL.

  • Tính năng xoay vòng mẫu quảng cáo: Lưu trữ dữ liệu, chẳng hạn như mã mẫu quảng cáo, số lượt xem và lượt tương tác của người dùng, để xác định mẫu quảng cáo mà người dùng nhìn thấy trên các trang web.
  • Thử nghiệm A/B: Bạn có thể chỉ định một người dùng cho một nhóm thử nghiệm, sau đó lưu trữ nhóm đó trong Bộ nhớ dùng chung để truy cập trên nhiều trang web.
  • Trải nghiệm tuỳ chỉnh cho người dùng: Chia sẻ nội dung tuỳ chỉnh và lời kêu gọi hành động dựa trên trạng thái đăng ký của người dùng hoặc các trạng thái khác của người dùng

Tạo báo cáo tóm tắt

Thu thập thông tin bằng Bộ nhớ dùng chung và tạo một báo cáo tóm tắt tổng hợp, không rõ ràng. Cổng đầu ra cho các trường hợp sử dụng này là API tổng hợp riêng tư.

  • Đo lường phạm vi tiếp cận người dùng riêng biệt: Nhiều nhà sản xuất nội dung và nhà quảng cáo muốn biết có bao nhiêu người dùng riêng biệt đã xem nội dung của họ. Sử dụng Bộ nhớ dùng chung để ghi lại lần đầu tiên người dùng nhìn thấy quảng cáo, video được nhúng hoặc ấn phẩm của bạn, đồng thời ngăn việc tính trùng lặp cùng một người dùng trên nhiều trang web. Sau đó, bạn có thể sử dụng Private Aggregation API để xuất báo cáo tóm tắt về phạm vi tiếp cận.
  • Đo lường thông tin nhân khẩu học: Nhà sản xuất nội dung thường muốn hiểu rõ thông tin nhân khẩu học của khán giả. Bạn có thể sử dụng Bộ nhớ dùng chung để ghi lại dữ liệu nhân khẩu học của người dùng trong bối cảnh bạn có dữ liệu đó, chẳng hạn như trang web của bên thứ nhất, và sử dụng báo cáo tổng hợp để báo cáo dữ liệu đó trên nhiều trang web khác, chẳng hạn như nội dung được nhúng.
  • Đo lường tần suất K+: Đôi khi được mô tả là "tần suất hiệu quả", thường có một số lượt xem tối thiểu trước khi người dùng nhận ra hoặc nhớ lại một số nội dung nhất định (thường là trong ngữ cảnh của lượt xem quảng cáo). Bạn có thể sử dụng Bộ nhớ dùng chung để tạo báo cáo về số người dùng riêng biệt đã xem một nội dung ít nhất K lần.

Tương tác và chia sẻ ý kiến phản hồi

Xin lưu ý rằng đề xuất về API Bộ nhớ dùng chung đang được thảo luận và phát triển tích cực, do đó có thể thay đổi.

Chúng tôi rất mong được nghe ý kiến của bạn về Shared Storage API.

Luôn nắm thông tin mới nhất

Bạn cần được trợ giúp?