광고 슬롯을 구매하기 위한 입찰

광고 구매자 (DSP 및 광고주)는 게시자 사이트에서 Protected Audience 광고 입찰에 참여하여 광고주 사이트에서 정의한 관심분야 그룹에 광고를 타겟팅하는 데 관심이 있을 수 있습니다. Protected Audience 입찰에 참여하면 개인 정보를 보호하는 방식으로 다른 사이트에서 식별된 고객에게 도달할 수 있습니다.

Protected Audience 입찰에서 게시자가 입찰가를 생성하는 로직을 제공하면 브라우저가 이 로직을 사용하여 입찰가를 계산합니다. 이는 로직을 제공하는 대신 입찰가를 직접 제출하는 다른 입찰 아키텍처와 대조됩니다.

generateBid() JavaScript 함수에 입찰 생성 로직을 제공하면 파일이 서버에서 호스팅됩니다. 사용자를 관심분야 그룹에 추가하면 이 파일의 위치가 관심분야 그룹 구성에 biddingLogicUrl로 전달됩니다.

입찰 중에 브라우저는 biddingLogicUrl 필드에 지정된 입찰 로직을 가져오고 외부 컨텍스트와의 통신이 제한된 안전한 격리 환경에서 각 관심분야 그룹에 대해 generateBid() 함수를 실행합니다. generateBid()가 실행되면 브라우저는 함수에 신호를 인수로 전달합니다. 이러한 신호에는 게시자의 퍼스트 파티 데이터, 판매자의 데이터, 실시간 데이터 등 다양한 소스의 다양한 정보가 포함됩니다. 이러한 신호를 사용하여 입찰가를 계산할 수 있으며 값은 generateBid() 호출에서 반환됩니다. 입찰이 제출되면 브라우저가 각 입찰에 대한 판매자의 점수 로직을 실행하여 판매자의 호감도 점수를 계산합니다.

generateBid()

다음은 generateBid() 함수의 인수와 함수에서 반환된 입찰의 구조를 설명합니다.


generateBid(interestGroup, auctionSignals, perBuyerSignals,
    trustedBiddingSignals, browserSignals, directFromSellerSignals) {
  return {
    ad: adObject,
    adCost: optionalAdCost,
    bid: bidValue,
    bidCurrency: 'USD',
    render: {
      url: renderURL,
      width: renderWidth,
      height: renderHeight
    },
    adComponents: [
      {url: adComponent1, width: componentWidth1, height: componentHeight1},
      {url: adComponent2, width: componentWidth2, height: componentHeight2},
      // ...
    ],
    allowComponentAuction: false,
    modelingSignals: 123 // 0-4095 integer (12-bits)
  };
}

인수

generateBid()는 다음 인수를 사용합니다.

인수 역할

interestGroup

광고 구매자가 전달한 객체입니다. 관심분야 그룹은 dailyUpdateUrl로 업데이트될 수 있습니다.

auctionSignals

판매자가 navigator.runAdAuction()에 전달한 입찰 구성 인수의 속성입니다. 이를 통해 페이지 컨텍스트 (예: 광고 크기 및 게시자 ID), 입찰 유형 (단일 가격 또는 2순위), 기타 메타데이터에 대한 정보를 제공합니다.

perBuyerSignals

판매자가 전달한 입찰 구성 인수의 속성입니다. 이를 통해 구매자 서버에서 페이지에 관한 문맥 시그널을 제공할 수 있습니다. 판매자가 구매자 서버로 실시간 입찰 호출을 실행하고 응답을 다시 파이핑하는 SSP이거나 게시자 페이지가 구매자의 서버에 직접 연결하는 경우, 이 경우 구매자는 조작 방지를 위해 generateBid() 내에서 이러한 신호의 암호화 서명을 확인하는 것이 좋습니다.

trustedBiddingSignals

키가 관심분야 그룹의 trustedBiddingSignalsKeys이고 trustedBiddingSignals 요청에서 값이 반환되는 객체입니다.

browserSignals

브라우저에서 생성하는 객체로, 페이지 컨텍스트 정보 (예: 판매자가 가짜일 수 있는 현재 페이지의 hostname) 및 관심분야 그룹 자체에 대한 데이터 (예: 기기 내 최대 게재빈도 설정을 허용하기 위해 그룹이 이전에 낙찰된 시기에 관한 기록)를 포함할 수 있습니다.

directFromSellerSignals

runAdAuction가 실행되는 컨텍스트에 있는 참여자에서 발생할 수 있는 auctionSignalssellerSignals와 달리 특정 판매자의 신호임이 보장됩니다.

브라우저 신호

browserSignals 객체에는 다음과 같은 속성이 있습니다.

{
  topWindowHostname: 'publisher.example',
  seller: 'https://ssp.example',
  topLevelSeller: 'https://www.top-level-ssp.com',
  requestedSize: {width: 100, height: 200},  /* if specified in auction config */
  joinCount: 3,
  recency: 3600000,
  bidCount: 17,
  prevWinsMs: [[timeDeltaMs1,ad1],[timeDeltaMs2,ad2],...],
  wasmHelper: ...
  dataVersion: 1,
  adComponentsLimit: 40
}
속성 설명

topWindowHostname

runAdAuction()가 호출된 호스트 이름입니다.

seller

