Mã báo cáo

Tìm hiểu cách hoạt động của các mã nhận dạng báo cáo trong phiên đấu giá Protected Audience

Tổng quan

Giá trị nhận dạng báo cáo là giá trị nhận dạng được liên kết với một quảng cáo, có thể dùng để tạo giá thầu, tính điểm giá thầu và báo cáo. Người mua cung cấp các mã báo cáo trong cấu hình nhóm lợi ích và các mã này sẽ có sẵn trong generateBid(), scoreAd(), reportResult()reportWin() trong nhiều điều kiện được thảo luận trong hướng dẫn này.

Giá trị nhận dạng báo cáo cho phép bạn báo cáo một giá trị nhận dạng cho quảng cáo, đồng thời cho phép các trường hợp sử dụng như ưu đãi.

Các hàm người mua và người bán trong Protected Audience có thể sử dụng Reporting ID
Phạm vi cung cấp Reporting ID

Có 3 mã nhận dạng báo cáo thuộc 2 loại:

  • Mã nhận dạng báo cáo không chọn được
    • buyerReportingId (một chuỗi)
    • buyerAndSellerReportingId (một chuỗi)
  • Mã nhận dạng có thể chọn trong báo cáo
    • selectableBuyerAndSellerReportingIds (một mảng chuỗi)

Các mã nhận dạng trong báo cáo hoạt động theo cách khác nhau, tuỳ thuộc vào việc bạn có sử dụng mã nhận dạng trong báo cáo có thể chọn hay không. Khi chỉ sử dụng mã nhận dạng báo cáo không chọn được, những mã nhận dạng đó sẽ chỉ có trong các hàm báo cáo. Khi bạn sử dụng mã nhận dạng có thể chọn trong báo cáo, cùng với mã nhận dạng không thể chọn trong báo cáo (nếu cần), thì tất cả mã nhận dạng được xác định cũng sẽ có trong generateBid()scoreAd().

Mã báo cáo không chọn được

Các hàm người mua và người bán trong Protected Audience có thể sử dụng Reporting ID
Phạm vi cung cấp mã nhận dạng có thể chọn trong báo cáo

buyerReportingIdbuyerAndSellerReportingId là các mã nhận dạng báo cáo không thể chọn được xác định trong cấu hình nhóm mối quan tâm, có sẵn trong các hàm báo cáo của người mua và người bán. Các hàm báo cáo của người mua và người bán sẽ chỉ chạy cho quảng cáo thắng cuộc và các hàm này sẽ nhận được mã báo cáo được xác định cho quảng cáo thắng cuộc đó.

Khi được dùng mà không có mã báo cáo có thể chọn, hàm báo cáo của người mua sẽ nhận được buyerReportingId hoặc buyerAndSellerReportingId tuỳ thuộc vào hành vi ghi đè và hàm báo cáo của người bán sẽ nhận được buyerAndSellerReportingId. Nếu cả buyerReportingIdbuyerAndSellerReportingId đều không được xác định trong cấu hình nhóm lợi ích, thì hàm reportWin() sẽ nhận được tên nhóm lợi ích (interestGroupName) của giá thầu chiến thắng.

Bạn không thể chọn mã nhận dạng bên trong generateBid()scoreAd() nếu không sử dụng mã nhận dạng báo cáo có thể chọn.

Mã nhận dạng báo cáo trong nhóm mối quan tâm

Người mua xác định các mã báo cáo cho từng quảng cáo trong một nhóm mối quan tâm:

navigator.joinAdInterestGroup({
  owner: 'https://buyer.example',
  name: 'example-interest-group',
  ads: [{
    renderUrl: `https://buyer.example/ad.html`,
    // buyerAndSellerReportingId goes to the buyer and seller reporting functions
    buyerAndSellerReportingId: 'bsrid123',
    // buyerReportingId is defined here as an example, but
    // is not used due to the overwrite rules described later
    buyerReportingId: 'brid123',
  }]
});

Báo cáo của người bán

Trong giai đoạn báo cáo của người bán, giá trị buyerAndSellerReportingId sẽ có sẵn cho reportResult():

