google / ads-privacy

Apache License 2.0
301 stars 52 forks source link

Clarification on "Add explainer of initial multiple seller FLEDGE testing on GAM" #65

Open jdelhommeau opened 2 years ago

jdelhommeau commented 2 years ago

It is good to see GAM to start explaining how other exchanges will be able to test FLEDGE API when publisher is using GAM, as it was a request from the industry for a long time now. However, I am still unclear how this will work exactly.

The explainer mentions a new API part of GPT tag: Slot.addComponentAuction(seller, AuctionConfig)

Other exchanges can submit their auction config through this API to GAM, which will in turn use those to populate the componentAuctions field of the top-level AuctionConfig.

Then, the explainer states: "Ad Manager will compare the bids of all sellers and the best contextual ad selected via dynamic allocation, and will serve the ad with the highest bid."

This part isn't clear. How will Ad Manager "compare" the bids of all sellers and the best contextual ad, since all fledge related bids (both top level and component) are obfuscated and can only be evaluated within the fledge auction.

Will the contextual bids be passed into the top level fledge auction as component ads as well?

lukwlodarczyk commented 2 years ago

Hi GAM team,

How will Ad Manager "compare" the bids of all sellers and the best contextual ad, since all fledge related bids (both top-level and component) are obfuscated and can only be evaluated within the fledge auction.

Will the contextual bids be passed into the top-level fledge auction as component ads as well?

+1 to this question.

Additionally, I would like to ask if GAM considers providing open bug tracking tools for dynamic allocation. This would allow conducting an audit of the output from the top lever auction handler and increase trust in the level playing field. It would be helpful to provide access for buyers participating in multiple auctions enabling bug tracking of bidding strategies.

Last but not least. When we can expect more detailed specifications to be published with experimental endpoint easing development and where we should be looking for a specific document describing new API calls?

JoelPM commented 2 years ago

I assume GAM will do this comparison in their decisionLogic (executed in the browser), where they have access to all the Fledge bids as well as whatever metadata they pass in to the Fledge auction.

rahulkooverjee-google commented 2 years ago

This part isn't clear. How will Ad Manager "compare" the bids of all sellers and the best contextual ad, since all fledge related bids (both top level and component) are obfuscated and can only be evaluated within the fledge auction. Will the contextual bids be passed into the top level fledge auction as component ads as well?

As we begin testing FLEDGE auctions with multiple sellers on Ad Manager publisher inventory, there can be two auctions other exchanges compete in.

First, through the same manner header bidding works today, they may compete in a contextual auction. The winning contextual creative (if any) is determined in this server side auction via dynamic allocation. The winning contextual creative may come from any participant in Ad Manager’s unified auction, including Ad Exchange, Open Bidding, guaranteed line items, and remnant line items (including price priority line items used to traffic header bidding).

Second, once the contextual auction concludes, the new on-device FLEDGE auction can be run. Exchanges can register their AuctionConfig using the new GPT API. Each of these component auctions will run and propagate their best interest group ads and associated bids to the top-level auction where these bids will compete against the winning ad from the earlier contextual auction.

I assume GAM will do this comparison in their decisionLogic (executed in the browser), where they have access to all the Fledge bids as well as whatever metadata they pass in to the Fledge auction.

Yes. To enable early testing of the multi-seller support on Ad Manager publisher inventory, we plan to use the scoreAd function specified via the top-level decisionLogicUrl to express such comparison logic.

When we can expect more detailed specifications to be published with experimental endpoint easing development and where we should be looking for a specific document describing new API calls?

Currently, we plan to make the suggested GPT API extension available, alongside with the supporting documentation, sometime in July. The GPT release notes will be updated once the API and documentation is available.

jdelhommeau commented 1 year ago

hi @rahulkooverjee-google . Any update on this? Also, will GAM provide component ad auction logic, or will GAM only participate in fledge auction as main ad (running the actual fledge auction) ?

rahulkooverjee-google commented 1 year ago

Experimental support is now available in GPT. Please see the GPT developer documentation for details.

Apologies for the slight delay.

jdelhommeau commented 1 year ago

Thank you for the update @rahulkooverjee-google .

Regarding component ad auction. Will gam also participate as a component auction if a third party is chosen by the publisher to run the main auction logic? Or will gam not provide support for components auction for their own auction logic meaning they will have to run main auction to participate into fledge auction?

rahulkooverjee-google commented 1 year ago

Currently, as part of early testing, Ad Manager supports testing FLEDGE with multiple sellers on Ad Manager via the API described here; participation of Ad Manager as a component auction in other top-level auctions is not supported. While we're not sure what support for multiple FLEDGE sellers might look like in Ad Manager long-term, we're committed to iterating toward a holistic solution based on what we learn from these tests and discussions with partners as we work toward a more privacy safe web.

piotrj-rtbh commented 1 year ago

Currently, as part of early testing, Ad Manager supports testing FLEDGE with multiple sellers on Ad Manager via the API described here;

Hi, I can play the fledge demo available at https://fledge-demo.glitch.me/ It is using plain FLEDGE API calls and doesn't use GAM. Current GPT API reveals Slot.setConfig() and the auctionConfig . Do you have any working example (similiar to that on fledge-demo.glitch.me) which makes use of the above-mentioned GPT API?

piwanczak commented 1 year ago

Thank you, Google Ads team, for sharing the demo for testing FLEDGE (PAAPI) at https://github.com/google/ads-privacy/blob/master/proposals/fledge-multiple-seller-testing/demo.md

We’d like to replicate the exact setup with publisher partners in their instances of GAM. For publisher & buyer QA purposes we need to set up a test page in the publisher’s GAM instance in a way that every page view of a test page triggers FLEDGE auction, if Chrome browser is eligible for FLEDGE. This is a standard procedure for new ads tested - both the site owners as well as advertisers need to make sure the ad looks good and works well.

We’ve set up a test pages with GAM using the Experimental API docs: https://proximal-scrawny-sparrow.glitch.me/

But they do not show FLEDGE ads during our manual tests

How can we do that in GAM?

JoelPM commented 1 year ago

I would like to echo @piwanczak's request. We have struggled with this as well. It seems as though GPT doesn't always run Fledge when it's available, which makes testing nearly impossible. cc @laurb9

laurb9 commented 1 year ago

Indeed, that reflects my experience, most of the time there are no Interest Group bids, sometimes I do see wins but those are never rendered.

The behavior I've observed is as follows:

rdgordon-index commented 11 months ago

I have a similar question -- the README doc indicates (emphasis added)

GPT would collect all provided auction configurations, use those to populate the componentAuctions field of the top-level auctionConfig, and commence the top-level auction if the ad request is enabled for Protected Audience auctions.

And the demo doc states that

Ad Manager’s GPT tag will trigger the call to navigator.runAdAuction() to run the on-device auction to select an ad.

What determines "if the ad request is enabled for Protected Audience auctions"? My assumption that it would be tied to a slot's setConfig call doesn't seem to hold -- and there's no indication of why in the console logs.

Interestingly, the ad unit in the multi-seller demo always runs the on-device auction, whereas the test line items we've created do not; is there some specific configuration of the line item in GAM that ensures that the 'ad request is enabled for PA auctions'?

rdgordon-index commented 10 months ago

Interestingly, the ad unit in the multi-seller demo always runs the on-device auction

As noted in https://github.com/google/ads-privacy/issues/77, this no longer works... ad unit code /22657645226/multiseller-demo no longer returns PA-associated signals in the GAM response.