Android の Topics API と、実装の手順について説明します。トピックの実装に直接進むこともできます。
Topics API の仕組み
Topics API を使用すると、ユーザーのアクティビティに基づいて、ユーザーの関心を持ちそうなトピックを検出してアクセスを提供できます。これにより、Topics API は、ユーザーのアクティビティに関する追加情報を開示することなく、API 呼び出し元(広告テクノロジー プラットフォームなど)にユーザーの関心トピックへのアクセスを許可できます。
主なコンセプト
- トピックは、現在のユーザーの興味を示すもので、人が読める形式になっています。Topics 分類に含まれます。
- 呼び出し元とは、ユーザーの関心を観察またはアクセスするために Topics API にリクエストを行うエンティティ(アプリ、サードパーティ SDK、ウェブサイト、サービスなど)です。
- トピックは、呼び出し元が、3 エポックの間に、トピックに関連付けられたウェブページまたはアプリから Topics API リクエストを行った場合に参照されます。
- エポックは、トピックの算出を行う期間です。デフォルトは 1 週間です。
- 分類は、
/Arts & Entertainment/Music & Audio/Soul & R&B
や/Business & Industrial/Business Services/Corporate Events
などのカテゴリを含む、カテゴリの階層リストです。 - トピックは、ユーザー アクティビティを 0 個以上のトピックにマッピングする分類モデルを使用して導出されます。
Topics API フローのコアステップ
Topics API のライフサイクルには、主に次の 3 つのステップがあります。
- ユーザー アクティビティ(ウェブページ
https://cats.example/tabby/index.html
へのアクセスやアプリcats
のダウンロードなど)をモニタリングします。 - ユーザー アクティビティ(
/Pets & Animals/Pets/Cats
など)からトピックを導出します。 - ユーザーが以前にアクセスしたトピック。関連性の高い広告(猫用フードのプロモーションなど)を選択するためのシグナルとして使用されます。
トピックをモニタリングする
呼び出し元は、確認済みの関心トピックにのみアクセスできます。呼び出し元がトピックを参照するのは、このトピックに関連付けられたコンテキストから Topics API リクエストを行った場合です。このコンセプトを説明するために、次の簡略化された例について考えてみましょう。
- A と B という 2 つの Topics API 呼び出し元があるとします。
- コンテキストは 2 つあります。
- トピック
Home & Garden
に関連付けられた Greenhouse(Greenhouse という名前のアプリや greenhouse.example というウェブサイトなど)。 - テニス エクササイズ。たとえば、トピック
Sports/Tennis
に関連付けられた、Tennis Exercises という名前のアプリや tennis.example というウェブサイトなど。
- トピック
- 呼び出し元の A と B の両方が Greenhouse のコンテキストに存在します。
- テニス エクササイズのコンテキストには、呼び出し元の B のみが存在します。
- わかりやすくするため、エポック 1 より前にユーザーのトピックが観測されていないとします。
- ユーザーが Greenhouse アプリにアクセスし、呼び出し元 A と B が Topics API を呼び出して、ページまたはアプリへのユーザーのアクセスを記録します(Topics API の呼び出し方法については、次のステップで推奨されている実装ガイドをご覧ください)。このレコード(ホスト名またはアプリデータ)は、後で興味のあるトピックを導き出すために使用されます。Topics API は、トピック
Home & Garden
を呼び出し元 A と B の両方によって検出されたトピックとしてマークします。 - ユーザーが テニス エクササイズ アプリにアクセスします。呼び出し元 B のみが Topics API リクエストを送信します。Topics API は、トピック
Sports/Tennis
を呼び出し元 B によって確認済みとしてマークします。 - エポックの終わりまでに、Topics API はユーザーの上位トピックを更新し、ユーザーのアクティビティに基づいてこれらのトピックを観察した呼び出し元を決定します。
- 後で、呼び出し元 B が Topics API を再度呼び出すと、このユーザーの
Home & Garden
トピックまたはSports/Tennis
トピック(または 5% の確率でランダムなトピック)がレスポンス配列で取得されます。 - 呼び出し元 A はトピック
Sports/Tennis
を検出したことがないため、トピックHome & Garden
にのみアクセスできます。つまり、サードパーティは、ユーザーの関心のあるトピックを、そのトピックが存在する特定のコンテキスト(アプリまたはウェブサイト)内でのみ知ることができます。