function reportResult(..., browserSignals, ...) {
  const {
    buyerAndSellerReportingId // 'bsrid123'
  } = browserSignals;

  sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}

Trước khi mã nhận dạng có sẵn trong reportResult(), mã nhận dạng này sẽ được kiểm tra tính ẩn danh k-anonymity với chủ sở hữu nhóm mối quan tâm, URL tập lệnh đặt giá thầu, URL hiển thị và kích thước quảng cáo (kích thước quảng cáo sẽ không được đưa vào quy trình kiểm tra này cho đến ít nhất là quý 1 năm 2025). Nếu không phải là k-ẩn danh, hàm reportResult() vẫn sẽ chạy, nhưng giá trị mã nhận dạng báo cáo sẽ không có trong hàm.

Báo cáo của người mua

Trong giai đoạn báo cáo của người mua trong phiên đấu giá, một mã báo cáo sẽ có sẵn cho reportWin(). Nếu bạn xác định nhiều mã báo cáo trong nhóm mối quan tâm, thì quy tắc ghi đè sẽ được áp dụng trong đó buyerAndSellerReportingId ghi đè buyerReportingId:

  • Nếu bạn xác định cả buyerAndSellerReportingIdbuyerReportingId, thì buyerAndSellerReportingId sẽ ghi đè buyerReportingIdbuyerAndSellerReportingId sẽ có sẵn bên trong reportWin().
  • Nếu bạn chỉ xác định buyerReportingId, thì buyerReportingId sẽ có sẵn.
  • Nếu bạn không xác định buyerAndSellerReportingIdbuyerReportingId, thì interestGroupName sẽ có sẵn.
function reportWin(..., browserSignals, ...) {
  const {
    buyerAndSellerReportingId // 'bsrid123'
  } = browserSignals;

  sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}

Giá trị nhận dạng báo cáo có trong reportWin() sẽ được kiểm tra tính ẩn danh k với chủ sở hữu nhóm lợi ích, URL tập lệnh đặt giá thầu, URL hiển thị và kích thước quảng cáo (kích thước quảng cáo sẽ không được đưa vào quy trình kiểm tra này cho đến ít nhất là quý 1 năm 2025). Nếu không vượt qua được quy trình kiểm tra tính ẩn danh k, thì reportWin() vẫn sẽ chạy, nhưng giá trị mã nhận dạng báo cáo sẽ không có trong hàm.

Chỉ buyerReportingId được xác định

Nếu chỉ có buyerReportingId được xác định trong cấu hình nhóm đối tượng có cùng mối quan tâm:

navigator.joinAdInterestGroup({
  owner: 'https://buyer.example',
  name: 'example-interest-group',
  ads: [{
    renderUrl: `https://buyer.example/ad.html`,
    buyerReportingId: 'brid123',
  }]
});

Sau đó, buyerReportingId sẽ có trong reportWin():

function reportWin(..., browserSignals, ...) {
  const {
    buyerReportingId, // 'brid123'
  } = browserSignals;
}

Trước khi có sẵn cho reportWin(), buyerReportingId sẽ được kiểm tra tính ẩn danh k với chủ sở hữu nhóm lợi ích, URL tập lệnh đặt giá thầu, URL hiển thị và kích thước quảng cáo (kích thước quảng cáo sẽ không được đưa vào quy trình kiểm tra này cho đến ít nhất là quý 1 năm 2025).

Chỉ buyerAndSellerReportingId được xác định

Nếu chỉ có buyerAndSellerReportingId được xác định trong cấu hình nhóm đối tượng có cùng mối quan tâm:

navigator.joinAdInterestGroup({
  owner: 'https://buyer.example',
  name: 'example-interest-group',
  ads: [{
    renderUrl: `https://buyer.example/ad.html`,
    buyerAndSellerReportingId: 'bsrid123',
  }]
});

Sau đó, buyerAndSellerReportingId sẽ có trong reportWin():

function reportWin(..., browserSignals, ...) {
  const {
    buyerAndSellerReportingId, // 'bsrid123'
  } = browserSignals;
}

