Protected Audience 입찰에서 보고 ID가 작동하는 방식 알아보기
개요
보고 ID는 입찰 생성, 입찰 점수 산정, 보고에 사용할 수 있는 광고와 연결된 식별자입니다. 보고 ID는 관심분야 그룹 구성에서 구매자가 제공하며 이 가이드에서 설명하는 다양한 조건에 따라 generateBid()
, scoreAd()
, reportResult()
, reportWin()
에서 사용할 수 있습니다.
보고 ID를 사용하면 광고의 식별자를 보고하고 거래와 같은 사용 사례를 사용할 수 있습니다.

보고 ID에는 두 가지 유형의 세 가지가 있습니다.
- 선택할 수 없는 보고 ID
buyerReportingId
(문자열)buyerAndSellerReportingId
(문자열)
- 선택 가능한 보고 ID
selectableBuyerAndSellerReportingIds
(문자열 배열)
보고 ID는 선택 가능한 보고 ID가 사용되는지에 따라 다르게 동작합니다. 선택할 수 없는 보고 ID만 사용하면 이러한 ID는 보고 함수 내에서만 사용할 수 있습니다. 선택 가능한 보고 ID가 선택 불가능한 보고 ID와 함께 사용되는 경우(필요한 경우) 정의된 모든 ID를 generateBid()
및 scoreAd()
내에서도 사용할 수 있습니다.
선택할 수 없는 보고 ID

buyerReportingId
및 buyerAndSellerReportingId
는 관심분야 그룹 구성에 정의된 선택할 수 없는 보고 ID로, 구매자 및 판매자 보고 함수에서 사용할 수 있습니다. 구매자 및 판매자 보고 함수는 낙찰된 광고에 대해서만 실행되며, 함수는 낙찰된 광고에 정의된 보고 ID를 수신합니다.
선택 가능한 보고 ID 없이 사용하면 구매자 보고 함수는 덮어쓰기 동작에 따라 buyerReportingId
또는 buyerAndSellerReportingId
를 수신하고 판매자 보고 함수는 buyerAndSellerReportingId
를 수신합니다. 관심분야 그룹 구성에 buyerReportingId
또는 buyerAndSellerReportingId
가 정의되지 않은 경우 reportWin()
함수는 낙찰된 입찰의 관심분야 그룹 이름 (interestGroupName
)을 수신합니다.
선택할 수 없는 ID는 선택 가능한 보고 ID와 함께 사용되지 않는 경우 generateBid()
및 scoreAd()
내에서 사용할 수 없습니다.
관심분야 그룹의 보고 ID
보고 ID는 관심분야 그룹의 각 광고에 대해 구매자가 정의합니다.
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',
}]
});
판매자 보고
판매자 보고 단계에서 buyerAndSellerReportingId
값은 reportResult()
에 제공됩니다.
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId // 'bsrid123'
} = browserSignals;
sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}
ID를 reportResult()
내에서 사용할 수 있게 되기 전에 관심분야 그룹 소유자, 입찰 스크립트 URL, 렌더링 URL, 광고 크기를 사용하여 k-익명성이 확인됩니다 (2025년 1분기까지는 광고 크기가 이 확인에서 제외됨). k-익명성이 아닌 경우 reportResult()
함수는 계속 실행되지만 보고 ID 값은 함수 내에서 사용할 수 없습니다.
구매자 보고
입찰의 구매자 보고 단계에서 reportWin()
는 하나의 보고 ID를 사용할 수 있습니다. 관심분야 그룹에 두 개 이상의 보고 ID가 정의된 경우 buyerAndSellerReportingId
가 buyerReportingId
를 덮어쓰는 덮어쓰기 규칙이 적용됩니다.
buyerAndSellerReportingId
와buyerReportingId
가 모두 정의된 경우buyerAndSellerReportingId
가buyerReportingId
를 덮어쓰고reportWin()
내에서buyerAndSellerReportingId
를 사용할 수 있습니다.buyerReportingId
만 정의된 경우buyerReportingId
를 사용할 수 있습니다.buyerAndSellerReportingId
또는buyerReportingId
가 정의되지 않으면interestGroupName
를 사용할 수 있습니다.
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId // 'bsrid123'
} = browserSignals;
sendReportTo(`https://seller.example/report?bsrid=${buyerAndSellerReportingId}`);
}
reportWin()
내에서 사용할 수 있는 보고 ID는 관심분야 그룹 소유자, 입찰 스크립트 URL, 렌더링 URL, 광고 크기를 사용하여 k-익명성이 확인됩니다 (2025년 1분기까지는 광고 크기가 이 확인에서 제외됨). k-익명성 검사에 실패하면 reportWin()
는 계속 실행되지만 보고 ID 값은 함수 내에서 사용할 수 없습니다.
buyerReportingId
만 정의됨
관심분야 그룹 구성에 buyerReportingId
만 정의된 경우:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerReportingId: 'brid123',
}]
});
그러면 reportWin()
내에서 buyerReportingId
를 사용할 수 있습니다.
function reportWin(..., browserSignals, ...) {
const {
buyerReportingId, // 'brid123'
} = browserSignals;
}
reportWin()
에서 사용할 수 있게 되기 전에 buyerReportingId
은 관심분야 그룹 소유자, 입찰 스크립트 URL, 렌더링 URL, 광고 크기를 사용하여 k-익명성이 있는지 확인됩니다 (2025년 1분기까지는 광고 크기가 이 확인에서 제외됨).
buyerAndSellerReportingId만 정의됨
관심분야 그룹 구성에 buyerAndSellerReportingId
만 정의된 경우:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerAndSellerReportingId: 'bsrid123',
}]
});
그러면 reportWin()
내에서 buyerAndSellerReportingId
를 사용할 수 있습니다.
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
} = browserSignals;
}
reportWin()
에서 사용할 수 있게 되기 전에 buyerAndSellerReportingId
은 관심분야 그룹 소유자, 입찰 스크립트 URL, 렌더링 URL, 광고 크기를 사용하여 k-익명성이 있는지 확인됩니다 (2025년 1분기까지는 광고 크기가 이 확인에서 제외됨).
buyerAndSellerReportingId
및 buyerReportingId
모두 정의됨
관심분야 그룹 구성에 buyerAndSellerReportingId
와 buyerReportingId
가 모두 정의된 경우:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
buyerReportingId: 'brid123',
buyerAndSellerReportingId: 'bsrid123',
}]
});
그러면 덮어쓰기 동작으로 인해 reportWin()
내에서 buyerAndSellerReportingId
만 사용할 수 있습니다.
function reportWin(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
} = browserSignals;
}
reportWin()
에서 사용할 수 있게 되기 전에 buyerAndSellerReportingId
은 관심분야 그룹 소유자, 입찰 스크립트 URL, 렌더링 URL, 광고 크기를 사용하여 k-익명성이 있는지 확인됩니다 (2025년 1분기까지는 광고 크기가 이 확인에서 제외됨).
buyerAndSellerReportingId
또는 buyerReportingId
가 정의되지 않음
관심분야 그룹 구성에 보고 ID가 모두 정의되지 않은 경우:
navigator.joinAdInterestGroup({
owner: 'https://buyer.example',
name: 'example-interest-group',
ads: [{
renderUrl: `https://buyer.example/ad.html`,
}]
});
그러면 관심분야 그룹 name
를 reportWin()
내에서 사용할 수 있습니다.
function reportWin(..., browserSignals, ...) {
const {
interestGroupName, // 'example-interest-group'
} = browserSignals;
}
reportWin()
에서 사용할 수 있게 되기 전에 관심분야 그룹 이름 (interestGroupName
)이 관심분야 그룹 소유자, 입찰 스크립트 URL, 렌더링 URL, 광고 크기를 사용하여 k-익명성이 있는지 확인됩니다 (2025년 1분기까지는 광고 크기가 이 확인에서 제외됨).
선택 가능한 보고 ID

