아키텍처

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

개요

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

정의

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

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

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

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

서비스가 서버에서 조정하는 복수 판매자 입찰의 최상위 판매자 스택에 포함된 경우 서비스는 SASGetComponentAuctionCiphertexts 요청도 처리합니다.

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

웹용 PA 입찰의 아키텍처

다음 다이어그램은 단일 판매자와 단일 구매자가 있는 입찰 서비스가 포함된 기본 Protected Audience 입찰을 설명합니다. 빨간색으로 두껍게 윤곽선이 그어진 상자는 TEE에서 실행되는 서비스를 나타냅니다.

클라이언트 측 JavaScript 코드가 통합 입찰 요청을 SSP로 전송합니다. SAS가 SFE에 요청을 전송하고 SFE는 BFE에 입찰 요청을 전송합니다.

(전체 크기 다이어그램)

  1. 게시자 페이지의 SSP JavaScript 코드는 navigator.getInterestGroupAdAuctionData()를 호출하여 암호화된 B&A 광고 입찰 데이터를 생성합니다.
    • 이 암호화된 페이로드에는 구매자의 데이터가 포함되어 있으며 TEE의 SFE 내에서만 복호화할 수 있습니다.
  2. SSP JavaScript 코드가 판매자 광고 서비스에 통합 입찰 요청을 전송합니다.
    • 통합 입찰 요청에는 일반 텍스트 ORTB 문맥 입찰 페이로드와 암호화된 입찰 페이로드가 모두 포함됩니다.
    • 판매자 광고 서비스는 기존 광고 서버이며 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는 입찰 전용 경매를 실행합니다.
  • SSP-MIX는 혼합 모드 입찰을 실행합니다.
  • SSP-TOP가 복수 판매자 입찰을 실행합니다.
    • SSP-OD/BA/MIXSSP-TOP의 다중 판매자 입찰의 구성요소 판매자로 참여합니다.

단일 판매자 B&A 입찰

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

하나의 SFE가 여러 BFE와 통신하여 입찰가를 수신하는 단일 판매자 아키텍처

(전체 크기 다이어그램)

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

암호화된 입찰 결과가 클라이언트에 반환되고 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 입찰에서 가져옵니다.

혼합 모드 입찰

혼합 모드 구성에서 구매자는 기기 내 또는 입찰 서버에서 판매자의 입찰에 참여할 수 있습니다. 파란색 화살표는 기기 내 입찰 경로를 나타내고 빨간색 화살표는 입찰자와 입찰자 간 입찰 경로를 나타냅니다.

구매자가 기기 내 또는 입찰에서 입찰가를 제출할 수 있는 혼합 모드 판매자 아키텍처

(전체 크기 다이어그램)

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

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

입찰의 기기 내 부분에 대한 혼합 모드 단일 판매자 입찰 구성은 다음과 유사합니다.

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 입찰이 완료되기 전에 기기 내 입찰을 동시에 시작할 수 있도록 결과와 신호가 클라이언트로 다시 스트리밍됩니다.

문맥 입찰가 및 신호, SelectAd 결과가 브라우저 JavaScript 코드로 다시 스트리밍되는 방식을 보여주는 다이어그램

(전체 크기 다이어그램)

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

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

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

복수 판매자 입찰

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

  1. 각 구성요소 판매자의 광고 서비스 호출이 브라우저에서 시작되는 기기 조정 입찰
  2. 각 구성요소 판매자의 광고 서비스 호출이 최상위 판매자의 광고 서비스에서 시작되는 서버 조정 입찰

기기에서 조정되는 복수 판매자 입찰

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

서로 다른 입찰 구성을 실행하는 여러 판매자가 입찰 결과를 최상위 판매자에게 제출하는 방법을 보여주는 다이어그램

(전체 크기 다이어그램)

이 설정에서 최상위 판매자인 SSP-TOPSSP-OD, SSP-BA, SSP-MIX이 참여하는 복수 판매자 입찰을 실행합니다.

  • 기기 내 전용 PA 입찰을 실행하는 SSP-OD는 기기 내 구성요소 입찰 구성을 최상위 판매자에게 제출합니다.
  • 입찰을 실행하는 SSP-BA는 판매자 광고 서비스에 통합 입찰 요청을 전송하고 자체 문맥 및 입찰 입찰을 실행합니다. 결과는 최상위 판매자에게 제출됩니다.
  • 혼합 모드 입찰을 실행하는 SSP-MIX는 먼저 서버에서 B&A 입찰을 실행한 다음 B&A 입찰 결과와 기기 내 입찰 구성을 모두 제출합니다.

최상위 판매자는 각 판매자로부터 구성요소 입찰 구성을 수집하고 다음과 유사한 입찰 구성을 생성합니다.

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 작업을 실행합니다. 그런 다음 반환된 암호화 텍스트는 자체 입찰을 진행하는 각 구성요소 판매자의 광고 서비스로 전송됩니다.

(전체 크기 다이어그램)

이 다이어그램에서 SSP-TOPSSP-BA-XSSP-BA-Y가 참여하는 서버 조정 다중 판매자 입찰을 실행합니다.

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

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

// 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는 구성요소 입찰을 실행합니다. 그런 다음 구성요소 입찰의 결과가 최상위 판매자의 SFE로 반환되고 구성요소 입찰 입찰가는 최상위 판매자의 입찰 서비스에서 점수를 받습니다. 선호도 점수가 가장 높은 입찰가가 SFE로 반환되고 암호화된 페이로드는 SAS로 전송되어 클라이언트에게 반환됩니다. 브라우저에서 최상위 판매자는 navigator.runAdAuction()를 호출하고 암호화된 서버 입찰 결과 페이로드를 제공하여 입찰을 완료합니다.

다음 단계

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

자세히 알아보기

궁금한 점이 있으신가요?