様々な図面内の同様の参照番号および名称は同様の要素を示す。
コンテンツ選択リストを取得および分析することによって、第三者は、コンピューティングデバイスが関連付けられているコンテンツ選択リストに基づいて個々のコンピューティングデバイスを識別することができる。コンピューティングデバイスが十分なコンテンツ選択リストに関連付けられているか、またはコンテンツ選択リストに関連付けられたコンピューティングデバイスが多くない場合、第三者はしばしば、どのコンピューティングデバイスに第三者がコンテンツを提供しているかを絞り込むことができる。たとえば、第三者は、コンテンツを求める要求において識別された各コンテンツ選択リストに関連付けられているコンピューティングデバイスが多くない場合、コンピューティングデバイスまたはデバイスの小さいグループを識別することが可能であり得る。コンピューティングデバイスはウェブページを訪問するときにコンテンツ選択リストに自動的に関連付けられ得るので、コンピューティングデバイスを使用する人々は、自分のデバイスを第三者が識別するのを阻止することが困難である可能性がある。したがって、インターネットを閲覧する人々は、自分のコンピューティングデバイスを第三者が識別するのを阻止することが可能ではない場合がある。コンピューティングデバイスが識別されると、第三者はコンピューティングデバイスのフィンガープリントを取得し、対象を絞ったコンテンツをコンピューティングデバイスに提供することができる。
たとえば、図1Aを参照すると、いくつかの実装形態による、各コンテンツ選択リストが、各コンテンツ選択リストに関連付けられているコンピューティングデバイスを表す一意のデバイス識別子と、複数のコンテンツ選択リストに関連付けられているコンピューティングデバイスを示す共通部分とを含む、3つのコンテンツ選択リストのベン図100が示されている。ベン図100は、いくつかの実装形態では、コンテンツ選択リスト102、104、および106を含むことが示されている。コンテンツ選択リスト102、104、および106は、コンテンツプロバイダがコンピューティングデバイスからの要求を受信するとコンピューティングデバイスにコンテンツを提供するために使用するコンテンツ選択リストを表すことができ、デバイスのタイプもしくは特性および/または対応するユーザの特性(たとえば人口統計)などの様々な要因に基づき得る。コンテンツ選択リスト102、104、および106は、コンテンツを求める要求を行うコンピューティングデバイス(たとえば、コンピューティングデバイス112)に関連付けられ得る。ベン図100は、任意の数のコンテンツ選択リストを含むことができる。コンテンツ選択リスト102、104、および106の各々は、特定のコンピューティングデバイスを識別する一意のデバイス識別子を含むことができる。ベン図100は、いくつかの実装形態では、共通部分108、114、116、および118を含むことが示されている。共通部分108、114、116、および118は、複数のコンテンツ選択リストの中にある一意のデバイス識別子を含むことができる。ベン図100は、任意の数の共通部分を含むことができる。コンテンツ選択リストの識別情報は、各リストに関連付けられたコンピューティングデバイスのブラウザに記憶され得る。コンピューティングデバイス112は、コンテンツを要求するときにコンテンツ選択リスト識別情報をコンテンツサーバに送信し得るので、コンテンツプロバイダは、どのコンテンツを提供すべきかを決定することができる。
各コンテンツ選択リスト102、104、および106は、コンピューティングデバイス112によって表された一意のデバイスを含むことができる。本明細書で説明されるように、一意のデバイスは、各コンテンツ選択リストに関連付けられているデバイス識別子に関連付けられていないことがある。一意のデバイスは、それらのデバイスを一意に識別する情報を提供することなしに、それらのデバイスがコンテンツ選択リストの一部であることをサーバに通知し得る。たとえば、1つのそのような実装形態では、デバイスはそれらのデバイスがコンテンツ選択リスト上にあることをサーバに通知することがあり、サーバはリストのタリーを増分し得るが、サーバはデバイス識別子またはリストに関連してデバイスに関連付けられた他の識別子を記憶しないことがあり、リストはタリー(ならびにリストの説明、有効期限などの他のメタデータ)のみに関連付けられ得る。そのような実装形態は、リストが危険にさらされるリスクを排除することによってプライバシーに役立つことができる。コンピューティングデバイスがインターネットを閲覧するとき、コンピューティングデバイスはコンテンツ選択リスト102、104、および106に関連付けられ得、第三者は第三者に関連付けられたコンテンツ選択リスト識別情報をコンピューティングデバイスのブラウザに記憶する。図1Aに示されているように、各コンテンツ選択リスト102、104、および106は複数のコンピューティングデバイスを含むことができる(たとえば、コンピューティングデバイスはコンテンツ選択リスト102、104、および106に関連付けられ得る)。共通のコンテンツ選択リストに関連付けられているコンピューティングデバイスは、共通部分108、114、116、および118に含まれることが示されている。
いくつかの場合、コンピューティングデバイスがより多くのコンテンツ選択リストに関連付けられているほど、コンテンツ選択リストの同じセットに関連付けられているコンピューティングデバイスはより少なくなり得る。たとえば、共通部分108、114、116、および118で見られるように、コンピューティングデバイス112が関連付けられているコンテンツ選択リストが多くなるほど、コンテンツ選択リスト間の共通部分の中のコンピューティングデバイスが少なくなる。したがって、あまりにも多くのコンテンツ選択リストに関連付けられているコンピューティングデバイス(たとえば、コンピューティングデバイス112)は、コンテンツを求める要求においてすべてのコンテンツ選択リストを受信するコンテンツプロバイダによって一意にまたは準一意に識別され得る。コンテンツプロバイダは、コンピューティングデバイス112を識別するために、各コンテンツ選択リストに共通している一意のデバイスを識別することができる。さらに、本明細書で説明されるシステムおよび方法を使用しないシステムは一般に、コンテンツサーバ上にコンテンツ選択リストを記憶するので、コンピューティングデバイスは、コンピューティングデバイスのアイデンティティを匿名にしておくためにコンテンツサーバに頼る必要がある。コンテンツサーバは、特定のコンピューティングデバイスの管理者またはユーザが望むようにコンピューティングデバイスのアイデンティティを匿名にしておくように構成されないことがある。その代わりに、本明細書で論じられるシステムおよび方法の実装形態は、コンピューティングデバイスに、そのプライバシーの、およびコンピューティングデバイスがコンテンツプロバイダからのコンテンツを要求するときに匿名のままでいるためのさらなる制御を提供する。
具体的には、本明細書で説明されるシステムおよび方法の実装形態は、コンテンツサーバから離れてコンテンツ選択リストを記憶するため、およびコンテンツプロバイダからコンピューティングデバイスを匿名化するために使用され得る。本システムおよび方法は、ブラウザ上にコンテンツ選択リスト識別情報を記憶することと、十分なコンピューティングデバイスに関連付けられたコンテンツプロバイダにコンテンツ選択リスト識別情報を提供することとを実現するので、コンテンツプロバイダがコンテンツを要求する特定のコンピューティングデバイスを識別することが可能ではない場合がある。
簡単な概要では、コンピューティングデバイスは、コンテンツプロバイダのウェブページを訪問することによって、コンテンツ選択リストに関連付けられた識別子を受信することができる。コンピューティングデバイスは、サーバの助けを借りて、コンテンツ選択リストに関連付けられた一意のコンピューティングデバイスの総数がしきい値を超えるかどうかを決定することができる。しきい値を超えるのに十分なコンピューティングデバイスがコンテンツ選択リストのサブセットの中にある場合、コンピューティングデバイスは、コンピューティングデバイスを匿名にしながら、コンテンツを求める要求がコンテンツプロバイダに送られ得ると決定し得る。コンピューティングデバイスは、サブセットのコンテンツ選択リストの識別子を含めたコンテンツを求める要求をコンテンツサーバに送信することができる。
いくつかの実装形態では、しきい値を超えるのに十分なコンピューティングデバイスに関連付けられているコンテンツ選択リストのサブセットがないとコンピューティングデバイスが決定した場合、コンピューティングデバイスは、しきい値を超えるのに十分なコンピューティングデバイスが関連付けられているサブセットの他のコンテンツ選択リストとの共通部分を有する、サーバからの別のコンテンツ選択リストの識別情報を要求することができる。コンピューティングデバイスは、追加されたコンテンツ選択リストの識別情報を、コンテンツサーバへのコンテンツを求める要求の中のコンテンツ選択リスト識別情報のサブセットに含めることができる。したがって、コンピューティングデバイスがコンテンツを要求し、コンピューティングデバイスに関連付けられたコンテンツ選択リストを第三者コンテンツプロバイダに提供するときに、コンピューティングデバイスは第三者コンテンツプロバイダから匿名のままでいることができる。
次に図1Bを参照すると、いくつかの実装形態による、図1Aに関連して示され、説明され、コンピューティングデバイスが関連付けられていない第4のコンテンツ選択リストを含む、ベン図100と同様のベン図120が示されている。ベン図120は、コンテンツ選択リスト122、124、126、および128ならびに共通部分134、136、138、140、142、144、および146を含むことが示されている。コンピューティングデバイス132は、コンピューティングデバイス112と同様であってもよく、コンテンツプロバイダからのコンテンツを要求するときにコンテンツ選択リスト122、124、および126(または122、124、および126の任意のサブセット)の識別情報を生成し得る。コンテンツ選択リスト122、124、および126のコンピューティングデバイスは、コンテンツ選択リスト126のコンピューティングデバイス130によって表され得る。上記で説明されたように、コンピューティングデバイス132から受信されたコンテンツ選択リストの各々の共通部分に関連付けられた十分なコンピューティングデバイスがない場合、コンテンツプロバイダはコンピューティングデバイス132を識別することが可能であり得る。コンピューティングデバイス132が許容できる程度に匿名のままでいるための、コンテンツ選択リスト122、124、および126の共通部分に関連付けられた十分なコンピューティングデバイスがない場合、コンピューティングデバイス132は、コンピューティングデバイス132がやはり関連付けられているコンテンツ選択リストの第2のサブセットを選択し得る。コンピューティングデバイス132は、コンテンツ選択リストの第2のサブセットが、コンピューティングデバイス132が匿名のままでいるための十分なコンピューティングデバイスに関連付けられているかどうかを決定し得る。コンテンツ選択リストの第2のサブセットが、しきい値に達するのに十分なコンピューティングデバイスに関連付けられている場合、コンピューティングデバイス132は、コンテンツ選択リストの第2のサブセットの識別情報を含むコンテンツを求める要求をコンテンツサーバ250に送り得る。
いくつかの実装形態では、コンピューティングデバイス132は、コンピューティングデバイス132が関連付けられていないが、他のコンテンツ選択リストに共通しているコンピューティングデバイスの共通部分を有する、別のコンテンツ選択リスト識別情報を要求することができる。コンテンツ選択リスト128によって表されるコンテンツ選択リストは、任意の数の一意のデバイスを含んでもよく、任意の数の共通部分に関連付けられてもよい。本明細書で説明されるように、一意のデバイスはコンピューティングデバイスと同じであるかまたはコンピューティングデバイスと同様であってもよい。コンピューティングデバイス132は、追加のコンテンツ選択リストの識別情報を受信し、その他のコンテンツ選択リストの識別情報とともに新しい識別情報を、コンテンツを求める要求とともにコンテンツサーバに送ることができる。したがって、別のコンテンツ選択リストの追加はコンピューティングデバイス132が関連付けられていない新しい共通部分をもたらす場合があるので、コンテンツプロバイダはどのコンピューティングデバイスがコンテンツを要求しているかを絞り込むのにより苦労することがある。各々が数百または数千のデバイスおよび/またはユーザに潜在的に関連付けられた多数のコンテンツ選択リストがあると、これらの実装形態は任意の特定のコンピューティングデバイスの一意の識別をほとんど不可能にすることがある。
次に図2を参照すると、いくつかの実装形態による、コンテンツサーバからのコンテンツを受信するコンピューティングデバイスのプライバシーを守るためのシステム200の一実装形態のブロック図が示されている。システム200は、コンピューティングデバイス202、ネットワーク221、仲介サーバ222、コンテンツプロバイダ242および246、ならびにコンテンツサーバ250を含むことが示されている。コンピューティングデバイス202は、ネットワーク221を介して、異なる第三者に関連付けられたウェブページおよびドメインを訪問するインターネットを閲覧することができる。ネットワーク221は、同期ネットワークまたは非同期ネットワークを含むことができる。コンテンツ選択リストを表す識別情報は、コンピューティングデバイス202上のローカルストレージに追加され得る。コンテンツ選択リストは、コンピューティングデバイス202が訪問する第三者、ウェブページ、および/またはドメインに関連付けられ得る。コンテンツ選択リスト識別情報は、コンピューティングデバイス202のブラウザに記憶され得る。コンピューティングデバイス202が別のウェブページを訪問するとき、コンピューティングデバイス202はコンテンツを求める要求をコンテンツプロバイダ242および246のうちの1つに送ることができる。要求は、コンピューティングデバイス202に送るべきコンテンツを識別するためにコンテンツプロバイダ242または246によって使用され得るコンテンツ選択リスト識別情報を含むことができる。
いくつかの実施形態では、コンピューティングデバイス202は、コンピューティングデバイス202が関連付けられているコンテンツ選択リストの各々の識別情報を記憶することができる。コンピューティングデバイス202は、どのコンテンツ選択リストにコンピューティングデバイス202が関連付けられているかを見ることを望むユーザに、コンテンツ選択リスト識別情報のリストを表示することができる。リストは、各コンテンツ選択リストの目的および意図をユーザに示す情報(たとえば、各リストに関連付けられたコンテンツプロバイダおよび各コンテンツプロバイダが提供するコンテンツのタイプ)を含むことができる。したがって、ユーザは、コンピューティングデバイス202とコンテンツ選択リストとの間の関連付けを削除するか、またはウェブサイト/ウェブページがコンピューティングデバイス202をコンテンツ選択リストに関連付けるのを阻止するかに関して、十分な情報を得たうえでの決定を行うことができる。さらに、いくつかの事例では、コンピューティングデバイス202とコンテンツ選択リストとの間の関連付けは有効期限を有し得る。これらの場合、コンピューティングデバイス202は、管理者によって決定された所定の時間期間の後でコンピューティングデバイス202とコンテンツ選択リストとの間の関連付けを自動的に削除(たとえば、ストレージからコンテンツ選択リスト識別情報を削除)し得る。所定の時間期間は任意の長さとすることができる。
仲介サーバ222は、いくつかの実装形態では、コンピューティングデバイス(たとえば、コンピューティングデバイス202)がコンテンツプロバイダ(たとえば、コンテンツプロバイダ242および246)によって識別されないように構成された1つまたは複数のサーバまたはプロセッサを含み得る。仲介サーバ222は、いくつかの実装形態では、プロセッサ224およびメモリ226を含むことが示されている。コンピューティングデバイス202と同様に、以下で詳細に論じられるように、仲介サーバ222は、コンテンツサーバ250からのコンテンツを要求するコンピューティングデバイスに関連付けられたコンテンツ選択リストを識別し、それらのすべてがコンテンツ選択リストの所与のセットに属する、各コンテンツ選択リストに関連付けられているデバイスに関連付けられたコンテンツ選択リストの共通部分に十分な数の一意のデバイスがあるかどうかを決定し、総数が所定のしきい値を超えない場合に別のコンテンツ選択リストを選択し、各コンテンツ選択リストの現在の条件値を決定し、各コンテンツ選択リストのコンテンツ選択値を決定し、最も高いコンテンツ選択値を有するコンテンツ選択リストのサブセットを選択し、選択されたコンテンツ選択リストの識別情報をコンテンツサーバ250に送信するように構成され得る。仲介サーバ222内の1つまたは複数の構成要素は、仲介サーバ222内の各構成要素とコンテンツプロバイダ242および246、コンテンツサーバ250、ならびにコンピューティングデバイス202などの外部の構成要素との間の通信を容易にすることができる。仲介サーバ222は複数の被接続デバイスを含むことができ、各デバイスは(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要な動作の部分を提供する。
プロセッサ224は、いくつかの実装形態では、仲介サーバ222内のメモリ226の中のモジュールまたは構成要素上で命令を実施するように構成された1つまたは複数のプロセッサを含み得る。いくつかの実装形態では、プロセッサ224は、コンピューティングデバイス(たとえば、コンピューティングデバイス202)がインターネットを閲覧し、コンテンツプロバイダからのコンテンツを要求している間に匿名のままでいることを確実にするように構成され得る、メモリ226内のモジュールを実行する。そうするために、プロセッサ224は仲介サーバ222のメモリ226に記憶された命令を実施することができる。メモリ226は、いくつかの実装形態では、リスト識別器228、リスト選択器230、リスト検索器232、条件分析器234、アプリケーション236、および送信機238を含むことが示されている。構成要素228~238の各々は、以下で説明されるように、コンピューティングデバイスを匿名にしておくためにコンピューティングデバイス202の構成要素210~220と同様の機能を実施することができる。
プロセッサ224は、コンテンツ選択リストに関連付けられたコンテンツ選択値を決定するために、アプリケーション236に機械学習モデル(たとえば、ニューラルネットワーク、サポートベクターマシン、ランダムフォレストなど)を実装することができる。以下で論じられるように、機械学習モデルはまた、コンピューティングデバイス202上で実装され得る。いくつかの実装形態では、プロセッサ224は、コンテンツ選択値の最も高い組合せを有するコンテンツ選択リストのサブセットをコンテンツサーバ250に提供することができる。いくつかの実装形態では、プロセッサ224は、コンテンツ選択リストのコンテンツ選択値を決定するための機械学習技法を使用することのみに特化したテンソル処理ユニット(TPU)などのコプロセッサを含み得るか、またはコプロセッサと通信し得る。
メモリ226は、いくつかの実装形態では、コンテンツ選択リストデータベース240を含むことも示されている。コンテンツ選択リストデータベース240は、コンピューティングデバイス202のブラウザにも含まれ得る。コンテンツ選択リストデータベース240は、コンピューティングデバイスに関連付けられたコンテンツ選択リスト識別情報を含む動的なデータベースであり得る。コンテンツ選択リストデータベース240は、グラフデータベース、MySQL、Oracle、Microsoft SQL、PostgreSql、DB2、ドキュメントストア、サーチエンジン、キー値ストアなどであり得る。コンテンツ選択リストデータベース240は、任意の量のデータを保持するように構成されてもよく、任意の数の構成要素で構成され得る。コンテンツ選択リストデータベース240は、コンテンツ選択リストを識別するコンテンツ選択リスト識別子を含むことができる。各コンテンツ選択リストは、コンテンツ選択リストが関連付けられ得る第三者、コンテンツ選択リストに関連付けられたコンテンツのタイプ、コンテンツ選択リストの一意のデバイスの数、コンテンツ選択リストの現在の条件値を決定するために使用される条件などを識別するメタデータに関連付けられ得る。コンテンツ選択リストデータベース240は、任意の量のメタデータを有する任意の数のコンテンツ選択リストを記憶するように構成され得る。
いくつかの実装形態では、コンテンツ選択リストデータベース240は、コンテンツ選択リストに関連付けられているコンピューティングデバイスの一時的な識別情報を記憶することができ、一時的な識別情報は、満了するまでに1日または任意の長さの間持続することができる。一時的な識別情報は、関連するコンピューティングデバイスがどのコンテンツ選択リストに関連付けられているかを示すメタデータを含み得る。しかしながら、識別情報は一時的であるので、コンテンツプロバイダが将来のコンテンツをコンピューティングデバイスに提供するとき、コンピューティングデバイスはコンテンツプロバイダごとの識別情報から特定可能ではない場合がある。
いくつかの実装形態では、仲介サーバ222は、コンピューティングデバイスのプライバシーを守るために(n,t)しきい値方式を実装することができる。コンピューティングデバイスは、コンピューティングデバイスがどのコンテンツ選択リストの一部であるかを示す暗号化された情報を仲介サーバ222に送ることができる。各コンピューティングデバイスは、コンテンツプロバイダには明らかにされない秘密鍵を有し得る。
コンテンツサーバ250は、コンピューティングデバイス202から要求を受信した後にウェブページの専用コンテンツ空間においてコンテンツをコンピューティングデバイス202に提供するように構成されたサーバまたはプロセッサであり得る。コンテンツサーバ250はアプリケーション252を含み得る。アプリケーション252は、いくつかの実装形態では、コンピューティングデバイス202によって提供されたコンテンツ選択リストに基づいて、どのコンテンツプロバイダ(たとえば、コンテンツプロバイダ242または246)が最も高い値を提供されているコンテンツに関連付けるかを決定するためのアプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能な論理を含み得る。アプリケーション252は、コンピューティングデバイス202がウェブページを訪問し、コンテンツプロバイダ242および246からのコンテンツを求める要求を送信するときに、コンピューティングデバイス202によって選択されたコンテンツ選択リストを受信することができる。いくつかの実装形態では、コンテンツプロバイダ242および246は、コンピューティングデバイス202によって送信されたコンテンツ選択リストに基づいて、値をそれらのコンテンツプロバイダが提供しているコンテンツに関連付けることができる。アプリケーション252は、最も高い値を提供されているコンテンツに関連付けるコンテンツプロバイダがコンテンツをコンピューティングデバイス202に提供することができると決定することができる。任意のサーバまたはプロセッサ(たとえば、仲介サーバ222、コンピューティングデバイス202、コンテンツプロバイダ242および246など)上の構成要素は、どのコンテンツプロバイダが最も高い値を提供されているコンテンツに関連付けるかを決定することができる。
いくつかの実装形態では、コンテンツプロバイダ242および246は、コンピューティングデバイス(たとえば、コンピューティングデバイス202)からのコンテンツを提供するという要求を受信し、値をコンテンツサーバ250にサブミットして、要求に関連付けられたコンテンツ選択リストに基づいてコンテンツをコンピューティングデバイス202に提供する第三者コンテンツプロバイダであり得る。いくつかの事例では、コンテンツプロバイダ242は、コンテンツ選択リストの共通部分が十分な一意のデバイスをもたない場合、コンテンツ選択リストから個々のコンピューティングデバイスを識別することができる。コンテンツプロバイダ242および246は、コンピューティングデバイスを含むコンテンツ選択リストの共通部分を絞り込むことができる。コンテンツプロバイダ242および246が個々のコンピューティングデバイスを識別すると、コンテンツプロバイダ242および246は、コンテンツ選択リストおよび要求のコンテキスト(たとえば、コンテンツが表示されることになるウェブページのコンテンツ)に基づいて、コンテンツ(たとえば、コンテンツ244および248)をコンピューティングデバイスに提供することができる。コンピューティングデバイス202は、多数のコンピューティングデバイスに関連付けられているコンピューティングデバイス202を含む共通部分を有するコンテンツ選択リストを提供することによって、コンテンツプロバイダがコンピューティングデバイス202を識別するのを防止し得る。
たとえば、コンピューティングデバイス202はウェブブラウザを開き、ウェブページを訪問し得る。コンピューティングデバイス202は、コンテンツ選択リストを含むコンテンツを求める要求をコンテンツサーバ250にサブミットし得る。コンテンツ選択リストの共通部分はごく少数の一意のデバイスを含み得る。コンテンツをコンピューティングデバイス202に提供しようと試みるコンテンツプロバイダ242は、コンテンツサーバ250からコンテンツ選択リストを識別することができる。コンテンツ選択リストの共通部分に関連付けられた十分な一意のデバイスがない場合、コンテンツプロバイダ242は、コンテンツ選択リストのすべてに共通している一意のデバイスを識別し、一意のデバイスに関連付けられたコンピューティングデバイスを、コンテンツを要求するコンピューティングデバイスとして識別することが可能であり得る。コンテンツプロバイダ242によって識別されることを回避するために、コンピューティングデバイス202は、コンピューティングデバイス202がその一部であるコンテンツ選択リストの第2のサブセットであって、より多くのコンピューティングデバイスに関連付けられた共通部分を有するコンテンツ選択リストの第2のサブセットを識別し得る。
本明細書で説明されるように、一意のデバイス識別子は本質的に概念的であり、コンピューティングデバイスがコンテンツ選択リストに関連付けられているかどうかを表すために使用され得る。一意のデバイス識別子は、コンピューティングデバイスまたは一意のデバイス識別子が関連付けられているコンピューティングデバイスの態様のいかなる物理的な識別情報も含まない場合がある。説明されたように、一意のデバイス識別子は、コンピューティングデバイスがコンピューティングデバイスのブラウザに記憶されたコンテンツ選択リスト識別情報を含むかどうかを示すために使用される。一意のデバイス識別子はまた、コンピューティングデバイス202に関連付けられたコンテンツ選択リストの共通部分に関連付けられているコンピューティングデバイスの数を仲介サーバ222がどのようにカウントするかを記述するために使用される。仲介サーバ222は、コンテンツ選択リストまたはコンテンツ選択リストの共通部分に関連付けられたコンピューティングデバイスの数を、そのリストに関連付けられたコンピューティングデバイスと通信することによってカウントし得る。一意のデバイス識別子は、一意のデバイス識別子がコンテンツ選択リストに関連付けられているという肯定的な指示を仲介サーバ222に提供したコンピューティングデバイスを表すことができる。しかしながら、一意のデバイス識別子は単に概念的であり、コンピューティングデバイスの物理的な識別情報を含まないので、コンテンツプロバイダは一意のデバイス識別子に基づいてコンピューティングデバイスを識別しないことがある。
たとえば、コンピューティングデバイスはウェブページを訪問し、ウェブページからコンテンツ選択リスト識別情報を受信し得る。コンピューティングデバイスは、コンピューティングデバイスのブラウザにコンテンツ選択リスト識別情報を記憶し得る。本明細書で説明されるように、ブラウザにコンテンツ選択リスト識別情報を記憶することによって、コンピューティングデバイスに関連付けられた一意のデバイス識別子はコンテンツ選択リストに関連付けられ得る。仲介サーバ222がコンテンツ選択リストまたはコンテンツ選択リストに関連付けられた共通部分に関連付けられているコンピューティングデバイスの数を決定しているとき、仲介サーバ222は、コンピューティングデバイスがコンテンツ選択リストに関連付けられているかどうかを尋ねる要求をコンピューティングデバイスに送ることによって、カウントの中に一意のデバイス識別子を含めることができる。いくつかの実装形態では、コンピューティングデバイスは、コンピューティングデバイスが1つまたは複数のコンテンツ選択リストに関連付けられていること、およびコンピューティングデバイスがどのコンテンツ選択リストに関連付けられているかを仲介サーバ222に通知することがある。一意のデバイス識別子はいかなる方法でもコンピューティングデバイスを識別しないので、コンテンツプロバイダは一意のデバイス識別子に基づいてコンピューティングデバイスを識別することができない。
コンピューティングデバイス202は、デスクトップコンピュータ、ラップトップコンピュータ、ポータブルコンピュータ、タブレットコンピュータ、ウェアラブルコンピュータ、組込みコンピュータ、スマートテレビジョン、セットトップボックス、コンソール、モノのインターネット(IoT)デバイスもしくはスマートアプライアンス、または任意の他のタイプおよび形態のコンピューティングデバイスを含む、任意のタイプおよび形態のメディアデバイスまたはコンピューティングデバイスを含み得る。コンピューティングデバイスは、クライアント、デバイス、クライアントデバイス、コンピューティングデバイス、匿名化されたコンピューティングデバイスと呼ばれるか、または任意の他のそのような用語で様々に呼ばれることがある。コンピューティングデバイスおよび仲介変調器は、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、衛星ネットワーク、ケーブルネットワーク、ブロードバンドネットワーク、光ファイバネットワーク、マイクロ波ネットワーク、セルラーネットワーク、ワイヤレスネットワーク、またはこれらのもしくは他のそのようなネットワークの任意の組合せを含む任意の適切なネットワークを介してメディアストリームを受信し得る。多くの実装形態では、ネットワークは、同じタイプまたは異なるタイプであり得る複数のサブネットワークを含んでもよく、ゲートウェイ、モデム、ファイアウォール、ルータ、スイッチなどを含む複数の追加のデバイス(図示せず)を含んでもよい。
コンピューティングデバイス202は、コンテンツプロバイダ(たとえば、コンテンツプロバイダ242および246)からのコンテンツを要求するときに、それらのプロバイダから匿名のままでいるように構成された1つまたは複数のコンピューティングデバイスを含み得る。コンピューティングデバイス202は、いくつかの実装形態では、プロセッサ204およびメモリ206を含むことが示されている。コンピューティングデバイス202は、コンテンツプロバイダに関連付けられたウェブページを訪問している間に、コンテンツ選択リストの識別情報を要求し、受信するように構成され得る。別のウェブページを訪問すると、コンピューティングデバイス202は、コンテンツ選択リストのサブセットの共通部分の中の一意のデバイスの総数に基づいて、コンピューティングデバイス202が受信したコンテンツ選択リストのサブセットの識別子を選択し、コンテンツ選択リストの選択されたサブセットの識別情報を含むコンテンツを要求し、コンテンツサーバ250からのコンテンツアイテムを受信することができる。コンピューティングデバイス202は、コンピューティングデバイス202のインターフェースにおいてコンテンツアイテムを表示し得る。コンピューティングデバイス202内の1つまたは複数の構成要素は、コンピューティングデバイス202内の各構成要素と仲介サーバ222、コンテンツプロバイダ242および246、ならびにコンテンツサーバ250などの外部の構成要素との間の通信を容易にすることができる。
プロセッサ204は、いくつかの実装形態では、コンピューティングデバイス202内のメモリ206の中のモジュール上で命令を実施するように構成された1つまたは複数のプロセッサを含み得る。いくつかの実装形態では、プロセッサ204は、コンピューティングデバイス202がブラウザ208を介してウェブページを訪問するときにコンピューティングデバイス202をコンテンツプロバイダ242および246に対して匿名にしておくように構成され得るメモリ206内のブラウザ208を実行する。メモリ206はブラウザ208を含むことが示されている。ブラウザ208は、ウェブページを訪問し、コンテンツ選択リストの一意のデバイスおよびコンテンツ選択リストの値に基づいてコンテンツを求める要求とともにコンテンツ選択リスト識別子をコンテンツプロバイダに提供するためのアプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能な論理を含み得る。ウェブページを訪問すると、ブラウザ208はコンテンツサーバ250からのコンテンツを求める要求を送ることができる。コンテンツを求める要求を送るために、ブラウザ208はその要求に対応するコンテンツ選択リスト識別子を識別および/または選択して、コンテンツサーバ250に送ることができる。以下で説明されるように、ブラウザ208は、コンテンツ選択リストのサブセットの共通部分に属するデバイスの数に基づいてコンテンツ選択リストのサブセットを識別および/または選択することができる。いくつかの実装形態では、ブラウザ208は、コンテンツ選択リストの値に基づいてコンテンツ選択リスト識別子を識別することができる。
ブラウザ208は、いくつかの実装形態では、リスト識別器210、リスト選択器212、リスト検索器214、条件分析器216、アプリケーション218、および送信機220を含み得る。ブラウザ208は、任意の数の構成要素を含むことができる。各構成要素210、212、214、216、218、および220の動作を実施するようにブラウザ208を実行することによって、プロセッサ204は、コンテンツプロバイダ242および246(または任意の他のコンテンツプロバイダ)が、コンピューティングデバイス202のインターフェースにおいてコンテンツを表示するという要求においてコンピューティングデバイス202がコンテンツプロバイダ242および246に送信するコンテンツ選択リストに基づいてコンピューティングデバイス202を識別することを防止することができる。いくつかの実装形態では、コンピューティングデバイス202は、コンテンツプロバイダ242および246に最も高い値を有するコンテンツ選択リストのコンテンツ選択リスト識別子を提供する間に、そうすることができる。簡単な概要では、プロセッサ204は、コンピューティングデバイス202のコンテンツ選択リストのサブセットの共通部分の中にある一意のデバイスの総数がしきい値を超えるかどうかを示す識別情報を仲介サーバから受信することができる。プロセッサ204は、総数がしきい値を超える場合、コンテンツプロバイダ242および246にコンテンツ選択リスト識別子を提供することができる。一意のデバイスの総数がしきい値を超えない場合、プロセッサ204は、しきい値を超える一意のデバイスの総数の共通部分を有するコンテンツ選択リストの第2のサブセットを選択することができる。プロセッサ204は、コンテンツを求める要求においてコンテンツプロバイダ242および246にコンテンツ選択リスト識別子の第2のサブセットを提供することができる。
いくつかの実施形態では、総数がしきい値を超えない場合、プロセッサ204は、コンテンツ選択リストのサブセットの一意のデバイスの総数がしきい値を上回るようにするために、仲介サーバ222からの追加のコンテンツ選択リスト識別子の識別情報を要求することができる。プロセッサ204は、コンテンツサーバからのコンテンツを求める要求に追加のコンテンツ選択リストの識別情報を含めることができる。プロセッサ204は、しきい値を超える追加のコンテンツ選択リストを含むコンテンツ選択リストのサブセットとともにコンテンツを求める要求をコンテンツプロバイダ242および246にまたはコンテンツサーバ250に送ることができる。プロセッサ204は、コンテンツ選択リストのサブセットのコンテンツ選択リストに基づいてコンテンツプロバイダ242および246によって選択されたコンテンツのアイテムを受信し、コンピューティングデバイス202のインターフェースにおいてコンテンツを表示することができる。
いくつかの実装形態では、プロセッサ204は、しきい値を超え、最も高い値を有するコンテンツ選択リストのサブセットを決定し得る。プロセッサ204は、各コンテンツ選択リストに一意に関連付けられた条件に基づいてコンテンツ選択リストの値を決定することができる。いくつかの実装形態では、プロセッサ204は、コンテンツ選択リストの以前の値に基づいてコンテンツ選択リストの値を決定することができる。プロセッサ204は、コンテンツ選択リストの値を識別するための機械学習モデルを実装することができる。プロセッサ204は、コンテンツ選択リストの値を決定するための機械学習モデルを使用することのみに特化したテンソル処理ユニット(TPU)などのコプロセッサを含み得るか、またはコプロセッサと通信し得る。
いくつかの実装形態では、ブラウザ208は、ブラウザ208がコンテンツプロバイダ(たとえば、コンテンツプロバイダ242および246)に関連付けられたウェブページおよびドメインを訪問するときに、コンテンツ選択リストの識別情報を収集することができる。ブラウザ208は、コンピューティングデバイスからウェブページを検索することができる。ウェブページは、ウェブページとコンテンツ選択リストとに関連付けられたコンテンツプロバイダの識別子を含むことができる。ブラウザ208は、ブラウザ208がウェブページを検索すると、コンテンツプロバイダの識別子を識別し、コンテンツ選択リストの識別情報を求める要求をコンテンツプロバイダに送信することができる。ブラウザ208は、コンテンツプロバイダから、しばしば、コンテンツプロバイダからウェブページ上のJavascriptを介して、コンテンツ選択リストの要求された識別情報を受信することができる。いくつかの実装形態では、コンテンツ選択リスト識別情報はコンピューティングデバイス202によって記憶され得る。ブラウザ208は、任意の数のウェブページについてこのプロセスを繰り返し、任意の数のコンテンツ選択リストの識別情報を記憶することができる。
たとえば、コンピューティングデバイス202のブラウザ208は、会社Aのコンピューティングデバイスによって所有され、運用されているウェブページであるwww.companyA.comを訪問または検索し得る。このウェブページを訪問すると、ブラウザ208は、会社Aをwww.companyA.comを運用している会社として識別し、コンテンツ選択リストの識別情報を求める要求を会社Aに送信することができる。要求はコンピューティングデバイス202の識別子を含むことができる。会社Aのコンピューティングデバイスは、要求を受信し、ブラウザ208によって要求されたコンテンツ選択リスト識別情報をブラウザ208に送信することができる。ブラウザ208は、会社Aに関連付けられたコンテンツ選択リスト識別情報を受信し、記憶することができる。
別の実施形態では、ウェブページを訪問すると、ブラウザ208は、ウェブページからの要求を受信して、1つまたは複数のコンテンツ選択リスト識別情報をブラウザ208に追加することができる。ブラウザ208は、APIを通じて要求を受信し、1つまたは複数のコンテンツ選択リスト識別情報を収集することができる。ブラウザ208は1つまたは複数のコンテンツ選択リスト識別情報を記憶することができる。たとえば、ブラウザ208は、会社Aによって所有され、運用されているウェブページであるwww.companyA.comを訪問することができる。このウェブページを訪問すると、ブラウザ208のAPIは、コンテンツ選択リスト識別情報を記憶するように頼むウェブページからの要求を受信することができる。ブラウザ208は、要求を受け入れ、コンテンツ選択リスト識別情報を記憶することができる。
リスト識別器210は、コンピューティングデバイス202に関連付けられたコンテンツ選択リストのコンテンツ選択リスト識別情報を受信し、識別するためのアプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能な論理を含み得る。リスト識別器210は、ブラウザ208に記憶されたコンテンツ選択リスト識別情報に基づいてコンテンツ選択リストを識別することができる。リスト識別器210は任意の数のコンテンツ選択リストを識別することができる。いくつかの実装形態では、リスト識別器210は、コンテンツ選択リストを識別し、十分な数のコンピューティングデバイスが任意数のコンテンツ選択リストの中の各識別されたコンテンツ選択リストに関連付けられているかどうかを決定することが可能な、仲介サーバ222からのメタデータを要求することができる。
いくつかの実装形態では、リスト識別器210は、仲介サーバ222からのコンテンツ選択リストのサブセットの共通部分に関連付けられているコンピューティングデバイスの総数を要求することができる。リスト識別器210は、コンピューティングデバイスの総数を受信し、各コンテンツ選択リストの一意のデバイスの総数を集計して、一意のデバイスの集計された数を取得することができる。
仲介サーバ222は、各コンテンツ選択リストまたはコンテンツ選択リストのサブセットに関連付けられている一意のデバイスの総数を集計することができる。仲介サーバ222は、コンピューティングデバイスがどのリストに関連付けられているかを示す通知をコンピューティングデバイスから受信すると、総数を集計することができる。コンピューティングデバイスは、所定の間隔で(たとえば、毎日、2日ごとに、毎週など)通知を仲介サーバ222に提供することができる。仲介サーバ222は、コンピューティングデバイスごとに、コンピューティングデバイスとコンテンツ選択リストのサブセットのコンテンツ選択リストとの間の関連付けを仲介サーバ222に通知するカウンタを増分し、維持することができる。仲介サーバ222は、コンテンツ選択リストのサブセットが管理者によって設定された所定のしきい値を超えるのに十分なコンピューティングデバイスに関連付けられた共通部分を含むかどうかを示す識別情報をコンピューティングデバイス202に送ることができる。識別情報は、コンテンツを求める要求を送るコンピューティングデバイスが要求を行うときに許容できる程度に匿名のままでいることができることを示すことができる。
いくつかの実装形態では、リスト識別器210は、コンテンツ選択リストの異なるサブセットに関連付けられた一意のデバイスの総数を集計することができる。コンテンツ選択リストのサブセットは、コンピューティングデバイス202がそれについての識別情報を受信するコンテンツ選択リストの異なる組合せを含むことができる。コンテンツ選択リストのサブセットは任意の数の組合せを含むことができ、任意の数のコンテンツ選択リストを含むことができる。リスト識別器210は、任意の数のサブセットについて一意のデバイスの総数を集計することができる。いくつかの実装形態では、リスト識別器210は、仲介サーバ222から各サブセットの一意のデバイスの総数を受信する。
コンテンツ選択リスト識別子は、ブラウザがメンバーであるコンテンツ選択リストを表すことができる。ブラウザはコンテンツ選択リスト識別子を記憶することができる。コンテンツ選択リスト識別子は、数字または文字の列(たとえば、1234、A9985、EFGD、Q9RD4など)とすることができ、任意の数の数字または文字を含むことができる。いくつかの実装形態では、コンテンツ選択リスト識別子は、コンテンツプロバイダについての情報を含むことができる(たとえば、識別子はコンテンツプロバイダの名前を符号化し得る)。
リスト選択器212は、1つまたは複数のコンテンツ選択リスト識別情報を選択して、コンテンツサーバ250に送信するためのアプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能な論理を含み得る。リスト選択器212は、仲介サーバ222から受信された識別情報またはリスト識別器210によって決定されたコンピューティングデバイスの総数に基づいて、コンテンツ選択リストまたはコンテンツ選択リストのサブセットの共通部分に関連付けられたコンピューティングデバイスの総数が所定のしきい値を超えるかどうかを決定することができる。コンテンツ選択リストのサブセットの共通部分に関連付けられたデバイスの数が所定のしきい値を超えるかどうかを示す識別情報を求める要求をリスト識別器210が仲介サーバ222に送る場合、リスト選択器212は、その識別情報を識別し、コンテンツ選択リストまたはコンテンツ選択リストのサブセットの共通部分に関連付けられたコンピューティングデバイスの数が所定のしきい値を超えることをその識別情報が示す場合、その識別情報に関連付けられたコンテンツ選択リストまたはコンテンツ選択リストのサブセットを選択することができる。いくつかの実装形態では、リスト選択器212は要求に含まれるコンテンツ選択リストの数を減らすことができるので、コンテンツ選択リスト間の共通部分はより多くのコンピューティングデバイスに関連付けられ得る。いくつかの実装形態では、仲介サーバ222は、最も多くのコンピューティングデバイスに関連付けられており、所定のしきい値を超える共通部分を有するコンテンツ選択リストのサブセットを識別し、識別情報を含む指示をコンピューティングデバイス202に送ることができる。リスト選択器212は、最も多くのコンピューティングデバイスに関連付けられた共通部分を有するコンテンツ選択リストのサブセットを選択することができる。
いくつかの実装形態では、リスト選択器212は、リスト選択器212が決定するコンテンツ選択リストのサブセットの一意のデバイスの総数に基づいて、コンテンツサーバ250に送信すべきコンテンツ選択リストを識別することができる。リスト選択器212は、コンテンツ選択リストの各サブセットの共通部分の一意のデバイスの総数を所定のしきい値と比較することができる。いくつかの実装形態では、リスト選択器212は、サブセットの共通部分の中の一意のデバイスの最も高い総数を有し、かつしきい値を上回る、コンテンツサーバ250に送信すべきコンテンツ選択リストのサブセットを識別することができる。リスト選択器212は、任意のメトリックまたは比較に基づいて、コンテンツ選択リストのサブセットを選択することができる。いくつかの実装形態では、リスト選択器212は、コンテンツ選択リストのサブセットの共通部分に関連付けられたコンピューティングデバイスの数が第2のしきい値を超えるかどうかを決定することができる。第2のしきい値は所定のしきい値に等しくてもよく、または異なる値に関連付けられてもよい。リスト選択器212は、送信機220がコンテンツのアイテムを求める要求をコンテンツサーバ250に送信し、リスト選択器212によって選択されたコンテンツ選択リストのサブセットの識別情報を含むことを示す信号を送信機220に送ることができる。
いくつかの実装形態では、仲介サーバ222は、コンテンツ選択リスト識別情報のサブセットからコンテンツ選択リスト識別情報を削除することができる。したがって、コンテンツ選択リスト識別情報が削除されると、コンテンツ選択リストのサブセットの共通部分に関連付けられたデバイスがより多くなり得る。共通部分の中により多くのデバイスがあると、コンピューティングデバイス202は、許容できる程度に匿名であり、コンテンツ選択リスト識別情報を削除することなしにコンテンツ選択リスト識別情報のサブセットを含むコンテンツを求める要求をコンテンツプロバイダに送信することができる。
送信機220は、コンテンツサーバ250ならびにコンテンツプロバイダ242および246からのコンテンツを求める要求を送信するためのアプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能な論理を含み得る。送信機220はまた、コンテンツ選択リストのメタデータ(たとえば、コンテンツ選択リストの一意のデバイスの数、コンテンツ選択リストに関連付けられたコンテンツのタイプ、コンテンツ選択リストのコンピューティングデバイスについての特性など)とともに仲介サーバ222からのコンテンツ選択リスト識別情報を要求することができる。送信機220はまた、コンテンツ選択リストの共通部分がしきい値を超えるのに十分なコンピューティングデバイスに関連付けられているかどうかの識別情報を要求することができる。送信機220は、コンピューティングデバイス202とコンピューティングデバイス202の外部の構成要素との間の通信のために使用され得る。送信機220はネットワーク221を介して外部の構成要素と通信することができる。
リスト識別器210が、所定のしきい値を超えるコンテンツ選択リストのサブセットの共通部分の中の一意の識別子の総数を有するコンピューティングデバイス202に関連付けられたコンテンツ選択リストまたはコンテンツ選択リストのサブセットを識別しない場合、リスト検索器214は、コンピューティングデバイス202に関連付けられていない一意のデバイスを含むコンテンツ選択リストのコンテンツ選択リスト識別情報を検索することができる。リスト検索器214は、コンテンツ選択リストの追加のコンテンツ選択リスト識別情報を検索して、検索されたコンテンツ選択リストを含むコンテンツ選択リストのサブセットの一意のデバイスの総数がしきい値を超えるように、コンテンツ選択リストの選択されたサブセットに含めるためのアプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能な論理を含み得る。リスト検索器214は、コンテンツ選択リストの選択されたサブセットがしきい値を超えるのに十分なデバイスに関連付けられていない場合、仲介サーバ222からの別のコンテンツ選択リスト識別情報を要求することができる。リスト検索器214は要求を送信することができ、仲介サーバ222は、識別されたコンテンツ選択リストとサブセットのコンテンツ選択リストとの間の共通部分に関連付けられた十分なコンピューティングデバイスに関連付けられている別のコンテンツ選択リストを識別することができるので、コンピューティングデバイス202は、コンテンツを求める要求とともにコンテンツ選択リスト識別情報をコンテンツプロバイダに提供するときに、許容できる程度に匿名であることができる。
いくつかの実施形態では、仲介サーバ222がコンテンツ選択リストの共通部分に関連付けられたコンピューティングデバイスの総数をコンピューティングデバイス202に送信する場合、リスト検索器214は、一意のデバイスの総数がしきい値を超えるように選択されたサブセットに追加され得る一意のデバイスの数を識別することができる。リスト検索器214は、少なくとも識別された数の一意のデバイスを有するコンテンツ選択リストのコンテンツ選択リスト識別情報を求める要求を仲介サーバ222に送ることができる。いくつかの事例では、リスト検索器214は、コンピューティングデバイス202の匿名性をさらに保護するために一意のデバイスのより大きいリストを求める要求を含むことができる。
仲介サーバ222は、少なくとも要求された数の一意のデバイスを有するコンテンツ選択リストを識別するコンテンツ選択リスト識別子を識別し、コンピューティングデバイス202に送ることができる。リスト検索器214は、仲介サーバ222からのコンテンツ選択リスト識別情報を受信し、コンテンツ選択リストのサブセットにコンテンツ選択リストを含めることにより、サブセットの一意のデバイスの総数がしきい値を超えるかどうかを決定することができる。総数がしきい値を超える場合、送信機220は、リスト検索器214によって検索されたコンテンツ選択リストを含むサブセットをコンテンツサーバ250に送ることができる。総数がしきい値を超えない場合、リスト検索器214は別のコンテンツ選択リスト識別情報を要求し、一意のデバイスの総数がしきい値を超えるまでプロセスを繰り返すことができる。コンピューティングデバイス202の匿名性を守るのに役立つように、仲介サーバ222は、リスト選択器212が選択したサブセットのコンテンツ選択リストの全部または一部に関連付けられたコンピューティングデバイス202の一意のデバイスを含むことができる。各サブセットに共通しているより多くの一意のデバイスがあると、コンテンツプロバイダがコンテンツ選択リストに基づいて特定のコンピューティングデバイスを識別することがより困難になり得る。
いくつかの実装形態では、コンテンツサーバ250またはコンテンツプロバイダ242および246は、コンピューティングデバイス202がコンテンツサーバ250に送信するコンテンツ選択リスト識別情報に基づいて、コンテンツをコンピューティングデバイス202に提供することができる。各コンテンツ選択リストは、コンテンツのタイプ(たとえば、スポーツ、音楽、小売店、有名人、スポーツチームなど)および/または特定のコンテンツプロバイダに関連付けられ得る。各コンテンツ選択リストはタグ付けされ得るか、またはコンテンツ選択リストが関連付けられているコンテンツのタイプを示すメタデータを有することができる。コンテンツサーバ250は、コンピューティングデバイス202からのコンテンツ選択リスト識別情報を受信し、コンテンツタイプタグまたはコンテンツ選択リストのメタデータを識別することによってコンテンツ選択リストに関連付けられたコンテンツを決定することができる。コンテンツ選択リストはまた、コンテンツ選択リストに関連付けられたメタデータ、またはコンテンツ選択リストに関連付けられているコンテンツのタイプを示すコンテンツ選択リストの識別情報に基づいて、コンテンツタイプに関連付けられ得る。コンテンツサーバ250は、コンピューティングデバイス202から送られた各コンテンツ選択リストに関連付けられているコンテンツのタイプを識別し、コンテンツのタイプをコンテンツプロバイダ242および246に示すことができる。いくつかの実装形態では、コンテンツプロバイダ242および246は、コンテンツ選択リスト識別情報のコンテンツのタイプを識別することができる。コンテンツプロバイダ242および246は、コンピューティングデバイス202によってコンテンツサーバ250に送られたコンテンツ選択リストのうちの少なくとも1つに関連付けられたコンテンツのタイプに関連するコンテンツを提供することができる。
いくつかの事例では、コンピューティングデバイス202は、リスト検索器214によって検索されたコンテンツ選択リスト識別情報に基づいて選択されたコンテンツプロバイダ242または246からのコンテンツ(すなわち、コンピューティングデバイス202が関連付けられていないコンテンツ選択リストに関連するコンテンツ)を受信することができる。ブラウザ208は、コンテンツを受信し、コンテンツのタイプがコンピューティングデバイス202の一意のデバイスを含むコンテンツ選択リストに関連付けられているかどうかを決定することができる。ブラウザ208は、そのコンテンツを、コンテンツプロバイダ(たとえば、コンテンツプロバイダ242および246)から送られた異なるタイプのコンテンツを識別するコンピューティングデバイス202または仲介サーバ222のデータベース内のコンテンツと比較することによって、コンテンツのタイプを識別することができる。ブラウザ208は、そのコンテンツのタイプを、コンテンツ選択リストに関連付けられたコンテンツのタイプと比較して、受信されたコンテンツがどのコンテンツ選択リストに関連付けられているかを決定することができる。したがって、ブラウザ208は、コンピューティングデバイスが関連付けられていないコンテンツ選択リストに基づいてコンテンツが提供されたかどうかを決定することができる。
いくつかの実装形態では、コンテンツサーバ250は、コンテンツがコンテンツ選択リストのサブセットのどのコンテンツ選択リストに関連付けられているかを示すタグを用いてコンテンツにタグ付けすることができる。コンテンツプロバイダ242または246は、コンテンツサーバ250によって受信されたコンテンツ選択リストに基づいてコンテンツを提供することができ、コンテンツサーバ250は、どのコンテンツ選択リストが提供されたコンテンツに関連付けられているかを示すためにコンテンツにタグ付けすることができる。ブラウザ208は、コンテンツを受信し、タグに基づいて、提供されたコンテンツがどのコンテンツ選択リストに基づいて選択されたかを決定することができる。
いくつかの実装形態では、ブラウザ208は、どのコンテンツ選択リストに基づいてコンテンツが選択されたかに基づいて、コンピューティングデバイス202のユーザインターフェースにおいて、コンテンツサーバ250から受信されたコンテンツを表示するかどうかを決定することができる。いくつかの実装形態では、ブラウザ208は、選択されたサブセットが第1のしきい値または第2のしきい値を超える一意のデバイスの総数を有しない結果として、リスト検索器214によって検索されたコンテンツ選択リストに基づいて選択された任意のコンテンツを破棄してもよい。ブラウザ208は、コンピューティングデバイス202に関連付けられているコンテンツ選択リストに関連付けられた任意のコンテンツを表示してもよい。
いくつかの実装形態では、コンピューティングデバイス202は、コンピューティングデバイス202の識別子を要求に含めることなしに、コンテンツを求める要求をコンテンツサーバ250に送信することができる。コンピューティングデバイス202は、コンテンツを求める要求を送信し、コンピューティングデバイス202が関連付けられているコンテンツ選択リストの識別情報を要求に含めることができる。コンテンツプロバイダ242および246は、コンピューティングデバイス202がコンテンツサーバ250に送るコンテンツ選択リストに基づいて、コンピューティングデバイス202に送信すべきコンテンツを選択し、提供することができる。有利には、コンテンツ選択リスト識別情報をコンテンツプロバイダに提供することによって、コンテンツプロバイダは、コンピューティングデバイス202に送るべき関連があるコンテンツ(たとえば、コンピューティングデバイス202が過去に見たコンテンツと同様のコンテンツ)を識別することができる。コンテンツプロバイダ242および246は、コンピューティングデバイス202が通常見ているコンテンツに関連付けられたコンテンツ選択リストに基づいて、コンピューティングデバイス202に送るべきコンテンツを選択することができる。コンピューティングデバイス202はコンテンツ要求において一意のデバイス識別子を送らず、コンテンツ要求に含まれるコンテンツ選択リストの共通部分は十分に多い数のコンピューティングデバイスを有するので、コンピューティングデバイス202は、コンテンツプロバイダ242および246に対して許容できる程度に匿名のままでいながら、関連があるコンテンツを要求し、受信することができる。
依然として図2を参照すると、ブラウザ208は、いくつかの実装形態では、アプリケーション218を含むことが示されている。アプリケーション218は、コンテンツ選択リストの識別情報に関連付けられたコンテンツ選択値を決定するためのアプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能な論理を含み得る。コンテンツ選択値は、コンテンツプロバイダ242がコンピューティングデバイス202に提供されるコンテンツに関連付け得るコンテンツ選択リストの期待値に対応することができる。コンテンツ選択リストは、コンテンツ選択リストに関連付けられたコンテンツのタイプに基づいて一意のコンテンツ選択値に関連付けられ得る。いくつかの実装形態では、コンテンツ選択リストのコンテンツ選択値は条件の現在の値に関連付けられ得る。条件の現在の値は条件分析器216によって決定され得る。
ブラウザ208は、いくつかの実装形態では、条件分析器216を含むことが示されている。条件分析器216は、コンテンツ選択リストに関連付けられた条件の値を決定するためのアプリケーション、サーバ、サービス、デーモン、ルーチン、または他の実行可能な論理を含み得る。条件はコンテンツ選択リストに関連付けられた第三者によって設定され得、コンテンツ選択リストのメタデータの一部であり得る。いくつかの実装形態では、条件分析器216は、リスト識別器210によって識別されたコンテンツ選択リストのメタデータを分析することができる。条件分析器216は、コンテンツ選択リストに関連付けられた条件を示すキーワードを識別することによって、自然言語処理技法を使用して条件を識別することができる。現在の条件値は、ブラウザ208がコンテンツプロバイダ242および246からのコンテンツを要求するときにある状況(たとえば、ブラウザ208が現在どのウェブページ上にあるか、現在の時間など)に基づき得る。コンテンツ選択リストは複数の条件に関連付けられ得る。たとえば、コンテンツ選択リストは、「ユーザが現在www.companyB.comにいる場合、コンテンツ選択リストは5という現在の条件値を有する」、「ユーザが現在www.companyB.com/exampleにいる場合、コンテンツ選択リストは6という現在の条件値を有する」、「ユーザが現在www.companyB.com/exampleにおり、現在の現地時間が午後9時から午後6時の間である場合、コンテンツ選択リストは7という現在の条件値を有する」、および「これらの条件のいずれも満たされない場合、コンテンツ選択リストは0という現在の条件値を有する」を含む条件に関連付けられ得る。コンテンツ選択リストは、任意のタイプのデータに関連付けられた任意の数の条件を有することができる。条件分析器216は、任意の数のコンテンツ選択リストについての条件を識別し、条件ごとの現在の条件値を決定することができる。いくつかの実装形態では、条件分析器216は、所定のしきい値を上回る一意のデバイスの数を有するコンテンツ選択リストのサブセットの一部であるコンテンツ選択リストの現在の条件値を決定してもよい。
いくつかの実装形態では、アプリケーション218は、各コンテンツ選択リストに関連付けられた条件の現在の値に基づいてコンテンツ選択リストのコンテンツ選択値を決定することができる。条件分析器216は、コンテンツ選択リストごとの条件値を識別および決定し、各コンテンツ選択リストの現在の条件値を示す信号をアプリケーション218に送ることができる。アプリケーション218は、現在の条件値を受信し、コンテンツ選択リストのコンテンツ選択値を対応する現在の条件値に設定することができる。たとえば、コンテンツ選択リストが4という現在の条件値を有すると条件分析器216によって決定される場合、アプリケーション218はコンテンツ選択リストのコンテンツ選択値を4に設定することができる。アプリケーション218は、リスト識別器210によって識別された各コンテンツ選択リストのコンテンツ選択値を決定することができる。いくつかの実装形態では、アプリケーション218は、所定のしきい値を上回るようにリスト選択器212によって決定されたコンテンツ選択リストのコンテンツ選択値を決定することができる。アプリケーション218は、コンテンツ選択リストのサブセットの各コンテンツ選択リストのコンテンツ選択値を集計して、サブセットのコンテンツ選択値の組合せを取得することができる。アプリケーション218は、コンテンツ選択リストの任意のサブセットのコンテンツ選択値を集計することができる。
いくつかの実装形態では、コンテンツ選択リストおよびコンテンツ選択リストのサブセットのコンテンツ選択値を決定するために、アプリケーション218は機械学習モデルを実装することができる。機械学習モデルは、コンテンツ選択リストのサブセットの各コンテンツ選択リストのコンテンツ選択値およびコンテンツプロバイダが各コンテンツ選択リストについてコンテンツを選択する尤度に基づいて、コンテンツ選択リストのサブセットについて最も高いコンテンツ選択値を示すことができる。機械学習モデルは、いくつかの実装形態では、ニューラルネットワーク、サポートベクターマシン、ランダムフォレストなどであり得る。機械学習モデルへの信号は、ブラウザ208がアプリケーション218の機械学習モデルに入力することができるコンテキスト情報を含むことができる。コンテキスト情報は、限定はしないが、ブラウザの現在のウェブページ、現在のウェブページバーチカル、時刻、曜日、コンピューティングデバイスの言語設定、コンピューティングデバイス202の場所(たとえば、国、県/州、大都市圏など)などを含むことができる。信号はまた、同じもしくは同様のコンテンツ選択リストおよび/またはコンテンツ選択リストのサブセットの値の以前の評価と、上記で説明されたように決定されたコンテンツ選択リストの現在の条件値とを含むことができる。アプリケーション218は、これらの入力の各々を機械学習モデルに入力して、各コンテンツ選択リストに関連付けられたコンテンツ選択値を決定することができる。いくつかの実装形態では、コンテキスト情報は最も高い強度の信号に関連付けられ得、コンテンツ選択値の以前の評価からのフィードバックは次に最も高い強度の信号に関連付けられ、現在の条件値の信号は最も低い強度の信号に関連付けられ得る。各信号は任意の強度を有することができる。
有利には、コンテンツ選択リストおよび/またはコンテンツ選択リストのサブセットの予測コンテンツ選択値を決定するための機械学習モデルを実装することによって、アプリケーション218は、各コンテンツ選択リストの現在の条件値を、各コンテンツ選択リストのコンテンツ選択値を決定するためのヒントとして使用することができる。第三者が各コンテンツ選択リストの条件を設定することができ、他のコンテンツプロバイダが過大評価されたコンテンツ選択リストに基づいてコンテンツを提供しないように、第三者が関連付けられているコンテンツ選択リストを過大評価するように奨励され得るので、これは有利である。機械学習モデルは、第三者の制御の範囲外のコンテンツ選択リストの態様に関連する他の信号(たとえば、コンテキスト情報およびコンテンツ選択リストに基づいて提供された以前のコンテンツからの情報)とともにコンテンツ選択リストの現在の条件値を信号として使用し得るので、機械学習モデルはコンテンツ選択リストおよびコンテンツ選択リストのサブセットごとのより正確なコンテンツ選択値を識別することができる。
いくつかの実装形態では、リスト選択器212は、コンテンツ選択リストのサブセットを選択して、コンテンツ選択リストのサブセットのコンテンツ選択値の組合せに基づいて識別子をコンテンツサーバ250に送信することができる。リスト選択器212は、コンテンツ選択リストのサブセットのコンテンツ選択値の組合せを受信し、コンテンツ選択値の組合せを比較することができる。いくつかの実装形態では、リスト選択器212は、所定のしきい値を上回る一意のデバイスの総数を有するコンテンツ選択リストのサブセットのコンテンツ選択値の組合せを比較することができる。リスト選択器212は、コンテンツ選択値の他の組合せよりも高いコンテンツ選択値の組合せを有するコンテンツ選択リストのサブセットを識別し、コンテンツを求める要求とともにそのコンテンツ選択リストのサブセットをコンテンツサーバ250に送信することができる。
有利には、コンテンツ選択値の最も高い組合せを有するコンテンツ選択リストのサブセットを選択することによって、リスト選択器212は、コンテンツサーバ250が最も高い値のコンテンツ選択リストをコンテンツプロバイダに提供することを可能にすることができる。したがって、コンテンツサーバ250は、コンテンツプロバイダが低い値に関連付けられ得るコンテンツ選択リストまたはコンテンツ選択リストのサブセットをコンテンツプロバイダ242および246に提供することを回避し得る。最も高いコンテンツ選択値を有するコンテンツ選択リストのサブセットをコンテンツサーバ250ならびにコンテンツプロバイダ242および246に提供することによって、コンピューティングデバイス202は、コンテンツプロバイダ242および246がコンテンツ選択リストのサブセットに基づいて要求に応じて高い値をコンピューティングデバイス202に提供されるコンテンツに関連付けることを保証することができる。
次に図3を参照すると、いくつかの実装形態による、コンピューティングデバイスが匿名のままでありながら、コンテンツプロバイダがコンテンツをコンピューティングデバイスに提供するのに十分なコンテンツ選択リストの一意のデバイスがあるかどうかを決定するための方法300のフローチャートが示されている。方法300は任意の数の動作を含むことができる。動作は任意の順序で実施され得る。方法300はコンピューティングデバイス(たとえば、コンピューティングデバイス202)またはサーバ(たとえば、仲介サーバ222)によって実施され得る。動作302において、コンピューティングデバイスは、コンテンツ選択リストの複数の識別情報を収集することができる。コンピューティングデバイスは、コンピューティングデバイスがコンピューティングデバイスのブラウザを介してウェブページを訪問するときに、コンテンツプロバイダからコンテンツ選択リストの複数の識別情報を収集することができる。識別情報は、限定はしないが、各コンテンツ選択リストの中の一意のデバイスの数、各コンテンツ選択リストのコンテンツのタイプ、およびコンテンツ選択リストに関連付けられたコンテンツプロバイダを含む、コンテンツ選択リストについての情報を含むことができる。
動作304において、サーバは、各コンテンツ選択リストの一意のデバイスの総数を決定し、各コンテンツ選択リストの一意のデバイスの総数をコンピューティングデバイス202に送信することができる。サーバは、コンテンツ選択リストのサブセットのあらゆる組合せの中の一意のデバイスの総数を決定し、決定された総数をコンピューティングデバイスに送信することができる。サーバは、各コンテンツ選択リストの中のコンピューティングデバイスの数を集計することによって、サブセットの組合せに関連付けられた一意のデバイスの総数を決定することができる。コンピューティングデバイスは、サブセットごとの総数を受信することができる。
動作306において、コンピューティングデバイスは、複数のコンテンツ選択リストの第1のサブセットを選択することができる。コンピューティングデバイスは、サブセットの共通部分の中にある一意のデバイスの数に基づいて第1のサブセットを選択することができる。コンピューティングデバイスは、最も高い数の一意のデバイスを含むサブセットを選択することができる。動作308において、コンピューティングデバイスは、一意のデバイスの総数が所定のしきい値を超えるかどうかを決定することができる。所定のしきい値は、本システムの管理者またはユーザによって設定され得る。所定のしきい値は、コンテンツ選択リストを識別し、各コンテンツ選択リストの中にある一意のデバイスの共通部分に基づいて個々のデバイスを識別しようとするコンテンツプロバイダからコンピューティングデバイスを匿名に(または、たとえば、要求されたコンテンツ選択リストまたはリストの共通部分と一致する十分な数の他のデバイスによって、許容できる程度に匿名に)するであろう一意のデバイスの数を表すことができる。
いくつかの実装形態では、サーバは、コンテンツ選択リストの第1のサブセットが、コンピューティングデバイスがコンテンツを求める要求を送信するときに許容できる程度に匿名のままでいるためのしきい値を超えるかどうかを示す識別情報をコンピューティングデバイスに送信することができる。コンピューティングデバイスは、コンテンツ選択リスト識別情報の第1のサブセットを仲介サーバに送ることができ、仲介サーバは、コンテンツ選択リストのサブセットが、コンピューティングデバイスが許容できる程度に匿名であるのに十分なコンピューティングデバイスに関連付けられているかどうかを示す識別情報を送信することができる。コンピューティングデバイスは識別情報を受信し、その識別情報に基づいて、コンテンツを求める要求においてコンテンツ選択リスト識別情報をコンテンツプロバイダに提供するかどうかを決定することができる。
動作310において、コンピューティングデバイスのサブセットの一意のデバイスの総数がしきい値を超えるとコンピューティングデバイスまたは仲介サーバが決定したことに応答して、コンピューティングデバイスは、コンテンツのアイテムを求める要求をコンテンツサーバまたはコンテンツプロバイダに送信することができる。要求は、所定のしきい値を上回る一意のデバイスの総数を有すると決定されたコンテンツ選択リストのサブセットを含むことができる。動作312において、コンピューティングデバイスは、コンテンツプロバイダからの第1のコンテンツのアイテムを受信することができる。第1のコンテンツのアイテムは、コンテンツ選択リストのサブセットに基づいて提供され得る。
動作314において、一意のデバイスの総数がしきい値を超えないとコンピューティングデバイスまたは仲介サーバが決定したことに応答して、コンピューティングデバイスは、追加のコンテンツ選択リストの識別情報を、コンテンツを求める要求に含めることができる。コンピューティングデバイスは、コンテンツ選択リストを記憶し得るサーバからのコンテンツ選択リスト識別情報を要求することができる。サーバが提供するコンテンツ選択リストは、コンテンツ選択リストの共通部分に関連付けられたデバイスの数を所定のしきい値を上回る数まで増加させ得る。
いくつかの実施形態では、コンピューティングデバイスは、しきい値を超えるのに必要とされる一意のデバイスの数を決定し、決定された数の一意のデバイスを有する1つまたは複数のコンテンツ選択リストを要求することができる。サーバは、決定された数のコンテンツ選択リストを有するコンテンツ選択リストを識別し、識別情報をコンピューティングデバイスに送信することができる。コンピューティングデバイスは、コンテンツ選択リストの第1のサブセットおよび追加のコンテンツ選択リストを含むコンテンツを求める要求をコンテンツサーバに送ることができる。いくつかの場合、コンピューティングデバイスは、必要とされる一意のデバイスの数をサーバが識別することを要求することができる。
動作316において、コンピューティングデバイスは、第1のコンテンツのアイテムを受信し、コンテンツのアイテムが追加のコンテンツ選択リストに基づいて選択されたかどうかを決定することができる。コンピューティングデバイスは、コンテンツのメタデータを分析することによって、どのコンテンツ選択リストに基づいてコンテンツが選択されたかを決定することができる。メタデータは、それに基づいてコンテンツが選択された、コンテンツ選択リストの識別情報を含み得る。コンピューティングデバイスはまた、コンテンツのタイプ(たとえば、スポーツ、音楽、会社、チーム、小売店、ビデオ、画像、オーディオ、テキスト、マルチメディア、ニュース、コメディ、ソーシャルメディアなど)を、データを求める要求とともに送信されたコンテンツ選択リストと比較することによって、どのコンテンツ選択リストに基づいてコンテンツが選択されたかを決定することができる。コンピューティングデバイスを匿名にしておくために追加されたコンテンツ選択リストであって、コンピューティングデバイスが関連付けられていないコンテンツ選択リストに基づいてコンテンツが選択されたとコンピューティングデバイスが決定した場合、動作318において、コンピューティングデバイスはコンテンツを破棄することができる。コンピューティングデバイスが関連付けられているコンテンツ選択リストに基づいてコンテンツが選択されたとコンピューティングデバイスが決定した場合、動作320において、コンピューティングデバイスはコンテンツを表示することができる。
次に図4を参照すると、いくつかの実装形態による、コンテンツ選択リストのサブセットのコンテンツ選択値に基づいてサブセットを選択し、選択されたサブセットに基づいてコンテンツのアイテムを受信するための方法400のフローチャートが示されている。方法400は任意の数の動作を含むことができる。動作は任意の順序で実施され得る。方法400はコンピューティングデバイス(たとえば、コンピューティングデバイス202)またはサーバ(たとえば、仲介サーバ222)によって実施され得る。動作402および404は、図3を参照しながら示され、説明された動作302および304と同様であり得る。動作308と同様であり得る動作406において、コンピューティングデバイスは、サーバの助けを借りて、コンピューティングデバイスのサブセットの一意のデバイスの総数が所定のしきい値を超えるかどうかを決定することができる。サーバは、コンテンツ選択リストの複数のサブセットに関連付けられた(サーバから受信されたまたはコンピューティングデバイスによって識別された)一意のデバイスの総数を所定のしきい値と比較することができる。サーバは、コンピューティングデバイスが許容できる程度に匿名のままでいるのに十分な、コンテンツ選択リストに関連付けられたコンピューティングデバイスがあるかどうかを示す識別情報を、コンテンツを求める要求においてコンピューティングデバイスに送ることができる。コンピューティングデバイスは、所定のしきい値を超えるコンテンツ選択リストの各サブセットを識別することができる。しきい値を超える総数を有するいかなるサブセットもない場合、コンピューティングデバイスは、コンテンツ選択リストのより多くの識別情報を受信するために動作402に戻ることができる。
動作408において、コンピューティングデバイスは、コンテンツ選択リストごとの条件の現在の値を決定することができる。いくつかの実装形態では、コンピューティングデバイスは、しきい値を超える一意のデバイスの総数を有するコンテンツ選択リストのサブセットの一部であるコンテンツ選択リストについての条件の現在の値を決定することができる。コンピューティングデバイスは、コンピューティングデバイスのブラウザがコンテンツを要求しているコンテキストに基づいて条件の現在の値を決定することができる。たとえば、条件は、ブラウザが特定のウェブページを見ながらコンテンツを要求しているかまたは特定の時点において要求を行っている場合に満足され得る。コンテンツ選択リストの現在の条件値は、どの条件が満たされるかに基づいてコンテンツ選択リストに関連付けられ得る。条件は各コンテンツ選択リストに関連付けられた第三者によって割り当てられ得る。条件は各コンテンツ選択リストに固有であり得る。
動作410において、コンピューティングデバイスは、コンテンツ選択リストの各サブセットのコンテンツ選択値を決定することができる。コンピューティングデバイスは、コンテンツ選択リストのサブセットの現在の条件値に基づいてコンテンツ選択値を決定することができる。いくつかの実装形態では、コンピューティングデバイスは、コンテンツ選択リストのサブセットのコンテンツ選択値を決定するための機械学習モデルを実装することができる。機械学習モデルは、要求を行うブラウザのコンテキスト(たとえば、現在のウェブページまたはドメイン、コンテンツ選択リストの以前の値、コンテンツ選択リストの現在の値など)を入力として使用することができる。機械学習モデルは、コンテンツ選択リストの予測値と、入力に基づいてコンテンツ選択リストの各サブセットが選択される尤度とを示す出力を生成することができる。
動作412において、コンピューティングデバイスは、最も高いコンテンツ選択値および/またはコンテンツを提供するためにコンテンツプロバイダによって選択される尤度を有すると決定されたコンテンツ選択リストのサブセットを選択することができる。コンピューティングデバイスは、コンテンツ選択リストのサブセットごとにコンテンツ選択値および尤度を決定し、コンテンツ選択値および尤度を比較して、コンテンツ選択値のどのサブセットが最も高いかを決定することができる。コンピューティングデバイスは、最も高いコンテンツ選択値を有するサブセットを選択することができる。動作414において、コンピューティングデバイスは、コンテンツを求める要求とともに、最も高いコンテンツ選択値を有するコンテンツ選択リストのサブセットをコンテンツサーバまたはコンテンツプロバイダに送信することができる。動作416において、コンピューティングデバイスは、コンテンツ選択リストの選択されたサブセットに基づいてコンテンツサーバによって選択された第1のコンテンツのアイテムを受信することができる。
有利には、コンテンツサーバから離れたサーバまたはコンピューティングデバイス上にコンテンツ選択リストを記憶することによって、コンテンツプロバイダからのコンテンツを要求するコンピューティングデバイスは、コンテンツプロバイダから関連があるコンテンツを受信しながら、匿名のままでいることができる。コンピューティングデバイスはコンテンツを要求するときにどのコンテンツ選択リストをコンテンツサーバに送るべきかを制御することができるので、コンピューティングデバイスは、コンテンツ選択リストの共通部分上に十分な一意のデバイスがあるので、コンテンツプロバイダが要求を行うコンピューティングデバイスを識別することが可能ではない場合があることを保証することができる。要求を行うコンピューティングデバイスは、コンテンツを求める要求とともにコンピューティングデバイスが送るコンテンツ選択リストに関連付けられ得るので、コンテンツプロバイダは、コンピューティングデバイスが以前に見たコンテンツに関連があるコンテンツを提供することができる。さらに、コンピューティングデバイスは、コンピューティングデバイスが送るコンテンツ選択リストが最も高いコンテンツ選択値に関連付けられることを保証することができ、したがって、コンテンツプロバイダは、コンテンツ選択リストに基づいて高い値をコンピューティングデバイスに提供されるコンテンツに関連付けることができる。
主題の実装形態および本明細書で説明される動作は、デジタル電子回路において、または本明細書で開示される構造およびその構造的等価物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。本明細書で説明される主題の実装形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行するためにまたはデータ処理装置の動作を制御するために1つまたは複数のコンピュータ記憶媒体上で符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替または追加として、プログラム命令は、データ処理装置によって実行するために適切な受信機装置に送信するための情報を符号化するために生成された、人工的に生成された伝搬信号、たとえば、機械で生成された電気信号、光信号、または電磁信号上で符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであり得るか、またはそれらに含まれ得る。さらに、コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は人工的に生成された伝搬信号において符号化されたコンピュータプログラム命令の送信元または宛先であり得る。コンピュータ記憶媒体はまた、1つまたは複数の別個の構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であり得るか、またはそれらに含まれ得る。したがって、コンピュータ記憶媒体は有形であり得る。
本明細書で説明される動作は、1つもしくは複数のコンピュータ可読記憶デバイス上に記憶されたまたは他のソースから受信されたデータに対してデータ処理装置によって実施される動作として実装され得る。
「クライアント」または「サーバ」という用語は、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または上記の複数もしくは上記の組合せなどの、データを処理するためのすべての種類の装置、デバイス、および機械を含む。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含むことができる。装置はまた、ハードウェアに加えて、当該のコンピュータプログラム用の実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティングインフラストラクチャおよびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)は、コンパイル型言語またはインタープリタ型言語、宣言型言語または手続き型言語を含む任意の形態のプログラミング言語で書かれ得、スタンドアロンプログラムとしてまたはモジュール、構成要素、サブルーチン、オブジェクト、もしくはコンピューティング環境で使用するのに適した他のユニットとしてを含む任意の形態で展開され得る。コンピュータプログラムは、ファイルシステムの中のファイルに対応し得るが、そうである必要はない。プログラムは、他のプログラムもしくはデータ(たとえば、マークアップ言語文書に記憶された1つもしくは複数のスクリプト)を保持するファイルの一部分に、当該のプログラム専用の単一のファイルに、または複数の協調ファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに配置されたもしくは複数のサイトにわたって分散され通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開され得る。
本明細書で説明されるプロセスおよび論理フローは、入力データを操作し出力を生成することによってアクションを実施するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって実施され得る。プロセスおよび論理フローはまた、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実施され得、装置はまた、専用論理回路として実装され得る。
コンピュータプログラムの実行に適したプロセッサは、汎用マイクロプロセッサと専用マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読取り専用メモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令に従ってアクションを実施するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つもしくは複数の大容量記憶デバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、あるいは、それらからデータを受信することもしくはそれらにデータを転送することまたはその両方を行うために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、ほんの数例を挙げると、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に埋め込まれ得る。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスク;光磁気ディスク;ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完され得るか、または専用論理回路に組み込まれ得る。
ユーザとの対話を提供するために、本明細書で説明される主題の実装形態は、ディスプレイデバイス、たとえば、CRT(陰極線管)、LCD(液晶ディスプレイ)、OLED(有機発光ダイオード)、TFT(薄膜トランジスタ)、プラズマ、他の柔軟な構成、または情報をユーザに表示するための任意の他のモニタと、それによってユーザが入力をコンピュータに提供することができる、キーボード、ポインティングデバイス、たとえば、マウス、トラックボールなど、またはタッチスクリーン、タッチパッドなどとを有するコンピュータ上で実装され得る。他の種類のデバイスも、ユーザとの対話を提供するために使用され得、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送り、そのデバイスから文書を受信することによって、ユーザのコンピューティングデバイス上のウェブブラウザから受信された要求に応答して、ウェブページをそのウェブブラウザに送ることによって、ユーザと対話することができる。
本明細書で説明される主題の実装形態は、バックエンド構成要素、たとえば、データサーバを含む、またはミドルウェア構成要素、たとえば、アプリケーションサーバを含む、またはフロントエンド構成要素、たとえば、それを通じてユーザが本明細書で説明される主題の一実装形態と対話することができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含む、または1つもしくは複数のそのようなバックエンド構成要素、ミドルウェア構成要素、もしくはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムにおいて実装され得る。本システムの構成要素は、任意の形態のデジタルデータ通信の媒体、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークは、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含み得る。
本明細書は多くの特定の実装形態の詳細を含んでいるが、これらは任意の発明の範囲または特許請求され得るものの範囲に対する限定として解釈されるべきではなく、むしろ特定の発明の特定の実装形態に固有の特徴の説明として解釈されるべきである。別個の実装形態の文脈において本明細書で説明されるいくつかの特徴はまた、単一の実装形態において組み合わせて実装され得る。逆に、単一の実装形態の文脈において説明される様々な特徴はまた、別々にまたは任意の適切な副組合せで複数の実装形態において実装され得る。さらに、特徴はいくつかの組合せにおいて働くものとして上記で説明され、そのようなものとして最初に特許請求されることさえあるが、特許請求される組合せからの1つまたは複数の特徴は、いくつかの場合、その組合せから削除されることがあり、特許請求される組合せは、副組合せまたは副組合せの変形形態を対象とし得る。
同様に、動作は特定の順序で図面に示されているが、これは、所望の結果を達成するために、そのような動作が示された特定の順序でまたは逐次的順序で実施されること、またはすべての示された動作が実施されることを必要とするものとして理解されるべきではない。いくつかの状況では、マルチタスクおよび並列処理が有利であり得る。さらに、上記で説明された実装形態における様々なシステム構成要素の分離は、すべての実装形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されるプログラム構成要素およびシステムは一般に、単一のソフトウェア製品において一緒に統合され得るか、または複数のソフトウェア製品にパッケージ化され得ることが理解されるべきである。
このように、主題の特定の実装形態について説明してきた。他の実装形態は以下の特許請求の範囲の範囲内にある。いくつかの場合、特許請求の範囲において列挙されるアクションは異なる順序で実施され、依然として所望の結果を達成し得る。加えて、添付の図に示されているプロセスは、所望の結果を達成するために、必ずしも示された特定の順序または逐次的順序を必要とするとは限らない。いくつかの実装形態では、マルチタスクまたは並列処理が利用され得る。