Trước khi có sẵn cho reportWin(), buyerAndSellerReportingId sẽ được kiểm tra tính ẩn danh k với chủ sở hữu nhóm lợi ích, URL tập lệnh đặt giá thầu, URL hiển thị và kích thước quảng cáo (kích thước quảng cáo sẽ không được đưa vào quy trình kiểm tra này cho đến ít nhất là quý 1 năm 2025).

Cả buyerAndSellerReportingIdbuyerReportingId đều được xác định

Nếu cả buyerAndSellerReportingIdbuyerReportingId đều được xác định trong cấu hình nhóm mối quan tâm:

navigator.joinAdInterestGroup({
  owner: 'https://buyer.example',
  name: 'example-interest-group',
  ads: [{
    renderUrl: `https://buyer.example/ad.html`,
    buyerReportingId: 'brid123',
    buyerAndSellerReportingId: 'bsrid123',
  }]
});

Sau đó, chỉ có buyerAndSellerReportingId có sẵn bên trong reportWin() do hành vi ghi đè:

function reportWin(..., browserSignals, ...) {
  const {
    buyerAndSellerReportingId, // 'bsrid123'
  } = browserSignals;
}

Trước khi có sẵn cho reportWin(), buyerAndSellerReportingId sẽ được kiểm tra tính ẩn danh k với chủ sở hữu nhóm lợi ích, URL tập lệnh đặt giá thầu, URL hiển thị và kích thước quảng cáo (kích thước quảng cáo sẽ không được đưa vào quy trình kiểm tra này cho đến ít nhất là quý 1 năm 2025).

Bạn chưa xác định buyerAndSellerReportingId hoặc buyerReportingId

Nếu không có mã nhận dạng báo cáo nào được xác định trong cấu hình nhóm mối quan tâm:

navigator.joinAdInterestGroup({
  owner: 'https://buyer.example',
  name: 'example-interest-group',
  ads: [{
    renderUrl: `https://buyer.example/ad.html`,
  }]
});

Sau đó, nhóm đối tượng có cùng mối quan tâm name sẽ có trong reportWin():

function reportWin(..., browserSignals, ...) {
  const {
    interestGroupName, // 'example-interest-group'
  } = browserSignals;
}

Trước khi có sẵn cho reportWin(), tên nhóm lợi ích (interestGroupName) sẽ được kiểm tra tính ẩn danh k với chủ sở hữu nhóm lợi ích, URL tập lệnh đặt giá thầu, URL hiển thị và kích thước quảng cáo (kích thước quảng cáo sẽ không được đưa vào quy trình kiểm tra này cho đến ít nhất là quý 1 năm 2025).

Mã báo cáo có thể chọn

Các hàm người mua và người bán trong Protected Audience có thể sử dụng Reporting ID
Phạm vi cung cấp mã báo cáo có mã báo cáo có thể chọn

Các mã báo cáo có thể chọn cho phép người mua chọn một mã nhận dạng trong quá trình tạo giá thầu và trình duyệt cung cấp giá trị đã chọn cho scoreAd() và các hàm báo cáo. Giá trị selectableBuyerAndSellerReportingIds (một mảng gồm các chuỗi) được cung cấp cho generateBid() và người mua có thể trả về một mã nhận dạng đã chọn dưới dạng selectedBuyerAndSellerReportingId.

Các hàm generateBid()scoreAd() sẽ chạy cho từng quảng cáo được xác định trong cấu hình nhóm mối quan tâm và nhận mã nhận dạng báo cáo cho từng quảng cáo. Các hàm báo cáo của người mua và người bán sẽ chỉ chạy cho quảng cáo thắng cuộc và các hàm này sẽ nhận được mã báo cáo được xác định cho quảng cáo thắng cuộc đó.

