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