En tant qu'acheteur d'annonces (DSP et annonceurs), vous pouvez participer à une enchère d'annonces Protected Audience sur le site de l'éditeur pour cibler un groupe d'intérêt que vous avez défini sur le site de l'annonceur. En participant aux enchères Protected Audience, vous pouvez toucher vos clients identifiés sur d'autres sites tout en respectant leur confidentialité.
Dans une enchère Protected Audience, vous fournissez la logique permettant de générer l'enchère, et le navigateur la calcule à l'aide de cette logique. Cela diffère des autres architectures d'enchères, dans lesquelles vous soumettez directement l'enchère au lieu de fournir la logique.
Vous fournissez votre logique de génération d'enchères dans la fonction JavaScript generateBid()
. Le fichier est hébergé sur votre serveur. Lorsque vous ajoutez un utilisateur à un groupe d'intérêt, l'emplacement de ce fichier est transmis à la configuration du groupe d'intérêt en tant que biddingLogicUrl
.
Pendant les enchères, le navigateur récupère la logique d'enchères que vous avez spécifiée dans le champ biddingLogicUrl
et exécute votre fonction generateBid()
pour chaque groupe d'intérêt dans un environnement isolé sécurisé dont la communication avec le contexte extérieur est limitée. Lorsque generateBid()
est exécuté, le navigateur transmet des signaux à la fonction en tant qu'arguments. Ces signaux contiennent diverses informations provenant de différentes sources, telles que les données first party de l'éditeur, les données du vendeur, les données en temps réel, etc. Vous pouvez utiliser ces signaux pour calculer l'enchère. La valeur est renvoyée par l'appel generateBid()
. Une fois les enchères envoyées, le navigateur exécute la logique de notation du vendeur sur chaque enchère pour calculer le score de désirabilité du vendeur.
generateBid()
Vous trouverez ci-dessous une description des arguments de la fonction generateBid()
et de la structure de l'enchère renvoyée par la fonction :
generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals, directFromSellerSignals) {
return {
ad: adObject,
adCost: optionalAdCost,
bid: bidValue,
bidCurrency: 'USD',
render: {
url: renderURL,
width: renderWidth,
height: renderHeight
},
adComponents: [
{url: adComponent1, width: componentWidth1, height: componentHeight1},
{url: adComponent2, width: componentWidth2, height: componentHeight2},
// ...
],
allowComponentAuction: false,
modelingSignals: 123 // 0-4095 integer (12-bits)
};
}
Arguments
generateBid()
utilise les arguments suivants :
Argument | Rôle |
---|---|
|
Objet transmis par l'acheteur d'annonces. Le groupe d'intérêt peut être mis à jour avec dailyUpdateUrl . |
|
Propriété de l'argument auction config transmis à navigator.runAdAuction() par le vendeur. Il fournit des informations sur le contexte de la page (comme la taille de l'annonce et l'ID de l'éditeur), le type d'enchères (au premier ou au second prix) et d'autres métadonnées. |
|
Propriété de l'argument auction config transmis par le vendeur. Cela peut fournir des signaux contextuels à partir du serveur de l'acheteur concernant la page, si le vendeur est une SSP qui effectue un appel d'enchères en temps réel aux serveurs de l'acheteur et renvoie la réponse, ou si la page de l'éditeur contacte directement le serveur de l'acheteur. Si c'est le cas, l'acheteur peut vérifier la signature cryptographique de ces signaux dans generateBid() pour se protéger contre toute falsification. |
|
Objet dont les clés sont les trustedBiddingSignalsKeys du groupe d'intérêt et dont les valeurs sont renvoyées dans la requête trustedBiddingSignals . |
|
Objet construit par le navigateur, qui peut inclure des informations sur le contexte de la page (comme le hostname de la page actuelle, que le vendeur pourrait autrement falsifier) et des données pour le groupe d'intérêt lui-même (comme un enregistrement de la date à laquelle le groupe a remporté une enchère, pour permettre la limitation de la fréquence sur l'appareil). |
|
Signaux provenant d'un vendeur spécifique, contrairement à auctionSignals et sellerSignals qui peuvent provenir de n'importe quel participant présent dans le contexte d'exécution de runAdAuction . |
Signaux du navigateur
L'objet browserSignals
comporte les propriétés suivantes :
{
topWindowHostname: 'publisher.example',
seller: 'https://ssp.example',
topLevelSeller: 'https://www.top-level-ssp.com',
requestedSize: {width: 100, height: 200}, /* if specified in auction config */
joinCount: 3,
recency: 3600000,
bidCount: 17,
prevWinsMs: [[timeDeltaMs1,ad1],[timeDeltaMs2,ad2],...],
wasmHelper: ...
dataVersion: 1,
adComponentsLimit: 40
}
Propriété | Description |
---|---|
|
Nom d'hôte à partir duquel l'appel runAdAuction() a été effectué. |
|
Vendeur auquel l'enchère est envoyée. Dans une enchère de composants, cette valeur correspond au vendeur du composant. |
|
Vendeur de premier niveau dans une enchère de composants. Il n'est présent que dans une enchère de composants. |
|
La propriété requestedSize recommande une taille de frame pour l'enchère. Le vendeur définit la taille demandée dans la configuration de l'enchère. La valeur devient disponible pour les enchérisseurs dans generateBid() . Les enchérisseurs participant aux enchères peuvent choisir une taille de contenu différente pour l'annonce. La taille obtenue sera visuellement mise à l'échelle pour s'adapter à la taille du conteneur de l'élément. |
|
Le champ joinCount correspond au nombre de fois où cet appareil a rejoint ce groupe d'intérêt au cours des 30 derniers jours, tandis que le groupe d'intérêt a été stocké en continu (c'est-à-dire qu'il n'y a pas de lacunes dans le stockage du groupe d'intérêt sur l'appareil en raison d'un départ ou de l'expiration de l'adhésion). |
|
Le champ recency correspond à la durée (en minutes) écoulée depuis que cet appareil a rejoint ce groupe d'intérêt. |
|
Nombre de fois où le groupe d'intérêt a envoyé une enchère. |
|
Le champ prevWinMs contient les annonces gagnantes du groupe d'intérêt et le temps écoulé depuis leurs précédentes victoires, en millisecondes. Notez que l'objet d'annonce ici ne contient que les champs renderURL et de métadonnées. |
|
Objet WebAssembly.Module basé sur le biddingWasmHelperURL du groupe d'intérêt. |
|
Valeur Data-Version issue des réponses du service de clés/valeurs de l'acheteur. |
|
Nombre maximal de composants d'annonce generateBid() pouvant être renvoyés |
Calculer une enchère
Pour calculer une valeur d'enchère, le code dans generateBid()
peut utiliser les propriétés des paramètres de la fonction.
Exemple :
function generateBid(interestGroup, auctionSignals, perBuyerSignals,
trustedBiddingSignals, browserSignals) {
return {
// ...
bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
// ...
}
}
Retourner une enchère
generateBid()
renvoie un objet avec les propriétés suivantes :
Propriété | Rôle |
---|---|
ad |
Métadonnées arbitraires sur l'annonce, telles que les informations que le vendeur s'attend à obtenir sur cette enchère ou cette création publicitaire. Le vendeur utilise ces informations dans sa logique d'enchères et de décision. |
adCost |
Valeur numérique utilisée pour transmettre le coût des clics ou des conversions de l'annonceur pour les rapports de generateBid à reportWin. La précision de ce nombre est limitée à une mantisse de 8 bits et à un exposant de 8 bits, avec un arrondi stochastique. |
adComponents |
Liste facultative de 20 composants maximum pour les annonces composées de plusieurs éléments, extraite de la propriété adComponents de l'argument de groupe d'intérêt transmis à navigator.joinAdInterestGroup() . |
allowComponentAuction |
Valeur booléenne indiquant si cette enchère peut être utilisée dans une enchère par composants. Si aucune valeur n'est spécifiée, la valeur par défaut est "false". |
bid |
Enchère numérique qui participera à la mise aux enchères. Le vendeur doit être en mesure de comparer les offres de différents acheteurs. Par conséquent, les offres doivent être exprimées dans une unité choisie par le vendeur (par exemple, "USD par millier"). Si l'enchère est nulle ou négative, ce groupe d'intérêt ne participera pas du tout aux enchères du vendeur. Grâce à ce mécanisme, l'acheteur peut appliquer toutes les règles des annonceurs concernant les emplacements où leurs annonces peuvent ou non être diffusées. |
bidCurrency |
Devise de l'enchère, utilisée pour la vérification de la devise. |
render |
Dictionnaire décrivant la création à afficher si cette enchère remporte l'enchère. Par exemple :
|
|
Entier compris entre 0 et 4 095 (12 bits) transmis à reportWin() , avec ajout de bruit, comme décrit dans le schéma de bruitage et de répartition dans des buckets. Les valeurs non valides, telles que les valeurs négatives, infinies et NaN , seront ignorées et ne seront pas transmises. Seuls les 12 bits les moins significatifs seront transmis. L'acheteur peut utiliser les signaux disponibles dans la fonction generateBid() , y compris les données first party de l'acheteur capturées lors de la création du groupe d'intérêt dans userBiddingSignals , pour dériver une valeur qui est transmise à la fonction de rapport sur les enchères remportées de l'acheteur afin de permettre l'entraînement du modèle de ML. |