WICG / turtledove

TURTLEDOVE
https://wicg.github.io/turtledove/
Other
526 stars 229 forks source link

solving multiple ads duplication problem #411

Open michaeld79 opened 1 year ago

michaeld79 commented 1 year ago

how does FLEDGE going to handle multiple ads on a single page where two or more ads are visible to the user in the view port where the same ad can be the winner of a single IG or same ad can be part of multiple IG's.

is there some data field that is sent in the auction event stating this is the same instant of the same page in case the bidder is of the same source so this can be handled in the key/val server side or is there another solution?

JensenPaul commented 1 year ago

Can you explain more about which use case you are trying to facilitate? I could imagine multiple ads on a single page being chosen by multiple FLEDGE auctions, one per ad.

michaeld79 commented 1 year ago

thank you for responding @JensenPaul

lets say i have the same ad on multiple IG's and i am on a page where i have few auctions.

what prevents me from seeing the same ad in all ad placements even if different IG won the bid or another case where same IG wins in 2 or more ad placements on same page and showing same ad

JensenPaul commented 1 year ago

Are you looking for ways to prevent their ad from showing multiple times on a single page? How have you done this in the past, before FLEDGE? is it done differently when each ad is selected sequentially (e.g. selecting a second ad to display after a bidder knows if their ad was selected as the first ad to display) and concurrently (e.g. selecting a second ad to display when the bidder doesn't know if their ad was also selected as the first ad to display)?

palenica commented 1 year ago

I don't know how Michael's company's tech stack might handle this, but I understand at least some adtechs have logic that allows them to correlate ad requests coming from adslots on the same page, and then force the per-adslot ad selection to run serially, removing ads selected for earlier slots from consideration for subsequent slots.

As an example, the "single request architecture" mode of the Google Publisher Tag bundles ad requests from a page: https://developers.google.com/publisher-tag/guides/ad-best-practices#use_single_request_architecture_correctly

I am not sure if this is easily achievable in FLEDGE.

michaeld79 commented 1 year ago

in a world without fledge i know the page i am on i can request ad's for both placements and let the server logic select the ads (preventing duplication) or if it is in sequence i can have an ID for the page instance i am on and the backend can also know what was shown

in FLEDGE case each placement is basically isolated so i don't have a unified ID for the key/val to tell me it was already seen on this page.

pm-nitin-nimbalkar commented 1 year ago

Can you explain more about which use case you are trying to facilitate? I could imagine multiple ads on a single page being chosen by multiple FLEDGE auctions, one per ad.

Hi @JensenPaul @JoelPM , follow up question to this comment. "I could imagine multiple ads on a single page being chosen by multiple FLEDGE auctions, one per ad." Wanted to clear my understanding with respect to fledge if there are multiple slots defined for Fledge auctions.

Take a example, on the page if we have 2 slots defined for fledge auction.

Based on current implementation in fledgeForGpt Module, Bidder Adapters will send the information their bid request about slot is registered for fledge auction and bidder adapter(SSP) will respond with auction configs. So in this case auctionConfigs will returned for each slots.

How slot.setConfig({ configKey: "", componentAuction: auctionConfig}) will be used. This would be defined for each slot.

Since GPT is running the runAdAuction function, will it call this function each per slot (2 times this function will called since there is 2 slots on page)?

Thanks.

eysegal commented 1 year ago

Hi, opening this again - What do you think is the best solution for this problem? Let's say we run the auctions sequentially, maybe some sort of data sharing between auctions so when an auction ends it somehow marks the winning IG or ad so following auctions would know to ignore it?

JoelPM commented 1 year ago

@pm-nitin-nimbalkar, what you wrote sounds right to me. I assume GPT will invoke runAdAuction once per slot after the contextual auction for that slot is complete.

@eysegal, I think you are correct. Some form of page-level data sharing within the PA framework would be required to coordinate multiple slots while maintaining the privacy requirements.

@michaeld79, it would certainly be possible to pass a page-view identifier into all the auctions (a timestamp, a UUID, anything that's stable across all slots on the page would work and could easily be implemented by Prebid.js). How that could be used to do things like page-level frequency capping is still unclear to me, though. I don't think the KV store is an option due to data limitations and even it if was you'd have a tough time with the race conditions.