Architektur

Auktionsarchitektur von Gebots- und Auktionsdiensten

Übersicht

Die Gebots- und Auktionsdienste (Bidding and Auction, B&A) bieten eine Reihe von Diensten für Käufer und Verkäufer von Anzeigen, die in einer vertrauenswürdigen Ausführungsumgebung (Trusted Execution Environment, TEE) ausgeführt werden, um eine Protected Audience-Auktion (PA) zu ermöglichen. Auf dieser Seite werden die verschiedenen Auktionskonfigurationen beschrieben, die für B&A in einer PA-Auktion verwendet werden können.

Definitionen

Begriff Beschreibung
Protected Audience-Auktion Eine Anzeigenauktion, bei der websiteübergreifende Daten verwendet werden
Kontextbezogene Auktion Eine Anzeigenauktion, bei der keine Website-übergreifenden Daten verwendet werden. Diese Auktion folgt dem vorhandenen Auktionspfad für Echtzeitgebote (Real-Time Bidding, RTB).
Anfrage für gemeinsame Auktion Eine Anfrage, die vom JavaScript-Code des Verkäufers aus dem Browser gesendet wird und die Nutzlast sowohl für die Protected Audience-Auktion als auch für die kontextbezogene Auktion enthält.
Seller Ad Service (SAS) Der Dienst, der für die Verarbeitung der einheitlichen Auktionsanfrage aus dem Browser zuständig ist. Das kann der vorhandene RTB-Ad-Server eines Verkäufers sein. SAS ist für die Orchestrierung von kontextbezogenen und Protected Audience-Auktionen verantwortlich.
Anzeigenservice für Käufer Der Dienst, der für das Einreichen eines kontextbezogenen Auktionsgebots verantwortlich ist. Das kann der vorhandene ORTB-Ad-Server eines Käufers sein.

Dienste für Käufer und Verkäufer

B&A Services besteht aus vier Diensten für Käufer und Verkäufer:

  • Käufern stehen der Gebotsdienst und der Buyer Front-End-Dienst (BFE) zur Verfügung.
  • Verkäufern stehen der Auktionsdienst und der Seller Front-End (SFE) Service zur Verfügung.
Teilnehmer Dienst Beschreibung
Käufer Buyer Front-End (BFE) Service Der Dienst verarbeitet die GetBids-Anfrage von der SFE eines Verkäufers. Sie ist für das Entschlüsseln der Nutzlast, das Abrufen der K/V-Signale und das Aufrufen von GenerateBids des Bidding Service verantwortlich.
Gebotsdienst Der Dienst verarbeitet die GenerateBids-Anfrage von BFE. Sie ist für die Ausführung der Gebotslogik des Käufers und die Generierung eines Gebots verantwortlich.
Verkäufer Seller Front-End (SFE) Service Der Dienst verarbeitet die SelectAd-Anfrage vom Seller Ad Service. Sie ist für das Entschlüsseln der Nutzlast, das Aufrufen des GetBids-Vorgangs von BFE, das Abrufen der K/V-Signale, das Aufrufen des ScoreAd-Vorgangs von Auction Service und das Zurückgeben des verschlüsselten B&A-Auktionsergebnisses an SAS zuständig.

Wenn der Dienst Teil des Stacks des Top-Level-Verkäufers in einer serverorchestrierten Auktion mit mehreren Verkäufern ist, verarbeitet er auch die GetComponentAuctionCiphertexts-Anfrage von SAS.

Auktionsdienst Der Dienst verarbeitet die ScoreAd-Anfrage von SFE. Sie ist für die Ausführung der Scoring-Logik des Verkäufers und die Bereitstellung des Attraktivitätswerts eines Gebots verantwortlich.

Architektur einer PA B&A-Auktion für das Web

Das folgende Diagramm beschreibt die grundlegende Protected Audience-Auktion mit B&A Services mit einem einzelnen Verkäufer und einem einzelnen Käufer. Die dick rot umrandeten Kästen stellen Dienste dar, die in einer TEE ausgeführt werden:

