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

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

Open
jdelhommeau opened this issue May 31, 2022 · 13 comments

Comments

@jdelhommeau
Copy link

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
Copy link

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
Copy link

JoelPM commented Jun 7, 2022

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
Copy link
Collaborator

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
Copy link
Author

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
Copy link
Collaborator

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

Apologies for the slight delay.

@jdelhommeau
Copy link
Author

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
Copy link
Collaborator

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
Copy link

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
Copy link

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
Copy link

JoelPM commented May 15, 2023

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
Copy link

laurb9 commented May 15, 2023

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:

  • most of the time, GPT does not call runAdAuction. This is driven by whether the GAM response contains a special payload that GPT uses to build the top-level auction config. Maybe it is due to the 5% population limit, but it does make it difficult to get consistent results.
  • sometimes GPT appears to ignore the slot config and runs a top-level auction with a single component that is also its own (seller: 'https://securepubads.g.doubleclick.net') and no others
  • eventually runAdAuction is called as we expect with the component auctions set on the slot plus GPT's own
  • when reportResult/reportWin are called, indicating a FLEDGE win, the FLEDGE renderUrl is never fetched and instead we see the contextual or no ad at all.

@rdgordon-index
Copy link

rdgordon-index commented Aug 2, 2023

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
Copy link

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

As noted in #77, this no longer works... ad unit code /22657645226/multiseller-demo no longer returns PA-associated signals in the GAM response.

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

8 participants