Chọn một URL có bộ nhớ dùng chung

Chọn một URL dựa trên dữ liệu được thu thập trong Bộ nhớ dùng chung và hiển thị nội dung trong một khung được phân vùng.

Với Shared Storage API (API bộ nhớ dùng chung), bạn có thể chọn một URL để hiển thị trong một khung được bảo vệ bằng dữ liệu trên nhiều trang web. Sử dụng JavaScript để đọc và ghi dữ liệu trên nhiều trang web, sau đó chọn một URL trong danh sách được cung cấp dựa trên dữ liệu bạn đã lưu trữ. Bạn có thể hiển thị URL đó trong một khung có hàng rào.

Lựa chọn URL có thể bao gồm mọi loại nội dung: quảng cáo, bài viết, hình ảnh, HTML, lời kêu gọi hành động (chẳng hạn như nút) và nhiều nội dung khác.

Ví dụ: giả sử bạn điều hành một trang web du lịch và đang chạy một chiến dịch quảng cáo với 3 mẫu quảng cáo khác nhau. Bạn muốn sắp xếp trình tự các mẫu quảng cáo này dựa trên hoạt động tương tác của người dùng (xem hoặc nhấp).

3 mẫu quảng cáo được hiển thị cho người dùng dựa trên lượt tương tác trước đó của họ.
Với người xem mới, mẫu quảng cáo đầu tiên sẽ có nội dung "Tiếp tục cuộc phiêu lưu tiếp theo". Chỉ với một lượt xem và không có lượt nhấp, người dùng sẽ thấy thông báo "Khám phá các điểm đến cuối tuần". Sau khi xem hoặc nhấp vào, mẫu quảng cáo thứ ba sẽ khuyến khích người dùng "Nhấp để nhận chiết khấu khách sạn". Nếu người dùng nhấp vào quảng cáo đầu tiên, thì quảng cáo tiếp theo mà họ nhìn thấy sẽ là mẫu quảng cáo thứ ba.

Khi người dùng quan sát không gian quảng cáo chiến thắng lần đầu tiên, bạn có thể lưu trữ mã nhận dạng và trạng thái lượt nhấp cho mẫu quảng cáo đó trong Bộ nhớ dùng chung. Điều này có nghĩa là khi bạn thắng một phiên đấu giá quảng cáo trên các trang web khác mà người dùng này truy cập, bạn có thể hiển thị một quảng cáo khác dựa trên dữ liệu đó.

Hướng dẫn về Bộ nhớ dùng chung với 3 mẫu quảng cáo và hoạt động tương tác của người dùng.

JavaScript chạy trong một worklet để truy xuất thông tin này, nhưng mã của bạn không thể tương tác hoặc giao tiếp bên ngoài iframe hoặc khung có hàng rào trên trang mẹ.

Hãy xem một ví dụ khác. Giả sử bạn muốn kiểm thử xem bài viết nào sẽ hoạt động hiệu quả hơn trong ngữ cảnh được nhúng. Bạn có thể chỉ định người dùng cho một nhóm thử nghiệm khi thấy người dùng đó trên trang web của mình, sau đó lưu trữ mã nhận dạng nhóm đó trong Bộ nhớ dùng chung để truy cập trong ngữ cảnh trên nhiều trang web. Trên một trang web khác, khung được khoanh vùng của bạn có thể chọn một URL dựa trên nhóm thử nghiệm của người dùng đó được lưu trữ bằng Bộ nhớ dùng chung.

Bộ nhớ dùng chung cho phép bạn đưa ra quyết định sáng suốt dựa trên dữ liệu trên nhiều trang web mà không cần chia sẻ thông tin người dùng (chẳng hạn như nhật ký duyệt web hoặc thông tin cá nhân khác) với trang web nhúng hoặc chuyển dữ liệu sang máy chủ của riêng bạn.

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

Tính năng lựa chọn URL bằng Bộ nhớ dùng chung hỗ trợ các trường hợp sử dụng như sau:

  • 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 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.
    • Tần suất. Số lượt xem trên trình duyệt có thể được lưu trữ trong Bộ nhớ dùng chung và dùng để quyết định mẫu quảng cáo nào sẽ hiển thị cho người dùng.
  • Chạy thử nghiệm A/B: Chỉ định người dùng vào một nhóm thử nghiệm, sau đó lưu trữ mã nhận dạng nhóm đó bằng bộ nhớ chia sẻ để truy cập trên nhiều trang web.
  • Tuỳ chỉnh trải nghiệm 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 xác minh người dùng khác.

Ngân sách

Để giảm thiểu nguy cơ rò rỉ dữ liệu trên nhiều trang web, API URL được chọn sử dụng hệ thống lập ngân sách kết hợp ngân sách dài hạn và ngắn hạn:

  • Ngân sách dài hạn: Ngân sách 12 bit cho mỗi trang web của phương thức gọi mỗi ngày khi sử dụng selectURL(). Ngân sách này chỉ được tính phí nếu khung lưu trữ URL đã chọn thực hiện thao tác điều hướng cấp cao nhất, trong đó chi phí được tính là log2(number of URLs). Vì vậy, nếu bạn cung cấp 8 URL để lựa chọn, chi phí sẽ là 3 bit. Mọi ngân sách còn lại trong ngày sẽ được tính là 12 - (sum of bits deducted in the last 24 hours) và nếu không còn đủ ngân sách, URL mặc định (URL đầu tiên trong danh sách) sẽ được trả về và 1 bit sẽ được ghi lại nếu người dùng chuyển đến URL mặc định.
  • Ngân sách ngắn hạn: các giới hạn bổ sung trên cơ sở mỗi lượt tải trang. Có một ngân sách 6 bit cho mỗi trang web gọi mỗi lần tải trang giới hạn lượng dữ liệu mà một trang web gọi có thể rò rỉ bằng selectURL(). Ngoài ra, còn có ngân sách 12 bit tổng thể cho mỗi lượt tải trang. Đây là giới hạn kết hợp cho tất cả các trang web gọi trên một trang.

    Truy vấn đã lưu cho phép bạn sử dụng lại kết quả selectURL() trước đó trên cùng một trang, giảm mức sử dụng ngân sách ngắn hạn. Khi selectURL() được gọi bằng tên truy vấn đã lưu lần đầu tiên, chỉ mục thu được sẽ được lưu trữ trong suốt thời gian hoạt động của trang. Khi selectURL() được gọi bằng cùng một tên truy vấn đã lưu cho các lệnh gọi tiếp theo, chỉ mục đã lưu sẽ được trả về và thao tác đã đăng ký sẽ không chạy. Trong trường hợp này, ngân sách sẽ chỉ được tính phí khi sử dụng lần đầu tiên, nhưng không tính phí khi sử dụng lại trong cùng một lượt tải trang vì không có thông tin mới nào được tiết lộ.

    Bạn có thể triển khai truy vấn đã lưu bằng cách thêm thuộc tính savedQuery, với tên truy vấn mà bạn đã chọn, vào đối tượng tuỳ chọn như trong ví dụ sau.

    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;
    

Thử chọn URL

Bạn có thể thử nghiệm tính năng lựa chọn URL bằng API Bộ nhớ dùng chung trong Chrome Canary/Dev/Beta M105 trở lên. Để thử nghiệm tính năng lựa chọn URL, hãy bật tất cả API Quyền riêng tư trong quảng cáo trong chrome://settings/adPrivacy.

Thử nghiệm bản minh hoạ

Chúng tôi có bản minh hoạ và bạn có thể xem lại mã trên GitHub.

Bản minh hoạ này được xây dựng từ góc độ của một nhà quảng cáo, công nghệ quảng cáo, nhà phân phối nội dung hoặc dịch vụ bên thứ ba khác muốn lưu trữ thông tin trên nhiều trang web của nhà xuất bản. Trong bản minh hoạ, cùng một mã của bên thứ ba chạy trên cả trang web của Nhà xuất bản A và Nhà xuất bản B cho mỗi trường hợp sử dụng. Truy cập vào trang của từng nhà xuất bản để xem cách dữ liệu được chia sẻ trong ngữ cảnh trên nhiều trang web.

Thu hút và chia sẻ ý kiến phản hồi

Đề xuất về Bộ nhớ dùng chung đang được thảo luận và có thể thay đổi trong tương lai. Nếu bạn dùng thử API này và có ý kiến phản hồi, chúng tôi rất mong nhận được ý kiến phản hồi của bạn.