google / ads-privacy

Apache License 2.0
301 stars 52 forks source link

GAM throttling PAAPI even when Chrome has PAAPI enabled #79

Open rdgordon-index opened 9 months ago

rdgordon-index commented 9 months ago

As per https://support.google.com/admanager/answer/13627134:

When the Protected Audience API (formerly known as FLEDGE) becomes generally available in Chrome, Ad Manager will begin gradually increasing the amount of traffic included in its testing. We'll monitor the impact to publisher revenue as we slowly increase the percentage of traffic, and will not ramp up further if there is a noticeable negative impact to publisher revenue. We expect that by the end of 2023, up to 10% of Chrome traffic will be enabled for Protected Audience API testing.

As noted https://github.com/google/ads-privacy/issues/77#issuecomment-1690872192, https://github.com/google/ads-privacy/issues/65#issuecomment-1548750619 and https://github.com/GoogleChromeLabs/privacy-sandbox-dev-support/issues/110, with the GA release of PAAPI, it has become evident that there is a gap in how on-page Protected Audience auctionConfig, GPT setConfig and GAM's handling are interacting, making it extremely difficult to for buyers, sellers and publishers to begin integrating with PAAPI.

In short, there is no indication on-device available in JavaScript that an auctionConfig registered for a component auction will not be honoured by GAM -- neither before the display call for the ad slot is executed, nor after the slot has rendered -- runAdAuction simply isn't executed, and it's invisible as to why this is the case from the browser. In other words, it acts as though there are no IGs available for the user, but that simply isn't the case. At the moment, it appears quite random as to whether or or GAM will throttle PAAPI or not.

https://services.google.com/fb/forms/uastringformultisellertestsignup/ is the proposed workaround for local testing -- but if ad tech vendors are going to begin to start PA testing, we're going to need additional clarity and signalling regarding if and when a given slot is PAAPI-eligible in GAM during the ramp-up period.

Can GAM provide this much-needed clarity?

rdgordon-index commented 9 months ago

From https://privacysandbox.com/intl/en_us/news/privacy-sandbox-for-the-web-reaches-general-availability:

General availability means the Privacy Sandbox technologies are in a stable state, and ready for scaled use by advertising solutions to support key business use cases

General availability of the Privacy Sandbox APIs means advertising providers and developers can now scale usage of these new technologies within their products and services, as these are now available for the majority of Chrome users

Given the overwhelming usage of GAM as the publisher ad server -- making this one of the 'key business use cases' -- I'm not sure I fully understand GAM's throttling controls; how can buyers and sellers prepare for 'scaled use' if 90% of the traffic isn't going to included by GAM?

Furthermore, beyond the overall testing population percentage, on a per publisher / network ID basis, this also makes integration extremely challenging, not to mention the difficultly in being able to correlate this invisible GAM behaviour with the https://developer.chrome.com/en/docs/privacy-sandbox/chrome-testing/ Mode A and B labelling.

rahulkooverjee-google commented 9 months ago

Thanks for the question!

We agree that coordinated testing is important, which is why we intend to use Chrome mode A and mode B labels to coordinate when Protected Audience auctions are run. We're still waiting on the details of the mode A labels from Chrome, but will certainly share more information once we have more to share.

dmdabbs commented 9 months ago

... coordinate when Protected Audience auctions are run

Not grokking the connection, The Publisher wants their partners to be able to testdrive all this nifty new advertising technology irrespective of any specially labeled browsers.

dmdabbs commented 8 months ago

We're still waiting on the details of the mode A labels from Chrome

FYI, @rahulkooverjee-google. DevRel published those details ten days ago. Just Mode A labels? Mode B (the ones without cookies) are also to be labeled when Chrome initiates that phase in 1Q24.

rahulkooverjee-google commented 8 months ago

Thanks for flagging that David!

To share an update:

* i.e. Ad Manager won't impose a % traffic restriction like we do for global traffic today, but there may be other reasons an auction is not run such as insufficient user consent.

dmdabbs commented 8 months ago

Thanks @rahulkooverjee-google.

We will be enabling Protected Audience auctions where possible* on one of the mode A labels. We're still finalizing exactly what label will be used. We're going to be starting with one label initially, and will evaluate whether it makes sense to include additional labels over time.

So on labeled traffic: GAM will permit PAAPI auctions on a) a single Chrome A label traffic, to be announced, and b) all Mode B instance traffic modulo the * fine print.

And not at all on unlabeled traffic, or will GAM "impose a % traffic restriction like we do for global traffic today?"

we will be sharing additional details soon about our planned testing

Should we expect that content on this repo or elsewhere, such as a product update?

dmdabbs commented 8 months ago

Checking in @rahulkooverjee-google.

rahulkooverjee-google commented 8 months ago

By default, a traffic (labeled or otherwise) will continue as today, where we run PA auctions on a percentage of traffic.

The specific changes outside of that default will be:

Please note that this subject to change given feedback from partners on how to best use mode A labels.

dmdabbs commented 8 months ago

By default, a traffic (labeled or otherwise) will continue as today, where we run PA auctions on a percentage of traffic.

Thanks @rahulkooverjee-google.

The percentage of inventory on which GAM will permit Protected Audience auctions to run is that advertised here?

