Protected Audience のデバッグ レポート

Protected Audience のデバッグ レポートでは、広告テクノロジー デベロッパーが、リモートの URL を宣言して、オークションで落札した、または落札できなかったときにデバイスから GET リクエストを受け取ることができます。これにより、次のユースケースを実現できます。

  • 落札したオークションと落札できなかったオークションのレポートを受け取る。
  • オークションで落札できなかった理由を把握する。たとえば、入札やスコアリング スクリプトの実装、またはコアロジックのいずれに問題があるかを把握できます。
  • JavaScript ロジックが更新されたときの問題を検出する

イベントレベルのデバッグ レポートは、プライバシー サンドボックス デベロッパー プレビュー 9 でのテストに利用できます。デバッグ レポートは、広告 ID を利用できるすべてのデバイスでサポートされています。

長期計画では、プラットフォームがプライベート アグリゲーション サービスを使用してオークション結果をレポートできるようにします。これにより、事後レポートを使用して個別のユーザーのカスタム オーディエンスをパブリッシャーのアプリに参加させることができなくなります。イベントレベル レポートは、適切なレポート フレームワークがリリースされるまでの一時的なものです。

詳しくは、Chrome のオリジナル FLEDGE オリジン トライアル提案のデバッグ レポートをご覧ください。

使用法

デバッグ レポートは、次の JavaScript API を使用して実装されます。どちらも URL 文字列引数を受け取ります。

  • forDebuggingOnly.reportAdAuctionWin(String url)
  • forDebuggingOnly.reportAdAuctionLoss(String url)

次の例では、落札単価を含む広告オークションの損失と内部変数をレポートします。このデータはその後、デバッグを実施するために使用できます。

let someDebuggableVariable = 123;
const url = "https://example.com/reportLoss?winningBid=${winningBid}&someDebuggableVariable=" + someDebuggableVariable;
forDebuggingOnly.reportAdAuctionLoss(url);

オークションが完了すると、${winningBid} テンプレートが実際の値に置き換えられます。

販売者は、必要に応じて scoreAds 関数から rejectReason を返すことができます。

function scoreAd(ad, bid, auction_config, seller_signals,
                 trusted_scoring_signals, contextual_signal,
                 custom_audience_signal) {
  let score = ...
  return {
    'status': 0,
    'score': score,
    'rejectReason': 'blocked-by-publisher'
  }
}

販売者が不承認の理由を設定していない場合は、代わりに not-available が送信されます。

URL の変数

デバッグ URL に追加できる変数は、Chrome の対応する変数です(ただし、Android のコンポーネント オークションのコンセプトが存在しないため、${topLevelWinningBid}${topLevelMadeWinningBid} は使用できません)。

変数名 Description
winningBid 落札単価の値。
madeWinningBid このカスタム オーディエンスの購入者が、このカスタム オーディエンス、または同じ購入者の別のカスタム オーディエンスのいずれによって落札したかを表すブール値。
highestScoringOtherBid 販売者の ScoreAd スクリプトによって 2 番目に高いスコアが得られた入札単価の値。スコアと入札が独立している可能性があるため、2 番目に高い入札額ではない場合があります。
madeHighestScoringOtherBid このカスタム オーディエンスの購入者が、このカスタム オーディエンス、または同じ購入者の別のカスタム オーディエンスのいずれによって ${highestScoringOtherBid} の入札を行ったかを示すブール値。
rejectReason 販売者によって必要に応じて設定される、入札を拒否した理由を説明する文字列。次のいずれかの値を指定できます。

  • not-available
  • invalid-bid
  • bid-below-auction-floor
  • pending-approval-by-exchange
  • disapproved-by-exchange
  • blocked-by-publisher
  • language-exclusions
  • category-exclusions

制約

  • URL のホストは、登録済みのプライバシー サンドボックス ドメインと一致する必要があります。
  • ドメイン、https:// プレフィックス、置き換えられたオークション データを含め、URL は 4,096 文字以内にする必要があります。
  • 今後のリリースで、デバッグ ping は Wi-Fi に接続されている場合にのみ送信されます。

オンデバイス動作

モバイル環境では、メモリとネットワークの使用量の保護が最優先事項です。そのため、デバッグ レポートは一括して生成されます。

次のシステム プロパティは、バッチのレートとサイズを制御します。これは、開発で低い値に調整できます。

  • fledge_event_level_debug_reporting_batching_rate
  • fledge_event_level_debug_reporting_batch_size

デバッグ レポートの想定されるレイテンシは、オークションの完了後 15~60 分です。

デバッグ レポートの完全性は厳密には保証されません。サーバーの呼び出しが送信される前にデバイスが再起動されるか AdService のプロセスがクラッシュした場合、これらのイベントは破棄されます。

各広告テクノロジーで、オークションごとに最大 75 件の登録済みデバッグ URL を利用できます。その上限に達した後に登録された URL は通知なく破棄されます。

最後に、ユーザーがAdId を無効にしている場合は、デバッグ レポートが送信されます。これはデベロッパー プレビュー 9 では実装されていませんが、今後のバージョンで実装される予定です。

広告テクノロジー サーバーの動作

広告テクノロジー サーバーは、デバッグ レポートに対して次のように動作します。

  • デバイスは、forDebuggingOnly.* API で指定されたサーバーに GET リクエストを送信します。
  • 各リクエストは、1 つのイベントレベルのデバッグ レポート(落札した、または落差できなかった 1 つの広告オークション)を表します。
  • 各リクエストに本文はありません。すべてのデータがクエリ パラメータに含まれます。
  • サイズの大きなレスポンス ペイロードは、パフォーマンスやデータ使用量に悪影響を与える可能性があるため無視されます。