Description
Introduction
In the current FLEDGE proposal, the bidding function is triggered per interest group, and each interest group's bidding function does not have access to any other interest groups. This prevents targeting ads based on multi-site behavior.
However, from the privacy perspective, considering multiple interest groups joined while a person was visiting the same site should be allowed. An example use case of single-site tracking:
The user visits shoes.example/red_shoes.htm to look at red shoes, and is added to IG_visitors;
The user visits shoes.example/purchase.html to make an purchase, and is added to IG_purchasers;
The ad targets users in IG_visitors but not in IG_purchasers.
Proposal
We propose:
- The browser records the current site when joining an interest group.
- The bidding function be called per site+owner, with access to all interest groups belonging to the site+owner.
Benefits
- Easier to handle the case where the remarketing ads target more than 1 interest group. For example, an advertiser could set up ads targeting users in interest group 1 while excluding users interest group 2.
- Support the partial de-crowding so that ads from the same advertiser do not compete with each other.
Detailed Proposal
Joining Interest Group
On calling joinAdInterestGroup()
API, we propose to pass an additional field in the interest group object, single_site
, which indicates if the interest group should be grouped with other interest groups for this site. If the single_site
field is set to true, the API will record the current site as an immutable interest group attribute. To understand what the term “site” means, please refer to this link.
Bidding Function
This would change the generate_bid()
function prototype from:
generate_bid(interest_group, auction_signals, per_buyer_signals, trusted_bidding_signals, browser_signals) { }
to
generate_bid(interest_groups, auction_signals, per_buyer_signals)) { }
where interest_groups is a list of [interest_group, trusted_bidding_signals, browser_signals] tuples.
Any interest groups registered with the same_site
parameter set to true will be presented to generate_bid()
function together, while ones with it set to false will be presented in isolation.