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:
- 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 .
- 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.
- 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