아키텍처

입찰 서비스의 입찰 아키텍처 알아보기

개요

입찰 서비스 (B&A)Protected Audience (PA) 입찰을 촉진하기 위해 신뢰할 수 있는 실행 환경 (TEE)에서 실행되는 광고 구매자 및 판매자를 위한 서비스 집합을 제공합니다. 이 페이지에서는 B&A를 PA 입찰에서 사용할 수 있는 다양한 입찰 구성을 설명합니다.

정의

용어 설명
Protected Audience 입찰 크로스 사이트 데이터가 포함된 광고 입찰
컨텍스트 입찰 교차 사이트 데이터가 포함되지 않는 광고 입찰입니다. 이 경매는 기존 실시간 입찰 (RTB) 경매 경로를 따릅니다.
통합 입찰 요청 Protected Audience 입찰과 컨텍스트 입찰의 페이로드를 모두 포함하는 브라우저에서 판매자의 JavaScript 코드로 전송된 요청입니다.
판매자 광고 서비스 (SAS) 브라우저의 통합 입찰 요청을 처리하는 서비스입니다. 판매자의 기존 RTB 광고 서버일 수 있습니다. SAS는 문맥 입찰과 Protected Audience 입찰을 모두 오케스트레이션합니다.
구매자 광고 서비스 문맥 입찰가를 제출하는 서비스를 나타냅니다. 이는 구매자의 기존 ORTB 광고 서버일 수 있습니다.

구매자 및 판매자를 위한 서비스

B&A 서비스는 구매자와 판매자를 위한 네 가지 서비스로 구성됩니다.

  • 구매자의 경우 입찰 서비스구매자 프런트엔드 (BFE) 서비스를 사용할 수 있습니다.
  • 판매자의 경우 입찰 서비스판매자 프런트엔드 (SFE) 서비스를 사용할 수 있습니다.
참여자 서비스 설명
수입상 구매자 프런트엔드 (BFE) 서비스 이 서비스는 판매자의 SFE에서 보낸 GetBids 요청을 처리합니다. 페이로드를 복호화하고, K/V 신호를 가져오고, 입찰 서비스GenerateBids를 호출합니다.
입찰 서비스 서비스는 BFEGenerateBids 요청을 처리합니다. 구매자의 입찰 로직을 실행하고 입찰가를 생성하는 역할을 합니다.
판매자 판매자 프런트엔드 (SFE) 서비스 서비스는 판매자 광고 서비스SelectAd 요청을 처리합니다. 페이로드를 복호화하고, BFEGetBids 작업을 호출하고, K/V 신호를 가져오고, Auction ServiceScoreAd 작업을 호출한 다음, 암호화된 B&A 입찰 결과를 SAS에 반환합니다.

서비스가 서버 오케스트레이션 멀티 판매자 입찰에서 최상위 판매자 스택의 일부인 경우 서비스는 SASGetComponentAuctionCiphertexts 요청도 처리합니다.

입찰 서비스 서비스는 SFEScoreAd 요청을 처리합니다. 판매자의 점수 로직을 실행하고 입찰의 선호도 점수를 제공합니다.

웹용 PA B&A 입찰의 아키텍처

다음 다이어그램은 단일 판매자와 단일 구매자가 있는 B&A 서비스의 기본 Protected Audience 입찰을 설명합니다. 두꺼운 빨간색 테두리 상자는 TEE에서 실행되는 서비스를 나타냅니다.

클라이언트 측 JavaScript 코드가 통합 입찰 요청을 SSP에 전송합니다. SAS가 SFE에 요청을 보내고 SFE가 BFE에 입찰 요청을 보냅니다.
(전체 크기 다이어그램)
  1. 게시자 페이지의 SSP JavaScript 코드는 navigator.getInterestGroupAdAuctionData()를 호출하여 암호화된 B&A 광고 입찰 데이터를 생성합니다.
    • 이 암호화된 페이로드에는 구매자의 데이터가 포함되어 있으며 TEE의 SFE 내에서만 복호화할 수 있습니다.
  2. SSP JavaScript 코드가 판매자 광고 서비스에 통합 입찰 요청을 전송합니다.
    • 통합 입찰 요청에는 일반 텍스트 ORTB 컨텍스트 입찰 페이로드와 암호화된 B&A 입찰 페이로드가 모두 포함됩니다.
    • 판매자 광고 서비스는 기존 광고 서버이며 TEE에서 실행되지 않습니다.
  3. 판매자 광고 서비스는 DSP의 RTB 서비스를 호출하여 문맥 광고 입찰 및 후속 PA 입찰에 전달할 구매자 신호를 요청합니다.
    • 이는 구매자가 PA 입찰에 참여하겠다는 의사를 표시하는 단계일 수 있습니다.
  4. 컨텍스트 광고 입찰이 완료되면 SAS는 SFE 서비스에 SelectAd 요청을 전송합니다.
    • 문맥 낙찰 입찰가 및 구매자 신호가 SelectAd 요청 페이로드에 추가됩니다.
  5. SSP의 SFE 서비스가 GetBids 요청으로 DSP의 BFE 서비스를 호출합니다.
  6. DSP의 BFE가 GenerateBids 요청으로 입찰 서비스를 호출합니다.
  7. SFE에서 입찰을 수신하면 ScoreAd 호출이 입찰 서비스에 이루어집니다.
    • 가장 높은 선호도 점수를 가진 입찰가가 SAS에 반환된 후 페이지의 JavaScript 코드로 전달됩니다.
  8. 암호화된 입찰 서버 입찰 결과를 navigator.runAdAuction() 호출에 전달하여 브라우저에서 입찰이 완료됩니다.

입찰 구성

B&A 서비스가 포함된 Protected Audience 입찰은 다음과 같은 방법으로 구성할 수 있습니다.

  • B&A 구매자가 있는 단일 판매자 입찰
  • 기기 내 구매자와 B&A 구매자가 참여하는 혼합 모드 입찰
  • 기기 조정 또는 서버 조정이 가능한 멀티 판매자 입찰

참여자

각 입찰 구성을 설명하기 위해 이 가이드에서는 다음 참여자를 사용합니다.

참여자 설명
DSP-A 기기 내 구매자
DSP-B 기기 내 구매자
DSP-X B&A 구매자
DSP-Y B&A 구매자
SSP-TOP 최상위 판매자
SSP-OD 온디바이스 전용 판매자
SSP-BA B&A 전용 판매자
SSP-MIX 혼합 모드 판매자

DSP는 4가지가 있습니다.

  • DSP-ADSP-B는 기기 내 입찰에만 참여합니다.
  • DSP-XDSP-Y는 기기 내 입찰과 B&A 입찰에 모두 참여합니다.

SSP는 4개이며 각 판매자는 서로 다른 입찰 구성을 실행합니다.

  • SSP-OD 기기 내 전용 입찰을 실행합니다.
  • SSP-BA에서 B&A 전용 입찰을 실행합니다.
  • SSP-MIX에서 혼합 모드 입찰을 실행합니다.
  • SSP-TOP가 복수 판매자 입찰을 실행합니다.
    • SSP-OD/BA/MIXSSP-TOP의 다중 판매자 경매의 구성요소 판매자로 참여

단일 판매자 B&A 경매

단일 판매자 설정에서는 한 판매자가 여러 구매자가 참여하는 입찰을 운영합니다. 판매자가 B&A 입찰을 실행하는 경우 구매자는 B&A 서비스의 구매자 스택을 실행하여 입찰에 입찰해야 합니다. 구매자와 판매자는 동일한 클라우드 제공업체를 사용할 필요가 없습니다.

하나의 SFE가 여러 BFE와 통신하여 입찰가를 수신하는 단일 판매자 아키텍처
(전체 크기 다이어그램)

