-
Notifications
You must be signed in to change notification settings - Fork 258
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
Add priority and perBuyerGroupLimits #276
Conversation
There has been some discussion about the need to be able to update/tweak interest group priorities that this pullreq introduces (see e.g. #79 (comment)). Two ideas that seem particularly useful to us at RTB House:
These two mechanisms seem to be quite simple yet powerful. I was wondering, do you think they could be added, either now or longer term? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks Russ
FLEDGE.md
Outdated
@@ -108,6 +109,8 @@ The browser will remain in an interest group for only a limited amount of time. | |||
|
|||
#### 1.2 Interest Group Attributes | |||
|
|||
The `priority` is used to select which interest groups are shown when the number of interest groups are limited by the `perBuyerGroupLimits` attribute of the auction config. If not specified, a `priority` of `0.0` is assigned. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"which interest groups are shown"? It's which groups participate in an auction (as you describe below), so "shown" seems wrong here.
There's no special meaning to the numerical values, right? That is, 0.0 here is just a neutral default, and it's OK to use positive and negative numbers?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
FLEDGE.md
Outdated
@@ -174,6 +181,8 @@ The returned `auctionResultPromise` object is _opaque_: it is not possible for a | |||
|
|||
Optionally, `sellerTimeout` can be specified to restrict the runtime (in milliseconds) of the seller's `scoreAd()` script, and `perBuyerTimeouts` can be specified to restrict the runtime (in milliseconds) of particular buyer's `generateBid()` scripts. If no value is specified for the seller or a particular buyer, a default timeout of 50 ms will be selected. Any timeout higher than 500 ms will be clamped to 500 ms. A key of `'*'` in `perBuyerTimeouts` is used to change the default of unspecified buyers. | |||
|
|||
Optionally, `perBuyerGroupLimits` can be specified to limit the number of of interest groups from a particular buyer that participate in the auction. A key of `'*'` in `perBuyerGroupLimits` is used to set a limit for unspecified buyers. For each buyer, interest groups will be selected to participate in the auction in order of decreasing `priority` up to the specfied limit. The value of the limits provided should be able to be represented by a 16 bit unsigned integer. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to be as clear as possible, this should probably also indicate that the meaning of priority numbers are completely up to the discretion of each IG owner, and that priorities of groups from different owners will never be compared with each other.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
FLEDGE.md
Outdated
@@ -108,6 +109,8 @@ The browser will remain in an interest group for only a limited amount of time. | |||
|
|||
#### 1.2 Interest Group Attributes | |||
|
|||
The `priority` is used to select which interest groups are shown when the number of interest groups are limited by the `perBuyerGroupLimits` attribute of the auction config. If not specified, a `priority` of `0.0` is assigned. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It almost goes without saying, but perhaps include that interest groups with higher priority
will be selected over ones with lower?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
FLEDGE.md
Outdated
@@ -108,6 +109,8 @@ The browser will remain in an interest group for only a limited amount of time. | |||
|
|||
#### 1.2 Interest Group Attributes | |||
|
|||
The `priority` is used to select which interest groups are shown when the number of interest groups are limited by the `perBuyerGroupLimits` attribute of the auction config. If not specified, a `priority` of `0.0` is assigned. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When there are multiple interest groups with the same priority
, too many for the limit, perhaps say that the browser will select uniformly at random?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
I think updating the priority from generateBid might be a reasonable future change, but there are enough concerns related to that change (API design, error handling, etc) that it would probably be better addressed in a separate pull request. Using real-time priorities computed based on trustedBiddingSignals may have some performance limitations. At the very least we would need to wait for the fetches for the trusted bidding signals for all interest groups for an owner to complete before we could determine which interest groups could participate. |
Thanks for your thoughts. For us this is not a blocker for FOT1, but definitely important longer term. Discussing in a separate pullreq/issue (sometime in future) sounds good to me. |
This reflects the latest version of the pull request to the FLEDGE explainer for the prioritization feature: WICG/turtledove#276 Change-Id: I4b9f7ad8b41ce53bb1cbae46d3b92511bb50b991 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3585025 Auto-Submit: Russ Hamilton <behamilton@google.com> Reviewed-by: Maks Orlovich <morlovich@chromium.org> Commit-Queue: Maks Orlovich <morlovich@chromium.org> Cr-Commit-Position: refs/heads/main@{#992519}
@michaelkleber Do you think is is ready to merge? |
Looks good, thanks! Will merge now. |
Might we want to consider |
There are some good additional limits that we should consider adding. But as the live discussion pointed out, there's no harm in our starting with the limit that is easy to implement now, and then circling back and adding more refined controls later based on our experience. |
Thank you! |
The
priority
attribute for interest groups and theperBuyerGroupLimits
attribute for auction configurations allow for sellers to control the number of interest groups for each buyer participating in an auction.