トピックを導出する
Topics は、ユーザー アクティビティから関心のあるトピックを導き出します。トピックは事前に定義されたオープンソースの分類から選択されます。Topics は、エポックごとに 1 回、ユーザーの上位 5 つのトピックと、エポック中にそれらを観測した呼び出し元を更新します。Topics 分類モデルは、ユーザー アクティビティ(ウェブページのアクセスのホスト名、Android のアプリ情報)からトピックを導出します。
呼び出し元がユーザーの関心のあるトピックにアクセスする
API は、直近の 3 エポック内に呼び出し元によってすでに確認されているトピックのみを返します。呼び出し元には最大 3 つのトピックが返されます。最近の 3 つのエポックごとに 1 つのトピックが返されます(呼び出し元がそのエポックのトピックを観測した場合)。返されたトピックは、呼び出し元がコンテキスト情報を補完するために使用できます。また、組み合わせて使用することで、ユーザーに関連性の高い広告を見つけることができます。
エポック
Topics API では、関心のあるトピックが最新の状態に保たれている必要があります。トピックは、エポックと呼ばれる期間(デフォルトでは 1 週間)のアクティビティに基づいてユーザーに対して推測されます。各ユーザーには独自のエポックがあり(エポックは「ユーザーごと」です)、最初の開始時間はランダムに設定されます。
Topics API はエポックごとに 1 回、ユーザーの上位 5 つのトピックを計算し、デバイス上の情報を基に、それらのトピックを検出した呼び出し元を特定します。エポックごとに選ばれるトピックは、その期間にユーザーが最も関心を持っている 5 つのトピックからランダムに抽出したものとなります。プライバシーを強化し、すべてのトピックが使用されるように、20 回に 1 回は興味 / 関心の分類に含まれる可能性があるすべてのトピックから無作為に選ばれます。
Android に関するトピックの実例
Android の Topics API は、通常複数のアプリで動作するサードパーティの広告 SDK をサポートするように設計されています。Topics は、クロスアプリ識別子に依存せずに、ユーザーのアプリ使用状況に基づいた興味に関する大まかな広告トピックを呼び出し元に提供します。これらのトピックを使用すると、広告を表示するアプリに関連するコンテキスト情報を補完でき、組み合わせることでユーザーに適した広告を選択できます。
Topics API のコンテキストでは、購入者と広告主はセルサイドに依存しています。 販売者側では、パブリッシャーのアプリで広範なプレゼンスを獲得し、ユーザーのトピックをモニタリングし、そのトピックを購入者と共有して、購入者がより関連性の高い広告を選択できるようにします。トピックを取得するには、セルサイドのアプリと SDK が少なくとも 1 つのエポックにわたって Topics API のオブザーバーとなることで、フットプリントを確立する必要があります。
Topics API 実装ガイドをご覧ください。 をご覧ください)。
業種別のトピックの統合
Topics API で IBA(インタレスト ベース広告)を有効にします。広告テクノロジーのビジネスタイプに基づいて手順に沿って Topics API を統合し、リリースの準備をします。
すべての広告テクノロジー
- Topics の分類を確認し、フィードバックを提供してください。
- Topics API のサンプルアプリを試して、デバイス上の分類器からどのようなトピックデータが返されるかを確認してください。
- Topics API の呼び出しを開始するようアプリと SDK のフローを更新します。
- プロトコルを更新して、広告リクエストでトピックの送信を開始します。
- プライバシー サンドボックスに広告テクノロジーを登録します。
セルサイド広告テクノロジー
- オブザーバーになって Topics API のフットプリントを確立します。Topics API は新しいシグナルを提供するため、Topics API の呼び出しを開始するには SDK を更新する必要があります。トピックを一貫して取得するには、SDK がパブリッシャー アプリからエポックごとに少なくとも 1 回 API を呼び出す必要があります。広告リクエストで送信するトピックの最大数(3 つのトピック)を取得するには、最大 4 エポックを要します。
- 広告リクエストに Topics API の情報を含めます。広告リクエストごとに、バイサイド パートナーとの Topics API データの共有を開始します。Topics API では、特定の訪問者に適した広告を見つけやすくするために他のシグナル(コンテキスト シグナルなど)を補完することも予定されています。
- バイサイド パートナーとトピックを共有するためのプロトコルに共同で取り組みます。Topics API では、各 SDK がダウンストリームのパートナーと連携して Topics API のデータの共有方法に同意する必要があります。
バイサイド広告テクノロジー
- セルサイド パートナーに連絡し、トピックをモニタリングしてフットプリントを確立する計画を確認します。トピックを受け取るには、セルサイド プロバイダがエポックごとに少なくとも 1 回 Topics API を呼び出す必要があります。
- セルサイド パートナーからトピックを受け取るためのプロトコルを共同で策定します。トピックは、広告リクエストの一部としてセルサイド パートナーが共有する新しいシグナルです。バイサイドの消費者は、トピックの共有方法についてアップストリームのパートナーと連携するようにする必要があります。
- 入札や最適化のモデルにトピックを組み込みます。Topics API は、コンテキストに合ったものなど、その他のシグナルを補完して訪問者に適した広告を見つけやすくすることが期待されています。
API がアプリのトピックを推測する方法
Android では、Topics API は分類モデルを使用して、アプリ情報に基づいてアプリのトピックを推測します。現在の実装では、Topics はアプリ名とパッケージ名を使用して興味のあるトピックをアプリに割り当てますが、今後、アプリの説明などの他の情報を含めるように拡張される可能性があります。
トピック分類器
興味に関するトピックは、一般公開されているアプリ情報でトレーニングされた分類器モデルから得られます。
- あるエポックのトピックを計算するために分類器モデルを推論に使用する場合、使用されるシグナルのセットはデバイスに残ります。このシグナルのセットには、インストール済みのアプリまたは最近使用されたアプリを含めることができ、後で他のシグナルを含むように拡張される場合があります。
- V5 モデルは、Google Play ストアなどのアプリストアから入手した、人間がラベル付けした 54 万件と ML がラベル付けした 1,700 万件の公開アプリ情報を使用して Google によってトレーニングされています。このモデルは入力シグナルとしてアプリ名とパッケージ名を使用します。アプリ デベロッパーはこれを自由にテストして、アプリが分類されるトピックを確認できます。
- アプリが複数のトピックにマッピングされる、トピックにマッピングされない、またはユーザーのトピック履歴に追加されない可能性があります。アプリが分類で複数のトピックにマッピングされている場合、このアプリ用に選択されるトピックの数は上位 3 つに制限されます。
分類モデルの仕組みをより深く理解するために、Android Topics Classifier Colab を使用して、さまざまなアプリデータが分類にどのように影響するかをテストできます。
分類
トピックは、事前に定義されたオープンソースの分類から選択されます。分類は公開されており、変更される可能性があります。ご提案は、このページの上部にあるフィードバック ボタンを使用してお送りください。この分類は、プライベートなトピックが含まれないように、人の手を経てキュレートされます。この分類は、Android のモバイルアプリでの表示が可能な広告のカテゴリに合わせてカスタマイズされます。
Android の実践に関するトピック
ユーザーがデバイスに 7 つのアプリ(A、B、C、D、E、F、G)をインストールしているとします。アプリのトピック分類とアプリの広告テクノロジー SDK が、次のようになっているとします。
アプリ | トピックの分類 | 広告テクノロジー SDK |
T1、T5 | ad-sdk1、ad-sdk2 | |
B | T2 | ad-sdk2 |
T3、T6 | ad-sdk3、ad-sdk4 | |
D | T1、T4 | ad-sdk1 |
東 | T5 | ad-sdk4、ad-sdk5 |
金 | T6 | ad-sdk2、ad-sdk3、ad-sdk4 |
T7 | ad-sdk2 |
1 週目の終わり: Topics API が、このエポックにおけるユーザーの上位 5 つのトピックを生成します。
上位のトピック | トピックについて学習できる呼び出し元 |
T1 | ad-sdk1、ad-sdk2 |
T2 | ad-sdk2 |
T3 | ad-sdk3、ad-sdk4 |
T4 | ad-sdk1 |
T5 | ad-sdk1、ad-sdk2、ad-sdk4、ad-sdk5 |
2 週目では、いずれかのアプリの呼び出し元が API を呼び出すと、返されるトピックのリストには、呼び出し元が「トピックについて学習できる呼び出し元」に含まれるトピックのみが含まれます。そのエポックのトピックの列が表示されます。
- 各発信者が利用できるトピックの計算に含まれる履歴ウィンドウは、3 エポック(3 週間)です。
- 使用できるトピックは、広告 SDK を通じて Topics API を呼び出しているアプリに関連付けられたもののみです。つまり、Topics API を呼び出す広告 SDK がアプリに 1 つも含まれていない場合、そのアプリに関連付けられたトピックは、広告 SDK でアクセス可能なトピック群に関与することはありません。
- アプリで Topics API を宣言的にオプトアウトすることもできます。オプトアウトされたアプリに関連付けられたトピックは、1 週間のトピック計算の計算には反映されません。このドキュメントは、関連する実装の詳細を含むように更新される予定です。
プラットフォームで 5 つのトピックを推測できるほどアプリが使用されていない場合は、残りのトピックをランダムに生成するなどのオプションが検討される可能性があります。
返されたトピックの暗号化
Topics API を呼び出す登録済みの広告テクノロジー プラットフォームは、返されたトピックを呼び出し元のみが読み取れるように、暗号鍵も提供する必要があります。
プライバシー サンドボックスは、広告テクノロジーから提供されたエンドポイントからこれらの鍵を取得します。水 ベスト プラクティスとして、鍵は少なくとも 6 か月に 1 回ではなく定期的に更新することをおすすめします。
プライバシー サンドボックスでは、登録プロセス中に広告テクノロジーに、提供したエンドポイントの可用性を確認するよう求めるメッセージが表示されます。必要な対応について詳しくは、 現在の広告テクノロジーと新規に登録した広告テクノロジーについては、登録ガイドをご覧ください。
次のステップ
Topics を実装する
管理と透明性
関連情報
Android の Topics API について詳しくは、Google のリソースをご覧ください。
- Topics のサンプルアプリ、コラボレーション、チュートリアル動画をご確認ください。
- ユーザーとデベロッパーが API を制御する方法を確認する。
- サポート リソースで質問したり、フィードバックを共有したりできます。