Protected Audience のプログラマティック入札で Topics を使用する

Topics の興味 / 関心を Protected Audience の入札およびオークション プロセスの入力として使用する方法を学びます。Protected Audience は、入札とオークションのプロセスに購入者と販売者がファーストパーティ シグナルを渡すポイントが複数あります。Topics によって提供されるシグナルを使用すると、入札と広告選択のプロセスで利用できるデータを拡充できます。また、現在のユーザーの興味や関心に関する情報によって、広告枠の価値を高めることができます。

このガイドを読む前に、TopicsProtected Audience について十分に理解していることを確認してください。

トピックを取得

Topics API を呼び出すと、呼び出し元がそのブラウザで以前に確認したトピックの選択が表示されます。

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

この場合、トピック 310「Sports/Cycling」にマッピングされます。

以下の例ではトピックの値を直接使用しますが、完全に実装すると、これらの値を他のデータと処理したり組み合わせたりすることもできます。

トピックを使用して、条件付きでインタレスト グループを定義する

結果のトピックを直接使用して、ユーザーをインタレスト グループに追加できます。

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

インタレスト グループに購入者のトピックを指定する

インタレスト グループの作成時に、現在のトピック(またはトピックから処理されたデータ)を userBiddingSignals に含めることができます。これにより、購入者は入札時にトピックを使用できます。

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

navigator.joinAdInterestGroup(interestGroup, 7 * kSecsPerDay);

オークションに販売者のトピックを提供する

販売者が表示している現在のトピック(または販売者から処理されたデータ)は、オークションの設定時に auctionSignalssellerSignals、または perBuyerSignals の組み合わせに含めることができます。これにより、購入者は入札時にトピックを使用し、販売者は入札のスコアリング時にトピックを使用できます。

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

入札単価の設定時にトピックを使用する

次に、購入者の generateBid() 関数が呼び出されると、渡された記録済みのトピックを(シグナルで提供される他のデータと同様に)入札に役立てることができます。たとえば、ビッダーは「Sports/Cycling」というトピック(custom-bikes)の入札単価を高く設定。

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

入札単価のスコアリングにトピックを使用

入札後に販売者の scoreAd() 関数が呼び出されると、記録されたトピックは、オークション設定から渡される他のデータと同様に使用できます。たとえば、検出されたトピックに一致する広告の入札単価の重み付けを高くしたい場合などです。

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
  //...
}