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 |
| 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 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.
- 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.
- 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.
- 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.
- Der
- Der SFE-Dienst der SSP ruft den BFE-Dienst der DSP mit der
GetBids-Anfrage auf. - Die BFE des DSP ruft den Bidding Service mit der
GenerateBids-Anfrage auf. - 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.
- 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-AundDSP-Bnehmen nur an Auktionen auf dem Gerät teilDSP-XundDSP-Ynehmen 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-ODführt eine Auktion nur auf dem Gerät ausSSP-BAführt eine Auktion nur für B&A durchSSP-MIXführt eine Auktion im gemischten Modus durchSSP-TOPführt eine Auktion mit mehreren Verkäufern durch:SSP-OD/BA/MIXals Komponentenverkäufer an der Mehrfachverkäufer-Auktion vonSSP-TOPteilnehmen
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.
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:
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.
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:
- Gerätegesteuerte Auktion, bei der der Aufruf des Anzeigendienstes jedes Komponentenverkäufers vom Browser ausgeht
- 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.
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
- Weitere Informationen zur Funktionsweise von B&A für Protected Audience finden Sie in den folgenden Erläuterungen auf GitHub:
- Codelab zum lokalen End-to-End-Testen
- Informationen zur Händlerintegration finden Sie unter Als Händler in B&A einbinden.
Hast du Fragen?
- Wenn Sie Fragen zu Gebots- und Auktionsdiensten haben, erstellen Sie ein Problem im B&A Services-Repository.