K-anonymity

For a creative to be considered k-anonymous, the tuple of interest group owner URL, bidding script URL, creative URL, and ad size must meet the specified threshold (k) over a past time period (w), and the k-anonymity status is updated periodically (p). Note that k is impacted by noise. Ad size won't be a part of the k-anonymity check until at least 2025. Learn more about the parameters from the k-anonymity algorithm explainer.

The following example describes how the values checked for k-anonymity may look like:

{
  owner: 'https://dsp.example',
  biddingLogicURL: 'https://dsp.example/bidding-logic.js',
  ads: [{
    renderURL: 'https://dsp.example/ad.html',
    // Ad size is not checked until after 2025
    sizeGroup: mediumRectangle
  }],
  adSizes: { mediumRectangle: { width: 300, height: 250 } },
}

For a creative to be considered k-anonymous, we will require in the future that the tuple is seen by 50 users (k=50) over a period of 30 days (w=30), and the k-anonymity status will be updated every 1 hour (p=1). We will gradually ramp up the parameters, traffic percentage, and values checked for k-anonymity to the final state over time.

The following table describes how the k-anonymity check will be ramped up:

Time Traffic Threshold (k) Update period (p) Values checked
1 Q4 2023 Available in pre-stable release channels, excluding Mode A and Mode B experimental traffic 10 12 hours IG owner URL, bidding script URL, and creative URL
2 Q1 2024 Available in pre-stable release channels, and rolling out to the Stable release channel, excluding experimental traffic. 10 12 hours IG owner URL, bidding script URL, and creative URL
3 Q3 2024 Available in all release channels 10 12 hours IG owner URL, bidding script URL, and creative URL
4 Sometime after the 3PCD process starts Available in all release channels 50 1 hour IG owner URL, bidding script URL, and creative URL
5 Sometime after 2025 Available in all release channels 50 1 hour IG owner URL, bidding script URL, creative URL, and ad size
  1. In Q4 2023, for up to 50% of Chrome Dev and Canary traffic, excluding Mode A and Mode B experimental traffic, we will begin to check k-anonymity for the interest group, bidding script, and creative URLs (ad size is not checked), and require 10 users per creative (k=10) over a 30 day period (w=30). The k-anonymity status will be updated every 12 hours (p=12).
  2. In Q1 2024, for up to 20% of Chrome Stable traffic, excluding Mode A and Mode B experimental traffic, we will begin to check k-anonymity with the same parameters.
  3. In Q3 2024, when the third-party cookie deprecation (3PCD) ramp-up process is planned to begin, k-anonymity will be checked for 100% of Chrome Stable traffic with the same parameters.
  4. After the third-party cookie deprecation process begins, we will raise the k-anonymity threshold to the final value of 50 (k=50) and set the update period to 1 hour (p=1).
  5. Not before 2025, we will begin to check k-anonymity for the ad size.

Interest group name and reporting IDs

In the buyer's reporting worklet (reportWin), the interest group name may be available as browser signals (browserSignals.interestGroupName) if the tuple of interest group name, interest group owner URL, bidding script URL, creative URL, and ad size are jointly k-anonymous.

If buyerReportingId is set in the auction config, this value becomes available instead of the interest group name, if the value is jointly k-anonymous with the interest group owner, bidding script URL, creative URL, and ad size. The value is available in the buyer's reporting worklet (reportWin).

If buyerAndSellerReportingId is set in the auction config, this value becomes available instead of the interest group name or buyerReportingId, if the value is jointly k-anonymous with the interest group owner, bidding script URL, creative URL, and ad size. The value is available in the seller's reporting worklet (reportResult) and buyer's reporting worklet (reportWin).

Ad size won't be a part of the k-anonymity check until at least 2025.

Local testing

For testing, you can disable the k-anonymity check by starting Chrome from the command line with the following flag:

--disable-features=FledgeEnforceKAnonymity

See the "Run Chromium with command-line switches" article to learn more.

What's next?

We want to engage in conversations with you to ensure we build an API that works for everyone.

Discuss the API

Like other Privacy Sandbox APIs, this API is documented and discussed publicly.

Experiment with the API

You can experiment and participate in conversation about the Protected Audience API.