Der clientseitige JavaScript-Code sendet die Anfrage für die gemeinsame Auktion an die SSP. Die SAS sendet eine Anfrage an die SFE und die SFE sendet eine Anfrage an die BFE für ein Gebot.
(Diagramm in voller Größe)
  1. Der JavaScript-Code der SSP auf der Publisher-Seite generiert die verschlüsselten Daten der B&A-Anzeigenauktion durch Aufrufen von navigator.getInterestGroupAdAuctionData().
    • Diese verschlüsselte Nutzlast enthält Käuferdaten und kann nur in einer SFE in einer TEE entschlüsselt werden.
  2. Der SSP-JavaScript-Code sendet eine Anfrage für eine gemeinsame Auktion an den Seller Ad Service.
    • Eine einheitliche Auktionsanfrage enthält sowohl die ORTB-Kontextauktionsnutzlast im Klartext als auch die verschlüsselte B&A-Auktionsnutzlast.
    • Der Seller Ad Service ist Ihr vorhandener Ad-Server und wird nicht in einer TEE ausgeführt.
  3. Der Seller Ad Service ruft den RTB-Dienst der DSP auf, um das kontextbezogene Auktionsgebot und alle Käufersignale anzufordern, die in die nachfolgende PA-Auktion einbezogen werden sollen.
    • In diesem Schritt signalisiert ein Käufer seine Absicht, an der PA-Auktion teilzunehmen.
  4. Nach Abschluss der kontextbezogenen Auktion sendet SAS die SelectAd-Anfrage an den SFE-Dienst.
    • Der SelectAd-Anfrage-Payload werden kontextbezogene Auktionsgewinnsignale und Käufersignale hinzugefügt.
  5. Der SFE-Dienst der SSP ruft den BFE-Dienst der DSP mit der GetBids-Anfrage auf.
  6. Die BFE des DSP ruft den Bidding Service mit der GenerateBids-Anfrage auf.
  7. Sobald das Gebot von SFE empfangen wurde, wird der ScoreAd-Aufruf an den Auktionsdienst gesendet.
    • Das Gebot mit dem höchsten Desirability-Wert wird an SAS zurückgegeben und dann an den JavaScript-Code auf der Seite weitergeleitet.
  8. Die Auktion wird im Browser abgeschlossen, indem das verschlüsselte Ergebnis der B&A-Auktion an den navigator.runAdAuction()-Aufruf übergeben wird.

Auktionskonfigurationen

Eine Protected Audience-Auktion mit B&A Services kann auf folgende Weise konfiguriert werden:

  • Auktion mit nur einem Verkäufer und B&A-Käufern
  • Auktion im gemischten Modus mit On-Device-Käufern und B&A-Käufern
  • Auktion mit mehreren Verkäufern, die vom Gerät oder vom Server orchestriert werden kann

Teilnehmer

Zur Beschreibung der einzelnen Auktionskonfigurationen werden in diesem Leitfaden die folgenden Teilnehmer verwendet:

Teilnehmer Beschreibung
DSP-A Käufer über das Gerät
DSP-B Käufer über das Gerät
DSP-X B&A-Käufer
DSP-Y B&A-Käufer
SSP-TOP Verkäufer der obersten Ebene
SSP-OD Verkäufer, der nur auf dem Gerät verfügbar ist
SSP-BA Verkäufer mit B&A-only
SSP-MIX Verkäufer mit mehreren Vertriebskanälen

Es gibt vier DSPs:

  • DSP-A und DSP-B nehmen nur an Auktionen auf dem Gerät teil
  • DSP-X und DSP-Y nehmen sowohl an On-Device-Auktionen als auch an B&A-Auktionen teil.

Es gibt vier SSPs und jeder Verkäufer führt eine andere Auktionskonfiguration aus:

  • SSP-OD führt eine Auktion nur auf dem Gerät aus
  • SSP-BA führt eine Auktion nur für B&A durch
  • SSP-MIX führt eine Auktion im gemischten Modus durch
  • SSP-TOP führt eine Auktion mit mehreren Verkäufern durch:
    • SSP-OD/BA/MIX als Komponentenverkäufer an der Mehrfachverkäufer-Auktion von SSP-TOP teilnehmen

B&A-Auktion mit nur einem Verkäufer

Bei einem Setup mit einem Verkäufer führt ein Verkäufer eine Auktion durch, an der mehrere Käufer teilnehmen. Wenn der Verkäufer eine B&A-Auktion durchführt, müssen die Käufer den Käufer-Stack der B&A-Dienste verwenden, um ein Gebot für die Auktion abzugeben. Käufer und Verkäufer müssen nicht denselben Cloud-Anbieter verwenden.

Eine Architektur mit einem einzelnen Verkäufer, bei der ein SFE mit mehreren BFEs kommuniziert, um Gebote zu erhalten.
(Diagramm in voller Größe)

Bei der vorherigen Einrichtung führt SSP-BA eine B&A-Auktion durch, an der DSP-X und DSP-Y mit dem Käufer-Stack von B&A Services teilnehmen. Der Ad-Service des Verkäufers führt zuerst eine kontextbezogene Auktion für DSP-X und DSP-Y durch und dann eine Protected Audience-Auktion, indem er die SelectAd-Anfrage an den SFE-Service des Verkäufers sendet. Das erfolgreiche kontextbezogene Gebot und die Signale für jeden Käufer werden an den SelectAd-Aufruf übergeben. Der SFE-Dienst sendet dann GetBids-Anfragen an die BFE von DSP-X und DSP-Y, die ihren Gebotsdienst aufrufen, um ein Gebot zu generieren.

