API difference highlights

October 21, 2024 · View on GitHub

Ad Selection API is a privacy-preserving ads (PPA) proposal that largely aligns on API surface area with similar proposals such as Google Chrome's Protected Audience API. It adopts core privacy-protecting approaches such as differential privacy and k-anonymity, but:

  • Allows transient processing of bidding signals across domains in trusted and opaque environments.
  • Proposes initially supporting only Trusted Execution Environment (TEE)-based solutions to enable safer dynamic operations and greater ad tech ownership which we believe will increase the chances of a successful ecosystem migration to privacy-preserving ad serving.

We intend to work with the web standards community, including the Private Advertising Technology Community Group (PATCG), and the broader ecosystem to iterate, find common ground, and work towards standards that will create a better future for the web. Ad Selection API is currently largely syntactically and feature compatible with the Protected Audience API while allowing additional functionality. We see the core privacy model focusing on:

  • Differential privacy
  • K-anonymity
  • User control To prevent the API from enabling persistent cross-site profile building of users, cross-domain signals must not be joinable in untrusted or persistent environments. We will begin with a TEE-only solution to keep operational excellence and competitiveness with ad techs. Creatives can be dynamically selected. We look forward to extensive public engagement with the industry, PATCG, and other participants.

See the Ad Selection Overview document for more detail.

This table documents known differences at the time of publication. As this proposal and others evolve, we expect to update it accordingly.

Protected Audience APIAd Selection API
Auction locationTEE or on-deviceTEE Only
Interest GroupsPartitioned by domain everywherePartitioned by domain on disk and in transit, merged in trusted/transient/opaque env.
Privacy constraint approachesDP, k-anonymity, single domain contextDP, K-anonymity.
Creative selectionStatic, must declare at IG creation/update timeDynamic. Dynamic render_url and dynamic interest group names can be generated in moment of bidding. New lookup algos will be available in Key/Value service to provide more effective ways to do selection.
Data available for BiddingBuyerSignals and separate InterestGroups connected with TrustedSignals from KVBuyerSignals, all InterestGroups with TrustedSignals owned by Buyer, (optional) dynamic TrustedSignals from Key/Value Service through new hook in bidding (key for lookup is dynamic).
TEE requirementsPublic cloudPublic cloud and, depending on risk analysis potentially other locations (e.g. see the UK's Cloud security guidance for potential approaches for establishing safety).
OperationsBrowser and Ad Tech share critical infrastructure such as k-anonAd tech takes control, no shared infrastructure services.

Some of the features that are highlighted will require changes in browser API, in B&A code or some other technical implementation. All such changes are collected in the table below and are explained in more detail in other docs:

New logicDescription
New Bidding’s hook – FetchAdditionalSignals.New hook for looking up additional signals will be available from the Bidding worklet.

More details - New hook logic.
Changes in input and output of biddingAt the moment of bidding, Buyer will have access to all InterestGroups owned by Buyer.
Bidding can return dynamic render_url and InterestGroup as a winner.

More details - New bidding functionality.
New logic in Key/Value serviceKey/Value service will support new algos that can provide more effective way for ad selection process (e.g., DiskANN algorithm).

More details - Ad Candidate Real-time Selection.
Azure supportAd Selection API can be deployed in Azure.

Details will be added soon.
K-anon serviceK-anon – new service that need to be deployed by Buyer that will be used for calculation of k-anonymity counters.

Details will be added soon.