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

Clarification on IG Unique Tuple #781

Open
thegreatfatzby opened this issue Sep 6, 2023 · 2 comments
Open

Clarification on IG Unique Tuple #781

thegreatfatzby opened this issue Sep 6, 2023 · 2 comments

Comments

@thegreatfatzby
Copy link
Contributor

In the detailed explainer I see that IG uniqueness across all IGs joined by a browser, is determined by (owner, name) tuple:

The user agent has an interest group set, a [list](https://infra.spec.whatwg.org/#list) of [interest groups](https://wicg.github.io/turtledove/#interest-group) in which [owner](https://wicg.github.io/turtledove/#interest-group-owner) / [name](https://wicg.github.io/turtledove/#interest-group-name) pairs are unique.

9.4 in the list in that section seems to back that up:

If the browser is currently storing an interest group with owner and name that matches interestGroup, then set the [bid counts](https://wicg.github.io/turtledove/#interest-group-bid-counts), [join counts](https://wicg.github.io/turtledove/#interest-group-join-counts), and [previous wins](https://wicg.github.io/turtledove/#interest-group-previous-wins) of interestGroup to the values of the currently stored one and remove the currently stored one from the browser.

So I'm reading this as saying that a DSP cannot have multiple IGs with the same name in different domains, and that a call to update in one top level domain could result in overwriting an IG from another top level domain, although it would retain the bidCounts, joinCounts, and previousWins.

Is this intentional? Based on the overall spirit of the API I would have assumed that these would for sure be partitioned by TLD (FPS but you get the idea)...am I wrong? I have some docs to change if so.

@michaelkleber
Copy link
Collaborator

You're reading the spec correctly, and that is indeed intentional. This was designed to make it possible to have a single IG like 'womens-running-shoes' to which the owner could add people on many different sites. (Note that the data stored in the IG on a given browser at a given moment only comes from one site, even though which site it is might change over time.)

@hbikmal
Copy link

hbikmal commented Sep 8, 2023

This also has a side effect of learning across websites.
IG1 (is-sports-enthusiast), join-count 5
IG2 (interested-in-womens-running-shoes), join-count 14
IG3 (probably-pregnant), join-count 25
IG4 (probably-frequent-traveller), join-count 3

Join count helps reinforce the categories/learnings by counting how many times the user re-established the interest. (The count gets devalued if same webpage keeps incrementing the counter. Not sure if you can avoid this.)

  • Is this leakage of information an acceptable privacy loss against potential utility gain?

  • Alternatively, should the join count or other relevant params get reset when the user joins the IG from a different website to avoid learning across websites?

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

3 participants