Das verschlüsselte Ergebnis der B&A-Auktion wird an den Client zurückgegeben und an den runAdAuction()-Aufruf übergeben. Die Konfiguration einer Auktion mit einem einzelnen Verkäufer sieht so aus:

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
})

Der Wert requestId stammt vom getInterestGroupAdAuctionData()-Aufruf auf dem Client und die serverResponse-Daten von der serverseitigen B&A-Auktion.

Auktion im gemischten Modus

In der Konfiguration im gemischten Modus können Käufer über das Gerät oder B&A an der Auktion des Verkäufers teilnehmen. Die blauen Pfeile stehen für den Auktionspfad auf dem Gerät und die roten Pfeile für den Auktionspfad für B&A:

Eine Architektur mit gemischtem Modus, in der Käufer ihre Gebote über das Gerät oder B&A einreichen können.
(Diagramm in voller Größe)

In diesem Setup sind DSP-A und DSP-B Käufer, die ihre Gebote auf dem Gerät einreichen, und DSP-X und DSP-Y Käufer, die ihre Gebote über B&A einreichen. Die On-Device-Käufer nehmen an einer On-Device-PA-Auktion im Browser teil und die B&A-Käufer an der im Abschnitt Auktion mit einem einzigen Verkäufer beschriebenen B&A-Auktion.

Die kontextbezogene Auktion wird zuerst für alle Käufer ausgeführt, um das Gewinnergebot und die Käufersignale zu erfassen. Anschließend wird die B&A-Auktion ausgeführt und die Käufersignale aus der kontextbezogenen Auktion werden in die SelectAd-Anfrage an SFE übergeben. Das verschlüsselte Ergebnis der B&A-Auktion, das von SFE zurückgegeben wird, wird an den Browser weitergeleitet. Nach der B&A-Auktion wird das Ergebnis in die On-Device-Auktion eingespeist, an der die On-Device-Käufer teilnehmen.

Eine Konfiguration für eine Einzelverkäuferauktion im gemischten Modus für den On-Device-Teil der Auktion sieht etwa so aus:

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

Parallelisierung von On-Device- und B&A-Auktionen

Ohne Parallelisierung werden die Auktionen sequenziell ausgeführt: zuerst die kontextbezogene Auktion, dann die Auktion für Markenbekanntheit und Reichweite und schließlich die On-Device-Auktion. Wenn die Parallelisierung implementiert ist, wird die kontextbezogene Auktion wieder zuerst ausgeführt. Ihr Ergebnis und ihre Signale werden jedoch an den Client zurückgegeben, um die On-Device-Auktion parallel zu starten, bevor die B&A-Auktion abgeschlossen ist.

Ein Diagramm, das beschreibt, wie das kontextbezogene Auktionsgebot, die Signale und das SelectAd-Ergebnis an den Browser-JavaScript-Code zurückgegeben werden
(Diagramm in voller Größe)

Der JavaScript-Code im Client sendet die einheitliche Auktionsanfrage an SAS. SAS startet die kontextbezogene Auktion und die PA B&A-Auktion. Wenn SAS eine Antwort vom RTB-Server eines Käufers erhält, können die Signale für die On-Device-Auktion zusammen mit dem Gewinner der kontextbezogenen Auktion an den Browser zurückgesendet werden, sobald alle Gebote eingegangen sind. Die gestreamten Käufersignale werden verwendet, um ein Gebot auf dem Gerät zu generieren. Der kontextbezogene Auktionsgewinner wird als Mindestgebot beim Bewerten der Gebote verwendet.

In SAS generiert der Verkäufer eine UUID Nonce, die beim Streamen der kontextbezogenen Auktionsdaten an den Browser im Antwortheader Ad-Auction-Result-Nonce festgelegt wird. Dieselbe Nonce wird im SelectAd-Aufruf an SFE für die B&A-Auktion verwendet und in die zurückgegebene SelectAd-Antwort von SFE aufgenommen. Während der clientseitigen Auktionsphase prüft der Browser, ob die Nonce im Ad-Auction-Result-Nonce-Antwortheader mit der Nonce in der verschlüsselten Nutzlast des Auktionsergebnisses übereinstimmt.

Weitere Informationen zur Parallelisierung im gemischten Modus

Auktion mit mehreren Verkäufern

Es gibt zwei Möglichkeiten, eine Multi-Seller-Auktion mit B&A durchzuführen:

  1. Gerätegesteuerte Auktion, bei der der Aufruf des Anzeigendienstes jedes Komponentenverkäufers vom Browser ausgeht
  2. Servergesteuerte Auktion, bei der der Aufruf des Anzeigen-Service jedes Komponentenverkäufers vom Anzeigen-Service des Top-Level-Verkäufers stammt

