-
Notifications
You must be signed in to change notification settings - Fork 249
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
FLEDGE: extend runAdAuction to support multiple ad slots #98
Comments
This does seem desirable, but whole-page auctions seem like they could add an awful lot of complexity. Do you have any thoughts on what the SSP and DSP on-page interactions would need to look like for this? This certainly will not be a V1 feature. |
DSPs and SSPs could provide meta-data needed to determine conflicts or dependencies. One possible flow:
|
This sounds like a frighteningly large amount of business logic to leave up to the browser. The kind of flow you're talking about seems reasonable to me, but I strongly believe we would need to find a privacy-preserving way to let that logic be controlled by the auction runner, not by a spec. |
That's a great idea! In fact, letting the publisher provide the full business logic for running the auction (instead of simply scoring bids) as is detailed in PARRROT would get the browser out of this business logic altogether and allow for this problem to be solved by the publisher or their technology partner(s) according to their business needs. |
On a tangent point, I would like to make sure that I understand what is proposed in the current proposal as the basis of this discussion.
Is that right? |
@brodrigu If the publisher (or their agent) gets to see all the bids from all the interest groups, then they are certainly looking at a unique fingerprint for the user. If they can use this information to pick winners for all N ad slots on the page, or decide the on-device auction has no winner for that slot, then the function that knows a unique user identity just got to send N bits of data to the outside page. That means loading a single page with a bunch of ads on it is a cross-site tracking mechanism. This is why I said "we would need to find a privacy-preserving way to let that logic be controlled by the auction runner." It's easy to satisfy your feature request if we give up on preventing tracking. I don't see a way to satisfy it that meets our privacy needs. |
@Pl-Mrcy No, this is not at all correct! Things like "first-price auction" or "second-price auction" are entirely defined and controlled by the entity running the auction — the publisher / seller / SSP.
If the seller got to see information about all of the interest groups together when picking the winner, that would essentially be an opportunity for them to make decisions based on cross-site information about the user. Also that would let the seller use membership in owner1's interest groups to influence owner2's ad rankings. This is why FLEDGE lets |
Thanks @michaelkleber, I see your point about the potential to leak information with N bits. Given N=1 is what we have in Fledge and N=32 is roughly enough to uniquely identify all users, it seems like maybe there is a discussion to be had about what N is acceptable. A multi-ad-slot feature could be useful where N=3 or 4 which seems to be an acceptable precision for things like Private Click Measurement. |
I don't think it's even that simple. The 3 bits for click measurement have many additional protections, including (a) they can only be learned after a person clicks on an ad, and (b) the information they reveal — this person converted on side X — is only revealed to someone who already knew the baseline information that this person visited site X, because they saw the person click on the ad link in the first place. Even allowing the one bit to leak, as proposed in TURTLEDOVE and FLEDGE, is pretty risky, and we may need to put extra guards in place to protect from abuse. Ramping up the leakage is really the wrong way to go here. |
I agree there is some trade off between functionality (which leads to publisher-> user benefits) and privacy. Perhaps your stance is 0-1 bits exposed here provides the best value. In that case the runAdAuction function could only ever return null (when no ads should win) or a list of opaque promises when a set of interest group ads have been chosen. This still exposes the same amount of information while allowing for the requested feature. |
Ah! That is a very interesting thought indeed! Is that a reasonable trade-off to make, or do pages usually run with a mixture of contextually-targeted and userlist-targeted ads? (I understand that you personally might not be in a position to answer that, of course.) This will need some careful thinking still — presumably some interest groups would want to bid on individual slots, and some on the page as a whole ("roadblock", right?). So a mechanism where we run each individual ad slot's auction, and then have an opportunity for a whole-page auction as well, which needs to beat out the sum of the individual-slot optima, essentially? |
It shouldn't matter what order we run individual and roadblock auctions in so perhaps they could be combined, with each bidding (or bid scoring) function could aware of all available slots, returning one or more bids targeted to specific slots. The browser could select the combination of slots/bids that produce the highest total bid score. These solutions would solve for the roadblock but wouldn't solve the brand conflict use-case and we would still need a way to ensure the combination of IG ads are compatible. |
Publishers run multiple ad slots (ad spaces) on each of their pages. There are several use-cases that are impossible to solve for when each auction is run independently and no knowledge of outcome can be shared with a following auction.
For example:
Both these use cases (and perhaps others) could be solved if runAdAuction supported one or more auctions that could provide winning ads to multiple ad slots.
The text was updated successfully, but these errors were encountered: