トピックの分類

トピックの推論方法、ユーザーのブラウザへのトピックの割り当て方法、ユーザーによるトピックリストの制御方法について説明します。

公開日 更新日

翻訳先言語: English

実装ステータス

トピックとは?

Topics API におけるトピックとは、ユーザーが訪問するウェブサイトからわかる、ユーザーが興味を持っている主題です。

トピックは、アドテックプラットフォームが関連性の高い広告を選択するのに役立つシグナルです。サード パーティ Cookie とは異なり、この情報はユーザー自身やユーザーの閲覧アクティビティに関するさらなる情報を明らかにすることなく共有されます。

Topics API を使用すると、アドテックプラットフォームなどのサードパーティがユーザーの関心のあるトピックを観察し、アクセスできるようになります。たとえば、API は、ウェブサイト knitting.example にアクセスしたユーザーに「Fiber & Textile Arts」というトピックを提案する場合があります。

Topics API で使用されるトピックのリストは公開されており、人間が厳選し、人間が判読できるものであり、デリケートなカテゴリを避けるように設計されています。これは現在のリストであり、時間の経過とともに拡大されます。リストは分類法として構造化されています。トピックは高レベルの場合もあれば、より具体的な場合もあります。たとえば、Food & Drink は広いカテゴリであり、Cooking & Recipes というサブカテゴリがあります。サブカテゴリはさらに追加のサブカテゴリに分割される場合があります。

このようなトピックの分類では、実用性とプライバシーの間でトレードオフを行う必要があります。トピックが具体的すぎる場合、個々のユーザーを特定するために使用される可能性があります。一般的すぎると、広告やその他のコンテンツを選択するのに役に立ちません。

トピック分類は、次の 2 つの基本的な要件を念頭に置いて構築されています。

  • インタレストベース広告をサポートする
  • ユーザーの安全を確保し、プライバシーを保護する

これは以下のようないくつかの疑問を示唆しています。

  • ユーザーのプライバシーを保ちながら、ユーザーの閲覧アクティビティに基づいてユーザーが興味のあるトピックを API が推測する最善の方法は何か?
  • 分類法をより便利にするためにはどのように構造化すればよいか?
  • 分類法には具体的にどのような項目を含める必要があるか?

There is a new improved taxonomy, updated June 15, 2023 in which we added 280 commercially focused categories, like "Athletic Apparel", "Mattresses", and "Luxury Travel," while removing 160 categories including topics like "Civil Engineering" and "Equestrian". Examples here use version 1 of the taxonomy. Chrome will begin using the new taxonomy later this year, but you can view it here, and provide feedback.

API がサイトのトピックを推測する方法

トピックは、ウェブサイトのホスト名を 0 個以上のトピックにマッピングする分類器モデルから派生します。追加情報(完全な URL やページ コンテンツなど)を分析すると、より関連性の高い広告が表示される可能性がありますが、プライバシーが低下する可能性もあります。

ホスト名をトピックにマッピングするための分類器モデルは公開されており、Explainer で指摘されているように、ブラウザ開発者ツールを介してサイトのトピックを表示することが可能です。モデルは時間の経過とともに進化と改善を繰り返し、定期的に更新されることが期待されます。この頻度についてはまだ検討中です。

トピック頻度の計算対象となる閲覧履歴に含まれるのは Topics API を呼び出すコードを含むサイトのみであり、API 呼び出し元は観察したトピックのみを受け取ります。言い換えれば、サイトまたは API を呼び出す埋め込みサービスがなければ、サイトはトピック頻度の計算の対象になりません。

さらに、呼び出し元は、コードが「見た」トピックのみを受信できます。したがって、別の呼び出し元のコードがユーザーのブラウザに対して /Autos & Vehicles/Motor Vehicles (By Type)/Hatchbacks などのトピックを登録し、あなたのコードによってそのトピックがそのユーザーのブラウザに登録されなかった場合、埋め込みコードから API を呼び出すときに、そのユーザーのブラウザで関心のあるトピックを知ることはできません。ご覧のように、API には先祖が含まれるようになったため、上記の /Autos & Vehicles/Motor Vehicles (By Type)/Hatchbacks によって Autos & VehiclesMotor Vehicles も観察されることに注意してください。

Key Term

Topics API の呼び出し元とは、document.browsingTopics() を使用してトピックを観察しリクエストするエンティティのことです。通常、この呼び出し元はサードパーティ(アドテックなど)であり、このメソッドによって返されたトピックを使用して、関連する広告の選択を支援します。

ブラウザはリクエストの発信元から呼び出し元を特定します。サイト A が、サイト B でホストされている iframe 内のコードからトピックをリクエストした場合、ブラウザは呼び出し元がサイト A であると判断します。サードパーティの場合は、所有する iframe から Topics API を呼び出すようにしてください。

document.browsingTopics() を使用して 1 つ以上のトピックを取得するには、API 呼び出し元は同じオリジンからトピックを観察してリクエストする必要があります。

呼び出し元は、document.browsingTopics() を使用して、iframe 内から JavaScript API を介してトピックにアクセスできます。

呼び出し元は、fetch() リクエストまたは iframe の Sec-Browsing-Topics ヘッダーからトピックにアクセスすることも可能です。XHR リクエストもオリジントライアル期間中限定で有効になりますが、このメソッドは推奨されません。

分類器モデル

トピックは上位 10,000 件のドメインに対して手動で厳選され、この厳選されたトピックが分類器のトレーニングに使用されます。このリストは、chrome://topics-internals/Classifier タブの現在のモデルにある override_list.pb.gz にあります。リスト内のドメインとトピックの関連付けは、モデル自体の出力の代わりに API によって使用されます。

Classifier パネルが選択された chrome://topics-internals ページ。
chrome://topics-internals ページの [Classifier] パネルには、モデルのバージョン、そのパス、およびリストされた各ホストに関連付けられたトピックがリストされます。

モデルを直接実行するには、TensorFlow のモデルの実行ガイドを参照してください。

override_list.pb.gz ファイルを検査するには、まずファイルを解凍します。

gunzip -c override_list.pb.gz > override_list.pb

protoc を使用してテキストとして検査します。

protoc --decode_raw < override_list.pb > output.txt

ID を含むトピックの全分類は GitHub にあります。

分類器モデルに関するフィードバックの提供

トピックの提案に関するフィードバックを提供するためのチャンネルがいくつかあります。分類器モデルに関するフィードバックについては、GitHub イシューを送信するか、以下のような既存のイシューに返信することをお勧めします。

ユーザーの上位 5 つのトピックが選択される仕組み

API は、エポックごとに 1 つのトピックを最大 3 つまで返します。 3 つが返された場合、これには現在のエポックのトピック 1 つと前のエポックのトピック 2 つが含まれます。

  1. 各エポックの終わりに、ブラウザは次の基準を満たすページのリストをコンパイルします。
    • このエポック中にユーザーがページにアクセスした。
    • このページに、document.browsingTopics() を呼び出すコードが含まれている。
    • API が有効になっている(ユーザーによってブロックされていない、またはレスポンスヘッダーによってブロックされていないなど)。
  2. ユーザーのデバイス上のブラウザは、Topics API によって提供される分類器モデルを使用して、各ページのホスト名をトピックのリストにマッピングします。
  3. ブラウザはトピックのリストを蓄積します。
  4. ブラウザは頻度順に上位 5 つのトピックのリストを生成します。

document.browsingTopics() メソッドは、各エポックの上位 5 つからランダムなトピックを返します。5% の確率で、トピックの完全な分類からこれらのいずれかがランダムに選択されます。Chrome では、ユーザーが個々のトピックを削除したり、閲覧履歴をクリアして API から返されるトピックの数を減らしたりすこともできます。ユーザーは API をオプトアウトすることも可能です。

現在のエポック中に観察されたトピックに関する情報は chrome://topics-internals ページで確認できます。

どの呼び出し元がどのトピックを見るかを API が決定する仕組み

API 呼び出し元は最近観察したトピックのみを受け取り、ユーザーのトピックはエポックごとに 1 回更新されます。つまり、API には、特定の呼び出し元が特定のトピックを受信できるローリング ウィンドウがあります。

以下の表は、1 エポック中のユーザーの仮想閲覧履歴の例(非現実的ですが)を概説しており、ユーザーが訪問したサイトに関連付けられたトピックと、各サイトに存在する API 呼び出し元(サイトに含まれる JavaScript コードで document.browsingTopics() を呼び出すエンティティ)を示しています。

サイトトピックサイト上の API 呼び出し元
yoga.exampleFitnessadtech1.example adtech2.example
knitting.exampleCraftsadtech1.example
hiking-holiday.exampleFitness, Travel & Transportationadtech2.example
diy-clothing.exampleCrafts, Fashion & Style[なし]

エポック(現在は 1 週間であることが提案されています)の終わりに、Topics API はその週のブラウザのトップトピックを生成します。

  • adtech1.example は、yoga.example と knitting.example で「Fitness」と「Crafts」トピックを観察したため、これらのトピックを受信できるようになりました。
  • adtech1.example は、このユーザーの「Travel &Transportation」トピックを受信する資格がありません。これは、ユーザーが最近アクセスした、そのトピックに関連付けられているサイトにトピックが存在しないためです。
  • adtech2.example は、「Fitness」と「Travel & Transportation」のトピックを確認しましたが、「Crafts」のトピックを確認していません。

ユーザーは「Fashion & Style」トピックを持つ diy-clothing.example にアクセスしましたが、そのサイトでは Topics API への呼び出しはありませんでした。この時点で、これは、どの呼び出し元に対しても API によって「Fashion & Style」トピックが返されることがないことを意味します。

2 週目では、ユーザーは別のサイトにアクセスします。

サイトトピックサイト上の API 呼び出し元
sewing.exampleCraftsadtech2.example

さらに、adtech2.example のコードが diy-clothing.example に追加されます。

サイトトピックサイト上の API 呼び出し元
diy-clothing.exampleCrafts, Fashion & Styleadtech2.example

これは、第 1 週の「Fitness」と「Travel & Transportation」に加えて、adtech2.example が「Crafts」と「Fashion & Style」トピックを受信できるようになることを意味します。ただし、次のエポックである第 3 週までは受信できません。これにより、サードパーティは Cookie を使用する場合よりもユーザーの過去(この場合はファッションへの関心)について知ることができなくなります。

さらに 2 週間後、ユーザーが adtech2.example のコードを含むトピックでサイトにアクセスしなかった場合、「Fitness」と「Travel & Transportation」が adtech2.example の対象トピックのリストから除外される可能性があります。

ユーザー制御、透明性、オプトアウト

ユーザーは、Topics API の目的を理解し、Topics API について言われている内容を認識し、API がいつ使用されているかを知り、API を有効または無効にするための制御を与えられている必要があります。

人間が判読できる API の分類法によって、ユーザーはブラウザが提案するトピックについて学習し、制御することができます。ユーザーは、Topics API で広告主やサイト運営者と共有したくないトピックを削除できます。また、API についてユーザーに通知し、API を有効または無効にする方法を示すコントロールを設けることもできます。Chrome では、chrome://settings/privacySandbox で Topics API の情報と設定を提供しています。さらに、シークレットモードの場合は API 呼び出し元はトピックを利用できず、さらに閲覧履歴がクリアされるとトピックもクリアされます。

次の場合、返されるトピックのリストは空になります。

  • ユーザーが chrome://settings/privacySandboxにあるブラウザ設定を介して Topics API をオプトアウトしている。
  • ユーザーがトピックをクリア(chrome://settings/privacySandbox にあるブラウザ設定経由で)、Cookie をクリアした。
  • ブラウザがシークレットモードになっている。

Explainer には、プライバシーの目標と、API がそれらの目標にどのように対処しようとしているかについて詳しく説明されています。

サイトのオプトアウト

ユーザーがオプトアウトできることに加えて、サイトまたはサイト上のページのトピックをオプトアウトすることもできます。方法については、開発者ガイドをご覧ください。

prebid.js を使用するウェブサイトでの Topics API の使用

Prebid 7 のリリースに記載されているように、コミュニティは新しいモジュールを介した Topics API との統合を積極的に開発しました。このモジュールは 2022 年 12 月にマージされています。

詳細については、こちらをご覧ください。

次のステップ

貢献とフィードバックの共有

更新日 記事を改善する

This site uses cookies to deliver and enhance the quality of its services and to analyze traffic. If you agree, cookies are also used to serve advertising and to personalize the content and advertisements that you see. Learn more about our use of cookies.