Configurer une enchère publicitaire sur la page de l'éditeur

Découvrez comment configurer une mise aux enchères de l'API Protected Audience.

Enchères sur l'appareil menées par les vendeurs

Une enchère Protected Audience sur l'appareil est exécutée sur un site qui vend des espaces publicitaires, et nous désigner la partie qui gère l'enchère en tant que vendeur. De nombreuses parties peuvent agir en tant que les vendeurs: un site peut gérer ses propres enchères publicitaires ou inclure un tiers d'exécuter les enchères correspondantes, ou utiliser une SSP qui combine l'exécution aux enchères sur l'appareil avec d'autres activités d'enchères côté serveur. Les vendeurs ont trois tâches de base dans la mise en concurrence des annonces sur l'appareil:

  1. Les vendeurs décident (a) aux acheteurs qui peuvent participer et (b) aux enchères. auprès des acheteurs les groupes de centres d'intérêt sont susceptibles de participer à l'enchère. Cela permet le vendeur fait respecter les règles du site concernant les annonces qui sont autorisées à être diffusées sur le .
  2. Les vendeurs sont responsables de la logique métier de l'enchère: JavaScript qui prend en compte le prix et les métadonnées de chaque enchère, et calcule "désirabilité" le score. L'enchère avec le score de désirabilité le plus élevé remporte le mise aux enchères.
  3. Les vendeurs génèrent des rapports sur le résultat des enchères, y compris des informations compensation du prix et autres paiements. Les acheteurs gagnants et perdants obtiennent également pour créer leurs propres rapports.

Ce document explique comment configurer et lancer une enchère sur l'appareil.

Configurer une enchère publicitaire pour l'API Protected Audience

Pour lancer une enchère publicitaire de l'API Protected Audience, la première étape consiste à configurer la mise aux enchères. Pour ce faire, créez un objet auctionConfig. Voici un exemple de ce type de configuration:

const auctionConfig = {
  seller: 'https://seller.example',
  decisionLogicUrl: ...,
  trustedScoringSignalsUrl: ...,
  interestGroupBuyers: ['https://buyer-1.example', 'https://buyer-2.example', ...],
  auctionSignals: {...},
  sellerSignals: {...},
  sellerTimeout: 100,
  perBuyerSignals: {
    'https://buyer-1.example': {...},
    'https://buyer-2.example': {...},
    ...
  },
  perBuyerTimeouts: {
    'https://buyer-1.example': 50,
    'https://buyer-2.example': 200,
    '*': 150,
    ...
  },
  componentAuctions: [
    {
      'seller': 'https://component-seller.example',
      'decisionLogicUrl': ...,
      ...
    },
    ...
  ],
  resolveToConfig: [true|false],
};

AuctionConfig établissements

Propriétés obligatoires

Les seules propriétés obligatoires pour auctionConfigs sont seller, decisionLogicUrl et interestGroupBuyers.

Propriété Exemple Rôle
vendeur https://seller.example Origine du vendeur.
decisionLogicUrl https://seller.example/decision-logic.js URL du Worklet de décision JavaScript pour la mise aux enchères. Ce champ doit avoir la même origine que le champ du vendeur.
interestGroupBuyers [https://buyer-1.example,
https://buyer-2.example,
...]
Origines de tous les propriétaires de groupes de centres d'intérêt invités à participer à la mise aux enchères

Propriétés facultatives

Les autres propriétés pour auctionConfigs sont facultatives.

