モバイル向け Topics API: 概要

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 リクエストを行った場合です。このコンセプトを説明するために、次の簡略化された例について考えてみましょう。

  • AB という 2 つの Topics API 呼び出し元があるとします。
  • コンテキストは 2 つあります。
    • Greenhouse(トピック Home & Garden に関連付けられた、Greenhouse という名前のアプリや greenhouse.example というウェブサイトなど)。
    • テニス エクササイズ。たとえば、トピック Sports/Tennis に関連付けられた、Tennis Exercises という名前のアプリや tennis.example というウェブサイトなど。
  • 呼び出し元の AB の両方が Greenhouse のコンテキストに存在します。
  • テニス エクササイズのコンテキストには、呼び出し元の B のみが存在します。
  • わかりやすくするため、エポック 1 より前にユーザーのトピックが観測されていないとします。
  • ユーザーが Greenhouse アプリにアクセスし、呼び出し元 AB が Topics API を呼び出して、ページまたはアプリへのユーザーのアクセスを記録します(Topics API の呼び出し方法については、次のステップで紹介されている実装ガイドをご覧ください)。このレコード(ホスト名またはアプリデータ)は、後で興味のあるトピックを導出するために使用されます。Topics API は、トピック Home & Garden を、呼び出し元 AB の両方によって検出されたトピックとしてマークします。
  • ユーザーが テニス エクササイズ アプリにアクセスします。呼び出し元 B のみが Topics API リクエストを送信します。Topics API は、後でトピック Sports/Tennis を呼び出し元 B によって確認されたものとしてマークします。
  • エポックの終わりまでに、Topics API はユーザーの上位トピックを更新し、ユーザーのアクティビティに基づいてこれらのトピックを観測した呼び出し元を決定します。
  • 後で、呼び出し元 B が Topics API を再度呼び出すと、このユーザーの Home & Garden トピックまたは Sports/Tennis トピック(または 5% の確率でランダムなトピック)がレスポンス アレイで取得されます。
  • 呼び出し元 A はトピック Sports/Tennis を検出したことがないため、トピック Home & Garden にのみアクセスできます。つまり、サードパーティは、ユーザーの関心のあるトピックについて、そのトピックが存在する特定のコンテキスト(アプリまたはウェブサイト)内でのみ知ることができます。
Topics API は、呼び出し元がコンテキスト内に存在する場合にのみ、トピックを「確認済み」としてマークすることを示す図。
Topics API は、これらのトピックのコンテキストに存在する呼び出し元によってのみ検出されたトピックをマークします。呼び出し元は、確認済みのトピックにのみアクセスできます。

トピックを導出する

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 万件の公開アプリ情報を使用してトレーニングされています。このモデルは、アプリ名とパッケージ名を入力シグナルとして使用します。アプリ デベロッパーは、このモデルを自由に利用して、アプリがどのトピックに分類されるかをテストできます。
  • アプリが複数のトピックにマッピングされる、トピックにマッピングされない、またはユーザーのトピック履歴に追加されない可能性があります。分類の際にアプリが複数のトピックにマッピングされる場合、アプリに対して選択されるトピックの数が上位 3 つに制限されます。

分類器モデルの仕組みをより深く理解するために、Android Topics Classifier Colab を使用して、さまざまなアプリデータが分類にどのように影響するかをテストしてみてください。

分類

トピックは事前に定義されたオープンソースの分類から選択されます。分類は一般公開されていますが、変更される可能性があります。ページ上部のフィードバック ボタンを使用して提案を提出できます。この分類は、プライベートなトピックが含まれないように、人の手を経てキュレートされます。この分類は、Android のモバイルアプリでの表示が可能な広告のカテゴリに合わせてカスタマイズされます。

Android の実践に関するトピック

ユーザーがデバイスに 7 つのアプリ(A、B、C、D、E、F、G)をインストールしているとします。アプリのトピック分類とアプリの広告テクノロジー SDK が、次のようになっているとします。

アプリ トピック分類 広告テクノロジー SDK
A T1、T5 ad-sdk1、ad-sdk2
B T2 ad-sdk2
C T3、T6 ad-sdk3、ad-sdk4
D T1、T4 ad-sdk1
E T5 ad-sdk4、ad-sdk5
F T6 ad-sdk2、ad-sdk3、ad-sdk4
G 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 が含まれない場合、そのアプリに関連付けられたトピックは、広告 SDK がアクセスできるトピックのプールに貢献しません。
  • アプリで Topics API を宣言的にオプトアウトすることもできます。オプトアウトしたアプリに関連付けられたトピックは、週ごとのトピックの算出には影響を及ぼしません。このドキュメントは、関連する実装の詳細を含むように更新される予定です。

プラットフォームで 5 つのトピックを推測できるほどアプリが使用されていない場合は、残りのトピックをランダムに生成するなどのオプションが検討される可能性があります。

返されたトピックの暗号化

Topics API を呼び出す登録済みの広告テクノロジー プラットフォームは、返されたトピックを呼び出し元のみが読み取れるように、暗号鍵も提供する必要があります。

プライバシー サンドボックスは、広告テクノロジーによって提供されるエンドポイントからこれらの鍵を取得します。キーは少なくとも 6 か月ごとに定期的に更新することをおすすめします。

プライバシー サンドボックスでは、登録プロセス中に提供したエンドポイントの可用性を確認するよう広告テクノロジー企業に求めるメッセージが表示されます。現在登録されている広告テクノロジーと新規登録される広告テクノロジーで必要な対応について詳しくは、登録ガイドをご覧ください。

Next steps

Check out implementation details and code samples for callers to observe and access topics.
Learn how users and developers can manage and customize the Topics API to suit user's preferences and needs.

See also

Check out our resources to better understand the Topics API on Android.