Utiliser Topics avec les enchères programmatiques dans Protected Audience

Découvrez comment utiliser les centres d'intérêt de Topics pour le processus d'enchères et de mise aux enchères Protected Audience. Protected Audience comporte plusieurs points au cours desquels l'acheteur et le vendeur peuvent transmettre des signaux propriétaires au processus d'enchères. Les signaux fournis par Topics peuvent être utilisés pour enrichir les données disponibles lors du processus d'enchères et de sélection des annonces avec des informations sur les centres d'intérêt actuels des utilisateurs, augmentant ainsi la valeur potentielle de l'inventaire publicitaire.

Avant de lire ce guide, assurez-vous de vous familiariser avec Topics et Protected Audience.

Obtenir des thèmes

Lorsque vous appelez l'API Topics, l'appelant voit une sélection des thèmes qu'il a déjà observés pour ce navigateur.

const currentTopics = await document.browsingTopics();
// Example result
[
  {
    "configVersion": "chrome.2",
    "modelVersion": "4",
    "taxonomyVersion": "2",
    "topic": 310,
    "version": "chrome.2:2:4"
  }
]

Dans ce cas, le thème 310 correspond à "Sports/Vélo".

Ces exemples montrent les valeurs de thème utilisées directement, mais une implémentation complète peut choisir de les traiter ou de les combiner avec d'autres données.

Utiliser des thèmes pour définir un groupe de centres d'intérêt de manière conditionnelle

Le thème obtenu peut être utilisé directement pour choisir d'ajouter un utilisateur à un groupe de centres d'intérêt.

if (currentTopics[0].topic === 310) { // Interest in "Sports/Cycling"
  const interestGroup = {
  owner: 'https://dsp.example',
  name: 'custom-bikes',
  }
}

Fournir des thèmes d'acheteurs à un groupe de centres d'intérêt

Les thèmes actuels (ou les données traitées) peuvent être inclus dans les userBiddingSignals lors de la création du groupe de centres d'intérêt. Cela permet à l'acheteur d'utiliser les thèmes lorsqu'il définit des enchères.

const interestGroup = {
  owner: 'https://dsp.example',
  name: 'custom-bikes',
  userBiddingSignals: {
    topics: currentTopics,
    ....
  },
  ...
};

navigator.joinAdInterestGroup(interestGroup, 7 * kSecsPerDay);

Fournir des thèmes de vendeurs lors d'une mise aux enchères

Les thèmes actuellement visibles par le vendeur (ou les données traitées par celui-ci) peuvent être inclus dans une combinaison de auctionSignals, sellerSignals ou perBuyerSignals lors de la configuration de l'enchère. Ainsi, l'acheteur peut utiliser les thèmes lorsqu'il définit des enchères et le vendeur utiliser les thèmes pour évaluer les enchères.

const myAuctionConfig = {
  seller: 'https://ssp.example',
  auctionSignals: {
    topics: currentTopics,
  },
  sellerSignals: {
    topics: currentTopics,
  },
  perBuyerSignals: {
    'https://dsp.example': {
      topics: currentTopics,
      // ...
    },
    // ...
  },
  // ...
};
const result = await navigator.runAdAuction(myAuctionConfig);

Utiliser les thèmes lors de la définition des enchères

Ensuite, lorsque la fonction generateBid() de l'acheteur est appelée, les thèmes enregistrés transmis peuvent être utilisés (comme toutes les autres données fournies dans les signaux) pour faciliter les enchères. Par exemple, il peut utiliser la présence du thème "Sports/Cyclisme" pour définir des enchères plus élevées pour le groupe de centres d'intérêt "custom-bikes".

generateBid(interestGroup, auctionSignals, perBuyerSignals,
    trustedBiddingSignals, browserSignals) {
  const topics = interestGroup.userBiddingSignals.topics;
  // Use the topic values in the bidding logic.
}

Utiliser les thèmes lors de l'évaluation des enchères

Après avoir défini une enchère lorsque la fonction scoreAd() du vendeur est appelée, les thèmes enregistrés peuvent être utilisés comme toutes les autres données transmises à partir de la configuration de l'enchère. Par exemple, le vendeur peut souhaiter augmenter la pondération des enchères pour les annonces correspondant aux thèmes détectés.

scoreAd(adMetadata, bid, auctionConfig, trustedScoringSignals, browserSignals, directFromSellerSignals) {
  const sellerTopics = actionConfig.auctionSignals.topics;
  // or corresponding key in sellerSignals
  // use the topics values to score the ads
  //...
}