Découvrez l'architecture des enchères des services d'enchères et de mise aux enchères.
Présentation
Les services d'enchères et de mise aux enchères fournissent un ensemble de services aux acheteurs et vendeurs d'annonces qui s'exécutent dans un environnement d'exécution sécurisé (TEE) pour faciliter les enchères Protected Audience (PA). Cette page décrit les différentes configurations d'enchères que les enchères et les mises aux enchères peuvent utiliser dans une mise aux enchères avec enchères publiques.
Définitions
Terme | Description |
---|---|
enchère Protected Audience | Mise aux enchères d'annonces impliquant des données intersites |
Enchères contextuelles | Mise aux enchères d'annonces qui n'implique pas de données intersites. Cette mise aux enchères suit le chemin d'enchères en temps réel (RTB) existant. |
Demande d'enchères unifiées | Requête envoyée par le code JavaScript du vendeur depuis le navigateur, qui inclut la charge utile pour l'enchère Protected Audience et l'enchère contextuelle. |
Service publicitaire pour les vendeurs (SAS) | Service chargé de traiter la requête d'enchères unifiées à partir du navigateur. Il peut s'agir du serveur d'annonces RTB existant d'un vendeur. Le SAS est responsable de l'orchestration des enchères contextuelles et Protected Audience. |
Service publicitaire de l'acheteur | Service chargé d'envoyer une enchère d'enchères contextuelles. Il peut s'agir de l'ad server ORTB existant d'un acheteur. |
Services pour les acheteurs et les vendeurs
Les services d'enchères et de mise aux enchères se composent de quatre services destinés aux acheteurs et aux vendeurs:
- Pour les acheteurs, le service d'enchères et le service d'interface de l'acheteur (BFE) sont disponibles.
- Pour les vendeurs, le service d'enchères et le service d'interface vendeur (SFE) sont disponibles.
Participant | Service | Description |
---|---|---|
Revendeur | Service frontend de l'acheteur | Le service gère la requête GetBids à partir du SFE d'un vendeur. Il est chargé de déchiffrer la charge utile, d'extraire les signaux K/V et d'appeler GenerateBids du service d'enchères. |
Service d'enchères | Le service gère la requête GenerateBids de BFE. Il est chargé d'exécuter la logique d'enchères de l'acheteur et de générer une enchère. |
|
Vendeur | Service frontend du vendeur | Le service gère la requête SelectAd du service publicitaire du vendeur. Il est chargé de déchiffrer la charge utile, d'appeler l'opération GetBids de BFE, de récupérer les signaux K/V, d'appeler l'opération ScoreAd du service d'enchères, puis de renvoyer le résultat de l'enchère de mise aux enchères chiffrée à SAS.
Lorsque le service fait partie de la pile du vendeur de premier niveau dans une enchère multivendeur orchestrée par le serveur, il gère également la requête |
Service d'enchères | Le service gère la requête ScoreAd de SFE. Il est chargé d'exécuter la logique d'évaluation du vendeur et de fournir le score de désirabilité d'une enchère. |
Architecture d'une mise aux enchères d'enchères publiques pour le Web
Le schéma suivant décrit les enchères Protected Audience de base avec des services de mise aux enchères et d'enchères avec un seul vendeur et un seul acheteur. Les cases rouges épaisses représentent les services exécutés dans un TEE:
- Le code JavaScript de la SSP sur la page de l'éditeur génère les données d'enchères publicitaires d'enchères et de mise aux enchères chiffrées en appelant
navigator.getInterestGroupAdAuctionData()
.- Cette charge utile chiffrée contient les données de l'acheteur et ne peut être déchiffrée que dans un SFE d'un TEE.
- Le code JavaScript du SSP envoie une requête d'enchères unifiées au service publicitaire du vendeur.
- Une requête d'enchères unifiées contient à la fois la charge utile d'enchères contextuelles ORTB au format texte brut et la charge utile d'enchères B&A chiffrée.
- Le service publicitaire du vendeur est votre serveur publicitaire existant et ne s'exécute pas dans un TEE.
- Le service publicitaire du vendeur appelle le service RTB de la DSP pour demander l'enchère d'enchères contextuelles et les signaux d'acheteur à transmettre à l'enchère PA suivante.
- Il peut s'agir d'une étape au cours de laquelle un acheteur indique son intention de participer à l'enchère PA.
- Une fois l'enchère contextuelle terminée, SAS envoie la requête
SelectAd
au service SFE.- L'enchère gagnante des enchères contextuelles et les signaux de l'acheteur sont ajoutés à la charge utile de la requête
SelectAd
.
- L'enchère gagnante des enchères contextuelles et les signaux de l'acheteur sont ajoutés à la charge utile de la requête
- Le service SFE du SSP appelle le service BFE du DSP avec la requête
GetBids
. - Le BFE de la DSP appelle le service d'enchères avec la requête
GenerateBids
. - Une fois l'enchère reçue par SFE, l'appel
ScoreAd
est effectué au service d'enchères.- L'enchère ayant le score de désirabilité le plus élevé est renvoyée à SAS, puis transmise au code JavaScript de la page.
- La mise aux enchères se termine dans le navigateur en transmettant le résultat chiffré de l'enchère et de la mise aux enchères dans l'appel
navigator.runAdAuction()
.
Configurations d'enchères
Vous pouvez configurer une mise aux enchères Protected Audience avec des services d'enchères et de mise aux enchères comme suit:
- Enchères avec un seul vendeur et des acheteurs de gré à gré
- Enchères en mode mixte avec des acheteurs sur l'appareil et des acheteurs B&A
- Enchères multivendeurs pouvant être orchestrées par appareil ou par serveur
Participants
Pour décrire chaque configuration d'enchères, les participants suivants sont utilisés dans ce guide:
Participant | Description |
---|---|
DSP-A |
Acheteur sur l'appareil |
DSP-B |
Acheteur sur l'appareil |
DSP-X |
Acheteur de produits et services |
DSP-Y |
Acheteur de produits et services |
SSP-TOP |
Vendeur de premier niveau |
SSP-OD |
Vendeur sur l'appareil uniquement |
SSP-BA |
Vendeur d'occasions et de nouveautés uniquement |
SSP-MIX |
Vendeur utilisant les transports mixtes |
Il existe quatre DSP:
DSP-A
etDSP-B
ne participent qu'aux enchères sur l'appareilDSP-X
etDSP-Y
participent aux enchères sur l'appareil et aux enchères et mises aux enchères
Il existe quatre SSP, et chaque vendeur exécute une configuration d'enchères différente:
SSP-OD
exécute une mise aux enchères sur l'appareil uniquementSSP-BA
exécute une mise aux enchères uniquement pour les enchères et les mises aux enchèresSSP-MIX
exécute une mise aux enchères en mode mixteSSP-TOP
lance une mise aux enchères multivendeur :SSP-OD/BA/MIX
participent en tant que vendeurs de composants à l'enchère multivendeur deSSP-TOP
Enchères d'achat et de vente par un seul vendeur
Dans une configuration à vendeur unique, un seul vendeur organise une mise aux enchères à laquelle participent plusieurs acheteurs. Si le vendeur diffuse une mise aux enchères et des enchères, les acheteurs doivent exécuter la pile de services d'enchères et de mise aux enchères pour pouvoir définir une enchère. Les acheteurs et les vendeurs n'ont pas besoin d'utiliser le même fournisseur de services cloud.
Dans la configuration précédente, SSP-BA
exécute une mise aux enchères d'enchères et de mise aux enchères à laquelle DSP-X
et DSP-Y
participent à l'aide de la pile acheteur des services d'enchères et de mise aux enchères. Le service publicitaire du vendeur exécute d'abord une mise aux enchères contextuelle pour DSP-X
et DSP-Y
, puis une mise aux enchères Protected Audience en envoyant la requête SelectAd
au service SFE du vendeur. L'enchère gagnante de l'enchère contextuelle et les signaux de chaque acheteur sont transmis à l'appel SelectAd
. Le service SFE envoie ensuite des requêtes GetBids
aux BFE de DSP-X
et DSP-Y
, qui appellent leur service d'enchères pour générer une enchère.
Le résultat de l'enchère d'enchères et de mise aux enchères chiffré est renvoyé au client et transmis à l'appel runAdAuction()
. Une configuration d'enchères avec un seul vendeur se présente comme suit:
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
})
La valeur requestId
provient de l'appel getInterestGroupAdAuctionData()
sur le client, et les données serverResponse
proviennent des enchères et des mises aux enchères côté serveur.
Enchères en mode mixte
Dans la configuration en mode mixte, les acheteurs peuvent participer aux enchères du vendeur depuis l'appareil ou la place de marché. Les flèches bleues représentent le chemin d'enchères sur l'appareil, et les flèches rouges le chemin d'enchères d'enchères et de mise aux enchères:
Dans cette configuration, DSP-A
et DSP-B
sont des acheteurs qui soumettent leurs enchères sur l'appareil, tandis que DSP-X
et DSP-Y
sont des acheteurs qui soumettent leurs enchères à l'aide de la mise aux enchères et de l'enchère. Les acheteurs sur l'appareil participent à une mise aux enchères sur l'appareil dans le navigateur, tandis que les acheteurs d'enchères et de mises aux enchères participent à la configuration des enchères et des mises aux enchères décrite dans la section Enchères avec un seul vendeur.
L'enchère contextuelle est exécutée en premier pour tous les acheteurs afin de collecter l'enchère gagnante de l'enchère contextuelle et les signaux de l'acheteur. Ensuite, les enchères et les mises aux enchères sont exécutées, et les signaux de l'acheteur provenant des enchères contextuelles sont transmis à la requête SelectAd
envoyée à la SFE. Le résultat chiffré de l'enchère d'enchères et de mise aux enchères renvoyé par SFE est transféré au navigateur. Une fois l'enchère d'enchères et de mise aux enchères terminée, son résultat est intégré à l'enchère sur l'appareil à laquelle participent les acheteurs sur l'appareil.
Une configuration d'enchères au mode mixte pour un seul vendeur pour la partie sur l'appareil de l'enchère se présente comme suit:
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',
}
]
})
Parallélisation des enchères sur l'appareil et des enchères et mises aux enchères
Sans parallélisation, les enchères sont exécutées de manière séquentielle, avec l'exécution de l'enchère contextuelle, puis de l'enchère d'enchères et de mise aux enchères, et enfin de l'enchère sur l'appareil. Une fois la parallélisation implémentée, les enchères contextuelles s'exécutent à nouveau en premier, mais leur résultat et leurs signaux sont renvoyés au client en streaming afin de lancer les enchères sur l'appareil en parallèle avant la fin des enchères et des mises aux enchères.
Le code JavaScript du client envoie la requête d'enchères unifiées à SAS, qui lance les enchères contextuelles et les enchères d'enchères et de mise aux enchères par acheteur. Lorsque le SAS reçoit une réponse du serveur RTB d'un acheteur, l'acheteur indique que l'enchère sur l'appareil peut être diffusée en streaming vers le navigateur, ainsi que le gagnant de l'enchère contextuelle une fois toutes les enchères reçues. Les signaux d'acheteurs diffusés sont utilisés pour générer une enchère sur l'appareil, et le gagnant de l'enchère contextuelle est utilisé comme prix plancher lors de l'évaluation des enchères.
Dans SAS, le vendeur génère un nonce UUID qui est défini dans l'en-tête de réponse Ad-Auction-Result-Nonce
lors du streaming des données d'enchères contextuelles vers le navigateur. Le même nonce est utilisé dans l'appel SelectAd
à SFE pour la mise aux enchères de mise aux enchères et de mise aux enchères, et ce nonce est inclus dans la réponse SelectAd
renvoyée par SFE. Lors de la phase d'enchères côté client, le navigateur vérifie que le nonce de l'en-tête de réponse Ad-Auction-Result-Nonce
correspond au nonce de la charge utile du résultat de l'enchère chiffrée.
Pour en savoir plus sur la parallélisation en mode mixte, consultez la présentation.
Enchères multivendeurs
Il existe deux façons de lancer une enchère multivendeur avec les enchères et les mises aux enchères:
- Enchères orchestrées par l'appareil, où l'appel au service publicitaire de chaque vendeur de composants provient du navigateur
- Enchères orchestrées par le serveur, où l'appel au service publicitaire de chaque vendeur de composants provient du service publicitaire du vendeur de niveau supérieur
Enchères multivendeurs orchestrées par l'appareil
Dans une mise aux enchères multivendeur orchestrée par l'appareil, chaque vendeur de composants est libre d'exécuter ses enchères dans la configuration de son choix. Les vendeurs sur l'appareil, les vendeurs de produits et services et les vendeurs en mode mixte peuvent tous participer aux enchères de premier niveau.
Dans cette configuration,
SSP-TOP
, qui est le vendeur de premier niveau, exécute une mise aux enchères multivendeur à laquelle participent SSP-OD
, SSP-BA
et SSP-MIX
:
SSP-OD
, qui exécute une mise aux enchères privées sur l'appareil uniquement, envoie sa configuration d'enchères de composants sur l'appareil au vendeur de niveau supérieur.SSP-BA
, qui exécute une mise aux enchères d'enchères et de mise aux enchères, envoie une demande d'enchères unifiées à son service publicitaire du vendeur et exécute ses propres enchères contextuelles et d'enchères et de mise aux enchères. Les résultats sont envoyés au vendeur de premier niveau.SSP-MIX
, qui exécute une mise aux enchères en mode mixte, exécute d'abord la mise aux enchères et les mises aux enchères sur le serveur, puis envoie à la fois le résultat de la mise aux enchères et la configuration des enchères sur l'appareil.
Le vendeur de premier niveau collecte les configurations d'enchères des composants de chaque vendeur et crée une configuration d'enchères semblable à celle-ci:
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',
}
]
})
Enchères multivendeurs orchestrées par le serveur
Dans une mise aux enchères multivendeur orchestrée par le serveur, les appels aux services publicitaires du vendeur de composants sont effectués à partir du service publicitaire du vendeur de niveau supérieur. Dans cette configuration, les vendeurs de composants ne peuvent pas exécuter d'enchères sur l'appareil ni en mode mixte. Tous les vendeurs doivent utiliser les enchères et tous les acheteurs doivent envoyer leurs enchères à l'aide des enchères.
Dans ce diagramme, SSP-TOP
exécute une mise aux enchères multivendeur orchestrée par le serveur à laquelle SSP-BA-X
et SSP-BA-Y
participent.
Une seule demande d'enchères unifiées contenant la charge utile des enchères contextuelles et des enchères PA pour tous les participants est envoyée par le navigateur au service publicitaire du vendeur de premier niveau. SAS effectue ensuite un appel GetComponentAuctionCiphertexts
à SFE avec la charge utile. Le SFE déchiffre la charge utile, la sépare par vendeur de composants et renvoie les charges utiles chiffrées à nouveau au SAS du vendeur de niveau supérieur.
Les définitions de protocole pour la requête et la réponse GetComponentAuctionCiphertexts
sont les suivantes:
// 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;
}
Avec la charge utile de chaque vendeur de composants, le SAS du vendeur de niveau supérieur appelle le SAS des vendeurs de composants, et chaque SAS de composant exécute sa mise aux enchères d'achat et de vente de composants. Les résultats des enchères des composants sont ensuite renvoyés au SFE du vendeur de niveau supérieur, et les enchères des composants sont évaluées par le service d'enchères du vendeur de niveau supérieur. L'enchère ayant le score de désirabilité le plus élevé est renvoyée à SFE, et cette charge utile chiffrée est envoyée à SAS pour être renvoyée au client. Dans le navigateur, le vendeur de premier niveau termine l'enchère en appelant navigator.runAdAuction()
et en fournissant la charge utile chiffrée du résultat de l'enchère sur serveur.
Étapes suivantes
Après avoir lu ce guide, vous pouvez procéder comme suit:
En savoir plus
- Pour en savoir plus sur le fonctionnement de la mise aux enchères et de l'enchères pour Protected Audience, consultez les explications suivantes sur GitHub :
- Testez Protected Audience avec des tests A/B en suivant l'atelier de programmation sur les tests locaux de bout en bout.
- Pour l'intégration en tant que vendeur, consultez Intégrer B&A en tant que vendeur.
Vous avez des questions ?
- Posez des questions sur les services d'enchères et de mise aux enchères en ouvrant un problème dans le dépôt des services d'enchères et de mise aux enchères.
- Pour poser des questions sur la Privacy Sandbox en général, signalez un problème dans le dépôt privacy-sandbox-dev-support .