Protected Audience API 입찰을 구성하는 방법을 알아봅니다.
판매자가 실행하는 기기 내 입찰
기기 내 Protected Audience 입찰은 광고 공간을 판매하는 사이트에서 실행되며, 입찰을 실행하는 당사자를 판매자라고 합니다. 많은 당사자가 판매자 역할을 할 수 있습니다. 사이트에서 자체 광고 입찰을 실행하거나, 서드 파티 스크립트를 포함하여 입찰을 실행하거나, 기기 내 입찰을 다른 서버 측 광고 입찰 활동과 결합하는 SSP를 사용할 수 있습니다. 판매자는 기기 내 광고 입찰에서 세 가지 기본 작업을 수행합니다.
- 판매자는 (a) 참여할 수 있는 구매자와 (b) 해당 구매자의 관심분야 그룹에서 입찰에 참여할 수 있는 입찰을 결정합니다. 이를 통해 판매자는 페이지에 게재될 수 있는 광고에 대한 사이트 규칙을 적용할 수 있습니다.
- 판매자는 각 입찰가의 가격과 메타데이터를 고려하고 '선호도' 점수를 계산하는 JavaScript 코드인 입찰의 비즈니스 로직을 담당합니다. 선호도 점수가 가장 높은 입찰이 입찰에서 낙찰됩니다.
- 판매자는 낙찰가 및 기타 지급액에 관한 정보를 포함하여 입찰 결과에 대한 보고를 실행합니다. 낙찰자와 낙찰되지 않은 구매자도 자체 보고를 할 수 있습니다.
이 문서에서는 기기 내 입찰을 구성하고 시작하는 방법을 설명합니다.
Protected Audience API 광고 입찰 구성
Protected Audience API 광고 입찰을 실행하려면 먼저 입찰을 구성해야 합니다. auctionConfig 객체를 만들어 이를 수행합니다.
다음은 이러한 구성의 예시입니다.
const auctionConfig = {
seller: 'https://seller.example',
decisionLogicUrl: ...,
trustedScoringSignalsUrl: ...,
interestGroupBuyers: ['https://buyer-1.example', 'https://buyer-2.example', ...],
auctionSignals: {...},
sellerSignals: {...},
sellerTimeout: 100,
perBuyerSignals: {
'https://buyer-1.example': {...},
'https://buyer-2.example': {...},
...
},
perBuyerTimeouts: {
'https://buyer-1.example': 50,
'https://buyer-2.example': 200,
'*': 150,
...
},
componentAuctions: [
{
'seller': 'https://component-seller.example',
'decisionLogicUrl': ...,
...
},
...
],
resolveToConfig: [true|false],
};
숙박 시설 AuctionConfig개
필수 속성
auctionConfigs의 필수 속성은 seller, decisionLogicUrl, interestGroupBuyers뿐입니다.
| 속성 | 예 | 역할 |
|---|---|---|
| 판매자 | https://seller.example | 판매자의 출처입니다. |
| decisionLogicUrl | https://seller.example/decision-logic.js | 입찰 JavaScript 결정 로직 워크릿의 URL입니다. 이 필드의 출처는 판매자 필드와 동일해야 합니다. |
| interestGroupBuyers | [https://buyer-1.example, https://buyer-2.example, ...] |
입찰에 참여하도록 요청된 모든 관심분야 그룹 소유자의 출처 |
선택 속성
auctionConfigs의 나머지 속성은 선택사항입니다.
| 속성 | 예 | 역할 |
|---|---|---|
| trustedScoringSignalsUrl | https://seller.example/scoring-signals | 판매자의 키/값 서버 URL입니다. 이는 광고 점수 부여 프로세스 중에 광고 소재의 렌더링 URL을 키로 사용하여 쿼리됩니다. 이 필드의 출처는 판매자 필드와 동일해야 합니다. |
| auctionSignals | {"category":"news"} | 입찰에 참여하는 모든 구매자와 판매자가 사용할 수 있는 신호를 나타내는 JSON 직렬화 가능 객체입니다. |
| sellerSignals | {...} | 판매자만 사용할 수 있는 신호를 나타내는 JSON 직렬화 가능 객체입니다. |
| perBuyerSignals | {https://dsp.example: {...}, https://another-buyer.example: {...}, ... } |
특정 구매자가 사용할 수 있는 신호입니다. 신호는 판매자로부터 제공될 수도 있고 구매자 자체적으로 제공될 수도 있습니다. |
| perBuyerTimeouts | {https://www.example-dsp.com: 50, https://www.another-buyer.com: 200, *: 150, ...}, |
특정 구매자의 generateBid() 스크립트의 최대 런타임(밀리초)입니다. 와일드카드 기호는 특정 제한 시간이 정의되지 않은 모든 구매자에게 적용됩니다. |
| sellerTimeout | 100 | 판매자의 scoreAd() 스크립트의 최대 런타임(밀리초)입니다. |
| componentAuctions | [{seller: https://www.some-other-ssp.com, decisionLogicUrl: ..., ...}, ...] | 구성요소 입찰 |
| resolveToConfig | true|false | runAdAuction()에서 반환된 프로미스가 true인 경우 FencedFrameConfig로 확인되도록 (즉 <fencedframe>에서 사용) 지시하는 불리언입니다. false인 경우 불투명 urn:uuid URL로 확인되도록 (즉 <iframe>에서 사용) 지시합니다. 기본값은 false입니다. |
비동기적으로 신호 제공
일부 신호 (auctionSignals, sellerSignals, perBuyerSignals, perBuyerTimeouts 필드로 구성된 신호)의 값은 구체적인 값이 아닌 Promise로 선택적으로 제공될 수 있습니다. 이를 통해 스크립트 및 신뢰할 수 있는 신호 로드, 격리된 워크릿 프로세스 실행과 같은 일부 입찰 부분이 이러한 값의 계산 (또는 네트워크 검색)과 겹칠 수 있습니다. 작업 세트 스크립트에는 확인된 값만 표시됩니다. 이러한 Promise가 거부되면 이미 실패했거나 다른 방식으로 중단되지 않는 한 입찰이 중단됩니다.
여러 판매자가 참여하는 입찰 구성
경우에 따라 여러 판매자가 입찰에 참여하고 싶어할 수 있으며, 별도의 입찰의 낙찰자가 다른 판매자가 운영하는 다른 입찰로 전달될 수 있습니다. 전달되는 이러한 별도의 입찰을 구성요소 입찰이라고 합니다.
이러한 구성요소 입찰을 용이하게 하기 위해 componentAuctions 객체에는 각 판매자의 구성요소 입찰에 대한 추가 입찰 구성이 포함될 수 있습니다. 이러한 각 구성요소 입찰의 낙찰가는 입찰을 최종적으로 결정하는 '최상위' 입찰에 전달됩니다. 구성요소 입찰의 auctionConfig에는 자체 componentAuctions이 없을 수 있습니다. componentAuctions가 비어 있지 않으면 interestGroupBuyers는 비어 있어야 합니다. 즉, 특정 Protected Audience 입찰의 경우 단일 판매자가 있고 구성요소 입찰이 없거나 모든 입찰이 구성요소 입찰에서 발생하며 최상위 입찰은 구성요소 입찰의 낙찰자 중에서만 선택할 수 있습니다.
입찰 실행
판매자가 navigator.runAdAuction()를 호출하여 광고 입찰을 시작하도록 사용자 브라우저에 요청합니다.
try {
const auctionResultPromise = navigator.runAdAuction(auctionConfig);
} catch (error) {
// Handle error.
}
runAdAuction() 호출은 광고로 확인되는 Promise를 반환합니다. 게시자 페이지의 코드가 낙찰된 광고를 검사하거나 runAdAuction()의 결과에서 콘텐츠를 파악할 수는 없습니다. AuctionConfig에서 resolveToConfig 플래그가 true로 설정된 경우, 경계가 지정된 프레임에서만 렌더링할 수 있는 FencedFrameConfig 객체가 반환됩니다. 플래그가 false로 설정된 경우 iframe에서 렌더링할 수 있는 불투명 URN이 반환됩니다. runAdAuction이 null 값을 반환하여 선택된 광고가 없음을 나타낼 수 있습니다. 이 경우 판매자는 문맥 타겟팅 광고를 렌더링할 수 있습니다.