Propriété Exemple Rôle
trustedScoringSignalsUrl https://seller.example/scoring-signals URL du serveur de paires clé-valeur du vendeur. Celle-ci sera interrogée au cours du processus d'évaluation des annonces en utilisant l'URL de rendu de la création comme clé. Ce champ doit avoir la même origine que le champ du vendeur.
auctionSignals {"category":"news"} Objet sérialisable JSON représentant les signaux disponibles pour tous les acheteurs et les vendeurs participant à l'enchère.
sellerSignals {...} Objet sérialisable JSON représentant des signaux disponibles uniquement pour les vendeurs.
perBuyerSignals {https://dsp.example: {...},
https://another-buyer.example: {...},
... }
Signaux disponibles pour un acheteur spécifique. Les signaux peuvent provenir des vendeurs, mais aussi des acheteurs eux-mêmes.
perBuyerTimeouts {https://www.example-dsp.com: 50,
https://www.another-buyer.com: 200,
*: 150,
...}
Durée d'exécution maximale, en millisecondes, du script generateBid() d'un acheteur spécifique. Un caractère générique sera appliqué à chaque acheteur pour lequel aucun délai d'expiration spécifique n'est défini.
sellerTimeout 100 Durée d'exécution maximale en millisecondes du script scoreAd() d'un vendeur.
componentAuctions [{seller: https://www.some-other-ssp.com, decisionLogicUrl: ..., ...}, ...] Autres configurations pour les enchères de composants.
resolveToConfig vrai|faux Valeur booléenne indiquant à la promesse renvoyée par runAdAuction() de se résoudre en FencedFrameConfig si la valeur est "true" (à utiliser dans un élément <fencedframe>) ou en URL opaque urn:uuid si elle est définie sur "false" (à utiliser dans un élément <iframe>). La valeur par défaut est "false".

Fournir des signaux de manière asynchrone

Les valeurs de certains signaux (ceux configurés par auctionSignals, les champs sellerSignals, perBuyerSignals et perBuyerTimeouts) peuvent éventuellement être fournies non pas sous forme de valeurs concrètes, mais sous forme de promesses. Cela permet certaines parties de la mise aux enchères, telles que le chargement de scripts et de signaux de confiance ; de processus isolés de Worklet, afin de chevaucher le calcul (ou le réseau la récupération) de ces valeurs. Les scripts de Worklet n'afficheront que les fichiers valeurs ; Si l'une de ces promesses est rejetée, l'enchère est annulée, sauf si réussissent déjà à échouer ou s’abandonnent d’autres manières.

Configurer une mise aux enchères avec plusieurs vendeurs

Dans certains cas, plusieurs vendeurs peuvent vouloir participer à une mise aux enchères. les gagnants de plusieurs enchères distinctes sont ajoutés à une autre enchère, gérés par un autre vendeur. Ces enchères distinctes ignorées sont des enchères de composants. Pour faciliter ces enchères par composants, l'objet componentAuctions peut contenir des configurations d'enchères supplémentaires pour chaque enchère associée aux composants de chaque vendeur. La l'enchère gagnante de chacune de ces enchères sera transmise "premier niveau" qui prend la décision finale. La auctionConfig des enchères de composants peuvent ne pas avoir componentAuctions Lorsque componentAuctions n'est pas vide, Le champ interestGroupBuyers doit être vide. Autrement dit, pour toute protection Enchères basées sur l'audience : il n'y a qu'un seul vendeur et aucune enchère de composants. Dans le cas contraire, toutes les enchères proviennent des enchères individuelles, choisir parmi les enchères de composants gagnants.

Lancer la mise aux enchères

Le vendeur demande au navigateur de l'utilisateur de lancer une mise en concurrence des annonces en Appel de navigator.runAdAuction() en cours.

try {
  const auctionResultPromise = navigator.runAdAuction(auctionConfig);
} catch (error) {
  // Handle error.
}

L'appel runAdAuction() renvoie une promesse qui renvoie vers l'annonce. Il n'est pas tout code présent sur la page de l'éditeur pour examiner l'annonce gagnante ou Sinon, apprenez-en plus sur son contenu à partir du résultat de runAdAuction(). Si le l'option resolveToConfig a été définie sur "true" dans AuctionConfig, une L'objet FencedFrameConfig est renvoyé. Il ne peut être affiché que dans un conteneur cloisonné. cadre. Si l'indicateur a été défini sur "false", un URN opaque est renvoyé, qui peut être affichées dans un iFrame. Il est possible que runAdAuction renvoie une valeur nulle, indiquant qu'aucune annonce n'a été sélectionnée. Dans ce cas, le vendeur peut choisir pour afficher une annonce ciblée en fonction du contexte