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

Return multiple results in an auction #1074

Open
eysegal opened this issue Mar 5, 2024 · 7 comments
Open

Return multiple results in an auction #1074

eysegal opened this issue Mar 5, 2024 · 7 comments

Comments

@eysegal
Copy link

eysegal commented Mar 5, 2024

In Native advertising, a common use case is to have an endless feed rendering the ads. For example see here https://www.usatoday.com/story/news/nation/2024/03/05/clinton-township-michigan-fire-explosion/72848495007/ and scroll to the bottom of the article, you'll see an endless Taboola feed.
Since we need to auction between any ad that is returned in the contextual flow and the Protected Audiences flow, we will:

  1. Have a lot of calls to the Trusted Server, carrying high network and server costs.
  2. Slow the ad rendering since each ad slot auction is done separately, one after the other, to prevent duplications. This impacts on both our business performance and the publisher's page performance.

A solution for this is to have the Protected Audiences flow return X (as an input to the auction) items with their relevant score so we'll know what to position where.

I'll appreciate your thoughts on this.

@eysegal
Copy link
Author

eysegal commented Mar 17, 2024

Hi, I'll appreciate your thoughts

@michaelkleber
Copy link
Collaborator

Responses from the trusted server could be cacheable, if you use the appropriate HTTP caching headers. But you're correct that you would need to invoke runAdAuction() separately for each ad.

We have not tried to design a return-many-winners API for the whole auction. Are you just looking for returning the top-scored N ads? Or is your request for some kind of whole-page optimization logic in which the choice of one ad interacts with the choices of other ads?

The simple top-N thing seems feasible and in line with what we have today. An approach to whole-page optimization is trickier, because re-ranking ads based on other ads needs to somehow be reconciled with the Protected Audience approach of ad selection based on single-site rather than many-site user information.

@eysegal
Copy link
Author

eysegal commented Mar 18, 2024

@michaelkleber Top N ads along with their corresponding score should be enough, with this we can run a single auction and then place the ads in the correct place, in relation to the contextual ads. Does that violate the single-site information? If so, how?

@michaelkleber
Copy link
Collaborator

Even if the Protected Audience auction were modified to produce N ads, there's no way it would be able to give out the scores of those N ads as well!

Each ad coming out of the auction is an opaque object: you can see that it is an ad, but you can't tell which one, all you can do with it is render it. This is important for minimizing the information leakage. (If each ad came with its score, then it would be trivial for the list of scores to encode a unique identifier for this user.)

If you have a collection of contextual ads and you want to properly order the whole lot, then I think the way forward would be to pass N contextual ads into the PA auction as well, using the mechanism of Additional Bids. Then you could get a list of N ads as output, some of which could be the contextual ones and some the ones from Interest Groups — but you would not be able to tell which was which.

@eysegal
Copy link
Author

eysegal commented Mar 19, 2024

What if we limit the score to x bits?

Regarding using additional bids, we're considering it. The problem is that Protected Audiences is not yet ready to handle Native advertising well, we fear it may affect the page performance and that the use of Fenced Frames (in the future) is very limiting.

@michaelkleber
Copy link
Collaborator

What if we limit the score to x bits?

I don't think there is any value of x that would make this both useful and private.

I look forward to working on making Native and Fenced Frame work well together. If you can make this work in the iframe-rendering environment, then it would definitely help justify the idea of changing the API to return N ads. I think that without a private rendering solution, it would be hard to justify the work of returning many ads.

@eysegal
Copy link
Author

eysegal commented Mar 24, 2024

We're working under the assumption that there will be a solution for Native.
We also understand that the entire PA rendering should happen in some kind of an iframe (when the Native gaps are resolved).
Given that, is it already possible to add the support for the N ads?
Also note that Native advertising doesn't just include advertising. There are also organic items (recirculation) which are not ads - they are pages from the publisher itself and we somehow need to combine them with ads, that some may come from Protected Audiences.

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

No branches or pull requests

2 participants