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

Protected Audience の入札とオークションのプロセスにおいて、Topics のインタレスト カテゴリを入力として使用する方法を学びます。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「スポーツ/サイクリング」にマッピングされます。

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

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

生成されたトピックを使用して、インタレスト グループへのユーザーの追加を選択できます。

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);

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

オークションの設定時に、販売者に表示される現在のトピック(または販売者から処理されるデータ)を auctionSignalssellerSignalsperBuyerSignals の組み合わせで指定できます。これにより、購入者は入札時にトピックを使用し、販売者は入札時にトピックを使用できます。

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() 関数が呼び出されると、渡された記録されたトピックを(シグナルで提供される他のデータと同様に)入札の際に使用できます。たとえば、「スポーツ/サイクリング」のトピックの有無に基づいて、この 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
  //...
}