rahulkooverjee-google commented 8 months ago

Correct - we expect to enable up to 10% of traffic for PA auctions this year

dmdabbs commented 8 months ago

TY @rahulkooverjee-google. So those Finch (?) experiment percentages support GAM and Chrome modes.

rdgordon-index commented 8 months ago

Can you further elaborate how that 10% of traffic will be selected? Will it be 10% of network codes, 10% of slots of a page, 10% of browsers, etc.?

For the selections that are label-based, it should be simple enough for a seller to ensure that we do (for the soon-to-be-selected mode A label ) or don't (for control label mode A) return an auctionConfig.

However, for the ones that aren't labelled, I'm looking for further clarification as to how that can be be made available to PA participants -- otherwise, it will be impossible to distinguish between 'no IGs on device', 'no IG bids were placed' and 'runAdAuction was never called.

dmdabbs commented 8 months ago

Here is a table overlaying Chrome's testing doc and above comments. Does this accurately capture it, GAM's intent, @rahulkooverjee-google?

Mode Label % of Stable traffic Chrome PA API Enabled? GAM Run PA Auctions? Notes per Chrome-facilitated testing or GAM
A control_1.1 0.25 Y N GAM: No Privacy Sandbox APIs will be used for the control labels in mode A
A control_1.2 0.25 Y N As the labels do not affect functionality, participants should not pass observed topics or run Protected Audience auctions when they detect the control_1.* group labels.
A control_1.3 0.25 Y N  
A control_1.4 0.25 Y N  
A label_only_1 1.5 Y Limited
A label_only_2 1.5 Y Limited Limited Availability (auctions will run on limited % of traffic - same as non-labeled traffic) see post below
A label_only_3 1.5 Y Limited
A label_only_4 1.5 Y Limited  
A label_only_5 1.5 Y Y GAM (per below): will run on eligible inventory (not subject to traffic sampling).
B treatment_1.1 0.25 Y Y GAM: Privacy Sandbox APIs will be used wherever possible in mode B
B treatment_1.2 0.25 Y Y We're proposing to divide the population into three treatment_1.* groups where third-party cookies are disabled, but PS R&M APIs are available,
B treatment_1.3 0.25 Y Y  
B control_2 0.25 N N ...and one control_2 group where both third-party cookies and the PS R&M APIs are disabled. Per Chrome-facilitated testing
    9.5 9.25 2.25  

My original Sheet here.

rahulkooverjee-google commented 8 months ago

That seems right, except for the labelonly* labels. We haven't yet decided which mode A label will be used for PA API testing (i.e. it may not necessarily be label_only_1), and for the other labels it's not that no auction would run but that auctions would run similarly to un-labeled traffic

dmdabbs commented 8 months ago

That seems right, except that we haven't yet decided which mode A label will be used for PA API testing (i.e. it may not necessarily be label_only_1)

Yes, @rahulkooverjee-google, that was for placement only to account for the single Mode A label in your comment.

Just one label seems counter to the CMA's intent to have:

all participating ad techs would be able to see the same [] label and coordinate accordingly, i.e. use the PS R&M APIs, but refrain from using third-party cookies. For example, this allows multiple participants to run Protected Audience auctions without third-party cookies across a consistent group of browsers.

patmmccann commented 7 months ago

We will also specifically use one mode A label to run PA auctions where possible

@rahulkooverjee-google which one? We don't want to solicit auction configs when we can be confident you won't run a top level auction

rahulkooverjee-google commented 7 months ago

To your question around mode B, we will be sharing additional details soon about our planned testing.

We just published details on our planned testing, including how each label will be used, here: https://support.google.com/admanager/answer/13178817

@rahulkooverjee-google which one?

@patmmccann to save you a click, it'll be label_only_5

dmdabbs commented 7 months ago

The doc indicates Google Ad Manager's treatment is (*)

*Subject to change with updated guidance from Chrome, the CMA, and/or partner feedback

Thank you in advance for posting here should this change.

rdgordon-index commented 4 months ago

@rahulkooverjee-google -- I noticed a new section / GAM configuration option on https://support.google.com/admanager/answer/13627134: "Allow testing on all inventory with non-Google sellers" -- can you comment on this further?

Specifically, are any of these PAAPI opt-outs visible client-side in javascript via the GAM libraries?

shahinrahbariasl commented 2 months ago

Hey @rahulkooverjee-google, just circling back on this. Despite having PAAPI enabled to allow testing on the full 100% of our inventory and tweaking the user agent along with applying CMA labels, it seems like GAM isn't calling runAdAuction all the time as expected on some of our test pages. There are definitely interest group buyers on the page, but there's no clear indication whether it's a technical issue or if GAM is throttling the auctions.

Is there any way to verify what's happening with GAM calling runAdAuction or any documentation about how/when/why GAM wouldn't call runAdAuction? It's pretty crucial for us to have some kind of visibility for this, as it impacts our ability to properly interact with PAAPI.

rahulkooverjee-google commented 2 months ago

Our help center has documentation about when we do / don't call runAdAuction.

It looks like you might work at Index Exchange - if that's right, I'd encourage you to contact GAM through the existing communication channels we have if you'd like deeper support.