WICG / turtledove

TURTLEDOVE
https://wicg.github.io/turtledove/
Other
515 stars 216 forks source link

IG name in Ad impression #1033

Open kamalonly opened 5 months ago

kamalonly commented 5 months ago

Within reportWin function, is it possible to include the 'browserSignals.interestGroupName' as a parameter in the ad impression tracking call, pointing to the DSP service endpoint?

michaelkleber commented 5 months ago

The interest group name may already be made available to the DSP reporting endpoint, as an argument to the reportWin function. There are a limits, though: the name is only available if the combination of IG name and render URL together are still k-anonymous. (The IG name is the default for this behavior, but DSPs can override that to use buyerReportingId or buyerAndSellerReportingId instead.)

This reporting flow is the Protected Audience way to learn about ad impressions and other events. So perhaps this already answers your question.

The IG name is not generally available in the rendering environment, i.e. inside the creative frame itself. The DSP could make it available by including the IG name as a URL param in the render URL directly, of course. (That would keep the ad from winning if the URL with IG name is not already k-anonymous.)

Do either of these approaches meet your needs?

sunnypav commented 5 months ago

I see Igname is available in reportWin function. Can we register the IG name as a macro using registerAdMacro function and utilise the reportEvent to get the IG name be sent in the impression tracking call ?

michaelkleber commented 5 months ago

Yes, exactly.

sunnypav commented 5 months ago

In this case do k-anon restriction still apply to the impression tracking call ? As per the documentation there wont be any k-anon restrictions for the reportEvent URL and the macros used inside in it. Wanted to get a confirmation on the same.

michaelkleber commented 5 months ago

The k-anon restriction applies to the IG name, just as I said above. The IG name might be available inside the reportWin() function, as the value of browserSignals.interestGroupName. But that value is only passed into reportWin() if the IG name and renderURL together are still k-anonymous.

If the IG name would break k-anonymity, then it will not be available inside the reportWin environment at all, and it cannot be included in the impression tracking call in any other way. This is intentional. If you add me to an interest group with name='MichaelKleber_CustomerID123456789' then you can still bid all you want, but you cannot learn who the ad was shown to at reporting time.

sunnypav commented 5 months ago

Got it. Thanks for the explanation.