보고 ID

Protected Audience 입찰에서 보고 ID가 작동하는 방식 알아보기

개요

보고 ID는 입찰 생성, 입찰 점수 산정, 보고에 사용할 수 있는 광고와 연결된 식별자입니다. 보고 ID는 관심분야 그룹 구성에서 구매자가 제공하며 이 가이드에서 설명하는 다양한 조건에 따라 generateBid(), scoreAd(), reportResult(), reportWin()에서 사용할 수 있습니다.

보고 ID를 사용하면 광고의 식별자를 보고하고 거래와 같은 사용 사례를 사용할 수 있습니다.

Protected Audience 구매자 및 판매자 함수에서 보고 ID를 사용할 수 있게 됨
보고 ID 사용 가능 여부

보고 ID에는 두 가지 유형의 세 가지가 있습니다.

  • 선택할 수 없는 보고 ID
    • buyerReportingId (문자열)
    • buyerAndSellerReportingId (문자열)
  • 선택 가능한 보고 ID
    • selectableBuyerAndSellerReportingIds (문자열 배열)

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

선택할 수 없는 보고 ID

Protected Audience 구매자 및 판매자 함수에서 보고 ID를 사용할 수 있게 됨
선택 가능한 보고 ID 사용 가능 여부

buyerReportingIdbuyerAndSellerReportingId는 관심분야 그룹 구성에 정의된 선택할 수 없는 보고 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가 정의된 경우 buyerAndSellerReportingIdbuyerReportingId를 덮어쓰는 덮어쓰기 규칙이 적용됩니다.

  • buyerAndSellerReportingIdbuyerReportingId가 모두 정의된 경우 buyerAndSellerReportingIdbuyerReportingId를 덮어쓰고 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분기까지는 광고 크기가 이 확인에서 제외됨).

buyerAndSellerReportingIdbuyerReportingId 모두 정의됨

관심분야 그룹 구성에 buyerAndSellerReportingIdbuyerReportingId가 모두 정의된 경우:

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`,
  }]
});

그러면 관심분야 그룹 namereportWin() 내에서 사용할 수 있습니다.

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

reportWin()에서 사용할 수 있게 되기 전에 관심분야 그룹 이름 (interestGroupName)이 관심분야 그룹 소유자, 입찰 스크립트 URL, 렌더링 URL, 광고 크기를 사용하여 k-익명성이 있는지 확인됩니다 (2025년 1분기까지는 광고 크기가 이 확인에서 제외됨).

선택 가능한 보고 ID

Protected Audience 구매자 및 판매자 함수에서 보고 ID를 사용할 수 있게 됨
선택 가능한 보고 ID가 있는 보고 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가 관심분야 그룹 구성에 정의되어 있고 selectedBuyerAndSellerReportingIdgenerateBid()에서 반환된 경우 selectedBuyerAndSellerReportingIdbuyerAndSellerReportingId (있는 경우)가 관심분야 그룹 소유자, 입찰 스크립트 URL, 렌더링 URL, 광고 크기 (2025년 1분기까지는 광고 크기가 이 검사에서 제외됨)와 k-익명처리되지 않으면 입찰에서 낙찰될 수 없으며 해당 입찰에 대해 reportResult()가 실행되지 않습니다. 따라서 reportResult()selectedBuyerAndSellerReportingId 값으로 호출되면 보고 ID가 k-익명성 검사를 통과했으며 정의된 모든 보고 ID를 reportResult() 내에서 사용할 수 있다는 의미입니다.

구매자 보고

selectableBuyerAndSellerReportingIds가 관심분야 그룹 구성에 정의되고 selectedBuyerAndSellerReportingIdgenerateBid()에서 반환되면 관심분야 그룹 구성에 정의된 모든 보고 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
SellerReportingIds
buyerAndSeller
ReportingId
buyerReportingId reportWin() reportResult()
, generateBid()에서
선택
선택사항 선택사항 1) selectedBuyerAnd
SellerReportingIds


2) buyerAndSeller
ReportingId
(정의된 경우)

3) buyerReportingId (정의된 경우)
1) selectedBuyerAnd
SellerReportingIds


2) buyerAndSeller
ReportingId
(정의된 경우)

아니요 또는 선택되지 않음generateBid()
무시됨 buyerAndSeller
ReportingId
buyerAndSeller
ReportingId
아니요 또는 선택되지 않음generateBid()
아니요 buyerReportingId 없음
아니요 또는 generateBid()에서
선택되지 않음
아니요 아니요 interestGroupName 없음

참여 및 의견 공유