Khi mã nhận dạng báo cáo không chọn được được dùng cùng với mã nhận dạng báo cáo chọn được, hành vi của các mã này sẽ thay đổi so với quy trình được mô tả trong phần trước. Không giống như hành vi ban đầu của các mã nhận dạng trong báo cáo không chọn được chỉ có trong các hàm báo cáo, các mã nhận dạng trong báo cáo chọn được cho phép các mã nhận dạng trong báo cáo không chọn được xuất hiện trong cả generateBid()scoreAd().

Nhóm đối tượng có cùng mối quan tâm

Trường mã báo cáo có thể chọn – selectableBuyerAndSellerReportingIds – là một mảng các chuỗi do người mua xác định trong nhóm lợi ích cho một quảng cáo. Bạn cũng có thể xác định các mã báo cáo không thể chọn cùng với các mã báo cáo có thể chọn:

navigator.joinAdInterestGroup({
  owner: 'https://buyer.example',
  name: 'example-interest-group',
  ads: [{
    renderUrl: `https://buyer.example/ad.html`,
    buyerReportingId: 'brid123',
    buyerAndSellerReportingId: 'bsrid123',
    selectableBuyerAndSellerReportingIds: ['sbsrid1', 'sbsrid2', 'sbsrid3']
  }]
});

Tạo giá thầu của người mua

Nếu selectableBuyerAndSellerReportingIds được xác định trong cấu hình nhóm mối quan tâm, thì mã này sẽ có trong generateBid() cùng với các mã báo cáo khác đã được xác định.

function generateBid(interestGroup, ...) {
  const [{
    buyerReportingId, // 'brid123'
    buyerAndSellerReportingId, // 'bsrid123'
    selectableBuyerAndSellerReportingIds // ['sbsrid1', 'sbsrid2', 'sbsrid3']
  }] = interestGroup.ads;

  return {
    bid: 1,
    render: 'https://buyer.example/ad.html',
    selectedBuyerAndSellerReportingId: 'sbsrid2' // Buyer returns the selected ID
  };
}

Người mua có thể chọn một trong các mã nhận dạng trong mảng selectableBuyerAndSellerReportingIds trong generateBid() và trả về mã nhận dạng đã chọn dưới dạng selectedBuyerAndSellerReportingId. Giá thầu sẽ bị từ chối nếu giá trị đã chọn không nằm trong mảng selectableBuyerAndSellerReportingIds. Nếu selectableBuyerAndSellerReportingIds được xác định trong cấu hình nhóm mối quan tâm và người mua không trả về selectedBuyerAndSellerReportingId từ generateBid(), thì các mã nhận dạng báo cáo sẽ quay lại hành vi được mô tả cho mã nhận dạng báo cáo không chọn được.

Giá thầu có giá trị được trả về cho selectedbuyerAndSellerReportingId chỉ có thể giành chiến thắng trong phiên đấu giá nếu giá trị của selectedbuyerAndSellerReportingId được ẩn danh cùng với buyerAndSellerReportingId (nếu có), buyerReportingId (nếu có), chủ sở hữu nhóm lợi ích, URL tập lệnh đặt giá thầu, URL hiển thị và kích thước quảng cáo (kích thước quảng cáo sẽ không được kiểm tra cho đến ít nhất là quý 1 năm 2025).

Tính điểm quảng cáo của người bán

Đối với người bán, selectedBuyerAndSellerReportingId do người mua trả về từ generateBid() sẽ có trong scoreAd(), cùng với buyerAndSellerReportingId nếu được xác định trong cấu hình nhóm lợi ích.

function scoreAd(..., browserSignals, ...) {
  const {
    buyerAndSellerReportingId, // 'bsrid123'
    selectedBuyerAndSellerReportingId, // 'sbsrid2'
  } = browserSignals;

  // ...
}

Báo cáo của người bán

Đối với báo cáo của người bán, selectedBuyerAndSellerReportingId do người mua trả về từ generateBid() sẽ có trong reportResult(), cùng với buyerAndSellerReportingId, nếu được xác định trong nhóm mối quan tâm.

function reportResult(..., browserSignals, ...) {
  const {
    buyerAndSellerReportingId, // 'bsrid123'
    selectedBuyerAndSellerReportingId // 'sbsrid2'
  } = browserSignals;
  
  // ...
}

