-
Notifications
You must be signed in to change notification settings - Fork 269
Description
I recently realized interestGroup
ownership effectively defaults to ad tech providers, at least in FLEDGE API parlance. This is unfortunate. I say "effectively defaults" because in order for the first party to be the owner
of an interestGroup
for FLEDGE API they would have to build ad tech. I say "this is unfortunate" because a first party shouldn't have to build its own ad tech to avoid appearing to have assigned interestGroup
ownership to a third party. While some first parties might not mind the assignment of ownership (or appearance thereof), others may not like that assignment technically means the assignee can use data collected on the first party's site (or app for the Android version) on behalf of other first parties. To be clear, I'm talking about cases where it's the intention of advertiserA.com working with Ad Tech 123 to build an interestGroup
to use only for campaigns on advertiserA.com's behalf. advertiserA.com would not be ok with Ad Tech 123 turning around and using what it collected on advertiserA.com to facilitate a campaign for advertiserB.com.
Some might say this circumstance mirrors how things work today with ad tech SDKs, so why bother with semantics. There are a few reasons.
First, by having a required field for interestGroup
called owner
, whose only possible values are the first party for that context or an ad tech provider, FLEDGE API makes it appear the first party is assigning ownership to the ad tech when the ad tech's domain is configured as owner
. Anyone will be able to read FLEDGE configurations on the client. This could send the wrong message, even if the first party and the ad tech know they have a contract in place saying otherwise. This is a degradation in the already messy way things work today.
Second, we should not miss an opportunity for clarity or privacy. The clarity opportunity is self-evident. The privacy opportunity is to make it less common for ad tech providers to use data collected in the context of one first party for the benefit of another (and themselves). It would become less common because of commercial incentives not to leak data. That would make a difference for privacy because user data from one context would not be reusable by other advertisers or their ad tech providers. There's a reason policy makers are making distinctions between controllers and processors, third parties and service providers.
What to do?
Semantically, there is a straight forward option. Provide a new, optional interestGroup
property called delegate
. This gives the site (or app in the Android equivalent) a choice whether the ad tech provider is the owner
of the interest group or a delegate
who can only use the interestGroup
on the site's behalf.
Technically, things get a bit more difficult because the browser (or OS) does not validate ad creatives registered with a certain interestGroup
to be for a given advertiser. I see a couple options, but I'm sure others could think of more.
- If
delegate
field is set with an ad tech provider domain, the browser checks for existing interest groups with that name and that delegate. If > 0 then the configuration would not add a user to thatinterestGroup
onjoinInterestGroup
and Dev Tools throws an error. - @michaelkleber had an interesting idea here I think could be developed more. It's after the fact, but could create incentives to not mislead. Here's the idea for reference:
For example, what would you think of aggregate reporting as a condition of audience-building delegation? That is, give Advertiser A a way to say "Ad Network N can build audiences on my site as long as the resulting interest group sends this URL aggregate reports of what ads it shows."
(And then IGs would need a new "send aggregate reports of which ads you show to the following URL" capability, which we could validate at IG joining time. Hmm, and that URL would need to not be removable via the daily update process, and we need to make sure there's no new privacy leak here, and probably other stuff. So maybe there is enough stuff to think about here that tryptophan-coma-time isn't the ideal design the feature. But the point is, this definitely seems like an entirely reasonable reporting pathway that would make clear the kind of abuse you're worried about, right?)
I would love to hear other ideas. There's an opportunity to make first party data activation with no data value leakage a baked in reality of the web platform and do so in a way that is better for user privacy. Yes, I realize there's no granular user leakage either way...it's value leakage I'm talking about. What say you?