Recency: The “recency” signal for Protected Audience interest groups indicates how long ago the user was joined to an interest group, which can be a useful signal when calculating an ad auction bid. Previously we provided this signal in a strictly bucketed and noised form to buyers’ win reporting function, reportWin(). This change exposes this signal to the buyers’ bidding function, generateBid(), which is a less privacy-sensitive function. It can be provided without bucketing or noising to generateBid() like other signals available in that function. We already allow developers to calculate this signal (e.g. by storing join time in the interest group), but we’ve been asked to have the browser supply it to generateBid() to ensure it’s calculated identically to the value supplied to the reporting function. Rounding bids and scores: In Protected Audience, the bid price and desirability score pass from functions that have access to cross-site data (generateBid() and scoreAd()) to the reporting worklets that have access to first party data (reportWin() and reportResult()), so to prevent event-level win reports from facilitating cross-site identity joins, we need to limit this data as much as possible. We’re planning to limit information in the bid price and desirability score by rounding them from 64-bit floating-point numbers to 16-bit floating point numbers.
Explainers: https://github.com/WICG/turtledove/pull/639/files https://github.com/WICG/turtledove/pull/486/files