Open benjaminsavage opened 4 years ago
There are other legitimate use cases for aggregate reporting that aren't ads, like getting aggregate analytics across multiple web properties that aren't all first party with each other.
Did you have a particular non ads use-case you had in mind?
One use-case I have in mind is ads related, but not tied to an ad-impression. It's lift measurement.
As you know, I've written up a proposal for how to privately calculate lift (https://github.com/w3c/web-advertising/blob/master/private-lift-measurement-conceptual-overview.md), and I'm wondering if the "Aggregated Reporting API" would support the desired use-case (at least for the 1st party use-case).
So let's take an example of a single website that runs ads, say google.com. Let's say I'm buying search ads that are displayed on google.com that promote my toaster shop toasters.com - and these ads are shown when people search for a certain set of keywords. Let's call my campaign ID 123.
Would it be technically possible for Google to do the following:
1.) Assign a 1st party cookie a random value from 0 to 7999 the first time that browser visits google.com 2.) Randomly assign 10% of browsers to a "test group" and 10% of browsers to a "control group". Maybe just put all the browsers with the value 0 to 799 in "test" and 800 to 1599 in "control". The other people would be "not in experiment" 3.) When someone performs a search for one of the specified keywords that my campaign is targeting, check if they are in the "control" group. If so, do not ever show them an ad from my campaign 123. 4.) For members of both "test" and "control", at the time they perform a search for one of my keywords, call either:
var entryHandle = window.writeOnlyReport.get(‘toasters-dot-com-lift-test’);
if (userInTest) {
entryHandle.set(“exposure_group”, “test”);
} else if (userInControl) {
entryHandle.set(“exposure_group”, “control”);
}
5.) Assuming I've placed a line of Google JavaScript code on my toaster website, when someone buys a toaster on my website, can that JS code call the following:
var entryHandle = window.writeOnlyReport.get(‘toasters-dot-com-lift-test’);
entryHandle.append(“purchases”, “1”);
I'm assuming that this would allow me to count the total number of purchases made on "toasters.com" from browsers in both the test, and control groups.
Importantly, members of the "control group" never saw an ad impression, which is why I'm asking if there would be a specific limitation to this API, or if I could do something like the code above.
Hi Ben, I'm really sorry for the delay here I have been busy w/ travel.
What you suggest is totally doable, and in general this API could be used for general conversion measurements, with many caveats, e.g.:
Most of the examples (with the possible exception of the “widget”) begin with an ad impression.
Do you plan to constrain this API in some fashion so much that it must be tied to an “ad impression” or other type of “ad” use-case? Or will it be possible to write to this “write only data store” at any time, for any reason?