WICG / turtledove

TURTLEDOVE
https://wicg.github.io/turtledove/
Other
513 stars 217 forks source link

How to make GAM run Component Auctions? #1052

Open dmagsino opened 4 months ago

dmagsino commented 4 months ago

Hello, I am trying to run a component auction through GAM but failing to do so. I know that the componentAuctionConfig I am passing in the auctionSlot is valid because when I manually trigger the runAdAuction() and pass auction config it works. Is there a special setting I have to configure in GAM or perhaps a missing header or script? Please let know.

Here is my code to supposedly run component auction.

<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" type="text/javascript"></script>

var adUnitCode = '/someGAMId/testAdUnit'

var googletag = googletag || {};
        googletag.cmd = googletag.cmd || [];
        window.sendTargeting = true;

        googletag.cmd.push(function () {
            window.googletag.pubads().enableSingleRequest();
            window.googletag.pubads().disableInitialLoad();
            window.googletag.enableServices();

            auctionSlot = googletag.defineUnit(adUnitCode, [300, 250], 'protected-audience-ad').addService(window.googletag.pubads());
            auctionSlot.setConfig({
                componentAuction: [
                    {
                        configKey: 'https://ads-dev1.rubiconproject.com',
                        auctionConfig: componentAuctionConfig
                    }
                ]
            });
        });
michaelkleber commented 4 months ago

Check out https://support.google.com/admanager/answer/13178817?hl=en#testing-design which describes how GAM is interacting with Chrome's labelled slices of traffic for testing. (In particular, they don't run a PA on every single page overall, but they are doing that on some of the slices of traffic.)

If that doesn't hele, the GitHub repo for Google Ads's work on this stuff is over at https://github.com/google/ads-privacy/, and they might be able to give you a better answer.

patmmccann commented 4 months ago

GAM added a feature to solve this problem recently on the Global Admin tab. I recommend you only use it if you have your own throttling and testing plan in place.

wojciech-bialy-wpm commented 4 months ago

Yes, this issue has been mentioned in latest update from CMA (see https://assets.publishing.service.gov.uk/media/65ba2a504ec51d000dc9f1f5/CMA_Q4_2023_update_report_on_implementation_of_the_Privacy_Sandbox_commitments_PDFA_1.pdf): "GAM proposes to use machine learning to decide whether to trigger a PA auction."

We've had the same issue. In our tests would receive Component Auctions, and then AB test between publisher-initiated auctions and GAM-initiated ones, and GAM would discard most of the CA's we supply.

You can change it behavior in admin/settings/network:

Zrzut ekranu 2024-02-28 o 12 15 35

dmagsino commented 4 months ago

@michaelkleber Thank you, I will bring this issue over to the correct repository.

@patmmccann @wojciech-bialy-wpm Though this might be a good solution for testing – I definitely don't want to cause any performance issues and/or impact revenue on the production level. I believe that there are other ways to trigger GAM initiated auctions such as using a special user agent string which testers could sign-up here: https://services.google.com/fb/forms/uastringformultisellertestsignup/ . I haven't found success using the string provided but perhaps it could be because I'm using it incorrectly. Nonetheless, I am looking to test PA Auctions with minimal disruption. I just have a question for your suggestions. I'm assuming it was enabled but was there any significant performance impact after the Protect Audience API setting was enabled? Thank you.

patmmccann commented 3 months ago

Paapi has a large negative impact on adx performance. To see this, simply pass yourself the cookie deprecation label and look at label 4 and 5 in gam reporting. Adding additional component sellers seems to only help.