On Thu, Jun 22, 2023 at 4:05 PM Josh Karlin <jkar...@chromium.org> wrote:

>
>
> On Thu, Jun 22, 2023 at 7:49 AM Yoav Weiss <yoavwe...@chromium.org> wrote:
>
>> Thanks for working on this important problem!
>>
>> This API is an interesting one to think through, as it's quite different
>> from other APIs, even Privacy Sandbox ones. While most Privacy Sandbox APIs
>> carve out specific bits of entropy from 3P cookies to enable web
>> functionality to continue to work, only with more targeted data, Topics
>> seems to enable a use-case (targeted advertising) by moving some of the
>> targeting work from the server onto the user agent itself.
>>
>> In my view it makes sense to include "ecosystem health" into a broad &
>> holistic view of the user's needs, and hence it makes sense for the user
>> agent to take on such work in order to enable ecosystem monetization, *while
>> ensuring the user's agency*. Therefore, I think this is a fine precedent
>> to make, under the assumption the user indeed has agency and is making an
>> informed decision about enabling this API and controlling their choice of
>> Topics. At the same time, API owners are not UX experts, and the UX of
>> whatever consent flow browsers end up shipping is a product decision,
>> rather than a part of the Blink intent process. As a result, approving this
>> API requires a certain amount of faith that different user-agents will do
>> the right thing with it. But I guess that's already true for
>> permission-bound features, where we trust the UA's UX team to provide
>> appropriate mitigations for security and privacy risks.
>>
>>
>> On Wed, Jun 21, 2023 at 8:57 PM Josh Karlin <jkar...@chromium.org> wrote:
>>
>>> Thanks for the questions Alex. Responses inline:
>>>
>>>
>>> > I don't see a full "considered alternatives" section in the Explainer.
>>> What other options were explored for this API and/or design?
>>>
>>>
>>> Yes. Before Topics we had another API, FLoC <https://web.dev/floc/>. We
>>> learned early on in the OT process that we did not want to move forward
>>> with it. Discussion of how FLoC migrated into Topics can be seen in this
>>> section
>>> <https://github.com/patcg-individual-drafts/topics#evolution-from-floc>
>>> of the explainer.
>>>
>>
>> I highly appreciate the evolution of the API and the many learnings
>> incorporated from the FLoC experiments.
>>
>>
>>> Another alternative would be to provide this sort of cross-site data
>>> only within a worklet, as Protected Audiences and Shared Storage do, and
>>> require that the ad be rendered within a fenced frame. An API like that is
>>> not off the table in the future, but at this stage we felt it prudent to
>>> make a simple API that could offer value in this space that has high levels
>>> of privacy in addition to the more complex and capable APIs that require
>>> private rendering.
>>>
>>>
>>>
>>> > Does this naturally need to live on `document`? Was `navigator` (or
>>> some other root object) considered?
>>>
>>>
>>> There is an issue
>>> <https://github.com/patcg-individual-drafts/topics/issues/71> for this,
>>> and I asked for advice
>>> <https://github.com/w3ctag/design-reviews/issues/726#issuecomment-1137279345>
>>> on this on the TAG review but did not receive a response. We chose document
>>> at the time because the topics returned are conditional on the caller, and
>>> changing didn’t seem particularly compelling (e.g., it wasn’t abundantly
>>> clear where it should rightfully go).
>>>
>>>
>>>
>>> > Is the name `browsingTopics` meant to signify that other sorts of
>>> topics may become available? If no, why not just `topics`? And if so,
>>> should that be a flag that's passed instead?
>>>
>>>
>>> We do not anticipate other *Topics APIs. At this point I honestly can’t
>>> remember how we landed on browsingTopics instead, but I know there was
>>> discussion. FWIW, it’s less likely to conflict with expando properties
>>> <https://github.com/search?q=document.topics+language%3AJavaScript&type=code>.
>>> Do you feel strongly about this?
>>>
>>>
>>>
>>> What feedback (if any) came from the OT?
>>>
>>>
>>> Lots! Criteo
>>> <https://medium.com/criteo-engineering/is-googles-topics-api-a-viable-replacement-for-interest-based-advertising-297076192bd>
>>> pointed out ~5 different things in their link that I have above that they’d
>>> like to see improved for utility, many of which are part of our future
>>> non-breaking plans. Others pointed out
>>> <https://github.com/patcg-individual-drafts/topics/issues/73> that the
>>> ratio of noised Topics was proportionate to reach, which wasn’t
>>> appropriate, so we fixed that. Yet others pointed out
>>> <https://github.com/patcg-individual-drafts/topics/issues/75> that it
>>> was easy to detect the random topic, so we fixed that. For more, please see
>>> the response to the “Web developers” section in “Risks” above.
>>>
>>> Josh
>>>
>>>
>>> On Wed, Jun 21, 2023 at 12:06 PM Alex Russell <slightly...@chromium.org>
>>> wrote:
>>>
>>>> The spec looks well-written, and I'm dissapointed by the lack of
>>>> technical feedback from the TAG.
>>>>
>>>> Because the TAG doesn't seem to be engaging at the level of platform
>>>> consistency and quality in this review, I have some questions of the sort I
>>>> try not to ask (in the hopes that the TAG has those bases covered):
>>>>
>>>>
>>>>    - I don't see a full "considered alternatives" section in the
>>>>    Explainer. What other options were explored for this API and/or design?
>>>>    - Does this naturally need to live on `document`? Was `navigator`
>>>>    (or some other root object) considered?
>>>>    - Is the name `browsingTopics` meant to signify that other sorts of
>>>>    topics may become available? If no, why not just `topics`? And if so,
>>>>    should that be a flag that's passed instead?
>>>>    - What feedback (if any) came from the OT?
>>>>
>>>> Best,
>>>>
>>>> Alex
>>>>
>>>>
>>>> On Tuesday, June 20, 2023 at 8:33:41 PM UTC-7 Domenic Denicola wrote:
>>>>
>>>>> I was the spec mentor for Yao's work on this feature, and am chiming
>>>>> in to provide the requested spec maturity summary
>>>>> <https://www.chromium.org/blink/launching-features/#:~:text=If%20your%20specification%20isn%27t%20a%20modification%20of%20an%20existing%20specification%2C%20include%20a%20one%2Dline%20spec%20maturity%20summary%20from%20someone%20outside%20your%20team%20(like%20your%20spec%20mentor)%20who%20has%20done%20a%20review.>
>>>>> .
>>>>>
>>>>> I am very happy with the rigor of this specification. The algorithms
>>>>> and APIs are given in full detail, and I am as confident as I can be that
>>>>> another implementer would be able to follow and create an interoperable
>>>>> implementation. I'm also happy with how some of the design discussions
>>>>> went, e.g. we recently made changes to the Sec-Browsing-Topics HTTP 
>>>>> request
>>>>> header which improved its parse-ability and robustness.
>>>>>
>>>>> The slicing of the specification into implementation-defined vs.
>>>>> interoperable behavior is tricky, and as Josh notes, can evolve over time.
>>>>> E.g. this PR
>>>>> <https://github.com/patcg-individual-drafts/topics/pull/203> proposes
>>>>> making the "top 5 topics" algorithm implementation-defined. (But, it keeps
>>>>> Chrome's version in a non-normative note, which I think is really 
>>>>> helpful!)
>>>>> And there are browser vendor identifiers and version numbers baked into 
>>>>> the
>>>>> return values of the spec. It's hard to say whether this setup will
>>>>> *guarantee* us the ability to evolve the API going forward, but I
>>>>> think the team has done a good job setting up the infrastructure to avoid
>>>>> any known failure modes.
>>>>>
>>>>> I will note that the open issues list
>>>>> <https://github.com/patcg-individual-drafts/topics/issues?q=is%3Aopen> for
>>>>> the specification is enormous, but my experience with Privacy Sandbox
>>>>> specifications is that their issues list turn into discussion forums 
>>>>> pretty
>>>>> easily. I'm happy to trust the team's appraisal (under "Anticipate spec
>>>>> changes") that there aren't any open issues which will be significant
>>>>> disruptions to the specification.
>>>>>
>>>>> On Wed, Jun 21, 2023 at 2:40 AM Josh Karlin <jkar...@chromium.org>
>>>>> wrote:
>>>>>
>>>>>> Contact emails
>>>>>>
>>>>>> jkar...@chromium.org, yao...@chromium.org, leeronisr...@google.com
>>>>>>
>>>>>> Explainer
>>>>>>
>>>>>> https://github.com/patcg-individual-drafts/topics
>>>>>>
>>>>>
>> That's a great explainer! One thing I found a bit lacking in it is an
>> outline of the use cases that this API tackles. Another question that came
>> to mind while reviewing other intents was around the differences in
>> use-cases between this and Protected Audience. Are they destined for
>> different kinds of advertisers? Different use cases? Something else?
>>
>
> They are indeed different use cases. Interest based advertising (Topics)
> is much broader (larger number of ads to choose from) than retargeting
> (Protected Audience). Interest based advertising allows an advertiser to
> say, "I'd like to advertise my product to people interested in these
> categories" whereas retargeting allows an advertiser to say, "this user was
> interested in some products on my page, I'd like to show them some more".
> You can imagine how it might be tractable to store metadata for the
> retargeting type ads on the users device, whereas it's less practical for
> interest based ads (easily millions of possible ads to select between).
> That is why Topics is quite limited in the information it can share since
> it needs to be made available to the caller, whereas Protected Audiences
> allows for more specific ad selection, but from a limited set of ads, and
> the ad must leverage private rendering.
>

That's extremely useful, thanks!! (Maybe this can be added to the
explainer?)


