Skip to content
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

Spec multibid #1055

Merged
merged 27 commits into from
Apr 16, 2024
Merged

Spec multibid #1055

merged 27 commits into from
Apr 16, 2024

Conversation

morlovich
Copy link
Collaborator

@morlovich morlovich commented Feb 23, 2024

This permits generateBid() to return (and setBid to take) a sequence of bids as an alternative to a single one.
A k-anon rerun, still limited to producing a single bid, will now happen when none of the returned bids are k-anonymous (which is equivalent to current behavior when one bid is produced).

To make it easier to produce k-anonymous bids when component ads are involved without relying on a re-run,
this also adds optional targetNumAdComponents and numMandatoryAdComponents fields to bid to request implementations to drop some component ads in order to make a bid k-anonymous.

See #595


Preview | Diff

@morlovich morlovich changed the title Start on multibid spec, missing limit stuff for now. Start on multibid spec Feb 23, 2024
@qingxinwu qingxinwu added the spec Relates to the spec label Feb 23, 2024
@dmdabbs
Copy link
Contributor

dmdabbs commented Feb 26, 2024

With multiple bids and renderURLs to score, sellers' trusted fetches will have more opportunities to hit limits.
Good thing maxTrustedScoringSignalsURLLength (#767) is in the works.

@dmdabbs
Copy link
Contributor

dmdabbs commented Feb 27, 2024

Should a bidder exceed the seller's perBuyerMultiBidLimits will it get a "reject reason" or does the buyer's participation silently fail/end unsuccessfully?

@morlovich
Copy link
Collaborator Author

Oh, adding a reject reason is a good idea... though not sure what's the story on spec'ing of that.

@dmdabbs
Copy link
Contributor

dmdabbs commented Feb 28, 2024

I saw your PR for existing "automatic" rejection reasons: #1064

@morlovich
Copy link
Collaborator Author

I saw your PR for existing "automatic" rejection reasons: #1064

I've just submitted the implementation; explainer will need to wait till I get approval to land the above, and as for spec'ing the reject reason... I suppose I will need to patch private aggregation spec around here:
https://patcg-individual-drafts.github.io/private-aggregation-api/#protected-audience-api-monkey-patches:~:text=If%20signalBaseValue%20is%20%22bid%2Dreject%2Dreason%22%3A

... but we probably should have something since forDebuggingOnly keywords can use it, too, and that's in our spec entirely.

@qingxinwu
Copy link
Collaborator

Oh, adding a reject reason is a good idea... though not sure what's the story on spec'ing of that.

The spec does not have post auction signals yet (so no reject reason). It's planned but just need to find some time to add that. Just created an issue #1079 for that. If you'd like, you can add a todo and link to the issue where you'd like to add the reject reason.

Maks Orlovich added 7 commits March 8, 2024 13:11
... This is a prereq to specing how it works with
targetNumAdComponents.
...into new type =bid debug reporting info=. This is in preparation
for multibid, since that would have multiple bids corresponding to
a single struct of debug reporting URLs [1]. As a bonus,
this permits the removal of slightly awkward "no bid" field on
generated bid.

[1] So =bid debug reporting info= will ultimately have a /set/ of
generated bid ids, rather than id-or-null.
@morlovich
Copy link
Collaborator Author

Note: this is now based on #1080 and morlovich#1 so maybe hard to read before that lands.

@dmdabbs
Copy link
Contributor

dmdabbs commented Mar 18, 2024

The #1088 discussion noted that browserSignals.renderSize provided to scoreAd as currently described is a single-bid remnant. Size metadata provided by a buyer on a bid is not yet spec'd. Do you think you will simply provide it via the generatedBid(s) and dispense with that browserSignal attribute?

@morlovich
Copy link
Collaborator Author

scoreAd is called one at a time even with multi-bid, so I think that issue is orthogonal? I honestly don't know what's up, though it does look like we indeed don't set it, unlike what the explainer says.

@dmdabbs
Copy link
Contributor

dmdabbs commented Mar 18, 2024

scoreAd is called one at a time even with multi-bid, so I think that issue is orthogonal?

Ah, ok. Yes, it would be orthogonal. GTK.

Maks Orlovich added 5 commits March 18, 2024 13:10
...into new type =bid debug reporting info=. This is in preparation
for multibid, since that would have multiple bids corresponding to
a single struct of debug reporting URLs [1]. As a bonus,
this permits the removal of slightly awkward "no bid" field on
generated bid.

[1] So =bid debug reporting info= will ultimately have a /set/ of
generated bid ids, rather than id-or-null.
@morlovich morlovich changed the title Start on multibid spec Spec multibid Apr 4, 2024
@morlovich morlovich requested a review from qingxinwu April 8, 2024 14:07
Copy link
Collaborator

@qingxinwu qingxinwu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some initial comments (mostly nits for now), still reviewing the logic.
Many steps don't have an ending ".", please add those.

spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Show resolved Hide resolved
Copy link
Collaborator Author

@morlovich morlovich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feedback applied...

spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Show resolved Hide resolved
spec.bs Show resolved Hide resolved
@@ -5326,7 +5382,7 @@ result of [=evaluating a bidding script=], or an [=additional bid=] provided by

<dl dfn-for="generated bid">
: <dfn>id</dfn>
:: An {{unsigned long}}. Used to identify a [=generated bid=].
:: A pair of {{unsigned long}}s. Used to identify a [=generated bid=].
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It'll be useful to add a brief explaination about what each element of the pair is about

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe use [=tuple=]? A [=tuple=] consisting of two {{unsigned longs}}, one for xxx and one for xxx
See the example in https://infra.spec.whatwg.org/#tuples.

spec.bs Outdated Show resolved Hide resolved
spec.bs Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Show resolved Hide resolved
spec.bs Show resolved Hide resolved
spec.bs Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
Copy link
Collaborator Author

@morlovich morlovich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, I think something is broken in compiling it (it complains about not finding chrome?), so I might need to do something to poke it to get it to try again...

spec.bs Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
spec.bs Show resolved Hide resolved
spec.bs Show resolved Hide resolved
spec.bs Outdated Show resolved Hide resolved
@qingxinwu
Copy link
Collaborator

Hmm, I think something is broken in compiling it (it complains about not finding chrome?), so I might need to do something to poke it to get it to try again...

Yeah I got the same error on my local main branch check as well after I synced.

@qingxinwu
Copy link
Collaborator

@domfarolino I think it's ready for you to review. Thanks!

@domfarolino
Copy link
Collaborator

It's a pretty big PR! Can you please update the OP way from:

Another one that's very much in progress and not ready for review --- it's completely missing the limit stuff

... to something more descriptive that can help get up to speed.

@morlovich
Copy link
Collaborator Author

Description updated

@JensenPaul JensenPaul merged commit 850b2ff into WICG:main Apr 16, 2024
1 check passed
JensenPaul added a commit that referenced this pull request Apr 16, 2024
JensenPaul added a commit that referenced this pull request Apr 16, 2024
github-actions bot added a commit that referenced this pull request Apr 16, 2024
SHA: 850b2ff
Reason: push, by JensenPaul

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@JensenPaul
Copy link
Collaborator

Drats, I accidentally merged this PR when I meant to merge #1048. I reverted this PR, but I'm not sure how to reopen this one :/

github-actions bot added a commit that referenced this pull request Apr 16, 2024
SHA: 9ffcb43
Reason: push, by JensenPaul

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@domfarolino
Copy link
Collaborator

You cannot; you'll have to open it again fresh.

@JensenPaul
Copy link
Collaborator

Probably easiest to hit the revert button on my #1137 to essentially reopen a similar PR. Again, I apologize for merging the wrong PR.

@morlovich
Copy link
Collaborator Author

Created #1138 using sophisticated high-reliability technology (diff/patch)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spec Relates to the spec
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants