这是indexloc提供的服务,不要输入任何密码
Skip to content

Make interestGroup Ownership Clear and Enforceable #418

@alextcone

Description

@alextcone

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.

  1. 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 that interestGroup on joinInterestGroup and Dev Tools throws an error.
  2. @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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions