Architecture

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 GetComponentAuctionCiphertexts de SAS.

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 côté client envoie la requête d'enchères unifiées au SSP. Le SAS envoie une requête à la SFE, qui envoie une requête à la BFE pour une enchère.

(Schéma en taille réelle)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Le service SFE du SSP appelle le service BFE du DSP avec la requête GetBids.
  6. Le BFE de la DSP appelle le service d'enchères avec la requête GenerateBids.
  7. 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.
  8. 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 et DSP-B ne participent qu'aux enchères sur l'appareil
  • DSP-X et DSP-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 uniquement
  • SSP-BA exécute une mise aux enchères uniquement pour les enchères et les mises aux enchères
  • SSP-MIX exécute une mise aux enchères en mode mixte
  • SSP-TOP lance une mise aux enchères multivendeur :
    • SSP-OD/BA/MIX participent en tant que vendeurs de composants à l'enchère multivendeur de SSP-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.

Architecture à vendeur unique dans laquelle un SFE communique avec plusieurs BFE pour recevoir des enchères

(Schéma en taille réelle)

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:

Architecture de vendeur en mode mixte, dans laquelle les acheteurs peuvent envoyer leurs enchères depuis l'appareil ou une mise aux enchères

(Schéma en taille réelle)

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.

Schéma illustrant comment l'enchère et les signaux d'enchères contextuelles, ainsi que le résultat de SelectAd, sont transmis au code JavaScript du navigateur

(Schéma en taille réelle)

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:

  1. Enchères orchestrées par l'appareil, où l'appel au service publicitaire de chaque vendeur de composants provient du navigateur
  2. 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.

Diagramme illustrant comment plusieurs vendeurs exécutant différentes configurations d'enchères peuvent envoyer le résultat de leurs enchères au vendeur de niveau supérieur

(Schéma en taille réelle)

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.

La SSP de premier niveau envoie une demande d'enchères unifiées à son service publicitaire du vendeur. Le service publicitaire du vendeur appelle le SFE pour exécuter l'opération GetComponentAuctionCipherTexts. Les textes chiffrés renvoyés sont ensuite envoyés au service publicitaire de chaque vendeur de composants qui organise ses propres enchères d'enchères et d'achats.

(Schéma en taille réelle)

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

Vous avez des questions ?