위 설정에서 SSP-BADSP-XDSP-Y가 B&A 서비스의 구매자 스택을 사용하여 참여하는 B&A 입찰을 실행합니다. 판매자의 광고 서비스는 먼저 DSP-XDSP-Y에 대해 문맥 입찰을 실행한 다음 SelectAd 요청을 판매자의 SFE 서비스에 전송하여 Protected Audience 입찰을 실행합니다. 문맥 입찰 낙찰가와 각 구매자의 신호가 SelectAd 호출에 전달됩니다. 그런 다음 SFE 서비스는 DSP-XDSP-Y의 BFE에 GetBids 요청을 전송합니다. 그러면 BFE가 입찰 서비스를 호출하여 입찰을 생성합니다.

암호화된 B&A 입찰 결과가 클라이언트에 반환되고 runAdAuction() 호출에 전달됩니다. 단일 판매자 입찰 구성은 다음과 같습니다.

await navigator.runAdAuction({
  seller: 'https://ssp-ba.example',
  requestId: 'g8312cb2-da2d-4e9b-80e6-e13dec2a581c',
  serverResponse: Uint8Array(560) [193, 120, 4, ] // Encrypted B&A auction result
})

requestId 값은 클라이언트의 getInterestGroupAdAuctionData() 호출에서 가져오고 serverResponse 데이터는 서버 측 B&A 입찰에서 가져옵니다.

혼합 모드 입찰

혼합 모드 구성에서 구매자는 온디바이스 또는 B&A에서 판매자의 입찰에 참여할 수 있습니다. 파란색 화살표는 온디바이스 입찰 경로를 나타내고 빨간색 화살표는 B&A 입찰 경로를 나타냅니다.

구매자가 기기 또는 B&A에서 입찰을 제출할 수 있는 혼합 모드 판매자 아키텍처
(전체 크기 다이어그램)

이 설정에서 DSP-ADSP-B는 기기에서 입찰을 제출하는 구매자이고 DSP-XDSP-Y는 B&A를 사용하여 입찰을 제출하는 구매자입니다. 기기 내 구매자는 브라우저에서 기기 내 PA 입찰에 참여하고 B&A 구매자는 단일 판매자 입찰 섹션에 설명된 B&A 입찰 설정에 참여합니다.

문맥 입찰은 문맥 입찰 낙찰가와 구매자 신호를 수집하기 위해 모든 구매자에 대해 먼저 실행됩니다. 그런 다음 B&A 입찰이 실행되고 문맥 입찰의 구매자 신호가 SFE에 대한 SelectAd 요청으로 전달됩니다. SFE에서 반환된 암호화된 B&A 입찰 결과가 브라우저로 전달됩니다. B&A 입찰 후 결과는 기기 내 구매자가 참여하는 기기 내 입찰에 제공됩니다.

입찰의 온디바이스 부분에 대한 혼합 모드 단일 판매자 입찰 구성은 다음과 유사합니다.

await navigator.runAdAuction({
  seller: 'https://ssp-mix.example',
  decisionLogicURL: 'https://ssp-ba.example/score-ad.js',
  componentAuctions: [
    // B&A auction
    {
      seller: 'https://ssp-mix.example',
      requestId: 'f5135cb2-da2d-4e9b-80e6-e13dec2a581c',
      serverResponse: Uint8Array(560) [133, 20, 14, ]
    },
    // On-device auction
    {
      seller: 'https://ssp-mix.example',
      interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'],
      decisionLogicURL: 'https://ssp-mix.example/on-device-score-ad.js',
    }
  ]
})

기기 내 입찰과 B&A 입찰의 병렬화

병렬화가 없으면 문맥 광고 입찰이 실행된 다음 B&A 입찰, 마지막으로 온디바이스 입찰이 순차적으로 실행됩니다. 병렬화가 구현되면 문맥 입찰이 다시 먼저 실행되지만 B&A 입찰이 완료되기 전에 기기 내 입찰을 병렬로 시작하기 위해 결과와 신호가 클라이언트로 다시 스트리밍됩니다.

