様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
本開示は、ユーザデータを収集し、分析するときにユーザのプライバシーを保護する、コンピュータによって実施される方法およびシステムに関する。
ユーザとプロバイダとの間の情報のやりとりおよびトランザクションを通じて、プロバイダは、たとえば、ユーザがアクセスするコンテンツの種類、ユーザがプロバイダのウェブサイトに最後にいつアクセスしたか、ならびにプロバイダおよび/またはプロバイダのウェブサイトとのユーザのインタラクションに関連するその他の情報などの相当量のユーザデータを受信する場合がある。プロバイダがそのようなユーザデータを収集することをユーザが許す場合、プロバイダは、プロバイダの運用を改善するおよび/またはユーザ体験を向上させるためにこのデータを分析することができる。たとえば、プロバイダは、ユーザデータを使用して、ユーザによって最も見られたコンテンツの種類を特定し、それらの種類のコンテンツに関連する追加情報を提供する一方で、ユーザが関心を示さなかったその他の種類のコンテンツに関する情報の配信を防止する場合がある。本明細書の説明の目的のために、「コンテンツ」は、コンテンツプロバイダによって提供されるサードパーティコンテンツを含むデジタルコンテンツを指す。コンテンツアイテムは、特定のコンテンツを指し、ユーザによって要求されたその他のコンテンツと一緒に提示するためのデジタルコンポーネントを含む。
数が増加している、自分のプライバシーを保護することを望むユーザは、(たとえば、サードパーティのクッキーの受け入れを拒否することによって)そのような活動データへのプロバイダのアクセスを取り消すが、ユーザのユーザ体験(またはそのパーソナライズ)の同様のレベルの制御を期待する。たとえば、ユーザは、概して、複数の異なるウェブサイトをナビゲートするときに、複数の異なるウェブサイトにわたって同じユーザに同じサードパーティコンテンツを継続的に配信することが、ユーザが見たくなく、無視する可能性が高いコンテンツを配信するために使用される無駄なコンピューティングリソースを生じるような同じサードパーティコンテンツを継続的に示されないことを好む。特定のユーザが同じサードパーティコンテンツに触れさせられる回数を制限する1つの方法は、同じユーザが同じサードパーティコンテンツに指定された回数を超えて触れさせられることを防止する頻度制御技術を利用することである。
特定のコンテンツアイテムがユーザに提供される頻度に関してユーザのブラウジング体験の制御をユーザに提供する既存の方法は、ユーザが特定のコンテンツアイテムもしくはコンテンツのカテゴリを再び見たくないことを示し得るように、このコンテンツもしくはコンテンツのカテゴリがユーザにとって興味深くないことをユーザが示したかどうか、またはユーザがコンテンツを何度も見過ぎたこともしくは時間のある期間内に何度も見過ぎたことを示し得るように、特定のコンテンツアイテムがユーザに閾値の回数提供されたかどうかを判定するために、ユーザ情報へのアクセスをユーザが提供することに依拠する。たとえば、頻度制限(frequency capping)の既存の方法は、たとえば、ユーザがクッキーを受け入れること、デバイスIDへのアクセスを提供することに同意すること、またはアカウントにサインインすることに依拠する。このユーザデータにアクセスできなければ、頻度制御の一部の方法は、有効でない可能性があり、または異なるプラットフォームをまたいで効果的でない可能性がある。本明細書において説明される革新は、頻度制御を実施する既存の方法の問題点を克服し、ユーザのプライバシーを保護しながらユーザ体験を向上させ、(たとえば、ユーザに望まれていないコンテンツを配信するために使用される)無駄なコンピューティングリソースを削減する。
本明細書を通じて詳細に説明されるように、これらの革新的な技術は、システムがユーザデータに対して分析を実行することを可能にする形態でデータを維持しながら、ユーザから収集されたデータに関してユーザのプライバシーを保持することができる。1つまたは複数の属性を指定するユーザデータを受信すると、ユーザデバイス上のブラウザ、OS、またはその他のソフトウェアは、たとえば、1つまたは複数のハッシュ関数を使用してユーザデータのプライバシーが強化された表現を生成する。たとえば、コンテンツプロバイダのサーバまたは独立したサーバなどのサーバが、ユーザデータのプライバシーが強化された表現を受信し、それが受信された確率的データ構造で記憶する。一部の実装において、独立したサーバは、生データを受信せず、確率的データ構造を受信するか、または生データを受信し、確率的データ構造を構築し、それから、生ユーザデータを破棄する場合があり、それによって、たとえ権限のないサードパーティがシステムにアクセスしたとしても、そのデータに直接アクセスすることを防ぎ、生ユーザデータからの情報をよりコンパクトで効率的な形態で維持する。
本明細書全体を通じて使用されるとき、「偽陽性率」という語句は、確率的データ構造に関連する偽陽性の期待される率または数を特定する値を指す。偽陽性率は、たとえば、確率的データ構造に挿入されたアイテムの数および確率的データ構造のサイズの関数であってよい。
本明細書全体の説明に加えて、ユーザは、本明細書において説明されるシステム、プログラム、または特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、社会的行為、または活動、職業、ユーザのプリファレンス、またはユーザの現在位置)の収集を有効化してよいかどうかといつ有効化してよいかとの両方、およびユーザがコンテンツまたは通信をサーバから送信されるかどうかについての選択をユーザが行うことを可能にする制御を提供されてよい。さらに、特定のデータが、個人を特定できる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で処理される場合がある。たとえば、ユーザのアイデンティティ(identity)が、個人を特定できる情報がユーザに関して決定されることが不可能であるか、または位置情報が取得される場合にユーザの地理的位置が(都市、郵便番号、もしくは州のレベルなどに)一般化される場合があり、したがって、ユーザの特定の位置が決定されることが不可能であるように処理される場合がある。したがって、ユーザは、どの情報がユーザについて収集されるか、その情報がどのように使用されるのか、およびどの情報がユーザに提供されるのかを制御することができてよい。
図1は、プライバシーを保護するデータ収集および分析のための例示的な環境100のブロック図である。例示的な環境100は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、またはこれらの組合せなどのネットワーク102を含む。ネットワーク102は、電子ドキュメントサーバ104(以下、「電子Docサーバ」)、ユーザデバイス106、デジタルコンポーネント配信システム110(DCDS110とも呼ばれる)、およびプライバシーサーバ120を接続する。例示的な環境100は、多くの異なる電子ドキュメントサーバ104およびユーザデバイス106を含んでよい。
ユーザデバイス106は、ネットワーク102を介してリソース(たとえば、電子ドキュメント)を要求し、受信することができる電子デバイスである。例示的なユーザデバイス106は、パーソナルコンピュータ、ウェアラブルデバイス、スマートスピーカ、タブレットデバイス、モバイル通信デバイス(たとえば、スマートフォン)、スマート家電、およびネットワーク102を介してデータを送受信することができるその他のデバイスを含む。一部の実装において、ユーザデバイスは、ユーザに可聴情報を出力するスピーカと、ユーザからの可聴入力(たとえば、話し言葉の入力)を受け入れるマイクロフォンとを含み得る。ユーザデバイスは、入力を送る、および/または入力に応答して与えられた出力を受け取るためのインタラクティブ音声インターフェースを提供するデジタルアシスタントを含むことも可能である。ユーザデバイスは、視覚情報(たとえば、テキスト、画像、および/または動画)を提示するためのディスプレイを含むことも可能である。ユーザデバイス106は、概して、ネットワーク102を介したデータの送受信を容易にするためのウェブブラウザなどのユーザアプリケーションを含むが、ユーザデバイス106によって実行されるネイティブアプリケーションも、ネットワーク102を介したデータの送受信を容易にし得る。
ユーザデバイス106は、ソフトウェア107を含む。ソフトウェア107は、たとえば、ブラウザまたはオペレーティングシステムであることが可能である。一部の実装において、ソフトウェア107は、ユーザがネットワーク102などのネットワークを通じて情報にアクセスすることを可能にし、サーバから情報を取り出し、ユーザデバイス106のディスプレイ上に情報を表示する。一部の実装において、ソフトウェア107は、ユーザデバイス106のハードウェアおよびソフトウェアリソースを管理し、ユーザデバイス106上のその他のプログラムのための共通のサービスを提供する。ソフトウェア107は、プログラムとユーザデバイス106のハードウェアとの間の仲介役として働き得る。
ソフトウェア107は、各ユーザデバイス106に固有である。以下で詳細に説明されるように、プライバシーを保護するデータ分析および収集の革新は、リソース効率が高く、安全なデバイスに固有のソリューションを提供する。
電子ドキュメントは、ユーザデバイス106において1組のコンテンツを提示するデータである。電子ドキュメントの例は、ウェブページ、文書処理ドキュメント、ポータブルドキュメントフォーマット(PDF)ドキュメント、画像、動画、検索結果ページ、およびフィードソースを含む。モバイル、タブレット、またはデスクトップコンピューティングデバイスにインストールされたアプリケーションなどのネイティブアプリケーション(たとえば、「アプリ」)も、電子ドキュメントの例である。電子ドキュメント105(「電子Doc」)は、電子ドキュメントサーバ104によってユーザデバイス106に提供され得る。たとえば、電子ドキュメントサーバ104は、パブリッシャウェブサイトをホストするサーバを含み得る。この例において、ユーザデバイス106は、所与のパブリッシャウェブページの要求を開始することができ、所与のパブリッシャウェブページをホストする電子ドキュメントサーバ104は、ユーザデバイス106において所与のウェブページの提示を開始する機械ハイパーテキストマークアップ言語(HTML)コード(machine Hyper-Text Markup Language (HTML) code)を送信することによって要求に応答することができる。
電子ドキュメントは、様々なコンテンツを含み得る。たとえば、電子ドキュメント105は、電子ドキュメント自体の中にあるおよび/または経時的に変化しない静的コンテンツ(たとえば、テキストまたはその他の指定されたコンテンツ)を含み得る。電子ドキュメントは、経時的にまたは要求毎に変わる場合がある動的コンテンツも含み得る。たとえば、所与の電子ドキュメントのパブリッシャは、電子ドキュメントの一部を埋めるために使用されるデータソースを保有し得る。この例において、所与の電子ドキュメントは、所与の電子ドキュメントがユーザデバイス106によって処理される(たとえば、レンダリングされるかまたは実行される)ときにユーザデバイス106にデータソースからコンテンツを要求させるタグまたはスクリプトを含み得る。ユーザデバイス106は、データソースから取得されたコンテンツを含む複合的な電子ドキュメントを生成するために、データソースから取得されたコンテンツを所与の電子ドキュメントの提示に組み込む。
状況によっては、所与の電子ドキュメントは、DCDS110を参照するデジタルコンテンツタグまたはデジタルコンテンツスクリプトを含み得る。これらの状況において、デジタルコンテンツタグまたはデジタルコンテンツスクリプトは、所与の電子ドキュメントがユーザデバイス106によって処理されるときにユーザデバイス106によって実行される。デジタルコンテンツタグまたはデジタルコンテンツスクリプトの実行は、デジタルコンテンツの要求108を生成するようにユーザデバイス106を構成し、要求108は、ネットワーク102を介してDCDS110に送信される。たとえば、デジタルコンテンツタグまたはデジタルコンテンツスクリプトは、ユーザデバイス106がヘッダおよびペイロードデータを含むパケット化されたデータ要求を生成することを可能にし得る。要求108は、デジタルコンテンツが要求されているサーバの名前(もしくはネットワークロケーション)、要求元のデバイス(たとえば、ユーザデバイス106)の名前(もしくはネットワークロケーション)、および/またはDCDS110が要求に応じて提供されるデジタルコンテンツを選択するために使用することができる情報などのデータを含み得る。要求108は、ユーザデバイス106によってネットワーク102(たとえば、電気通信ネットワーク)を介してDCDS110のサーバに送信される。
要求108は、電子ドキュメントと、デジタルコンテンツが提示され得る場所の特徴とを指定するデータを含み得る。たとえば、デジタルコンテンツが提示される電子ドキュメント(たとえば、ウェブページ)の参照(たとえば、URL)、デジタルコンテンツを提示するために利用可能な電子ドキュメントの利用可能な場所(たとえば、デジタルコンテンツスロット)、利用可能な場所のサイズ、電子ドキュメントの提示の中の利用可能な場所の位置、および/または場所に提示するのにふさわしいメディアタイプを指定するデータが、DCDS110に提供され得る。同様に、電子ドキュメントの選択のために指定されたキーワード(「ドキュメントキーワード」)または電子ドキュメントによって参照されるエンティティ(たとえば、人、場所、もしくは物)を指定するデータも、(たとえば、ペイロードデータとして)要求108に含められ、電子ドキュメントとともに提示するのにふさわしいデジタルコンテンツの特定を容易にするためにDCDS110に提供され得る。
要求108は、ユーザが提供した情報、要求がそこから送られた州もしくは地域を示す地理的情報、またはデジタルコンテンツが表示される環境に関するコンテキスト(たとえば、モバイルデバイスもしくはタブレットデバイスなどの、デジタルコンテンツが表示されるデバイスの種類)を提供するその他の情報などのその他の情報に関連するデータも含み得る。ユーザによって提供される情報は、ユーザデバイス106のユーザに関するデモグラフィック(demographic)データを含み得る。たとえば、デモグラフィック情報は、特徴の中でもとりわけ、年齢、性別、地理的位置、教育レベル、婚姻区分、世帯収入、職業、趣味、ソーシャルメディアデータ、およびユーザが特定の物を所有しているかどうかを含み得る。
ユーザデバイス106のモデル、ユーザデバイス106の構成、または電子ドキュメントが提示される電子ディスプレイ(たとえば、タッチスクリーンもしくはデスクトップモニタ)のサイズ(たとえば、物理的なサイズもしくは解像度)を特定する情報などのユーザデバイス106の特徴を指定するデータも、要求108において提供され得る。要求108は、たとえば、パケット化されたネットワークを介して送信されることが可能であり、要求108自体は、ヘッダおよびペイロードデータを有するパケット化されたデータとしてフォーマットされることが可能である。ヘッダは、パケットの送信先を指定することができ、ペイロードデータは、上で検討された情報のいずれかを含み得る。
DCDS110は、要求108の受信に応じておよび/または要求108に含まれる情報を使用して所与の電子ドキュメントとともに提示されるデジタルコンテンツを選択する。一部の実装において、DCDS110は、たとえば、サーバと、相互に接続され、要求108に応じてデジタルコンテンツを特定し、配信する1組の複数のコンピューティングデバイスとを含む分散型コンピューティングシステム(または環境)に実装される。1組の複数のコンピューティングデバイスは、数百万以上の利用可能なデジタルコンテンツのコーパスの中から電子ドキュメント内に提示されるのにふさわしいデジタルコンテンツのセットを特定するために一緒に動作する。数百万以上の利用可能なデジタルコンテンツは、たとえば、デジタルコンポーネントデータベース112内でインデックス付けされ得る。各デジタルコンテンツのインデックスのエントリは、対応するデジタルコンテンツを参照し得る、および/または対応するデジタルコンテンツの配信を条件付ける配信パラメータ(たとえば、選択基準)を含み得る。
ふさわしいデジタルコンテンツの特定は、複数のタスクにセグメント分けされることが可能であり、そして、それらの複数のタスクは、1組の複数のコンピューティングデバイスの中のコンピューティングデバイスの間に割り振られる。たとえば、異なるコンピューティングデバイスが、要求108に含まれる情報に一致する配信パラメータを有する様々なデジタルコンテンツを特定するためにデジタルコンポーネントデータベース112の異なる部分をそれぞれ分析し得る。
DCDS110は、1組の複数のコンピューティングデバイスから受信された結果を集約し、要求108に応じて提供されるデジタルコンテンツの1つまたは複数のインスタンスを選択するために集約された結果に関連する情報を使用する。そして今度は、DCDS110は、デジタルコンテンツの選択されたセットおよび電子ドキュメントのコンテンツがユーザデバイス106のディスプレイに一緒に提示されるように、ユーザデバイス106がデジタルコンテンツの選択されたセットを所与の電子ドキュメントに組み込むことを可能にする応答データ114(たとえば、応答を表すデジタルデータ)を生成し、ネットワーク102を介して送信することができる。
プライバシーサーバ120は、システム100の任意の構成要素である。プライバシーサーバ120は、電子Docサーバ104および/またはDCDS110とは独立したサーバである。プライバシーサーバ120は、ユーザのプライバシーを守りながら、ブラウジング体験の制御をユーザに提供する。プライバシーサーバ120は、コンテンツ配信プロセスに頻度制御を適用する。一部の実装において、プライバシーサーバ120は、デジタルコンポーネント配信システム110の一部である。本明細書において、用語「頻度制御」は、コンテンツが特定のユーザに対して提示される頻度を制御する1つまたは複数の特徴を指す。
たとえば、頻度制御は、コンテンツアイテムが示される回数をコンテンツプロバイダが制限することを可能にする特徴である頻度制限を指し得る。頻度制限は、一部がDCDS110および/またはプライバシーサーバ120によって実施され、一部がユーザデバイス106のブラウザ107によって実施され得る。たとえば、DCDS110および/またはプライバシーサーバ120は、各コンテンツアイテムが示され得る最大閾値回数および/またはコンテンツアイテムが示され得る時間期間の記録を維持することができ、ユーザデバイス106のブラウザ107は、特定のコンテンツアイテムが示された回数を維持することができる。特定のコンテンツアイテムに関して最大閾値回数が達せられたとブラウザ107が判定する場合、コンテンツアイテムは、再び提供されるべきでないまたは時間のある期間内に提供されるべきでないコンテンツアイテムのリストに追加され得る。同じコンテンツを見過ぎることは、ユーザにとって不快であるかまたはうっとうしく、ユーザの体験を損ない、繰り返されるコンテンツアイテムをユーザに送信および提示することにコンテンツプロバイダのリソースを浪費し得るので、頻度制限は、ユーザのブラウジング体験およびシステムの効率の改善にとって重要である。
別の例において、頻度制御は、特定のコンテンツアイテムまたはコンテンツのカテゴリがユーザにとって興味深くなく、および/またはそれを再び見たくないということをコンテンツプロバイダにシグナリングするユーザからの入力を収集する特徴を指し得る。たとえば、ユーザは、コンテンツアイテムがその瞬間にユーザに対して提示されることを停止し、コンテンツアイテムが将来ユーザに対して提示されることを防止する選択肢を提示され得る。ユーザは、ボタン、チェックボックス、またはその他の要素などのユーザインターフェース要素とインタラクションすることができる。たとえば、ユーザは、コンテンツを却下するためにボタンを選択し得る。さらに、ユーザは、コンテンツがユーザに対して提示されることを停止するときに、コンテンツに関する主観的なフィードバックを提供し得る。たとえば、ユーザは、入力の種類の中でもとりわけ、「この提案は前に見たことがある」、「これは好きではない」、「もう見せないでほしい」などのフィードバックを入力することができる。一部の実装において、この種のユーザ入力は、コンテンツアイテムの「ミュート」と呼ばれ得る。一部の実装において、ミュートは、時間の期間に関連付けられる。たとえば、ユーザは、コンテンツアイテムを見たくない時間の期間を選択することができる。一部の実装においては、時間のデフォルトの期間が、ユーザがコンテンツアイテムをミュートするときに適用され得るか、または時間の期間が、要因の中でもとりわけ、コンテンツアイテムの種類および/もしくはユーザによって提供されたフィードバックの種類に基づいて選択され得る。
一部の実装において、プライバシーサーバ120は、たとえば、サーバと、相互に接続され、頻度制御を適用する要求に応じる1組の複数のコンピューティングデバイスとを含む分散型コンピューティングシステム(または環境)に実装される。1組の複数のコンピューティングデバイスは、数百万以上の利用可能なデジタルコンテンツのコーパスの中から電子ドキュメント内に提示されるのにふさわしいデジタルコンテンツのセットを特定するために一緒に動作する。数百万以上の利用可能なデジタルコンテンツは、たとえば、コンテンツが特定のユーザに何回提示されたか、および/またはユーザがコンテンツアイテムが提示されないように要求したかどうかに応じて、プライバシーサーバデータベース122においてインデックス付けされ得る。
最初のステップとして、各コンテンツアイテム配信キャンペーン(content item distribution campaign)が、各コンテンツ配信システム内で一意であるキャンペーンIDによって表され得る。「グローバル」一意キャンペーンIDが、コンテンツアイテム配信キャンペーンがインターネット全体で一意に特定されることを可能にし、コンテンツ配信システムのドメインのeTLD+1(実効トップレベルドメイン(effective top-level domain)より1つ上のレベル)とコンテンツ配信システムのドメイン内のキャンペーンのキャンペーンIDとの組合せを使用して生成される。たとえば、グローバル一意キャンペーンIDは、コンテンツ配信システムのドメインのeTLD+1およびキャンペーンIDの暗号学的ハッシュとして生成され得る。1つのそのような暗号学的ハッシュは、32バイトワードの結果を生成するための、SHA-256などの安全なハッシュアルゴリズムを使用して実装されたハッシュに基づくメッセージ認証コード(HMAC: hash-based message authentication code)であることが可能である。グローバル一意キャンペーンIDを計算するための例示的な関数は、式(1)によって表される。
Si = HMAC(campaign_ID, content_distribution_system_domain) 式(1)
コンテンツアイテムの有限離散セットは、たとえば、式(2)によって表されるセットにより表される。
S = {S1, S2, ..., Sz} 式(2)
HMACを使用して各グローバル一意キャンペーンIDを定義することの1つの利点は、追加の情報なしに、グローバル一意キャンペーンIDを調べることのみによってコンテンツ配信システムのアイデンティティまたはキャンペーンIDを決定することが不可能であることである。したがって、グローバル一意キャンペーンIDは、情報の中でもとりわけ、現在実行中のコンテンツアイテム配信キャンペーンの数、停止されているコンテンツアイテム配信キャンペーンの数、および開始したコンテンツアイテム配信キャンペーンの数などの機密情報を保護する。
これらのグローバル一意キャンペーンIDは、ユーザデバイスのユーザがインターネットをナビゲートし、閲覧するときに、各ユーザのデバイス上で実行されるソフトウェアに提供される。たとえば、ソフトウェア107が、グローバル一意キャンペーンIDに関連するデータを記憶することができる。一部の実装において、グローバル一意キャンペーンIDは、ユーザデバイスのローカルに記憶される。ソフトウェア107は、ユーザデバイス上の様々なソフトウェアを包含し得るが、説明を容易にするために、以下の説明は、ユーザデバイス上のブラウザプログラム107に関して与えられる。
さらなる保護を提供するために、各コンテンツ配信システムは、秘密鍵を生成することができる。たとえば、DCDS110が、秘密鍵DCDS_keyを生成することができる。各ブラウザに関して、コンテンツ配信システムは、自身の秘密鍵とトラストトークンAPIによって生成されたブラウザのための公開鍵を使用してブラウザに固有の秘密鍵を生成することができる。たとえば、DCDS110は、式(3)に従って、ブラウザのための公開鍵browser_public_keyおよびDCDS110の秘密鍵DCDS_keyをハッシュすることによってブラウザ107のためのブラウザに固有の秘密鍵を生成することができる。
browser_specific_key = HMAC(browser_public_key, DCDS_key) 式(3)
そして、コンテンツ配信システムは、ブラウザに提示されるコンテンツアイテムのためのグローバル一意キャンペーンIDを生成することができる。一部の実装において、コンテンツ配信システムは、決定的(deterministic)暗号化アルゴリズムを使用することができる。たとえば、DCDS110は、式(4)に従って決定的対称暗号化アルゴリズムを使用して、ブラウザ107に提示されるコンテンツアイテムのためのグローバル一意キャンペーンIDを生成することができる。
Si = Encrypt(campaign_ID, browser_specific_key) 式(4)
次に、コンテンツ配信システムは、Siを暗号化し、暗号文を、頻度制御を適用する要求とともに含まれるパラメータとして送信する。一部の実装において、コンテンツ配信システムは、確率的暗号化アルゴリズムを使用することができる。たとえば、DCDS110は、頻度制御を呼び出すときに、式(5)に従ってSiを暗号化し、結果をブラウザ107に送信することができる。
Si = PubKeyEncrypt(Si, browser_public_key) 式(5)
頻度制御を呼び出す要求を受信すると、ブラウザは、トラストトークンAPIによって生成された自身のブラウザに固有の秘密鍵を使用して、要求およびSiを復号することができる。コンテンツ配信システムの秘密鍵が秘匿されている限り、悪意のある者は、傍受されたトラフィックを使用しても、式(3)によって計算されるブラウザに固有の鍵を決定することができない。さらに、悪意のある者がコンテンツプロバイダの情報にアクセスする目的でグローバル一意キャンペーンID Siを収集するためのスケーラブルで経済的な方法が存在しないので、ブラウザに固有の秘密鍵のブラウザに固有の性質は、悪意のある者を抑止する。
頻度制御技術を実装するために、コンテンツアイテム内のスクリプトが、たとえば、コンテンツアイテムが表示されているユーザデバイス上のブラウザに、(1)コンテンツアイテムが関連付けられるキャンペーンIDと、(2)キャンペーン用に定義された任意の頻度制御規則とを通知してよい。たとえば、頻度制限規則は、1分あたりのコンテンツアイテムの提示が2回までであり、1時間あたりの提示が5回までであるべきであることであり得る。ブラウザは、各グローバル一意キャンペーンIDに関して、(1)頻度制限規則と、(2)コンテンツアイテムが提示されたときのタイムスタンプのリストとを示すデータ構造を保持することができる。一部の実装において、ブラウザは、データを記憶し、保持するために必要とされるメモリリソースを削減するために、頻度上限(frequency cap)に定義された最長時間枠を超えた過去の時間に発生したタイムスタンプを削除することができる。たとえば、1時間あたりの提示が5回までであるべきであることを頻度上限が指定する場合、1時間前よりも前に発生したタイムスタンプを削除することができる。ブラウザは、直近の発生および問題にしている発生のタイムスタンプの間の差を求めることによって、2つの発生の間の時間枠を決定することができる。このデータは、キャンペーンがブラウザ上でそのキャンペーンの頻度上限に達したかどうかをブラウザが判定することまたは判定することを容易にすることを可能にする。
さらに、各ブラウザは、ブラウザ上で提示されるべきでないコンテンツアイテムのセットDを保持する。セットDは、コンテンツアイテムの有限離散セットの部分セットであり、頻度制御規則または明示的なユーザの要求により提示されるべきでない。たとえば、セットDのコンテンツアイテムは、ブラウザが実行されているユーザデバイスのユーザが、そのユーザがコンテンツアイテムに興味がないもしくはコンテンツアイテムを再び見たくないことを示す入力を与えたためか、または頻度制御規則により、ユーザがコンテンツアイテムをあまりにも頻繁に提示されているためかのどちらかの理由で、提供されるべきでない。
ブラウザは、様々な条件が発生するときに、セットDを更新することができる。たとえば、ブラウザは、ユーザがコンテンツアイテムを見たくないまたはコンテンツアイテムのようなコンテンツに興味がないことを示すフィードバックをユーザが与えるとき、ユーザに提示されているコンテンツアイテムが頻度制御規則によって指定された頻度上限に達したとき、ならびにユーザのフィードバックおよび/または頻度制御規則によって指定された時間の期間が終了するときに、セットDを更新することができる。概して、ユーザのプリファレンスまたは頻度制御規則によりユーザに提示するのにふさわしくないコンテンツアイテムの数が、利用可能なすべてのコンテンツアイテムの数よりも少なくなるように、セットD内のアイテムの数は、セットS内のアイテムの数よりもずっと少ない。
コンテンツ配信システムは、ブラウザが実行されているユーザデバイスの特定のユーザに提示するためのコンテンツアイテムまたはデジタルコンポーネントを選択するときに、ブラウザに固有のセットDを使用する。たとえば、コンテンツ配信システムは、選択されるコンテンツアイテムがセットDによって表される頻度制御規則およびユーザのプリファレンスに従うように、
という条件でセットSからコンテンツアイテムSiを選択することができる。
セットDは、コンテンツ配信システムが頻度制御規則に従い、ユーザの期待に応じたユーザ体験を提供することを可能にするので、有利である。しかし、セットDへの直接アクセスがコンテンツプロバイダまたはコンテンツ配信システムに提供される場合、セットDは、ユーザの追跡を容易にする信号となり得る。様々なプラットフォームおよびドメインをまたいで頻度制御規則に従いながら、セットDを使用して実行され得る任意のインクリメンタルトラッキング(incremental tracking)を制限するために、各ブラウザは、ランダムに選択されたノイズ(noise)を用いてセットDを拡張することができる。たとえば、ブラウザは、頻度制御規則またはユーザのプリファレンスに従ってアイテムがふさわしいかどうかにかかわらず、提示するのにふさわしくないとやはり特定されるランダムなコンテンツアイテムを表すランダムセットD'を生成することができる。そして、ブラウザは、セットDおよびD'の和(D∪D')を計算し、要素をランダムにシャッフルし直し、その後、結果をコンテンツアイテム要求とともに提供することができる。セットD'は、ふさわしくないコンテンツアイテムの真のセットを分かりにくくするランダムなノイズを提供し、セット(D∪D')を特定のユーザと相互に関連付けることを困難または不可能にする。ブラウザは、複雑さおよびコンピューティングリソースの面での導入コストが法外に高くならないように効率を維持しながら、特定のレベルのプライバシー保護を提供するためにD'を選択する。
ブラウザは、状況に基づいてセットD'を適応させることができる。ブラウザは、とりわけ、各ウェブページに固有の識別子の寿命、各ウェブページの訪問、各コンテンツアイテム要求、および各プログラムまたはプラットフォームのためにD'を選択することができる。たとえば、サイトがセットD'を同じウェブページの訪問内からの各コンテンツアイテム要求と相互に関連付けることができる場合、ブラウザは、同じウェブページの訪問から生じる複数のコンテンツアイテム要求のために1つのセットD'のみを生成するのが最も効率的であると判定し得る。ウェブページがセットD'を永続的に追跡することを抑止するために、ブラウザは、コンテンツアイテム要求のヘッダに(D∪D')を挿入するか、または特定のサーバのみがメッセージを復号し得るようにそのサーバの公開鍵を使用して(D∪D')を暗号化することができる。
ランダムに生成されたノイズに加えて、ブラウザは、ユーザデータに確率的な保護のレイヤを追加することができる。たとえば、ブラウザは、ユーザを追跡するために使用され得るセットDをさらに分かりにくくするために、ブルームフィルタを選択し、構築し、コンテンツアイテム要求と一緒にフィルタを送信することができる。ブルームフィルタは、要素がセットに属するかどうかを高速にチェックすることができる、空間効率の良い確率的データ構造である。結果は、「おそらくセット内にある」かまたは「絶対にセット内にない」かのどちらかである。
ブルームフィルタは、たとえば、要素あたり10ビット未満を使用することが可能であり、ハッシュされたセットのための32バイトと比較して、セット内の要素のサイズまたは数に依存しない偽陽性率を提供し、ストレージおよび帯域幅の要件の観点で著しく大きな節約を提供する。そのような確率的データ構造は、生データに比して少ないリソースを必要とするこのデータのプライバシーが強化された表現を確率的データ構造に記憶し、生データが廃棄されることを可能にすることによって、データ処理リソースおよび/またはメモリリソースの利用を大幅に削減することができる。したがって、確率的データ構造を使用することは、データを処理するために必要とされるリソースの量をやはり削減する。確率的構造は、生データを転送または記憶するのに比べて少ないデータが転送および/または記憶されることを必要とし、確率的構造によって表されるデータの送信および記憶がより高速で、より効率的であることを可能にする。
さらに、コンテンツ配信システムが、ふさわしくないコンテンツアイテムのセット(D∪D')に関してアイテムが「絶対にセット内にない」ことをブルームフィルタの結果が示す場合にのみコンテンツアイテムを提示するように制限される場合、プロセスは、頻度制御の制限が守られることを保証する。ブラウザは、ブルームフィルタの変種、またはブルームフィルタと同様のその他の確率的データ構造を使用し得る。たとえば、ブラウザは、カッコウフィルタ(cuckoo filter)を使用し得る。一部の実装において、ブラウザは、ブルームフィルタと同様のいくつかの確率的構造を評価し、最も適切な構造を選択し得る。
基本的に、偽陽性の確率は、頻度制御規則またはユーザのプリファレンスに従ってアイテムがふさわしいかどうかにかかわらず、提示するのにふさわしくないとやはり特定されるコンテンツアイテムの追加的なセットを表すセットD''を生成する。ブルームフィルタは、Si∈D∪D'∪D''のとき、「おそらくセット内にある」と応答するので、ブルームフィルタは、セット(D∪D'∪D'')を特定のユーザと相互に関連付ける可能性をさらに下げる。提示するのにふさわしくないコンテンツアイテムのセットは、事実上、2回にわたってランダムに拡張された。
図2は、データ収集および分析のためのプライバシー保護方法200のスイムレーンフローチャートである。方法200の動作は、システム100の様々な構成要素によって実行される。たとえば、方法200の動作は、ユーザデバイス106と通信するプライバシーサーバ120およびDCDS110によって実行され得る。
方法200は、上述のプライバシーおよびセキュリティの特徴の各々をカプセル化し、コンテンツ配信システムがブルームフィルタに問い合わせ、表示のためのコンテンツアイテムの最終的な選択を実行するために不可欠な最小の量の情報のみにアクセスすることを可能にする。さらに、方法200は、異なる種類のデータまたはデータのセットにアクセスする異なるプラットフォームを訪問するユーザが、コンテンツアイテムの提供に関して一貫した体験を有することを可能にする。たとえば、方法200は、第1のエンティティによって所有され、運用される、ユーザによって作成された販売用のアイテムを閲覧するためのウェブサイトをユーザが訪問しているのか、または第2のまったく異なるエンティティによって所有され、運用されるソーシャルネットワークプラットフォームを訪問しているのかにかかわらず、ユーザのプライバシーの期待が尊重されることを可能にする。
方法は、ユーザデバイスのソフトウェアによって実行されるステップ1~3で始まる。ステップ1において、ユーザデバイスのソフトウェアが、ブルームフィルタを選択し、選択されたブルームフィルタを構築する。たとえば、ユーザデバイス106のブラウザ107は、ユーザデバイス106からの受け取られたインタラクションデータに基づいて、特定のユーザに関連する頻度制御規則を実施するための適切なブルームフィルタおよびブルームフィルタパラメータを決定することができる。ブラウザ107は、たとえば、ブルームフィルタの偽陽性率を選択することができる。一部の実装において、ブルームフィルタの構築コストを償却するために、ブラウザは、構築されたブルームフィルタをその後の適用可能な要求のために任意でキャッシュし得る。ブラウザ107は、DCDS110またはコンテンツプロバイダなどの関係者からの入力なしに、ブルームフィルタのパラメータを選択し、ブルームフィルタを構築する。
方法は、ステップ2に続き、ステップ2において、ブラウザは、非対称暗号化アルゴリズムを使用して、ブルームフィルタを含むメッセージを暗号化する。ブラウザ107は、少なくとも(1)構築および/またはキャッシュされたブルームフィルタと、(2)コンテンツアイテムがユーザデバイス106を通じて要求された時間を特定するコンテンツアイテム要求のタイムスタンプとを含むメッセージを構成する。ブラウザは、ブルームフィルタを暗号化し、暗号化されたブルームフィルタをメッセージに含めることができる。一部の実装において、ブラウザ107は、プライバシーサーバ120のみが結果を復号し得るようにプライバシーサーバ120の公開鍵を使用してブルームフィルタを暗号化する。
方法は、ステップ3に続き、ステップ3において、ブラウザは、ユーザデバイスにおいて表示するためのデジタルコンポーネントの要求を生成する。たとえば、ブラウザ107は、ユーザデバイス106において表示するためのコンテンツアイテムの要求108を生成することができる。
方法は、DCDS110によって実行されるステップ4~6に続く。一部の実装において、ステップ4および5は、DCDS110に参加する各コンテンツプロバイダに関して並列に行われる。
ステップ4において、コンテンツ配信システムは、ブラウザからデジタルコンポーネントの要求を受信し、入札要求を生成し、ユーザデバイスにコンテンツを提供するためにコンテンツプロバイダからの入札を募集する。たとえば、DCDS110は、ユーザデバイス106において表示するためのコンテンツアイテムの要求108を受信する。それから、DCDS110は、コンテンツプロバイダからの入札を募集する入札要求を生成することができる。一部の実装において、DCDS110は、入札応答を募集するためにオークションプロセスを実行する。たとえば、DCDS110は、コンテンツ配信システムにおいてよく使用される標準的なオークションプロセスを実行することができる。
ステップ5において、コンテンツ配信システムは、コンテンツプロバイダから入札応答を受信する。たとえば、DCDS110は、ユーザデバイス106にコンテンツを提供するための入札のそのDCDS110の要求に応じて、コンテンツプロバイダから特定のコンテンツアイテムおよび関連する入札価格を示す応答を受信する。一部の実装において、入札は、たとえば、上述のグローバル一意キャンペーンIDを含んで提供され得る。
一部の実装において、コンテンツプロバイダは、ブルームフィルタを知らず、頻度制御パラメータに基づいて候補コンテンツアイテムを事前にフィルタリングすることができず、後でブロックされるコンテンツアイテムを返す可能性がある(たとえば、コンテンツアイテムは、ステップ10においてふさわしくないと判定される可能性がある)ので、購買機会を失うことを避けるために入札要求に応じて複数の入札を返し得る。
ステップ6において、コンテンツ配信システムは、受信された入札応答の中からいくつかの最上位の入札を選択する。たとえば、DCDS110は、標準的なオークションプロセスから、最も高い上位3つの入札を選択することができる。一部の実装において、DCDS110は、要因の中でもとりわけ、受信された応答の数、頻度制御パラメータ、および/またはブルームフィルタパラメータに基づいて、選択される最上位の入札の数を調整することができる。
ステップ7において、コンテンツ配信システムは、独立したプライバシーサーバに問い合わせることによって、コンテンツの頻度制限を適用することができる。たとえば、DCDS110は、少なくとも(1)選択された最上位の入札の順序付けられたリストと、(2)コンテンツアイテム要求のタイムスタンプをともなう暗号化されたブルームフィルタとを含むメッセージを送信することによって、プライバシーサーバ120がオークション結果にブルームフィルタを適用することを要求することができる。
方法は、プライバシーサーバのプライバシーサーバデータベースと通信するコンテンツ配信システムおよび/または独立したプライバシーサーバによって実行されるステップ8~10に続く。一部の実装において、独立したプライバシーサーバ120は、コンテンツ配信システムの一部であり、コンテンツ配信システムがコンテンツ配信を実行するために必要とされるよりも多くの情報を収集するために同じブルームフィルタに繰り返し問い合わせを行わないようにコンテンツ配信システムの活動を制限する。
ステップ8において、コンテンツ配信システムおよび/またはプライバシーサーバは、受信されたブルームフィルタを復号する。たとえば、DCDS110および/またはプライバシーサーバ120は、その秘密鍵を使用して、ブラウザ107がDCDS110の/プライバシーサーバ120の公開鍵を使用して暗号化したブルームフィルタを復号することができる。
任意であるステップ9においては、プライバシーサーバがコンテンツ配信システムから独立している場合、プライバシーサーバが、ブルームフィルタおよびコンテンツ要求のタイムスタンプを使用してそのプライバシーサーバストレージを調べることによって頻度制御規則を実施する。タイムスタンプは、コンテンツ配信システムによる潜在的な乱用を検出するために使用され得る。たとえば、プライバシーサーバ120は、特定のブルームフィルタがコンテンツ配信システムによって閾値の回数を超えて問い合わせをされたと判定し、コンテンツ配信が疑わしい活動または不正な活動に関与していると判定し得る。
ステップ9において、コンテンツ配信システムまたはプライバシーサーバは、ブルームフィルタに問い合わせることによって頻度制御規則を実施する。たとえば、DCDS110および/またはプライバシーサーバ120は、ブルームフィルタを使用して、コンテンツアイテムがユーザデバイス106において表示するのにふさわしいかどうかを判定することができる。一例において、頻度制御規則は、特定のコンテンツアイテムが過去M分以内にN回を超えて提供されることを制限することを含む。DCDS110および/またはプライバシーサーバ120は、たとえば、DCDS110によって提供されたリストからの入札によって示された特定のコンテンツアイテムが過去25分以内に2回未満提供されており、したがって、特定のコンテンツアイテムがふさわしいと判定し得る。
ステップ10において、コンテンツ配信システムおよび/またはプライバシーサーバは、ブルームフィルタを使用してそのデータベースを調べた後で、なおもふさわしい最上位にランク付けされた入札を選択する。たとえば、プライバシーサーバ120は、ステップ7において受信されたリストから、プライバシーサーバデータベース122に適用されるブルームフィルタに従ってふさわしいままである最高入札を選択することができる。
方法は、プライバシーサーバによって実行される、任意であるステップ11に続く。ステップ11において、プライバシーサーバは、ユーザデバイスにおいて表示するのになおもふさわしい選択された最上位にランク付けされた入札をコンテンツ配信システムに送信する。たとえば、プライバシーサーバ120は、ユーザデバイス106において表示するのになおもふさわしい選択された最上位にランク付けされた入札をDCDS110に送信し得る。
方法は、コンテンツ配信システムによって実行されるステップ12に続く。ステップ12において、コンテンツ配信システムは、プライバシーサーバによって提供された選択された最上位にランク付けされた入札に関連するコンテンツアイテムのユーザデバイスにおける表示を容易にするデータをユーザデバイスに送信する。たとえば、DCDS110は、プライバシーサーバ120によって提供された選択された最上位にランク付けされた入札に関連するコンテンツアイテムのユーザデバイス106におけるブラウザ107内での表示を容易にするデータをユーザデバイス106に送信する。
いくつかの実装においては、コンテンツ配信システムの異なるレベルが頻度制限を適用することができる頻度制限の階層的な適用が存在し得る。たとえば、頻度制御が、グループレベル、キャンペーンレベル、およびキャンペーングループレベルで適用され得る。一部の実装においては、特定のコンテンツアイテムがユーザデバイスにおいて表示されるとき、コンテンツアイテムのスクリプトが、すべての適用可能なレベルで頻度のカウントを更新するようにブラウザに指示する。一部の実装において、コンテンツアイテム要求のブルームフィルタは、頻度上限に達したすべてのグループ、キャンペーン、およびキャンペーングループをふさわしくないものとして包含し得る。
一部の実装においては、頻度制御規則のカテゴリ全体への適用が存在し得る。特定の産業におけるユーザの期待に合致する自然な階層を有する産業全体の分類(taxonomy)が存在し得る。ユーザが1つのコンテンツプロバイダからの1つのコンテンツアイテムへの無関心を示すとき、ブラウザは、コンテンツ配信システムに提供されるコンテンツアイテム要求に埋め込まれたブルームフィルタにユーザの頻度制御のフィードバックを符号化することができる。たとえば、ユーザが鳥に関連するコンテンツアイテムをこれ以上見たくないことを示す場合、すべてのコンテンツプロバイダは、アホウドリに関連するコンテンツアイテムを特定のユーザのブラウザに提供することを停止させ得る。したがって、本明細書において説明される革新的なプロセスは、関与する可能性が低いかまたはそのユーザ体験が損なわれる可能性があるユーザにコンテンツを提供するために使用されるリソースを削減する。
ユーザデータの収集および分析のための革新的な技術は、コンテンツプロバイダおよびコンテンツ配信システムへの影響を最小限にしながら、望ましいレベルのプライバシー保護を実現するための様々な選択肢を提供する。さらに、プロセスの効率的な性質は、産業にとって妥当な導入コストが課す。技術は、ユーザのプライバシーのプリファレンスと、コンテンツプロバイダの配信のプリファレンスとに適応可能である。たとえば、1つの特定の実装において、ブラウザは、(1)提供されるのにふさわしくないコンテンツアイテムのセットおよび/またはセットのサイズをいつ、どのようにしてランダムに拡張すべきかを決定し、(2)提供されるのにふさわしくないコンテンツアイテムのセットを再びランダムに拡張する適切なブルームフィルタアルゴリズムおよびブルームフィルタの偽陽性率を選択し、(3)提供されるのにふさわしくないコンテンツアイテムのセットをさらに分かりにくくするためにプライバシーサーバ120などの独立したプライバシーサーバを採用すべきかどうかを選択し、ユーザのプライバシーをさらに保護することができる。
図3は、図1の例示的な環境におけるデータ収集および分析のためのプライバシー保護方法のデータフロー300を示す。データフロー300の動作は、システム100の様々な構成要素によって実行される。たとえば、データフロー200の動作は、ユーザデバイス106と通信するDCDS110およびプライバシーサーバ120によって実行され得る。
フローは、ステップAから始まり、ステップAにおいて、ユーザデバイス106は、ユーザデバイス106のユーザによって実行され、コンテンツアイテムの要求をトリガするインタラクションを示すインタラクションデータを受信する。たとえば、ユーザデバイス106は、ユーザが動物の赤ちゃんに関連するコンテンツを提供するウェブページをクリックしたというインタラクションの通知をブラウザ107から受信し得る。
フローは、ステップBに続き、ステップBにおいて、ブラウザ107は、コンテンツの要求を生成し、要求をDCDS110に提供する。たとえば、ブラウザ107は、ユーザデバイス106において表示されるコンテンツの要求108を生成することができる。ブラウザ107は、ユーザデバイス106のユーザおよびウェブページのための頻度制御規則に基づいてブルームフィルタを生成し、上述のようにプライバシーサーバ120の秘密鍵を使用してブルームフィルタを暗号化することもできる。たとえば、ブラウザ107は、ブルームフィルタの種類を選択し、ブルームフィルタの偽陽性率を選択し、ブルームフィルタを構築することができる。また、ブラウザ107は、コンテンツアイテム要求が生成された時間を示すタイムスタンプを記録する。ブラウザ107は、コンテンツの要求108と一緒に、暗号化されたブルームフィルタおよびタイムスタンプを含むメッセージをDCDS110に送信することができる。
フローは、ステップCに続き、ステップCにおいて、DCDS110は、コンテンツアイテムの要求に応じて、ユーザデバイス106におけるコンテンツの提供のための入札を募集し、受信するためにコンテンツアイテムのオークションプロセスを実行する。たとえば、DCDS110は、図2に関連して上で説明されたように、ステップ4~6を実行することができる。
フローは、ステップDに続き、ステップDにおいて、DCDS110は、オークションプロセスから選択された最上位の入札応答への頻度制御規則の適用を要求する。たとえば、DCDS110は、プライバシーサーバ120に頻度制御を適用する要求を送信することができる。要求は、最上位にランク付けされた入札のリスト、暗号化されたブルームフィルタ、およびタイムスタンプを含む。たとえば、リストは、上位3位までにランク付けされた入札を含み得る。
フローは、ステップEに続き、ステップEにおいて、DCDS110は、頻度制御規則を最上位にランク付けされた入札のリストに適用する。たとえば、DCDS110は、DCDS110の公開鍵を使用してブラウザ107によって暗号化された暗号化されたブルームフィルタをそのDCDS110の秘密鍵を使用して復号することができる。それから、DCDS110は、最上位にランク付けされた入札のリストに頻度制御を適用することができる。一部の実装においては、プライバシーサーバ120が、ステップEを実行する。プライバシーサーバ120は、DCDS110と別れていることが可能である。一部の実装において、プライバシーサーバ120は、DCDS110の一部であり、DCDS110がコンテンツ配信を実行するために必要とされるよりも多くの情報を収集するために同じブルームフィルタに繰り返し問い合わせを行わないことを保証する。
フローは、ステップFに続き、ステップFにおいて、プライバシーサーバ120は、ふさわしくないと判定されなかった残りの入札の中から最高入札を選択し、入札をDCDS110に返す。たとえば、プライバシーサーバ120は、ブルームフィルタの問い合わせに基づいてふさわしくないと判定されなかった2つの入札の中から最高入札を特定し、入札をDCDS110に返すことができる。
フローは、ステップGで終了し、ステップGにおいて、DCDS110は、プライバシーサーバ120によって特定された入札に関連するコンテンツアイテムのユーザデバイス106における表示を容易にするデータを送信する。たとえば、DCDS110は、ユーザデバイス106の要求108に対する応答114を送信することができる。応答114は、プライバシーサーバ120によって特定された入札に関連するコンテンツアイテムのユーザデバイス106における表示を容易にするデータを含む。たとえば、コンテンツアイテムは、ユーザデバイス106のユーザが動物の赤ちゃんに関連するウェブページを見ていたブラウザ107内に表示されるかわいい子犬の動画であるデジタルコンポーネントであることが可能である。
図4は、空間効率の良い確率的データ構造を使用する、データ収集および分析のためのプライバシー保護プロセスの例示的なプロセスの流れ図である。一部の実装において、プロセス400は、1つまたは複数のシステムによって実行され得る。たとえば、プロセス400は、図1~図3のDCDS110、プライバシーサーバ120、および/またはユーザデバイス106によって実施され得る。一部の実装において、プロセス400は、非一時的コンピュータ可読媒体上に記憶された命令として実装されることが可能であり、命令が1つまたは複数のサーバによって実行されるとき、命令は、1つまたは複数のサーバにプロセス400の動作を実行させることが可能である。
プロセス400は、データ処理装置によってコンテンツ配信システムから、(i)ユーザデバイスに提供されるべきでないコンテンツアイテムのセットを表す暗号化された確率的データ構造と、(ii)ユーザデバイスに提供されるために利用可能なコンテンツアイテムのコンテンツアイテムデータと、(iii)確率的データ構造に基づいて任意のコンテンツアイテムデータが無効であるかどうかを判定する要求とを含むメッセージを受信すること(402)から始まる。たとえば、プライバシーサーバ120が、DCDS110から、暗号化されたブルームフィルタと、入札のセットと、セット内の入札が頻度を制限されているかまたはユーザによってミュートされたコンテンツアイテムに対応するかどうかを判定することによってコンテンツ配信プロセスに頻度制御を適用する要求とを含むメッセージを受信することができる。
一部の実装において、メッセージは、コンテンツ要求がなされたときのタイムスタンプを含む。たとえば、メッセージは、ブラウザ107がコンテンツの要求108を生成したときのタイムスタンプを含み得る。
一部の実装において、ブルームフィルタによって表される、ユーザデバイスに提供されるべきでないコンテンツアイテムのセットは、(1)ユーザデバイスに提供されるべきでないコンテンツアイテムの第1のセットと、(2)ランダムに選択されたコンテンツアイテムの第2のセットとの和を含む。たとえば、ユーザデバイス106に提供されるべきでないコンテンツアイテムのセットDは、(1)頻度が制限されているかまたはユーザによってミュートされた、および(2)ノイズを追加するためにランダムに選択されるコンテンツアイテムを含み得る。
一部の実装においては、上述のように、ブルームフィルタは、ユーザデバイス、ウェブページ、またはユーザデバイスにコンテンツを提供する要求に固有である。一部の実装において、ブルームフィルタは、ユーザデバイスのブラウザまたはOSに固有である。
コンテンツアイテムのセットのそれぞれのコンテンツアイテムの入札は、コンテンツプロバイダのドメイン、各コンテンツプロバイダ内で一意のコンテンツアイテム識別子、コンテンツプロバイダの秘密鍵、トラストトークンによって生成されたブラウザの公開鍵、または上記情報のサブセットに基づいて暗号学的ハッシュ関数を使用して生成されたグローバル一意識別子を使用してコンテンツアイテムを特定することができる。たとえば、それぞれのコンテンツアイテムの入札は、入札に関連するコンテンツアイテムのグローバル一意キャンペーンIDを含むことが可能であり、グローバル一意キャンペーンIDは、コンテンツプロバイダのドメインおよびコンテンツプロバイダ独自のコンテンツアイテム識別子に基づいてHMAC SHA-256を使用して生成された。
プロセス400は、秘密鍵に対応する公開鍵を使用して暗号化された暗号化された確率的データ構造を、データ処理装置によって、データ処理装置によってのみ保持される秘密鍵を使用して復号すること(404)で継続する。たとえば、暗号化されたブルームフィルタがプライバシーサーバ120の公開鍵を使用して暗号化された場合、プライバシーサーバ120が、暗号化されたブルームフィルタをそのプライバシーサーバ120の秘密鍵を使用して復号することができる。
プロセス400は、コンテンツアイテムの中の所与のコンテンツアイテムに関して、復号された確率的データ構造を使用してデータ処理装置によって、所与のコンテンツアイテムが、復号された確率的データ構造によって表される、ユーザデバイスに提供されるべきでないコンテンツアイテムのセットの中にある可能性があるので、所与のコンテンツアイテムのコンテンツアイテムデータが無効であると判定すること(406)で継続する。たとえば、プライバシーサーバ120が、ブルームフィルタと、プライバシーサーバデータベース122に問い合わせることとに基づいて、コンテンツアイテムがブルームフィルタによって表されるセット内にある可能性があるので、最上位にランク付けされた入札のリスト内のコンテンツアイテムの入札がユーザデバイス106において表示するのにふさわしくないコンテンツアイテムに関連付けられると判定し得る。
一部の実装において、所与のコンテンツアイテムが、復号された確率的データ構造によって表される、ユーザデバイスに提供されるべきでないコンテンツアイテムのセットの中にある可能性があるので、所与のコンテンツアイテムのコンテンツアイテムデータが無効であると判定することは、データ処理装置によって、ブルームフィルタまたはその他の確率的データ構造を使用して、データ処理装置によって排他的にアクセスできる暗号化されたデータベースに問い合わせることをさらに含み、データ処理装置は、コンテンツ配信システム、ならびに(i)ユーザデバイスに提供されるべきでないコンテンツアイテムのセット、および(ii)ユーザデバイスに提供されるために利用可能なコンテンツアイテムを提供するコンテンツプロバイダから独立したサーバである。
一部の実装において、コンテンツアイテムの入札が無効であると判定することは、タイムスタンプに基づいて、ブルームフィルタが古いと判定することを含む。たとえば、プライバシーサーバ120が、タイムスタンプに基づいて、ブルームフィルタが古いと判定するか、またはプライバシーサーバデータベース122内の以前の問い合わせの記録に基づいて、コンテンツ配信システムが同じブルームフィルタに過剰に問い合わせをしたと判定し得る。そのとき、プライバシーサーバ120は、コンテンツアイテムがユーザに提供するのにふさわしくないと判定し得る。
プロセス400は、データ処理装置によって、コンテンツアイテムデータから、無効であると判定された所与のコンテンツアイテムのコンテンツアイテムデータを削除すること(408)で継続する。たとえば、プライバシーサーバ120が、ユーザデバイス106のユーザに提供するのにふさわしくないと判定されたコンテンツアイテムに関する入札を削除し得る。
プロセス400は、データ処理装置によって、ユーザデバイスにコンテンツを提供する要求に応じた所与のコンテンツアイテムを含む1つまたは複数のコンテンツアイテムのセットの配信を防止すること(410)で終了する。たとえば、プライバシーサーバ120が、入札に関連するコンテンツアイテムがふさわしくないと判定されなかった場合にのみ、コンテンツアイテムの入札を落札として選択する。したがって、プライバシーサーバ120は、頻度制限、ユーザによるミュート、ランダムなノイズ、またはブルームフィルタの偽陽性のためにふさわしくないと判定された任意のコンテンツアイテムの配信を防止する。一部の実装において、コンテンツのセットの配信を防止することは、指定された種類のコンテンツをユーザに提供することを控えることを含む。一部の実装において、コンテンツアイテムのセットの配信を防止することは、指定された種類のコンテンツを有するコンテンツアイテムをユーザに提供することを控えることを含み、コンテンツアイテムのセット内の各コンテンツアイテムは、異なるコンテンツプロバイダから共通の種類を有するコンテンツアイテムがユーザに配信されることをそれぞれ防止され得るように、異なるコンテンツプロバイダによって提供される。たとえば、スナック食品に関連するコンテンツアイテムが頻度制限のためにユーザに提供するのにふさわしくないとプライバシーサーバ120が判定する場合、プライバシーサーバ120は、スナック食品に関連するさらなるコンテンツアイテムがユーザにとってうっとうしい可能性があり、ユーザがコンテンツとインタラクションしないかまたはコンテンツを見ることさえしない可能性があるので、その他のスナック食品に関連するその他のコンテンツアイテムがユーザデバイス106のユーザに提供されることを防止し得る。
図5は、上述の動作を実行するために使用され得る例示的なコンピュータシステム500のブロック図である。システム500は、プロセッサ510、メモリ520、ストレージデバイス530、および入力/出力デバイス540を含む。構成要素510、520、530、および540の各々は、たとえば、システムバス550を使用して相互に接続され得る。プロセッサ510は、システム500内で実行するための命令を処理することができる。1つの実装において、プロセッサ510は、シングルスレッドプロセッサである。別の実装において、プロセッサ510は、マルチスレッドプロセッサである。プロセッサ510は、メモリ520またはストレージデバイス530に記憶された命令を処理することができる。
メモリ520は、システム500内で情報を記憶する。1つの実装において、メモリ520は、コンピュータ可読媒体である。1つの実装において、メモリ520は、揮発性メモリユニットである。別の実装において、メモリ520は、不揮発性メモリユニットである。
ストレージデバイス530は、システム500に大容量ストレージを提供することができる。1つの実装において、ストレージデバイス530は、コンピュータ可読媒体である。様々な異なる実装において、ストレージデバイス530は、たとえば、ハードディスクデバイス、光ディスクデバイス、複数のコンピューティングデバイスによってネットワークを介して共有されるストレージデバイス(たとえば、クラウドストレージデバイス)、または何らかのその他の大容量ストレージデバイスを含み得る。
入力/出力デバイス540は、システム500に入力/出力動作を提供する。1つの実装において、入力/出力デバイス540は、ネットワークインターフェースデバイス、たとえばイーサネットカード、シリアル通信デバイス、たとえばRS-232ポート、および/またはワイヤレスインターフェースデバイス、たとえば802.11カードのうちの1つまたは複数を含み得る。別の実装において、入力/出力デバイスは、入力データを受信し、その他の入力/出力デバイス、たとえば、キーボード、プリンタ、およびディスプレイデバイス560に出力データを送信するように構成されたドライバデバイスを含み得る。しかし、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビクライアントデバイスなどのその他の実装も、使用され得る。
例示的な処理システムが図5に示されたが、本明細書に記載の対象の実装および機能的動作は、本明細書において開示された構造およびそれらの構造的均等物を含む、その他の種類のデジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。
媒体は、必ずしもファイルに対応しない。媒体は、その他のドキュメントを保持するファイルの一部に、問題のドキュメントに専用の単一のファイルに、または複数の連携されたメディアに記憶される場合がある。
本明細書に記載の対象の実施形態および動作は、本明細書において開示された構造およびそれらの構造的均等物を含む、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。本明細書に記載の対象の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために複数のコンピュータストレージ媒体(または1つのコンピュータストレージ媒体)上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成される伝播信号、たとえば、機械によって生成される電気的信号、光学的信号、または電磁的信号上に符号化され得る。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能であり、あるいはそれらに含まれることが可能である。さらに、コンピュータストレージ媒体は、伝播信号ではないが、人為的に生成された伝播信号に符号化されたコンピュータプログラム命令の送信元または送信先であることが可能である。また、コンピュータストレージ媒体は、1つまたは複数の別個の物理的構成要素または媒体(たとえば、複数のCD、ディスク、もしくはその他のストレージデバイス)であるか、またはそれらに含まれることが可能である。
本明細書に記載の動作は、1つもしくは複数のコンピュータ可読ストレージデバイスに記憶されたまたはその他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。
用語「データ処理装置」は、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、1つのシステムオンチップ、またはこれらの複数もしくは組合せを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置は、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービスインフラストラクチャ、分散型コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語もしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境内での使用に好適なその他の単位としての形態を含む任意の形態でデプロイされ得る。コンピュータプログラムは、ファイルシステム内のファイルに対応する場合があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト)、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるようにデプロイされ得る。
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによってアクションを行うために1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なプロセッサが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行される可能性があり、さらに、装置は、それらの専用の論理回路として実装される可能性がある。
コンピュータプログラムの実行に好適なプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサとの両方を含む。概して、プロセッサは、読み出し専用メモリ、またはランダムアクセスメモリ、またはこれらの両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令に従ってアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概してコンピュータは、データを記憶するための1つもしくは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはこれらの大容量ストレージデバイスからデータを受け取るか、もしくはこれらの大容量ストレージデバイスにデータを転送するか、もしくはそれら両方を行うために動作可能に結合される。しかし、コンピュータは、そのようなデバイスを有していなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に組み込まれることが可能である。コンピュータプログラム命令およびデータを記憶するのに好適なデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完され得るか、または専用論理回路に組み込まれ得る。
ユーザとのインタラクションを提供するために、本明細書に記載の対象の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響、発話、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応じてユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。
本明細書に記載の対象の実施形態は、バックエンドコンポーネントを、たとえば、データサーバとして含むか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書に記載の対象の実装とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムに実装されることが可能である。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実施形態において、サーバは、(たとえば、クライアントデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受け取る目的で)クライアントデバイスにデータ(たとえば、HTMLページ)を送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザのインタラクションの結果)が、サーバにおいてクライアントデバイスから受信され得る。
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性があるものの範囲に対する限定とも見なされるべきでなく、むしろ、特定の発明の特定の実施形態に固有の特徴の説明と見なされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態において組み合わせて実装されることも可能である。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々にまたは任意の好適な部分的組合せで実装されることも可能である。さらに、特徴は、特定の組合せで働くものとして上で説明されている場合があり、最初にそのように主張されてさえいる場合があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されることが可能であり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする可能性がある。
同様に、動作が図中に特定の順序で示されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である場合がある。さらに、上述の実施形態における様々なシステムコンポーネントの分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるかまたは複数のソフトウェア製品にパッケージングされることが可能であることを理解されたい。
このように、対象の特定の実施形態が説明された。その他の実施形態は、添付の請求項の範囲内にある。場合によっては、請求項に挙げられたアクションは、異なる順序で実行され、それでも所望の結果を達成することができる。加えて、添付の図面に示されたプロセスは、所望の結果を達成するために、必ずしも示された特定の順序または逐次的順序である必要はない。特定の実装においては、マルチタスクおよび並列処理が有利である場合がある。