@@ -96,6 +96,12 @@ spec: private-aggregation-api; urlPrefix: https://patcg-individual-drafts.github
9696 text: contribution cache entry; url: #contribution-cache-entry
9797 text: contribution cache; url: #contribution-cache
9898 text: default filtering id max bytes; url: #default-filtering-id-max-bytes
99+ text: pre-specified report parameters
100+ for: pre-specified report parameters
101+ text: context ID
102+ text: filtering ID max bytes
103+ text: requested max contributions
104+ text: set the pre-specified report parameters for a batching scope
99105spec: Shared Storage API; urlPrefix: https://wicg.github.io/shared-storage
100106 type: dfn
101107 text: shared-storage; url: #permissionspolicy-shared-storage
@@ -247,7 +253,12 @@ dictionary GenerateBidInterestGroup {
247253 record<DOMString, sequence<DOMString>> sizeGroups;
248254};
249255
250- dictionary ProtectedAudiencePrivateAggregationConfig {
256+ dictionary ProtectedAudienceAuctionPrivateAggregationConfig {
257+ USVString aggregationCoordinatorOrigin;
258+ [EnforceRange] unsigned long long maxContributions;
259+ };
260+
261+ dictionary ProtectedAudienceInterestGroupPrivateAggregationConfig {
251262 USVString aggregationCoordinatorOrigin;
252263};
253264
@@ -256,7 +267,7 @@ dictionary AuctionAdInterestGroup : GenerateBidInterestGroup {
256267 record<DOMString, double> prioritySignalsOverrides;
257268 required double lifetimeMs;
258269 DOMString additionalBidKey;
259- ProtectedAudiencePrivateAggregationConfig privateAggregationConfig;
270+ ProtectedAudienceInterestGroupPrivateAggregationConfig privateAggregationConfig;
260271};
261272</xmp>
262273
@@ -772,7 +783,7 @@ dictionary AuctionAdConfig {
772783 record<DOMString, AuctionReportBuyersConfig> auctionReportBuyers;
773784 AuctionReportBuyerDebugModeConfig auctionReportBuyerDebugModeConfig;
774785 sequence<DOMString> requiredSellerCapabilities;
775- ProtectedAudiencePrivateAggregationConfig privateAggregationConfig;
786+ ProtectedAudienceAuctionPrivateAggregationConfig privateAggregationConfig;
776787
777788 record<DOMString, DOMString> requestedSize;
778789 sequence<record<DOMString, DOMString>> allSlotsRequestedSizes;
@@ -1744,14 +1755,28 @@ To <dfn>check if required seller capabilities are permitted</dfn> given an [=auc
17441755</div>
17451756
17461757<div algorithm>
1747- To <dfn>obtain the coordinator from a Private Aggregation config</dfn> given a
1748- {{ProtectedAudiencePrivateAggregationConfig}} |config|, perform the following
1749- steps. They return an [=aggregation coordinator=], null or a {{DOMException}}.
17501758
1751- 1. If |config|["{{ProtectedAudiencePrivateAggregationConfig/aggregationCoordinatorOrigin}}"]
1752- does not [=map/exist=], return null.
1759+ To <dfn>obtain the coordinator from a Private Aggregation config</dfn> given a
1760+ {{ProtectedAudienceAuctionPrivateAggregationConfig}} or
1761+ {{ProtectedAudienceInterestGroupPrivateAggregationConfig=] |config|, perform the
1762+ following steps. They return an [=aggregation coordinator=], null or a
1763+ {{DOMException}}.
1764+
1765+ 1. Let |originString| be null.
1766+ 1. If |config| is a {{ProtectedAudienceAuctionPrivateAggregationConfig}}:
1767+ 1. If
1768+ |config|["{{ProtectedAudienceAuctionPrivateAggregationConfig/aggregationCoordinatorOrigin}}"]
1769+ does not [=map/exist=], return null.
1770+ 1. Set |originString| to
1771+ |config|["{{ProtectedAudienceAuctionPrivateAggregationConfig/aggregationCoordinatorOrigin}}"].
1772+ 1. If |config| is a {{ProtectedAudienceInterestGroupPrivateAggregationConfig}}:
1773+ 1. If
1774+ |config|["{{ProtectedAudienceInterestGroupPrivateAggregationConfig/aggregationCoordinatorOrigin}}"]
1775+ does not [=map/exist=], return null.
1776+ 1. Set |originString| to
1777+ |config|["{{ProtectedAudienceInterestGroupPrivateAggregationConfig/aggregationCoordinatorOrigin}}"].
175317781. Return the result of [=obtaining the Private Aggregation coordinator=] given
1754- |config|["{{ProtectedAudiencePrivateAggregationConfig/aggregationCoordinatorOrigin}}"] .
1779+ |originString| .
17551780
17561781</div>
17571782
@@ -4799,6 +4824,15 @@ an [=auction config=] |auctionConfig| and a [=reporting context=] |reportingCont
479948241. [=map/For each=] (|origin|, <var ignore>aggregationCoordinator</var>) →
48004825 |batchingScope| of |reportingContext|'s [=reporting context/private aggregation batching
48014826 scope map=]:
4827+ 1. Let |preSpecifiedParams| be a new [=pre-specified report parameters=] with the items:
4828+ : <a spec="private-aggregation-api" for="pre-specified report parameters">context ID</a>
4829+ :: null
4830+ : [=pre-specified report parameters/filtering ID max bytes=]
4831+ :: [=default filtering ID max bytes=]
4832+ : [=requested max contributions=]
4833+ :: |auctionConfig|'s [=auction config/requested max contributions=]
4834+ 1. [=Set the pre-specified report parameters for a batching scope=] given
4835+ |preSpecifiedParams| and |batchingScope|.
48024836 1. [=Process contributions for a batching scope=] given |batchingScope|, |origin|,
48034837 "<code>protected-audience</code>" and null.
48044838
@@ -8321,6 +8355,10 @@ An <dfn export>auction config</dfn> is a [=struct=] with the following [=struct/
83218355 :: A [=map=] from [=strings=] to {{AuctionReportBuyersConfig}}s. For buyer metrics delegated to be
83228356 reported to the seller via the [Private Aggregation API](https://github.com/patcg-individual-drafts/private-aggregation-api),
83238357 this determines how each metric bucket is chosen inside the buyer's space, and how to scale it.
8358+ : <dfn>requested max contributions</dfn>
8359+ :: Null or a positive integer. Used to override [Private Aggregation
8360+ API](https://github.com/patcg-individual-drafts/private-aggregation-api)'s
8361+ default number of contributions per report.
83248362 <!-- TODO: this should probably use enums instead -->
83258363 : <dfn>auction report buyer debug details</dfn>
83268364 :: A [=debug details=], initially a new one. Configures
0 commit comments