문맥 타겟팅 입찰가와 신호, SelectAd 결과가 브라우저 JavaScript 코드에 다시 스트리밍되는 방식을 설명하는 다이어그램
(전체 크기 다이어그램)

클라이언트의 JavaScript 코드는 통합 입찰 요청을 SAS에 전송하고 SAS는 컨텍스트 입찰과 PA B&A 입찰을 시작합니다. SAS가 구매자의 RTB 서버로부터 응답을 수신하면 모든 입찰이 수신된 후 구매자의 온디바이스 입찰 신호가 컨텍스트 입찰 낙찰자와 함께 브라우저로 다시 스트리밍될 수 있습니다. 스트리밍된 구매자 신호는 기기에서 입찰가를 생성하는 데 사용되며, 문맥 광고 낙찰자는 입찰가를 평가할 때 최저 입찰가로 사용됩니다.

SAS에서 판매자는 브라우저로 컨텍스트 광고 데이터 스트리밍 시 Ad-Auction-Result-Nonce 응답 헤더에 설정되는 UUID nonce를 생성합니다. B&A 입찰을 위해 SFE에 대한 SelectAd 호출에 동일한 nonce가 사용되며, 이 nonce는 SFE에서 반환된 SelectAd 응답에 포함됩니다. 클라이언트 측 입찰 단계에서 브라우저는 Ad-Auction-Result-Nonce 응답 헤더의 nonce가 암호화된 입찰 결과 페이로드의 nonce와 일치하는지 확인합니다.

혼합 모드 병렬 처리에 대해 자세히 알아보려면 설명을 참고하세요.

다중 판매자 입찰

B&A를 사용하여 PA 멀티 판매자 입찰을 실행하는 방법에는 두 가지가 있습니다.

  1. 각 구성요소 판매자의 광고 서비스 호출이 브라우저에서 시작되는 기기 주도 입찰
  2. 각 구성요소 판매자의 광고 서비스에 대한 호출이 최상위 판매자의 광고 서비스에서 시작되는 서버 오케스트레이션 입찰

기기에서 조정하는 다중 판매자 입찰

기기 조정 멀티 판매자 입찰에서 각 구성요소 판매자는 원하는 구성으로 입찰을 자유롭게 실행할 수 있습니다. 온디바이스 판매자, B&A 판매자, 혼합 모드 판매자 모두 최상위 입찰에 참여할 수 있습니다.