>
>
>>
>>
>>>>>> Specification
>>>>>>
>>>>>> https://patcg-individual-drafts.github.io/topics/
>>>>>>
>>>>>> Summary
>>>>>>
>>>>>> The intent of the Topics API is to provide callers (including
>>>>>> third-party ad-tech or advertising providers on the page that run script)
>>>>>> with coarse-grained advertising topics that the page visitor might
>>>>>> currently be interested in for the purposes of advertising. These topics
>>>>>> will supplement the contextual signals from the current page and can be
>>>>>> combined to help find an appropriate advertisement for the visitor 
>>>>>> without
>>>>>> the advertiser having to track the user’s detailed browsing history as is
>>>>>> done with third-party cookies and fingerprinting today.
>>>>>>
>>>>>> Blink Component
>>>>>>
>>>>>> Blink>TopicsAPI
>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ETopicsAPI>
>>>>>>
>>>>>> TAG Review
>>>>>>
>>>>>> Early design review for the Topics API · Issue #726
>>>>>> <https://github.com/w3ctag/design-reviews/issues/726#issuecomment-1379908459>
>>>>>>
>>>>>> TAG review status
>>>>>>
>>>>>> Pending
>>>>>>
>>>>>> Risks
>>>>>>
>>>>>> Interoperability and Compatibility
>>>>>>
>>>>>> Gecko: Negative (
>>>>>> https://github.com/mozilla/standards-positions/issues/622)
>>>>>>
>>>>>> WebKit: Negative (
>>>>>> https://github.com/WebKit/standards-positions/issues/111
>>>>>> <https://github.com/WebKit/standards-positions/issues/111#issuecomment-1359609317>
>>>>>> )
>>>>>>
>>>>>> To reduce risk in the event that we later decide to replace this API
>>>>>> with one that has more browser support, the API can be effectively 
>>>>>> disabled
>>>>>> without breaking pages by rejecting the promise or returning empty lists 
>>>>>> of
>>>>>> topics.
>>>>>>
>>>>>> Web developers: We’ve had significant OT participation
>>>>>> <https://github.com/patcg-individual-drafts/topics/blob/main/topics-tester-list.md>
>>>>>> and feedback in our periodic W3C PATCG calls
>>>>>> <https://github.com/patcg-individual-drafts/topics/tree/24c87897e32974c1328b74438feb97bf2ec43375/meetings>,
>>>>>> discussions on various GitHub issues
>>>>>> <https://github.com/patcg-individual-drafts/topics/issues>,
>>>>>> Chrome-facilitated office hours, discussion with industry trade groups
>>>>>> representing a variety of stakeholder groups, and more. Some initial
>>>>>> feedback on utility has been published by Criteo
>>>>>> <https://medium.com/criteo-engineering/is-googles-topics-api-a-viable-replacement-for-interest-based-advertising-297076192bd>,
>>>>>> Google Ads
>>>>>> <https://github.com/google/ads-privacy/blob/master/Testing%20IBA%20with%20Privacy%20Preserving%20Signals.pdf>
>>>>>> and Retargetly
>>>>>> <https://retargetly.com/blog-en/a-brief-dive-into-retargetlys-experience-testing-googles-privacy-sandbox>.
>>>>>> We recently announced
>>>>>> <https://developer.chrome.com/blog/topics-enhancements/> upcoming
>>>>>> improvements to utility (not API surface changing) based on that initial
>>>>>> feedback.
>>>>>>
>>>>>> Activation
>>>>>>
>>>>>> Starting in August 2023, enrollment
>>>>>> <https://developer.chrome.com/en/blog/announce-enrollment-privacy-sandbox/>
>>>>>> will be required to use the API. This is not a compat risk in the sense
>>>>>> that the API will simply reject for callers if they are not enrolled.
>>>>>>
>>>>>> Other signals:
>>>>>>
>>>>>> WebView application risks
>>>>>>
>>>>>> None
>>>>>>
>>>>>> Debuggability
>>>>>>
>>>>>> There is a useful internals page: chrome://topics-internals, which
>>>>>> shows the user’s current topics, allows for querying the API’s 
>>>>>> classifier,
>>>>>> and provides developer experimentation tooling.
>>>>>>
>>>>>>
>>>>>> Will this feature be supported on all six Blink platforms (Windows,
>>>>>> Mac, Linux, Chrome OS, Android, and Android WebView)?
>>>>>>
>>>>>> All but WebView
>>>>>>
>>>>>>
>>>>>> Is this feature fully tested by web-platform-tests
>>>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>>>>> ?
>>>>>>
>>>>>> IDL surface is tested
>>>>>> <https://wpt.fyi/results/browsing-topics?label=experimental&label=master&aligned>,
>>>>>> the actual returned topics are not as they are browser dependent.
>>>>>>
>>>>>>
>>>>>> Note for the failing tests: Chrome will roll out this feature via Chrome
>>>>>> Variations
>>>>>> <https://developer.chrome.com/docs/web-platform/chrome-variations/>,
>>>>>> rather than enabling the runtime features
>>>>>> <https://chromium.googlesource.com/chromium/src/+/HEAD/third_party/blink/renderer/platform/RuntimeEnabledFeatures.md>
>>>>>> directly. This means related WPTs need to be virtual, and it isn't
>>>>>> supported in wpt.fyi.
>>>>>>
>>>>>> Requires code in //chrome?
>>>>>>
>>>>>> No
>>>>>>
>>>>>> Launch bug
>>>>>>
>>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1286877
>>>>>>
>>>>>>
>>>>>> Anticipated spec changes
>>>>>>
>>>>>> As mentioned above, we anticipate changes to the classification
>>>>>> model, the taxonomy, the top topics selection algorithm, and possibly 
>>>>>> some
>>>>>> parameters in the future as we try to improve the API’s utility over 
>>>>>> time.
>>>>>> The API already provides version numbers with each returned topic for 
>>>>>> each
>>>>>> of these features, as changes of this nature were anticipated from the
>>>>>> beginning. These changes will not break sites. Developers may need to
>>>>>> retrain their models and adapt to the new underlying algorithms, so we 
>>>>>> will
>>>>>> announce the changes via channels such as blink-dev FYI as well as on the
>>>>>> various support mailing lists.
>>>>>>
>>>>>>
>>>>>> Link to entry on the Chrome Platform Status
>>>>>>
>>>>>> https://chromestatus.com/feature/5680923054964736
>>>>>>
>>>>>> Links to previous Intent discussions
>>>>>>
>>>>>> Intent to prototype:
>>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/59uTw_dxM3M/m/vF9lF9BVAgAJ
>>>>>>
>>>>>>
>>>>>> Intent to experiment:
>>>>>>
>>>>>>
>>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/oTwd6VwCwqs/m/pk7JPbXLAQAJ
>>>>>>
>>>>>>
>>>>>> Intent to extend origin trial:
>>>>>>
>>>>>>
>>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/SD8Ot2gpz4g/m/A9uA-_cGAwAJ
>>>>>>
>>>>>>
>>>>>>
>>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/gpmaOi3of_w/m/SyMclFhMAAAJ
>>>>>>
>>>>>>
>>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/CBrV-2DrYFI/m/RTojC6kHAgAJ
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "blink-dev" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to blink-dev+unsubscr...@chromium.org.
>>>>>> To view this discussion on the web visit
>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAANMuaNc94moaqPPWepai4THP1rOvXoxvixS%3Dostu2QGMLPtvA%40mail.gmail.com
>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAANMuaNc94moaqPPWepai4THP1rOvXoxvixS%3Dostu2QGMLPtvA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "blink-dev" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to blink-dev+unsubscr...@chromium.org.
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/fae46cf2-dbf8-41bf-8e64-c7cfb6844c01n%40chromium.org
>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/fae46cf2-dbf8-41bf-8e64-c7cfb6844c01n%40chromium.org?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "blink-dev" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to blink-dev+unsubscr...@chromium.org.
>>> To view this discussion on the web visit
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAANMuaM1RZP4tKq4x7UvADOhYemyqtOhH5dgKUJK131sLWoS%3DA%40mail.gmail.com
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAANMuaM1RZP4tKq4x7UvADOhYemyqtOhH5dgKUJK131sLWoS%3DA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "blink-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to blink-dev+unsubscr...@chromium.org.
>> To view this discussion on the web visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfVbQDFhz_zmLHbm3DdN0nn8EtdmhfxFXbd4kYb%3DwOLmSQ%40mail.gmail.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfVbQDFhz_zmLHbm3DdN0nn8EtdmhfxFXbd4kYb%3DwOLmSQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfXtCHN1XTsrDdUXbiXEUm%2BSC5N7OEo3JH3qwSZGHZq7eQ%40mail.gmail.com.

Reply via email to