입찰이 제출된 판매자입니다. 구성요소 입찰에서 이 값은 구성요소 판매자입니다.

topLevelSeller

구성요소 입찰의 최상위 판매자이며 구성요소 입찰에서만 존재합니다.

requestedSize

requestedSize 속성은 입찰을 위한 프레임 크기를 추천합니다. 판매자가 입찰 구성에서 요청된 크기를 설정하고 값은 generateBid()에서 입찰자에게 제공됩니다. 입찰 참여 입찰자는 광고에 다른 콘텐츠 크기를 선택할 수 있으며, 그 결과 크기가 요소의 컨테이너 크기에 맞게 시각적으로 조정됩니다.

joinCount

joinCount 필드는 관심분야 그룹이 지속적으로 저장된 기간 중 지난 30일 동안 이 관심분야 그룹에 가입한 횟수입니다 (즉, 탈퇴 또는 멤버십 만료로 인한 기기의 관심분야 그룹 저장용량에 공백이 없음).

recency

recency 필드는 이 기기가 이 관심분야 그룹에 참여한 시점부터 현재까지의 시간 (분)입니다.

bidCount

관심분야 그룹이 입찰을 제출한 횟수입니다.

prevWinsMs

prevWinMs 필드에는 관심분야 그룹의 낙찰된 광고와 이전에 낙찰된 후 경과한 시간(밀리초)이 포함됩니다. 여기서 광고 객체에는 renderURL 및 메타데이터 필드만 포함됩니다.

wasmHelper

관심분야 그룹의 biddingWasmHelperURL에 기반한 WebAssembly.Module 객체입니다.

dataVersion

구매자의 키-값 서비스 응답에서 가져온 데이터 버전 값입니다.

adComponentsLimit

generateBid()에서 반환할 수 있는 광고 구성요소의 최대 개수

입찰가 계산

입찰가를 계산하기 위해 generateBid()의 코드는 함수 매개변수의 속성을 사용할 수 있습니다.

예를 들면 다음과 같습니다.

function generateBid(interestGroup, auctionSignals, perBuyerSignals,
    trustedBiddingSignals, browserSignals) {
  return {
   //  ...
    bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
    // ...
  }
}

입찰가 반환

generateBid()는 다음 속성이 있는 객체를 반환합니다.

속성 역할
ad 광고에 대한 임의 메타데이터입니다(예: 판매자가 이 입찰 또는 광고 소재에 대해 알아야 하는 정보). 판매자는 입찰 및 결정 로직에서 이 정보를 사용합니다.
adCost 보고 광고주 클릭 또는 전환 비용을 generateBid에서 reportWin으로 전달하는 데 사용되는 숫자 값입니다. 이 숫자의 정밀도는 8비트 가수와 8비트 지수로 제한되며, 반올림은 확률적으로 수행됩니다.
adComponents navigator.joinAdInterestGroup()에 전달된 관심분야 그룹 인수의 adComponents 속성에서 가져온 여러 조각으로 구성된 광고를 위한 최대 20개의 구성요소(선택사항) 목록입니다.
allowComponentAuction 이 입찰가를 구성요소 입찰에서 사용할 수 있는지 여부를 나타내는 부울 값입니다. 지정하지 않을 경우 기본값은 'false'입니다.
bid 입찰에 참여할 숫자 입찰가입니다. 판매자는 다양한 구매자의 입찰가를 비교할 수 있어야 합니다. 따라서 입찰가는 판매자가 선택한 단위 (예: 1, 000원당 달러)여야 합니다. 입찰가가 0이거나 음수이면 이 관심분야 그룹은 판매자의 입찰에 전혀 참여하지 않습니다. 이 메커니즘을 통해 구매자는 광고가 게재되거나 게재되지 않는 위치에 대한 광고주 규칙을 구현할 수 있습니다.
bidCurrency 입찰 시 사용되는 통화로, 통화 확인에 사용됩니다.
render 이 입찰가가 낙찰된 경우 렌더링되어야 하는 광고 소재를 설명하는 사전입니다. 여기에는 다음과 같은 정보가 포함됩니다.
  • url: 광고 소재의 URL
  • width: 광고 소재의 너비입니다. 이 크기는 관심분야 그룹의 선언과 일치하며 광고 소재 URL에 있는 모든 광고 크기 매크로로 대체됩니다. 광고가 분리 프레임에 로드되면 분리 프레임의 내부 프레임 (즉, 광고 소재에 표시되는 크기)이 이 크기로 고정되며 삽입기에서 변경한 프레임 크기 변경사항을 확인할 수 없습니다.
  • height: 광고 소재의 높이입니다. width에서 자세한 설명을 확인하세요.

modelingSignals

노이즈 및 버케팅 체계에 설명된 대로 노이즈와 함께 reportWin()에 전달되는 0~4095 정수 (12비트)입니다. 음수, 무한, NaN 값과 같은 잘못된 값은 무시되고 전달되지 않습니다. 하위 12비트만 전달됩니다.


구매자는 userBiddingSignals의 관심분야 그룹 생성 시점에 캡처된 퍼스트 파티 구매자 데이터의 데이터를 포함하여 generateBid() 함수에서 사용 가능한 신호를 사용하여 구매자의 낙찰 보고 함수에 전달되는 값을 도출하여 ML 모델 학습을 지원할 수 있습니다.