WICG / floc

This proposal has been replaced by the Topics API.
https://github.com/patcg-individual-drafts/topics
Other
935 stars 90 forks source link

FLoC Cardinality Use Cases #91

Open Sghazzawi opened 3 years ago

Sghazzawi commented 3 years ago

On the WICG call on 4/1/2021, Michael Kleber said that Google is not currently planning on exposing any sizing information with regard to FLoCs. This decision directly impacts a fundamental marketing use case. Marketers need to know the approximate size for planning and optimizing an advertising campaign. There is a huge difference for a marketer targeting an audience with 2,000, 200,000, or 2,000,000 devices.

Michael Kleber and others (https://github.com/WICG/floc/issues/87) suggest that you may be able to estimate a FLoC size by the relative number of observations of FLoC. However, there is no privacy-conscious way of differentiating between a browser with “FLoC: 123” refreshing 1000 times vs 1000 unique browsers within “FLoC: 123”.

Given that the FLoC spec requires a certain threshold of browsers to be viable, the actual number of devices in a FLoC must be calculated by some mechanism. What would prevent us from exposing this mechanism to return sizing information? If this sizing information is an estimate or an order of magnitude, this is still useful for the marketing use case.

It is unclear what the threat model of exposing exact or approximate sizing would be. We don’t believe that exposing an estimate of FLoC size damages privacy.

Given the lack of viable fulfillment of a valid use case, what would be the rationale for excluding this valuable feature?

In summary:

michaelkleber commented 3 years ago

However, there is no privacy-conscious way of differentiating between a browser with “FLoC: 123” refreshing 1000 times vs 1000 unique browsers within “FLoC: 123”.

Ah, counting the number of distinct people you see in some time interval with some flock is the sort of thing we ought to enable, using aggregate measurement.

That is, the tool that Chrome would use to count cohort sizes is the same tool that everyone else should be able to use also. Marketers should absolutely be able to count the people in their audience (or intended audience) that way.

Sghazzawi commented 3 years ago

If I understand you correctly, you're suggesting that we use the aggregation API (https://github.com/WICG/conversion-measurement-api/blob/main/AGGREGATE.md) to get the FLoC sizing information. Why wouldn't the FLoC API support getting FLoC sizes directly? Why necessitate using a second technology for fulfilling a major FLoC use case?

PedroAlvarado commented 3 years ago

I wonder if we could have "well known" aggregate reports about FloCs that are powered by the mechanics available in https://github.com/WICG/conversion-measurement-api/blob/main/SERVICE.md

From there, I can imaging a few possible output reporting paths:

  1. Browsers receive FloC aggregate reports, say once a day, and you can then document.interestCohort().countDistinctEstimate(). (Preferred)

  2. The aggregate service or a derivative up the stack adds support for reads of global Floc reports via API for interested parties. (pull-based approach)

  3. A variant of option number two using a push based approach where interested parties register a call back for report delivery( not great )

michaelkleber commented 3 years ago

Can you explain in what way the aggregation API does not meet your needs?

Learning a total count of people in a particular cohort seems like a strange request to me. How is it helpful to know that cohort 1234 contains 5,000 people if only 1,000 of them are people you have an opportunity to show an ad to? Or only 2,500 of them are people in the country your advertiser is interested in?

sheakevin commented 3 years ago

For our digital marketing customers, one of the first metrics they will look at prior to targeting an audience is how large it is. Our customers need to know the potential reach of their advertising campaigns to plan and assess its efficacy.

If FLoCs become the main way marketers target consumers in the future having an estimated size tightly integrated to the FLoCs is essential.

michaelkleber commented 3 years ago

Yes! @sheakevin I definitely want to support the "potential reach of their advertising campaigns" use case. It just seems like the aggregate measurement API is a better fit for that goal than a report on FLoC cohort sizes that includes people whom their advertising campaign cannot reach.

PedroAlvarado commented 3 years ago

@michaelkleber There seems to be some dissonance between the aggregate measurement API and FLoC in the context of this thread that may contribute unnecessary friction to using FloC for advertisement purposes.

The above points aside and in the context of advertisement planning, it seems that using FLoC in any sensible way requires the use of the Aggregate Reporting API as knowing the reach/cohort-size is a critical piece of information during the advertisement process. This tight coupling can make a case for document.interestCohort().estimateSize() as a starting point while also providing signal to complement other forms FloC-based measurements.