TOPICS APIはChromeの独自実装で終わる

かつて[サードパーティーCookieのかわりとなる情報収集手段](https://japan.googleblog.com/2021/02/2021-privacy-sandbox.html)としてGoogleが提唱したものの[全方位からボコボコにされて](https://gigazine.net/news/20210305-googles-floc-terrible-idea/)[ひっこめた](https://japan.googleblog.com/2022/01/topics-api.html)[FLoC](https://qiita.com/rana_kualu/items/e470f0303e6b3a429c09)のかわりとして、Googleは[TOPICS API](https://github.com/jkarlin/topics)というものを[発表しました](https://blog.google/intl/ja-jp/company-news/technology/2022_01_topics-api/)。

これが2022年1月です。

それから2年半経ってTOPICSはどうなったかというと、Google以外の全てから一切相手にされていません。


# TOPICS APIってなに？

ひらたく言うと『興味のあるコンテンツ』です。

興味のあるコンテンツを設定することができるWebサイトがよくありますよね。
そこでチェックを入れたコンテンツが広告として出やすくなったりするわけです。
またAmazon等では閲覧した商品と似たような商品がでてきますよね。
基本的にはそれと同じです。

ただし、対象は自分で選択するのではなく、アクセスしたWebサイトすべてです。

すなわち、Chromeが訪問したサイトを勝手に集計して勝手に興味のあるコンテンツを選んで勝手にWebサイトに提供します。
そしてもちろん、この機能はデフォルトで有効になっています。

Qiita内にも優れた記事があるので、より詳しくはそっちを見てもらうとよいでしょう。

・[ユーザーの興味関心を取得するGoogle Chrome Topics APIの概要](https://qiita.com/nabata/items/42610d5e795287b184c0)
・[2023年末総括PrivacySandbox~User Agent Client Hints 編~](https://qiita.com/eknis/items/eedeb95fc1243521b000)


# ざっくり仕様

正確な仕様は[Proposal](https://patcg-individual-drafts.github.io/topics/)を見てもらうとして、ざっくりとした動作は下のようになります。

・まずブラウザは『飲食』『飲食/料理』『飲食/レストラン』『飲食/オーガニック』などのカテゴリリストを持っておく。
・Webサイトを訪れると、ブラウザはURLや本文などから、サイトがどのカテゴリに属するのかを判定して履歴に保存する。
・WebサイトがTopicsを要求したら、ブラウザは最近よく見ていたカテゴリを5つ返す。
・返すカテゴリには5%の確率でランダムな値が入る。

だいたいこんなかんじです。
レシピサイトばっかり見ていたらTopics APIに『飲食/レシピ』が返るようになるし、Prime Videoを見ていたら『エンターテインメント/映画』になるといったかんじでしょうか。


# デモを見る

デモサイト[topics-demo.glitch.me](https://topics-demo.glitch.me/)が存在します。

デモサイトなので実際のTopicsの挙動を正確に反映しているとは言い切れませんが、概ねどんなかんじかがわかります。

まずここにアクセスすると、下の黄色いところに`No topics observed yet: try visiting one of the sites above.`と表示されます。
まだ履歴がないので興味あるコンテンツもわからないということですね。
その後指示に従って[pets-animals-pets-cats.glitch.me](https://pets-animals-pets-cats.glitch.me/)・[cats-cats-cats-cats.glitch.me](https://cats-cats-cats-cats.glitch.me/)・[cats-pets-animals-pets.glitch.me](https://cats-pets-animals-pets.glitch.me/)・[cats-feline-meow-purr-whiskers-pet.glitch.me](https://cats-feline-meow-purr-whiskers-pet.glitch.me/)のいずれかにアクセスして戻ると、今度は`Pets & Animals/Pets`のように興味のあるコンテンツが出てくるようになります。

![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/efb548c6-df03-c8c6-d01b-a2482fd1714d.png)

どのサイトを訪れたかによって、あなたの興味あるコンテンツが決まるというわけです。


# コンテンツのカテゴリについて

カテゴリの一覧については、[いまのところGitHubで管理](https://github.com/patcg-individual-drafts/topics/blob/main/taxonomy_v2.md)されています。
2024/08/19時点では500弱程度にカテゴリ分けされていますが、最終的には数千個になる予定だそうです。


# 興味のあるコンテンツを確認する

URL欄に`chrome://topics-internals`と入力すると、現在自分がどのようなコンテンツに興味があることになっているのかを確認することができます。

![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/88d43f2f-f9cb-950c-02f2-42d49e1f5e67.png)

設定でTopicsを禁止している場合は、以下のように何も出てきません。

![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/4adb4167-6204-1d69-ea1c-8546cdfa89da.png)


# 他ブラウザ・団体の反応

タイトルでネタバレしていますが、ほとんどが反対です。
反対していないところは主張自体をしておらず、明示的に賛成しているところは見当たりませんでした。

## Edge・Opera

賛成/反対の主張が見当たりませんでした。

ただ、これらのブラウザはChromiumを使っているので、特に何もしないかぎりChromeと同じ動きになります。
つまり、[Topics APIが使えます](https://caniuse.com/?search=document.browsingTopics)。
残念ですね。


## Safari

[明示的に反対](https://github.com/WebKit/standards-positions/issues/111)しています。

この10年、情報はトップレベルドメインごとにパーティショニングされるべきという方向で取り組んできた。
クロスサイトの情報はAPIとして公開されるべきではない。
デフォルトで公開されるべきでもない。

現在のカテゴリは、西洋の裕福なライフスタイルに偏った分類になっている。
誰がどのページをどのようにカテゴライズするのかが未解決。
新たなテクノロジーにより、ブラウザベンダーが考える「安全なトピックセット」を超える情報やパターンを収集できるようになる可能性がある。


## Firefox

[明示的に反対](https://github.com/mozilla/standards-positions/issues/622)しています。

Mozillaは、プライバシーの立場からTopics APIを有効にする道を選ぶことはできない。
個人にとっての最悪は、ユーザが特定されることであり、興味に偏りのあるユーザほどこの可能性が高い。
トピック割り当ての方法には設計上の問題があり、一部の仕様は悪用される可能性がある。
広告の観点からは、この情報が有用なのかはっきりしない。

また、[さらに長大なレポート](https://mozilla.github.io/ppa-docs/topics.pdf)が公開されています。
なんか数学的な話が書いてあってよくわかりませんが、トピックの偏りからユーザの特定ができたり、5%のノイズをほぼ0に近づけることができるみたいなことが書いてあるようなないような。
そもそも現在(レポートの調査時点)のトピック数349個から5個を選ぶ組み合わせは420億あるから、うまく振り分けができれば理論上は完全に個人の特定が可能とかなんとか。

さらに[MDN](https://developer.mozilla.org/en-US/docs/Web/API/Topics_API)には`Do not use it`と力強く書かれています。


## Brave

[明示的に反対](https://brave.com/web-standards-at-brave/7-googles-topics-api/)しています。

Topicsは、Flocの名前を変えただけでしかない。
2つの悪から、よりマシな方を選ぶことは、選択ではない。

Topicsはプライバシーをより良くするものではなく、最底辺のプライバシーをほんのわずかに改善するだけのものでしかない。
他のブラウザは何年も前からもっと遥かな高みにいる。


## Vivaldi

[明示的に反対](https://vivaldi.com/ja/blog/heads-up-googles-going-off-topics-again/)しています。

ユーザーがウェブを利用する度にブラウザはユーザーの興味について学習します。
要するに、Topics はスパイウェアなのです。

上記の点、そして、Google が過去に行ってきた行為を考えると、この新しい Topics API も信用することはできません。
ユーザー情報を漏洩するように巧みに設計されたシステムのプライバシー侵害に関する問題を「修正」するために、調整に次ぐ調整が重ねられても、実際の問題は曖昧になるだけで、らちがあきません。


## W3C

[明示的に反対](https://github.com/w3ctag/design-reviews/issues/726)しています。

あるカテゴリが機密情報であるかどうかは人によって異なり、一律で決められるものではない。
カテゴリ数の上限が決められていない。すなわち、今後カテゴリ数を10億に増やすことが可能。

これはGoogleの利益だけのためのものであり、ユーザには一切の利がない。
そもそもプライバシーと実用性がトレードオフだと思っているのは推進側だけであり、トレードオフという存在自体が怪しい。


## IAB

[明示的に反対](https://www.alliancedigitale.org/wp-content/uploads/2024/03/IAB-France-Memo_Topics-API.pdf)しています。

これまで培われてきたサードパーティCookieの情報が失われることで、現在の広告活動を維持できなくなる。
トピックは広範かつ漠然としており広告目的に役立たない。
大半のユーザは時間をyoutubeに消費しているため、全てのユーザに同じトピックが出てきて役に立たない。

広告企業が独自のトピックを割り当てることは、つまり競合相手であるGoogleに全ての情報を明け渡すことに等しい。
検索ワードを用いて正確な興味を得ることのできるGoogleとの情報格差がさらに広がる。


おい最後のやつだけ反対の理由が正反対じゃねえか。

IABは[Interactive Advertising Bureau](https://www.iab.com/)という名の[広告業者団体](https://www.intage.co.jp/glossary/315/)です。
ここは昔から[ありとあらゆる情報を寄越せ](https://ja.wikipedia.org/wiki/Interactive_Advertising_Bureau)と主張し続けている、ある意味で首尾一貫した団体です。
どのくらいかっつーと[プライバシーをもっと曝け出せ](https://privacysandbox.com/intl/ja_jp/#mypanels-0000018f-3b4f-dfb8-adff-3b4f32c80000-toggle)と主張しているGoogleですら[プライバシー的に無理](https://developers.google.com/privacy-sandbox/blog/iab-tech-lab-response)と断るレベル。

# Topicsを拒否する

『設定』→『プライバシーとセキュリティ』→『広告プライバシー』→『広告のトピック』から無効にすることができます。

![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/e1aeb2d8-9ece-8908-a8b1-a6052dd024a0.png)

トピックだけではなく、全て禁止しておきましょう。
この設定変更による不利益は一切存在しないため、禁止しても何ひとつ問題はありません。

![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/26088/46ac6ba3-ed4e-eda9-b8ef-1443c7f380e9.png)

# 感想

Googleは、ほとんどあらゆる足跡を保持できてしまうサードパーティCookieを[削除するかわり](https://www.watch.impress.co.jp/docs/news/1610348.html)として、より少ない情報量で適切な行動ターゲティング広告を打つ方法を模索しています。

しかしながら、Google以外のほとんどのブラウザは、本音はともかく建前としては『行動ターゲティング広告』それ自体を絶滅させろという方向に向かっています。
ターゲティングするということはすなわち識別するということなので、どうやっても個人特定に結びつくわけです。


個人的にはこの手のやつで一番の問題は『オプトアウト』だと思っています。

一般ユーザはセキュリティやプライバシーなんて概念を知りません。
わざわざ設定項目を確認してどうこうしたりできるのは極めて少数の選ばれたユーザだけであり、大半の一般人は初期設定そのままです。

そのようなユーザにも最低限の安全性は保障するのがFirefoxやSafariであり、できる限り危険を排除するのがBraveやVivaldiであり、無知な輩からは可能なかぎり搾り取れというのがChromeというわけですね。


# おまけ

[Interest-disclosing Mechanisms for Advertising are Privacy-Exposing not Preserving](https://arxiv.org/abs/2306.03825)

Topics APIを用いて個人を識別したり、出鱈目に返されたトピックを検出したり、サイトを横断してユーザを特定したりする論文。

:::note
their privacy objectives and design are directly at odds with the natural diversity of user behaviors.
:::
<<<多様性とプライバシーは矛盾する>>>