@@ -5127,7 +5216,7 @@ dictionary StorageInterestGroup : AuctionAdInterestGroup {
is a one-time canonical [=string=] representation of a [=version 4 UUID=] that is uniquely
associated with a single call to {{Window/navigator}}.{{Navigator/runAdAuction()}}. For multi-seller
auctions, a distinct auction nonce can be uniquely associated with each of the
-{{AuctionAdConfig/componentAuctions}}. The auction nonce(s) will need to be passed back in via a
+{{AuctionAdConfig/componentAuctions}}. The auction nonce(s) will need to be passed back in via a
subsequent call to {{Window/navigator}}.{{Navigator/runAdAuction()}} via the {{AuctionAdConfig}}.
This is currently only needed for [=auctions=] that use [=additional bids=], in which the auction
nonce is combined with a [=signed additional bid with metadata/seller nonce=] to construct a bid
@@ -5607,17 +5696,17 @@ from querying the server during an auction.
1. If [=query k-anonymity cache=] for |adHashCode| returns true:
1. If |igAd|'s [=interest group ad/selectable buyer and seller reporting IDs=] is not null:
1. Let |kAnonRestrictedSelectableReportingIds| be a new empty [=list=] of [=string=]s.
- 1. [=list/For each=] |selectableReportingId| in |igAd|'s
+ 1. [=list/For each=] |selectableReportingId| in |igAd|'s
[=interest group ad/selectable buyer and seller reporting IDs=]:
1. Let |reportingHashCode| be the result of [=query reporting ID k-anonymity count=]
- given |ig|, |igAd|, and |selectableReportingId|.
+ given |ig|, |igAd|, and |selectableReportingId|.
1. If [=query k-anonymity cache=] for |reportingHashCode| returns true, then
[=list/append=] |selectableReportingId| to |kAnonRestrictedSelectableReportingIds|.
1. Set |igAd|'s [=interest group ad/selectable buyer and seller reporting IDs=] to
|kAnonRestrictedSelectableReportingIds|.
1. [=list/Append=] |igAd| to |kAnonRestrictedIG|'s [=interest group/ads=].
1. If |ig|'s [=interest group/ad components=] is not null:
- 1. Set |kAnonRestrictedIG|'s [=interest group/ad components=] to an empty [=list=] of
+ 1. Set |kAnonRestrictedIG|'s [=interest group/ad components=] to an empty [=list=] of
[=interest group ad=].
1. [=list/For each=] |igAdComponent| of |ig|'s [=interest group/ad components=]:
1. Let |adComponentHashCode| be the result of running [=compute the key hash of component ad=] given |ig| and
@@ -5682,11 +5771,11 @@ from querying the server during an auction.
* "SelectedBuyerAndSellerReportId"
* |middle|
* The result of [=compute the key part for one of multiple reporting ids=] given |selectedReportingId|
- * The result of [=compute the key part for one of multiple reporting ids=] given |igAd|'s
+ * The result of [=compute the key part for one of multiple reporting ids=] given |igAd|'s
[=interest group ad/buyer and seller reporting ID=]
* The result of [=compute the key part for one of multiple reporting ids=] given |igAd|'s
[=interest group ad/buyer reporting ID=]
- 1. Otherwise:
+ 1. Otherwise:
1. If |igAd|'s [=interest group ad/buyer and seller reporting ID=] is not null, set |keyString|
to be the [=string/concatenation=] of the following strings separated with U+000A (LF):
* "BuyerAndSellerReportId"
@@ -7504,8 +7593,9 @@ request with the <{iframe/adauctionheaders}>
content attribute
set to `true`, as described in the [:Ad-Auction-Additional-Bid:] header description.
Each [=traversable navigable=] has a
saved Bidding
-and Auction request context, which is a [=map=] whose [=map/keys=] are
-the [=string representation=] of a [=version 4 UUID=] and whose [=map/values=]
+and Auction request context, which is a [=map=]. The [=map=]'s [=map/keys=] are
+[=tuples=] consisting of the seller ([=origin=]) and the request ID
+([=string representation=] of a [=version 4 UUID=]). The [=map=]'s [=map/values=]
are [=server auction request contexts=].
Each [=traversable navigable=] has a
captured ad auction result
@@ -7696,7 +7786,7 @@ The following algorithm will be added to the [[FETCH#fetching]] section:
1. Let |bidWithMetadata|'s [=signed additional bid with metadata/signed additional bid=] be
|parts|[2].
1. [=list/Append=] |bidWithMetadata| to |storedAdditionalBidsHeaders|[|auctionNonce|].
- 1. Otherwise, if |parts|'s [=list/size=] is 2:
+ 1. Otherwise, if |parts|'s [=list/size=] is 2:
1. Let |auctionNonce| be |parts|[0].
1. If |auctionNonce|'s [=string/length=] is not 36, then [=iteration/continue=].
1. Let |bidWithMetadata|'s [=signed additional bid with metadata/signed additional bid=] be
@@ -7874,12 +7964,12 @@ dictionary ReportingBrowserSignals {
and that value was [=query reporting ID k-anonymity count|jointly k-anonymous=] combined with
interest group owner, bidding script URL, [=ad creative=] URL, and null.
* Set if the wining bid had a [=generated bid/selected buyer and seller reporting ID=] and the
- winning ad had a [=interest group ad/buyer and seller reporting ID=] set in its listing in the
+ winning ad had a [=interest group ad/buyer and seller reporting ID=] set in its listing in the
interest group, and that value was [=query reporting ID k-anonymity count|jointly k-anonymous=]
combined with interest group owner, bidding script URL, [=ad creative=] URL, the and winning bid's
[=generated bid/selected buyer and seller reporting ID=].
{{ReportingBrowserSignals/selectedBuyerAndSellerReportingId}}
- A selected reporting id returned by "`generateBid()`".
+ A selected reporting id returned by "`generateBid()`".
Set if the winning bid had a [=generated bid/selected buyer and seller reporting ID=] set,
and that value was [=query reporting ID k-anonymity count|jointly k-anonymous=] combined with
[=interest group ad/buyer and seller reporting ID=], interest group owner,
@@ -7948,7 +8038,7 @@ enum KAnonStatus { "passedAndEnforced", "passedNotEnforced", "belowThreshold", "
and that value was [=query reporting ID k-anonymity count|jointly k-anonymous=] combined with
interest group owner, bidding script URL, [=ad creative=] URL, and null.
* Set if the wining bid had a [=generated bid/selected buyer and seller reporting ID=] and the
- winning ad had a [=interest group ad/buyer reporting ID=] set in its listing in the
+ winning ad had a [=interest group ad/buyer reporting ID=] set in its listing in the
interest group, and that value was [=query reporting ID k-anonymity count|jointly k-anonymous=]
combined with interest group owner, bidding script URL, [=ad creative=] URL,
[=interest group ad/buyer and seller reporting ID=], and
@@ -8137,9 +8227,9 @@ An interest group ad is a [=struct=] with the following [=struct/item
: buyer and seller reporting ID
:: Null or a [=string=]. Will be passed in place of interest group name or
[=interest group ad/buyer reporting ID=], or alongside the
- [=generated bid/selected buyer and seller reporting ID=], to [=report win=] and
- [=report result=], subject to [=k-anonymity=] checks. Also passed alongside
- [=generated bid/selected buyer and seller reporting ID=] to `scoreAd()` if
+ [=generated bid/selected buyer and seller reporting ID=], to [=report win=] and
+ [=report result=], subject to [=k-anonymity=] checks. Also passed alongside
+ [=generated bid/selected buyer and seller reporting ID=] to `scoreAd()` if
[=generated bid/selected buyer and seller reporting ID=] is present. Only meaningful in
[=interest group/ads=], but ignored in [=interest group/ad components=].
: selectable buyer and seller reporting IDs
@@ -8693,7 +8783,7 @@ together in the signals response. It's a [=struct=] with the following [=struct/
group.
-A bidding partition is a collection of [=trusted bidding signals batcher/keys=] and
+A bidding partition is a collection of [=trusted bidding signals batcher/keys=] and
[=trusted bidding signals batcher/ig names=] that can be processed together by the service without
any potential privacy leakage. It's a [=struct=] with the following [=struct/items=]:
@@ -8926,7 +9016,7 @@ an {{unsigned short}}-or-null |experimentGroupId|, an [=origin=] |topLevelOrigin
|coordinator|.
1. If |keyInfo| is failure, then return « null, null, null ».
1. Let (|requestBlob|, |context|) be the result of generating request with |keyInfo|, |metadata| and
- |compressionGroups|. The generation method may follow that described in
+ |compressionGroups|. The generation method may follow that described in
[Section 2.2.4 of the Protected Audience Key Value Services](https://privacysandbox.github.io/draft-ietf-protected-audience-key-value-service/draft-ietf-protected-audience-key-value-services.html#name-generating-a-request).
1. Return « |requestBlob|, |interestGroupIdMap|, |context| ».
@@ -9036,7 +9126,7 @@ together in the signals response. It's a [=struct=] with the following [=struct/
group.
-A scoring partition is a collection of [=trusted scoring signals request/render URLs=] and
+A scoring partition is a collection of [=trusted scoring signals request/render URLs=] and
[=trusted scoring signals request/ad component URLs=] that can be processed together by the service
without any potential privacy leakage. It's a [=struct=] with the following [=struct/items=]:
@@ -9045,7 +9135,7 @@ without any potential privacy leakage. It's a [=struct=] with the following [=st
:: An integer indicates the index of this partition.
: namespace
:: A [=map=], whose [=map/keys=] are [=strings=] and [=map/values=] are [=list=] of
- [=strings=]. A namespace contains all [=trusted scoring signals request/render URLs=] and
+ [=strings=]. A namespace contains all [=trusted scoring signals request/render URLs=] and
[=trusted scoring signals request/ad component URLs=] in the partition.
: metadata
:: A [=map=], whose [=map/keys=] and [=map/values=] are [=strings=].
@@ -9366,11 +9456,11 @@ result of [=evaluating a bidding script=], or an [=additional bid=] provided by
in the auction. Must be null if the interest group making this bid has a null
[=interest group/ad components=] field.
: selected buyer and seller reporting ID
- :: Null or [=string=]. The selected reporting id from the
+ :: Null or [=string=]. The selected reporting id from the
[=interest group ad/selectable buyer and seller reporting IDs=] within the
[=generated bid/interest group=]. If present, this will be:
* Passed alongside [=interest group ad/buyer reporting ID=] and
- [=interest group ad/buyer and seller reporting ID=] to [=report win=]
+ [=interest group ad/buyer and seller reporting ID=] to [=report win=]
subject to [=k-anonymity=] checks.
* Passed alongside [=interest group ad/buyer and seller reporting ID=]
to [=report result=] subject to [=k-anonymity=] checks.
@@ -9447,13 +9537,13 @@ To adjust bid list based on k-anonymity given a [=list=] of [=generat
1. [=Apply any component ads target to a bid=] given |bidCopy|.
1. [=list/Append=] |bidCopy| to |bidsToScore|
1. Let |selectedReportingId| be a [=string=]-or-null that is set to null.
- 1. If |generatedBid|'s [=generated bid/selected buyer and seller reporting ID=] is not null, set
+ 1. If |generatedBid|'s [=generated bid/selected buyer and seller reporting ID=] is not null, set
|selectedReportingId| to it.
1. Let |igAd| be the [=interest group ad=] from |generatedBid|'s [=generated bid/interest group=]'s
[=interest group/ads=] whose [=interest group ad/render url=] is |generatedBid|'s
[=generated bid/ad descriptor=]'s [=ad descriptor/url=].
1. Let |isBidKAnon| be the result of [=query generated bid k-anonymity count=] given |generatedBid|.
- 1. If |isBidKAnon| is true and running [=query reporting ID k-anonymity count=] with |generatedBid|'s
+ 1. If |isBidKAnon| is true and running [=query reporting ID k-anonymity count=] with |generatedBid|'s
[=generated bid/interest group=], |igAd|, |selectedReportingId| is true:
1. [=list/Append=] |generatedBid| to |bidsToScore|.
@@ -9817,10 +9907,10 @@ An auction data config is a [=struct=] with the following [=struct/it
:: The origin of the coordinator hosting public encryption keys for the server
running the ad auction. The [=origin/scheme=] must be "`https`".
: encryption key
- :: A [=byte sequence=]. The public [[RFC9180|HPKE]] encryption key to be used
+ :: Null or a [=byte sequence=]. The public [[RFC9180|HPKE]] encryption key to be used
to encrypt the request.
: encryption key id
- :: A [=byte=] containing the key ID corresponding to the [=auction data config/encryption key=].
+ :: Null or a [=byte=] containing the key ID corresponding to the [=auction data config/encryption key=].
: request size
:: {{unsigned long}} or null. An optional field, containing the desired size
for the returned encrypted request blob.
@@ -9828,6 +9918,20 @@ An auction data config is a [=struct=] with the following [=struct/it
:: A [=map=] whose [=map/keys=] are [=origins=] and [=map/values=] are [=auction data buyer config=].
+An auction data per seller result is a [=struct=] with the following [=struct/items=]:
+
+ : seller
+ :: The [=origin=] of the seller that this result corresponds to. Will match one of
+ the sellers in the [=auction data config=].
+ : request
+ :: Null or a [=byte sequence=]. The encrypted request generated for this
+ [=auction data per seller result/seller=]. Null indicates an error occured and
+ the [=auction data per seller result/error=] field will contain additional information.
+ : error
+ :: Null or a [=string=]. Null when the request succeeds. Otherwise contains
+ additional information about the failure.
+
+
An auction data buyer config is a [=struct=] with the following [=struct/items=]:
: size