Gerätegesteuerte Mehrfachverkäuferauktion

Bei einer gerätegesteuerten Auktion mit mehreren Verkäufern kann jeder Komponentenverkäufer seine Auktion in einer Konfiguration seiner Wahl durchführen. On-Device-Verkäufer, B&A-Verkäufer und Verkäufer mit gemischtem Modus können alle an der Auktion auf höchster Ebene teilnehmen.

Ein Diagramm, das beschreibt, wie mehrere Verkäufer mit unterschiedlichen Auktionskonfigurationen ihr Auktionsergebnis an den Verkäufer der obersten Ebene senden können.
(Diagramm in voller Größe)
In dieser Konfiguration führt „SSP-TOP“ als Verkäufer der obersten Ebene eine Auktion mit mehreren Verkäufern durch, an der „SSP-OD“, „SSP-BA“ und „SSP-MIX“ teilnehmen: * „SSP-OD“ führt eine Auktion für die Geräteausgabe durch und sendet die Konfiguration für die Gerätekomponentenauktion an den Verkäufer der obersten Ebene. * `SSP-BA`: Dieser SSP-Anbieter führt eine B&A-Auktion durch, sendet eine Anfrage für die gemeinsame Auktion an seinen Seller Ad Service und führt seine eigenen Kontext- und B&A-Auktionen durch. Die Ergebnisse werden an den Verkäufer auf höchster Ebene gesendet. * `SSP-MIX`: Bei einer Auktion im gemischten Modus wird zuerst die B&A-Auktion auf dem Server ausgeführt. Anschließend werden sowohl das Ergebnis der B&A-Auktion als auch die Konfiguration der On-Device-Auktion übermittelt. Der Verkäufer der obersten Ebene ruft die Konfigurationen der Komponentenauktion von jedem Verkäufer ab und erstellt eine Auktionskonfiguration, die in etwa so aussieht: ```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', } ] }) ``` ### Server-orchestrated multi-seller auction In a server-orchestrated multi-seller auction, the calls to the component seller's ad services are made from the top-level seller's ad service. Bei dieser Einrichtung können Komponentenverkäufer keine On-Device- oder Mixed-Mode-Auktion durchführen. Alle Verkäufer müssen B&A verwenden und alle Käufer müssen ihre Gebote über B&A einreichen.
Die SSP auf oberster Ebene sendet eine Anfrage für eine gemeinsame Auktion an ihren Seller Ad Service. Der Seller Ad Service ruft den SFE auf, um den Vorgang „GetComponentAuctionCipherTexts“ auszuführen. Die zurückgegebenen Chiffretexte werden dann an den Anzeigendienst jedes Komponentenverkäufers gesendet, der eigene B&A-Auktionen durchführt.
(Diagramm in voller Größe)

In diesem Diagramm führt SSP-TOP eine servergesteuerte Auktion mit mehreren Verkäufern durch, an der SSP-BA-X und SSP-BA-Y teilnehmen.

Eine einzelne einheitliche Auktionsanfrage, die die Nutzlast für die kontextbezogene und die PA-Auktion für alle Teilnehmer enthält, wird vom Browser an den Anzeigenservice des Verkäufers der obersten Ebene gesendet. Anschließend führt SAS einen GetComponentAuctionCiphertexts-Aufruf an SFE mit der Nutzlast aus. SFE entschlüsselt die Nutzlast, trennt die Nutzlasten nach Komponentenverkäufer und gibt die neu verschlüsselten Nutzlasten an den SAS des Verkäufers der obersten Ebene zurück.

Die Proto-Definitionen für GetComponentAuctionCiphertexts-Anfragen und ‑Antworten sind:

// 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;
}

Mit der Nutzlast jedes Komponentenverkäufers ruft die SAS des Verkäufers der obersten Ebene die SAS der Komponentenverkäufer auf und jede Komponenten-SAS führt ihre Komponenten-B&A-Auktion aus. Die Ergebnisse der Komponentenauktionen werden dann an die SFE des Verkäufers auf höchster Ebene zurückgegeben und die Gebote der Komponentenauktionen werden vom Auktionsdienst des Verkäufers auf höchster Ebene bewertet. Das Gebot mit dem höchsten Desirability-Wert wird an SFE zurückgegeben und die verschlüsselte Nutzlast wird an SAS gesendet, um an den Client zurückgegeben zu werden. Im Browser schließt der Verkäufer der obersten Ebene die Auktion ab, indem er navigator.runAdAuction() aufruft und die verschlüsselte Nutzlast mit dem serverseitigen Auktionsergebnis bereitstellt.

Nächste Schritte

Nachdem Sie diesen Leitfaden gelesen haben, können Sie die folgenden Schritte ausführen:

Weitere Informationen

Hast du Fragen?