여러 판매자가 서로 다른 입찰 구성을 실행하여 최상위 판매자에게 입찰 결과를 제출하는 방법을 설명하는 다이어그램
(전체 크기 다이어그램)
이 설정에서 최상위 판매자인 `SSP-TOP`은 `SSP-OD`, `SSP-BA`, `SSP-MIX` 가 참여하는 다중 판매자 입찰을 실행합니다. * 기기 내 전용 PA 입찰을 실행하는 `SSP-OD`는 기기 내 구성요소 입찰 구성을 최상위 판매자에게 제출합니다. * B&A 입찰을 실행하는 `SSP-BA`는 판매자 광고 서비스에 통합 입찰 요청을 보내고 자체 문맥 및 B&A 입찰을 실행합니다. 결과는 최상위 판매자에게 제출됩니다. * 혼합 모드 입찰을 실행하는 `SSP-MIX`는 먼저 서버에서 B&A 입찰을 실행한 다음 B&A 입찰 결과와 온디바이스 입찰 구성을 모두 제출합니다. 최상위 판매자는 각 판매자로부터 구성요소 광고 구성을 수집하고 다음과 유사한 광고 구성을 생성합니다. ```js await navigator.runAdAuction({ seller: 'https://ssp-top.example', decisionLogicURL: 'https://ssp-top.example/score-ad.js', componentAuctions: [ // SSP-BA's B&A-only auction { seller: 'https://ssp-ba.example', requestId: 'g8312cb2-da2d-4e9b-80e6-e13dec2a581c', serverResponse: Uint8Array(560) [193, 120, 4, …] // Encrypted B&A auction result }, // SSP-MIX's B&A auction of mixed-mode { seller: 'https://ssp-mix.example', requestId: 'f5135cb2-da2d-4e9b-80e6-e13dec2a581c', serverResponse: Uint8Array(560) [133, 20, 4, …] // Encrypted B&A auction result }. // SSP-MIX's on-device auction of mixed-mode { seller: 'https://ssp-mix.example', interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'], decisionLogicURL: 'https://ssp-mix.example/score-ad.js', } // SSP-OD's on-device auction { seller: 'https://ssp-od.example', interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'], decisionLogicURL: 'https://ssp-od.example/score-ad.js', } ] }) ``` ### 서버에서 오케스트레이션된 다중 판매자 광고 입찰 서버에서 오케스트레이션된 다중 판매자 광고 입찰에서는 구성요소 판매자의 광고 서비스 호출이 최상위 판매자의 광고 서비스에서 이루어집니다. 이 설정에서는 구성요소 판매자가 온디바이스 또는 혼합 모드 경매를 실행할 수 없습니다. 모든 판매자는 B&A를 사용해야 하고 모든 구매자는 B&A를 사용하여 입찰가를 제출해야 합니다.
최상위 SSP가 판매자 광고 서비스에 통합 입찰 요청을 보냅니다. 판매자 광고 서비스가 SFE를 호출하여 GetComponentAuctionCipherTexts 작업을 실행합니다. 그런 다음 반환된 암호문은 자체 B&A 입찰을 진행하는 각 구성요소 판매자의 광고 서비스로 전송됩니다.
(전체 크기 다이어그램)

이 다이어그램에서 SSP-TOPSSP-BA-XSSP-BA-Y가 참여하는 서버 오케스트레이션 다중 판매자 입찰을 실행합니다.

모든 참여자의 컨텍스트 및 PA 입찰 페이로드가 포함된 단일 통합 입찰 요청이 브라우저에서 최상위 판매자의 광고 서비스로 전송됩니다. 그런 다음 SAS는 페이로드와 함께 SFE에 GetComponentAuctionCiphertexts 호출을 합니다. SFE는 페이로드를 복호화하고 각 구성요소 판매자별로 페이로드를 분리한 후 다시 암호화된 페이로드를 최상위 판매자의 SAS에 반환합니다.

GetComponentAuctionCiphertexts 요청 및 응답의 프로토 정의는 다음과 같습니다.

// Request sent from the top-level seller's ad service to SFE
message GetComponentAuctionCiphertextsRequest {
  bytes protected_auction_ciphertext = 1; // Generated in the browser
  repeated string component_sellers = 2; // The list of all component sellers
}

// Response returned from SFE to the top-level seller's ad service
message GetComponentAuctionCiphertextsResponse {
  // A map of component sellers and their re-encrypted payloads
  map<string, bytes> seller_component_ciphertexts = 1;
}

각 구성요소 판매자의 페이로드를 사용하여 최상위 판매자의 SAS가 구성요소 판매자의 SAS를 호출하고 각 구성요소 SAS가 구성요소 B&A 입찰을 실행합니다. 그런 다음 구성요소 입찰 결과가 최상위 판매자의 SFE에 반환되고 구성요소 입찰가가 최상위 판매자의 입찰 서비스에 의해 점수가 매겨집니다. 가장 높은 바람직성 점수를 가진 입찰이 SFE에 반환되고 암호화된 페이로드가 SAS로 전송되어 클라이언트에 반환됩니다. 브라우저에서 최상위 판매자는 navigator.runAdAuction()를 호출하고 암호화된 서버 입찰 결과 페이로드를 제공하여 입찰을 완료합니다.

다음 단계

이 가이드를 읽은 후 다음 단계를 따르세요.

자세히 알아보기

궁금한 점이 있으신가요?