Nếu selectableBuyerAndSellerReportingIds được xác định trong cấu hình nhóm mối quan tâm và selectedBuyerAndSellerReportingId được trả về từ generateBid(), thì giá thầu đó không thể thắng phiên đấu giá trừ phi selectedBuyerAndSellerReportingIdbuyerAndSellerReportingId (nếu có) là k-ẩn danh với chủ sở hữu nhóm mối quan tâm, URL tập lệnh đặt giá thầu, URL hiển thị và kích thước quảng cáo (kích thước quảng cáo sẽ không được đưa vào quy trình kiểm tra này cho đến ít nhất là quý 1 năm 2025) và reportResult() sẽ không được thực thi cho giá thầu đó. Do đó, nếu reportResult() được gọi bằng một giá trị cho selectedBuyerAndSellerReportingId, thì có nghĩa là các mã nhận dạng báo cáo đã vượt qua quy trình kiểm tra k-ẩn danh và tất cả mã nhận dạng báo cáo được xác định sẽ có sẵn trong reportResult().

Báo cáo của người mua

Nếu selectableBuyerAndSellerReportingIds được xác định trong cấu hình nhóm mối quan tâm và selectedBuyerAndSellerReportingId được trả về từ generateBid(), thì tất cả mã nhận dạng báo cáo được xác định trong cấu hình nhóm mối quan tâm sẽ có sẵn. Xin lưu ý rằng tương tự như báo cáo của người bán, nếu các mã báo cáo không phải là k-ẩn danh, thì chúng không thể thắng phiên đấu giá và reportWin() sẽ không chạy cho giá thầu đó.

function reportWin(..., browserSignals, ...) {
  const {
    buyerReportingId, // 'brid123'
    buyerAndSellerReportingId, // 'bsrid123'
    selectedBuyerAndSellerReportingId // 'sbsrid2'
  } = browserSignals;

  // ...
}

Quy tắc ghi đè

Sau đây là nội dung tóm tắt các quy tắc ghi đè cho cả mã báo cáo không chọn được và mã báo cáo chọn được. Trình duyệt sẽ xác định selectableBuyerAndSellerReportingIds, buyerAndSellerReportingId, buyerReportingId và tên nhóm lợi ích nào được truyền đến reportWin() theo logic sau:

  • Nếu selectedBuyerAndSellerReportingId được trả về từ một giá thầu, thì selectedBuyerAndSellerReportingId, buyerAndSellerReportingId (nếu được xác định trong nhóm sở thích) và buyerReportingId (nếu được xác định trong nhóm sở thích) đều có sẵn để báo cáo.
  • Nếu buyerAndSellerReportingId được xác định trong nhóm mối quan tâm, thì chỉ buyerAndSellerReportingId mới có sẵn để báo cáo.
  • Nếu buyerReportingId được xác định trong nhóm mối quan tâm, thì chỉ buyerReportingId mới có sẵn để báo cáo.
  • Nếu không, bạn chỉ có thể báo cáo nhóm mối quan tâm name.

Bảng sau đây mô tả hành vi ghi đè:

Mã nhận dạng báo cáo có được xác định trong cấu hình nhóm mối quan tâm không? Có mã báo cáo
selectableBuyerAnd
SellerReportingIds
buyerAndSeller
ReportingId
buyerReportingId reportWin() reportResult()
, và đã chọn
trong generateBid()
Không bắt buộc Không bắt buộc 1) selectedBuyerAnd
SellerReportingIds


2) buyerAndSeller
ReportingId
(nếu được xác định)

3) buyerReportingId (nếu được xác định)
1) selectedBuyerAnd
SellerReportingIds


2) buyerAndSeller
ReportingId
(nếu được xác định)

Không hoặc chưa chọn
trong generateBid()
Bị bỏ qua buyerAndSeller
ReportingId
buyerAndSeller
ReportingId
Không hoặc chưa chọn
trong generateBid()
Không buyerReportingId Không có
Không hoặc chưa chọn
trong generateBid()
Không Không interestGroupName Không có

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