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

Support for Negative Targeting in Protected Audience #896

Open
fabricegaignier opened this issue Nov 9, 2023 · 18 comments
Open

Support for Negative Targeting in Protected Audience #896

fabricegaignier opened this issue Nov 9, 2023 · 18 comments

Comments

@fabricegaignier
Copy link

As mentioned in the Protected Audience explainer:

In online ad auctions for ad space, it’s sometimes useful to prevent showing an ad to certain audiences, a concept known as negative targeting. For example, you might not want to show a new customer advertisement to existing customers. New customer acquisition campaigns most often have this as a critical requirement.

This concept of “negative targeting” has been added to Protected Audience for bids coming from the contextual call, using “negative Interest Groups”. We propose extending it to bids based on Interest Groups.

The idea would be to have the possibility to link Negative Interest Groups to ads in « Positive Interest Groups ». An ad would then be:

{renderUrl : "url", metadata : object, negativeInterestGroups : [list of negative IG names]}

When generateBid() gets called, the interestGroup.ads object gets filtered according to the negative interest groups present on the browser for the same owner using the negativeInterestGroups attribute of ads.

This mechanism would:

  • make it possible to combine the power of Protected Audience while respecting the fundamental constraint of marketers to acquire new customers.
  • save the signature validation for the current additionalBid
@michaelkleber
Copy link
Collaborator

Hello Fabrice: Would it meet your needs if we instead let negative Interest Groups filter out an entire Interest Group?

Filtering individual ads from a single IG, as you propose, could be used to give that IG a lot of information. For example, your IG could contain 100 ads that each negatively-target an IG that corresponds to the user having visited a particular website. In that case generateBid could look at the whole list of non-filtered ads and learn whether or not the user had visited each of 100 different sites.

Filtering out an entire Interest Group, however, works more like what you describe in your proposal: you can target ads in the normal Protected Audience way, and also you can un-target people in a negative IG. This does expand beyond the "only two sites of data" bidding model in place right now, by introduce just one bit of information from the third site where the negative IG was or was not joined. But that extra bit can only be used for filtering, and cannot be in any way bootstrapped or further combined across sites.

@fabricegaignier
Copy link
Author

Thank you for your prompt answer. This would indeed meet our needs.
Let’s describe the mechanism:

At InterestGroup creation time we would have an additional field in the interestGroup:
interestGroup.negativeInterestGroups : [list of negative IG names]
When navigator.runAdAuction is called, all interest groups having an entry for this field are filtered out if any of the negative Interest Groups specified is present on the browser.

This filtering would have the same treatment as a negative dot product in the process of filtering and prioritizing described here

Would that be the way you see it?

@michaelkleber
Copy link
Collaborator

Yes! Your description matches what I had in mind. This seems like a good addition from my point of view.

Heads up @orrb1, who wrote the negative targeting implementation.

@remysaissy
Copy link
Contributor

Hello,
at Teads, support for for negative targeting in protected audience can also help us in our use cases.
I see the issue is still Open, yet the Fledge explainer mentions negativeInterestGroups.
What is the status of this support? Is it rolled out (and the issue could be considered as closed?).
Thanks!

@jeremybaoty
Copy link

Hi all,

I’m Jeremy, new product manager on the Protected Audience API. Our team is evaluating the negative interest group use cases, and thanks for all the valuable feedback you provided! Here we want to propose the following solutions:

  1. Support negative interest groups in protected audience bids

    • Add a field called “negativeInterestGroups” to the interestGroup object. This field accepts a list of negative IGs. The IG and negative IG must have the same owner.
    • When the auction is initiated, all IGs containing a negativeInterestGroup value that the user is included in will be filtered out.
  2. For contextual bids (where negative interest groups are already supported), we will remove the same origin requirement for negative IGs, so that it provides more flexible support to your use cases. Negative IGs in PA bids also won’t have the same origin requirement.

  3. Set a usage budget to prevent abuse and protect privacy:

    • A maximum limit of 3 negative IGs can be applied per bid (either PA bid or contextual bid)
    • A maximum limit of 10 additional bids with negative IGs is applied per buyer per component auction

With this proposal, in both contextual bids and PA bids, buyers can include multiple negative interest groups for targeting (from either the same or different origins).

We look forward to your feedback on how this solution meets your needs. Thanks a lot for your feedback!

@dmdabbs
Copy link
Contributor

dmdabbs commented Jun 27, 2024

Hello @jeremybaoty. Welcome to the funhouse, and thanks for sharing your proposal.

A maximum limit of 3 negative IGs can be applied per bid (either PA bid or contextual bid)

I'm not tracking the per bid aspect, as the proposed field is an attribute of the IG (not a renderURL).

What is the interplay between negativeInterestGroups and the IG's updateability (since it is pre-filtered from the auction)?

Looking forward to hearing more in a Wendesday call.

@fabricegaignier
Copy link
Author

Hello Jeremy,

Sorry for the late answer. We have been discussing your proposal internally and it took longer than expected.

We fully agree on removing the constraint on the origin to only impose that negative Interest Groups should have the same owner as the positive ones.

We would like as well to confirm that the signature mechanism with 'additionalBidKey' is not needed in this use case.

Regarding the limitation to 3 negative Interest Group specified in a positive Interest Group, we do agree with that limitation.
However we do not see how removing/extending this limit would constitute a breach of privacy.

@jeremybaoty
Copy link

jeremybaoty commented Jul 9, 2024

Hello @jeremybaoty. Welcome to the funhouse, and thanks for sharing your proposal.

A maximum limit of 3 negative IGs can be applied per bid (either PA bid or contextual bid)

I'm not tracking the per bid aspect, as the proposed field is an attribute of the IG (not a renderURL).

What is the interplay between negativeInterestGroups and the IG's updateability (since it is pre-filtered from the auction)?

Looking forward to hearing more in a Wendesday call.

Hi David,

Your feedback regarding the usage budget makes sense to me. I want to make some modifications the budget language here:

  1. For negative targeting in PA bids, A maximum limit of 3 negative IGs would be applied per IG
  2. For negative targeting in contextual bids (i.e. additional bids):
    • A maximum limit of 3 negative IGs would be applied per additional bid
    • A maximum limit of 10 additional bids with negative IGs would be applied per buyer per component auction

RE your question on updatability, an IG is allowed to do an update any time it is invited to participate in an auction — that is, any time a seller in the auction lists that IG owner as a buyer that can submit bids. This means: even when an IG is loaded but then filtered, it will be eligible for updates (subject to the IG's frequency limits).

Let me know if you have additional questions!

@dmdabbs
Copy link
Contributor

dmdabbs commented Jul 10, 2024

Got it. Thanks for clarifying @jeremybaoty.

What about Fabrice's question about the key?

We would like as well to confirm that the signature mechanism with 'additionalBidKey' is not needed in this use case.

Perhaps we can cover it in today's call. I see there's an item for Negative targeting proposal, so I assume this issue.

@eysegal
Copy link

eysegal commented Jul 14, 2024

Hi @jeremybaoty, good luck in your new role!
Unfortunately, as discussed in #1096, due to the nature of Native Advertising, which involves a lot of ads per call, sometimes dozens, we need the negative targeting information somehow available in the contextual call, so this solution doesn't help us.

@xxia2021
Copy link

xxia2021 commented Jul 17, 2024

We fully support removing the same origin requirement for negative IGs. After some coverage analysis of advertiser use cases, we think maximum limit of 3 negative IGs per additional bid is not sufficient, can that be raised to 10 as well? That would cover the majority of use cases.

@michaelkleber
Copy link
Collaborator

@xxia2021 Allowing negative IGs from many domains means that a single auction's result can imply something about the user's behavior on more domains, which is a privacy problem. Why do you need so many different negative IGs for the same bid anyway? Maybe we can find another way for you to achieve the goal that does not increase the privacy leakage.

@xxia2021
Copy link

xxia2021 commented Aug 7, 2024

@xxia2021 Allowing negative IGs from many domains means that a single auction's result can imply something about the user's behavior on more domains, which is a privacy problem. Why do you need so many different negative IGs for the same bid anyway? Maybe we can find another way for you to achieve the goal that does not increase the privacy leakage.

Some advertisers just have many user segmentations to split the users into different IGs.

@michaelkleber
Copy link
Collaborator

Some advertisers just have many user segmentations to split the users into different IGs.

I understand that, but there is no reason that each advertiser-defined user segment needs to be represented by a separate negative IG.

@eysegal
Copy link

eysegal commented Aug 7, 2024

@michaelkleber but an advertiser might want to suppress one product and target another.
For example a user is interested in an advertiser cloths - shirt, pants and socks.
Initially the user may get ads on all these products. Then the user buys the shirt, so advertiser suppress the shirt, but still want to target the panths and socks. Then the user buys the pants so the advertiser wants to suppress the shirt and pants but target the socks. So the advertiser needs multiple negative IG.

@michaelkleber
Copy link
Collaborator

@eysegal The use case you're describing can be accomplished with each bid having just one negative IG, "This is an ad campaign for shirts so don't show it to the bought_a_shirt negative IG."

@eysegal
Copy link

eysegal commented Aug 7, 2024

@michaelkleber and when the user buys the pants but the advertiser still wants to show to socks?

@michaelkleber
Copy link
Collaborator

michaelkleber commented Aug 7, 2024

Your shirt ads would negatively target the bought-a-shirt negative IG. Your socks ads would negatively target the bought-socks negative IG. This is not a discussion about how many negative IGs exist, this is about how many different negative IGs a single bid needs to target.

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

7 participants