선택 가능한 보고 ID를 사용하면 구매자가 입찰 생성 중에 ID를 선택할 수 있으며 브라우저는 선택한 값을 scoreAd()
및 보고 함수에 제공합니다. 문자열 배열인 selectableBuyerAndSellerReportingIds
값이 generateBid()
에 제공되며 구매자는 선택한 ID 하나를 selectedBuyerAndSellerReportingId
로 반환할 수 있습니다.
generateBid()
및 scoreAd()
함수는 관심분야 그룹 구성에 정의된 각 광고에 대해 실행되고 각 광고의 보고 ID를 수신합니다. 구매자 및 판매자 보고 함수는 낙찰된 광고에 대해서만 실행되며, 함수는 낙찰된 광고에 정의된 보고 ID를 수신합니다.
선택할 수 없는 보고 ID가 선택할 수 있는 보고 ID와 함께 사용되면 이전 섹션에 설명된 워크플로와는 다르게 동작합니다. 선택할 수 없는 보고 ID는 보고 함수 내부에서만 사용할 수 있었던 초기 동작과 달리 선택 가능한 보고 ID를 사용하면 선택할 수 없는 보고 ID도 generateBid()
및 scoreAd()
내부에서 사용할 수 있습니다.
관심분야 그룹
선택 가능한 보고 ID 필드(selectableBuyerAndSellerReportingIds
)는 광고의 관심분야 그룹에서 구매자가 정의한 문자열 배열입니다. 선택할 수 없는 보고 ID는 선택할 수 있는 보고 ID와 함께 정의할 수도 있습니다.
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']
}]
});
구매자 입찰 생성
selectableBuyerAndSellerReportingIds
가 관심분야 그룹 구성에 정의된 경우 정의된 다른 보고 ID와 함께 generateBid()
내에서 사용할 수 있습니다.
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
};
}
구매자는 generateBid()
의 selectableBuyerAndSellerReportingIds
배열에서 ID 중 하나를 선택하고 선택한 ID를 selectedBuyerAndSellerReportingId
로 반환할 수 있습니다. 선택한 값이 selectableBuyerAndSellerReportingIds
배열에 없으면 입찰이 거부됩니다. 관심분야 그룹 구성에 selectableBuyerAndSellerReportingIds
가 정의되어 있고 구매자가 generateBid()
에서 selectedBuyerAndSellerReportingId
를 반환하지 않으면 보고 ID가 선택할 수 없는 보고 ID에 설명된 동작으로 되돌아갑니다.
반환된 selectedbuyerAndSellerReportingId
값이 있는 입찰은 selectedbuyerAndSellerReportingId
값이 buyerAndSellerReportingId
(있는 경우), buyerReportingId
(있는 경우), 관심분야 그룹 소유자, 입찰 스크립트 URL, 렌더링 URL, 광고 크기와 함께 공동으로 k-익명처리된 경우에만 입찰에서 낙찰될 수 있습니다 (2025년 1분기까지는 광고 크기가 이 확인에서 제외됨).
판매자 광고 점수
판매자의 경우 구매자가 generateBid()
에서 반환한 selectedBuyerAndSellerReportingId
가 관심분야 그룹 구성에 정의된 경우 buyerAndSellerReportingId
와 함께 scoreAd()
에서 사용할 수 있게 됩니다.
function scoreAd(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId, // 'sbsrid2'
} = browserSignals;
// ...
}
판매자 보고
판매자 보고의 경우 구매자가 generateBid()
에서 반환한 selectedBuyerAndSellerReportingId
가 관심분야 그룹에 정의된 경우 buyerAndSellerReportingId
와 함께 reportResult()
에서 사용할 수 있습니다.
function reportResult(..., browserSignals, ...) {
const {
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId // 'sbsrid2'
} = browserSignals;
// ...
}
selectableBuyerAndSellerReportingIds
가 관심분야 그룹 구성에 정의되어 있고 selectedBuyerAndSellerReportingId
가 generateBid()
에서 반환된 경우 selectedBuyerAndSellerReportingId
및 buyerAndSellerReportingId
(있는 경우)가 관심분야 그룹 소유자, 입찰 스크립트 URL, 렌더링 URL, 광고 크기 (2025년 1분기까지는 광고 크기가 이 검사에서 제외됨)와 k-익명처리되지 않으면 입찰에서 낙찰될 수 없으며 해당 입찰에 대해 reportResult()
가 실행되지 않습니다. 따라서 reportResult()
가 selectedBuyerAndSellerReportingId
값으로 호출되면 보고 ID가 k-익명성 검사를 통과했으며 정의된 모든 보고 ID를 reportResult()
내에서 사용할 수 있다는 의미입니다.
구매자 보고
selectableBuyerAndSellerReportingIds
가 관심분야 그룹 구성에 정의되고 selectedBuyerAndSellerReportingId
가 generateBid()
에서 반환되면 관심분야 그룹 구성에 정의된 모든 보고 ID를 사용할 수 있습니다. 판매자 보고와 마찬가지로 보고 ID가 k-익명성이 아닌 경우 입찰에서 낙찰될 수 없으며 reportWin()
가 해당 입찰에 대해 실행되지 않습니다.
function reportWin(..., browserSignals, ...) {
const {
buyerReportingId, // 'brid123'
buyerAndSellerReportingId, // 'bsrid123'
selectedBuyerAndSellerReportingId // 'sbsrid2'
} = browserSignals;
// ...
}
덮어쓰기 규칙
다음은 선택할 수 없는 보고 ID와 선택할 수 있는 보고 ID의 덮어쓰기 규칙을 요약한 내용입니다. selectableBuyerAndSellerReportingIds
, buyerAndSellerReportingId
, buyerReportingId
, 관심분야 그룹 이름 중 reportWin()
에 전달되는 항목은 다음 로직을 사용하여 브라우저에서 결정됩니다.
- 입찰에서
selectedBuyerAndSellerReportingId
이 반환되면selectedBuyerAndSellerReportingId
,buyerAndSellerReportingId
(관심분야 그룹에 정의된 경우),buyerReportingId
(관심분야 그룹에 정의된 경우)를 모두 보고에 사용할 수 있습니다. - 그렇지 않고 관심분야 그룹에
buyerAndSellerReportingId
가 정의된 경우buyerAndSellerReportingId
만 보고에 사용할 수 있습니다. - 그렇지 않고 관심분야 그룹에
buyerReportingId
가 정의된 경우buyerReportingId
만 보고에 사용할 수 있습니다. - 그렇지 않으면 관심분야 그룹
name
만 보고에 사용할 수 있습니다.
다음 표에서는 덮어쓰기 동작을 설명합니다.
보고 ID가 관심분야 그룹 구성에 정의되어 있나요? | 사용 가능한 보고 ID | |||
selectableBuyerAnd
|
buyerAndSeller
|
buyerReportingId
|
reportWin()
|
reportResult()
|
예, generateBid() 에서 선택 |
선택사항 | 선택사항 |
1) selectedBuyerAnd 2) buyerAndSeller (정의된 경우)3) buyerReportingId (정의된 경우)
|
1) selectedBuyerAnd 2) buyerAndSeller (정의된 경우) |
아니요 또는 선택되지 않음generateBid() |
예 | 무시됨 | buyerAndSeller |
buyerAndSeller |
아니요 또는 선택되지 않음generateBid() |
아니요 | 예 | buyerReportingId |
없음 |
아니요 또는 generateBid() 에서 선택되지 않음 |
아니요 | 아니요 | interestGroupName |
없음 |
참여 및 의견 공유
- 보고 ID에 대해 자세히 알아보려면 Protected Audience 설명의 보고 ID 섹션을 참고하세요.
- GitHub: API 저장소에서 질문을 제기하고 문제에 관한 토론을 확인합니다.
- W3C: WICG 통화에서 업계 사용 사례를 논의합니다.
- 공지사항: 메일링 리스트에 가입하거나 공지사항을 확인합니다.
- 개인 정보 보호 샌드박스 개발자 지원: 개인 정보 보호 샌드박스 개발자 지원 저장소에서 질문하고 토론에 참여하세요.
- Chromium: Chromium 버그를 신고하여 Chrome에서 테스트할 수 있는 구현에 관해 질문합니다.