Skip to content

Explicitly spec out how non-k-anon auction works. #1080

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Mar 18, 2024
Prev Previous commit
Next Next commit
non-k-anon => non-k-anon-enforced
  • Loading branch information
Maks Orlovich committed Mar 13, 2024
commit c5404fc6f5dea3ce2f557bece6a0ed236ea3f24f
35 changes: 19 additions & 16 deletions spec.bs
Original file line number Diff line number Diff line change
Expand Up @@ -853,8 +853,9 @@ To <dfn>asynchronously finish reporting</dfn> given a
[=fencedframetype/fenced frame reporting map=] |reportingMap|, [=leading bid info=] |leadingBidInfo|,
and [=auction report info=] |auctionReportInfo|.
1. [=Increment a winning bid's k-anonymity count=] given |leadingBidInfo|'s [=leading bid info/leading bid=].
1. If |leadingBidInfo|'s [=leading bid info/leading non-k-anon bid=] is not null,
[=increment a winning bid's k-anonymity count=] given |leadingBidInfo|'s [=leading bid info/leading non-k-anon bid=].
1. If |leadingBidInfo|'s [=leading bid info/leading non-k-anon-enforced bid=] is
not null, [=increment a winning bid's k-anonymity count=] given
|leadingBidInfo|'s [=leading bid info/leading non-k-anon-enforced bid=].
1. Let |buyerDone|, |sellerDone|, and |componentSellerDone| be [=booleans=], initially false.
1. If |leadingBidInfo|'s [=leading bid info/component seller=] is null, set |componentSellerDone|
to true.
Expand Down Expand Up @@ -1439,12 +1440,13 @@ To <dfn>generate and score bids</dfn> given an [=auction config=] |auctionConfig
1. Set |topLevelDirectFromSellerSignalsRetrieved| to true.
1. If |compWinnerInfo|'s [=leading bid info/leading bid=] is not null, then run
[=score and rank a bid=] with |auctionConfig|, |compWinnerInfo|'s
[=leading bid info/leading bid=], |leadingBidInfo|, |decisionLogicScript|, null,
"top-level-auction", null, and |topLevelOrigin|.
1. If |compWinnerInfo|'s [=leading bid info/leading non-k-anon bid=] is not null, then run
[=score and rank a bid=] with |auctionConfig|, |compWinnerInfo|'s
[=leading bid info/leading non-k-anon bid=], |leadingBidInfo|, |decisionLogicScript|, null,
"top-level-auction", null, and |topLevelOrigin|.
[=leading bid info/leading bid=], |leadingBidInfo|, |decisionLogicScript|,
null, "top-level-auction", null, and |topLevelOrigin|.
1. If |compWinnerInfo|'s [=leading bid info/leading non-k-anon-enforced bid=]
is not null, then run [=score and rank a bid=] with |auctionConfig|,
|compWinnerInfo|'s [=leading bid info/leading non-k-anon-enforced bid=],
|leadingBidInfo|, |decisionLogicScript|, null, "top-level-auction", null,
and |topLevelOrigin|.
1. Decrement |pendingComponentAuctions| by 1.
1. Wait until |pendingComponentAuctions| is 0.
1. If |leadingBidInfo|'s [=leading bid info/leading bid=] is null, return null.
Expand Down Expand Up @@ -1604,8 +1606,8 @@ To <dfn>generate and score bids</dfn> given an [=auction config=] |auctionConfig
1. [=list/Append=] |bidCopy| to |bidsToScore|.
1. [=list/Append=] |generatedBid| to |bidsToScore|.

Note: Conceptually, a bid that's already k-anonymous is considered for both
the k-anonymous and non-k-anonymous leadership.
Note: Conceptually, a bid that's already k-anonymous is considered
for both the k-anonymous and non-enforcing-k-anonymity leadership.

1. [=Register a bid for forDebuggingOnly reports=] given |generatedBid| and
|generatedBidsForDebuggingReports|.
Expand Down Expand Up @@ -1858,10 +1860,11 @@ or "component-auction", a [=currency tag=] |componentAuctionExpectedCurrency|, a
|scoreAdOutput|["{{ScoreAdOutput/incomingBidInSellerCurrency}}"].
1. Let |score| be |scoreAdOutput|["{{ScoreAdOutput/desirability}}"].
1. If |generatedBid|'s [=generated bid/for k-anon auction=] is false:
1. If |leadingBidInfo|'s [=leading bid info/leading non-k-anon bid=] is null, or
|score| &gt; |leadingBidInfo|'s [=leading bid info/top non-k-anon score=]:
1. Set |leadingBidInfo|'s [=leading bid info/top non-k-anon score=] to |score|.
1. Set |leadingBidInfo|'s [=leading bid info/leading non-k-anon bid=] to |generatedBid|.
1. If |leadingBidInfo|'s [=leading bid info/leading non-k-anon-enforced bid=]
is null, or |score| &gt; |leadingBidInfo|'s [=leading bid info/top non-k-anon-enforced score=]:
1. Set |leadingBidInfo|'s [=leading bid info/top non-k-anon-enforced score=]
to |score|.
1. Set |leadingBidInfo|'s [=leading bid info/leading non-k-anon-enforced bid=] to |generatedBid|.
1. Return.
1. Let |updateLeadingBid| be false.
1. If |leadingBidInfo|'s [=leading bid info/leading bid=] is null, or |score| &gt;
Expand Down Expand Up @@ -5352,7 +5355,7 @@ scored bids. It's a [=struct=] with the following [=struct/items=]:
<dl dfn-for="leading bid info">
: <dfn>top score</dfn>
:: A {{double}}, initially 0.0. The highest score so far.
: <dfn>top non-k-anon score</dfn>
: <dfn>top non-k-anon-enforced score</dfn>
:: A {{double}}, initially 0.0. The highest score so far when disregarding k-anonymity.
: <dfn>top bids count</dfn>
:: An integer, initially 0. The number of bids with the same `top score`.
Expand All @@ -5361,7 +5364,7 @@ scored bids. It's a [=struct=] with the following [=struct/items=]:
group owner.
: <dfn>leading bid</dfn>
:: Null or a [=generated bid=], initially null. The leading bid of the auction so far.
: <dfn>leading non-k-anon bid</dfn>
: <dfn>leading non-k-anon-enforced bid</dfn>
:: Null or a [=generated bid=], initially null. The leading bid of the auction disregarding k-anonymity so far.
: <dfn>auction config</dfn>
:: An [=auction config=]. The auction config of the auction which generated this
Expand Down