(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-11
(45)【発行日】2023-12-19
(54)【発明の名称】正確な位置イベント測定値を決定する際のデータ操作の防止とユーザのプライバシの保護
(51)【国際特許分類】
G06F 21/60 20130101AFI20231212BHJP
G06F 21/64 20130101ALI20231212BHJP
【FI】
G06F21/60
G06F21/64
(21)【出願番号】P 2022530967
(86)(22)【出願日】2021-06-22
(86)【国際出願番号】 US2021038403
(87)【国際公開番号】W WO2021262669
(87)【国際公開日】2021-12-30
【審査請求日】2022-07-20
(32)【優先日】2020-06-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】アレックス・ダニエル・ジェイコブソン
(72)【発明者】
【氏名】ガン・ワン
【審査官】平井 誠
(56)【参考文献】
【文献】特開2001-134650(JP,A)
【文献】特表2010-519788(JP,A)
【文献】米国特許出願公開第2008/0182592(US,A1)
【文献】特表2009-532749(JP,A)
【文献】米国特許出願公開第2020/0082113(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-88
(57)【特許請求の範囲】
【請求項1】
クライアントデバイスによって、デジタルコンポーネントに対応する1つまたは複数の物理的位置を定義するジオフェンスデータを備える前記デジタルコンポーネントを提示するステップと、
前記デジタルコンポーネントの提示に応答して、前記クライアントデバイスの信頼できるプログラムによって、提示イベントデータ構造に、前記ジオフェンスデータを指定する提示イベントデータ要素を記憶するステップと、
前記信頼できるプログラムによって、前記クライアントデバイスの現在の位置と前記ジオフェンスデータを示す位置情報に基づいて、前記クライアントデバイスが前記1つまたは複数の物理的位置のうちの1つにあることを検出するステップと、
前記クライアントデバイスが前記1つまたは複数の物理的位置のうちの1つにあることの検出に応答して、前記デジタルコンポーネントの位置イベントが発生したことを示すイベントレポートを前記デジタルコンポーネントのレポートシステムに
提供するステップであって、前記位置イベントが、前記デジタルコンポーネントが前記クライアントデバイスによって提示された後の前記1つの物理的位置への訪問である、ステップと
を備え
、
前記イベントレポートを前記レポートシステムに提供するステップが、
しきい値暗号化スキームを使用して、少なくとも前記1つの物理的位置の位置識別子を備えるイベントデータを指定するシークレットの共有を生成するステップと、
前記イベントレポートに前記シークレットの前記共有を含めるステップと
を備え、
前記レポートシステムが、前記シークレットのそれぞれの共有を備える少なくともしきい値数のイベントレポートが、前記デジタルコンポーネントを提示するクライアントデバイスから受信されたときに、前記シークレットを復号化する、
方法。
【請求項2】
前記
レポートシステムに追加のイベントデータを送るステップをさらに備え、前記追加のイベントデータが、
前記クライアントデバイスのデバイス公開鍵と、
認証トークンが作成された時刻を示す認証トークンの作成時刻と、
前記クライアントデバイスの信頼性のレベルを示すデバイス整合性トークンと、
前記1つの物理的位置の位置識別子を備えるペイロードデータと
を備えるデータのセットと、
前記デバイ
ス公開鍵に対応するデバイスの秘密鍵を使用して生成されたデータの前記セットのデジタル署名と
を備える認証トークンを備える、請求項1に記載の方法。
【請求項3】
前記認証トークンの前記ペイロードデータが(i)前記1つの物理的位置への前記訪問の訪問期間、(ii)前記訪問の開始時間、または(iii)前記訪問の終了時間のうちの少なくとも1つをさらに備える、請求項2に記載の方法。
【請求項4】
複数の訪問期間分位数の所与の訪問期間分位数に前記訪問の訪問期間を割り当てて、前記ペイロードデータに前記訪問期間分位数を含めるステップ、
複数の開始時間分位数の所与の開始時間分位数に前記訪問の開始時間を割り当てて、前記ペイロードデータに前記所与の開始時間分位数を含めるステップ、または、
複数の終了時間分位数の所与の終了時間分位数に前記訪問の終了時間を割り当てて、前記ペイロードデータに前記所与の終了時間分位数を含めるステップ
のうちの少なくとも1つをさらに備える、請求項2に記載の方法。
【請求項5】
前記デジタルコンポーネントの提示に応答して、提示認証トークンを備える提示レポートを前記レポートシステムに送信するステップをさらに備え、前記提示認証トークンが、データの前記セットと、データの前記セットの前記デジタル署名とを備える、請求項2に記載の方法。
【請求項6】
クライアントデバイスによって、デジタルコンポーネントに対応する1つまたは複数の物理的位置を定義するジオフェンスデータを備える前記デジタルコンポーネントを提示するステップと、
前記デジタルコンポーネントの提示に応答して、前記クライアントデバイスの信頼できるプログラムによって、提示イベントデータ構造に、前記ジオフェンスデータを指定する提示イベントデータ要素を記憶するステップと、
前記信頼できるプログラムによって、前記クライアントデバイスの現在の位置と前記ジオフェンスデータを示す位置情報に基づいて、前記クライアントデバイスが前記1つまたは複数の物理的位置のうちの1つにあることを検出するステップと、
前記クライアントデバイスが前記1つまたは複数の物理的位置のうちの1つにあることの検出に応答して、前記デジタルコンポーネントの位置イベントが発生したことを示すイベントレポートを前記デジタルコンポーネントのレポートシステムに提供するステップであって、前記位置イベントが、前記デジタルコンポーネントが前記クライアントデバイスによって提示された後の前記1つの物理的位置への訪問である、ステップと、
第1の集約サーバに、前記デジタルコンポーネントの前記提示に応答して、(i)少なくとも前記レポートシステムのリソースロケータと、前記クライアントデバイスまたは前記クライアントデバイスのユーザの識別子と、および前記1つの物理的位置の位置識別子との暗号化された組合せを備える第1の暗号化されたデータ要素と、(ii)前記第1の暗号化されたデータ要素に基づいて生成された第1のブラインド署名とを備える、前記デジタルコンポーネントの
前記提示
のための暗号化された提示データと、第1のブラインド署名された鍵とを備える提示レポートを送信するステップ
を備え、
前記イベントレポートを送信するステップが、前記イベントレポートを第2の集約サーバに送信するステップを備え、前記イベントレポートが、(i)少なくとも前記レポートシステム
のリソースロケータと、前記クライアントデバイスまたは前記クライアントデバイスの前記ユーザの前記識別子と、前記位置識別子との暗号化された組合せを備える、第2の暗号化されたデータ要素と、(ii)前記第2の暗号化されたデータ要素に基づいて生成された第2のブラインド署名とを備える、前記デジタルコンポーネントの暗号化されたイベントデータと第2のブラインド署名された鍵とを備え、
前記第1の集約サーバと前記第2の集約サーバが、前記暗号化された提示データと前記暗号化されたイベントデータを結合および復号化するために、前記第1と第2のブラインド署名された鍵を使用してマルチパーティ計算を実行する
、
方法。
【請求項7】
前記第1の集約サーバと前記第2の集約サーバが、少なくともしきい値数の異なるクライアントデバイスから前記ブラインド署名された鍵を受信したブラインド署名された鍵ごとに暗号化された提示データと暗号化されたイベントデータのみを復号化するために、しきい値処理技法を前記マルチパーティ計
算に適用する、請求項
6に記載の方法。
【請求項8】
前記イベントレポートを前記レポートシステムに送信する前に、前記クライアントデバイスのユーザに、前記イベントレポートを送信する許可を促すステップをさらに備え、前記ユーザが、前記イベントレポートを送信する許可を提供したことに応答して、前記イベントレポートが前記レポートシステムに送信される、請求項1から
7のいずれか一項に記載の方法。
【請求項9】
前記信頼できるプログラムが、前記クライアントデバイスのオペレーティングシステムを備える、請求項1から
8のいずれか一項に記載の方法。
【請求項10】
クライアントデバイスの1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
デジタルコンポーネントに対応する1つまたは複数の物理的位置を定義するジオフェンスデータを備える前記デジタルコンポーネントを提示することと、
前記デジタルコンポーネントの提示に応答して、前記クライアントデバイスの信頼できるプログラムによって、提示イベントデータ構造に、前記ジオフェンスデータを指定する提示イベントデータ要素を記憶することと、
前記信頼できるプログラムによって、前記クライアントデバイスの現在の位置と前記ジオフェンスデータを示す位置情報に基づいて、前記クライアントデバイスが前記1つまたは複数の物理的位置のうちの1つにあることを検出することと、
前記クライアントデバイスが前記1つまたは複数の物理的位置のうちの1つにあることの検出に応答して、前記デジタルコンポーネントの位置イベントが発生したことを示すイベントレポートを前記デジタルコンポーネントのレポートシステムに
提供することであって、前記位置イベントが、前記デジタルコンポーネントが前記クライアントデバイスによって提示された後の前記1つの物理的位置への訪問である、送信することと、
を備える動作を実行させる命令を記憶する、1つまたは複数のコンピュータ可読媒体と
を備え
、
前記イベントレポートを前記レポートシステムに提供することが、
しきい値暗号化スキームを使用して、少なくとも前記1つの物理的位置の位置識別子を備えるイベントデータを指定するシークレットの共有を生成することと、
前記イベントレポートに前記シークレットの前記共有を含めることと
を備え、
前記レポートシステムが、前記シークレットのそれぞれの共有を備える少なくともしきい値数のイベントレポートが、前記デジタルコンポーネントを提示するクライアントデバイスから受信されたときに、前記シークレットを復号化する、
システム。
【請求項11】
前記
動作がレポートシステムに追加のイベントデータを送ることを備え、前記追加のイベントデータが、
前記クライアントデバイスのデバイス公開鍵と、
認証トークンが作成された時刻を示す認証トークンの作成時刻と、
前記クライアントデバイスの信頼性のレベルを示すデバイス整合性トークンと、
前記1つの物理的位置の位置識別子を備えるペイロードデータと
を備えるデータのセットと、
前記デバイ
ス公開鍵に対応するデバイスの秘密鍵を使用して生成されたデータの前記セットのデジタル署名と
を備える認証トークンを備える、請求項
10に記載のシステム。
【請求項12】
前記認証トークンの前記ペイロードデータが(i)前記1つの物理的位置への前記訪問の訪問期間、(ii)前記訪問の開始時間、または(iii)前記訪問の終了時間のうちの少なくとも1つをさらに備える、請求項1
1に記載のシステム。
【請求項13】
前記動作が、
複数の訪問期間分位数の所与の訪問期間分位数に前記訪問の訪問期間を割り当てて、前記ペイロードデータに前記訪問期間分位数を含めること、
複数の開始時間分位数の所与の開始時間分位数に前記訪問の開始時間を割り当てて、前記ペイロードデータに前記所与の開始時間分位数を含めること、または、
複数の終了時間分位数の所与の終了時間分位数に前記訪問の終了時間を割り当てて、前記ペイロードデータに前記所与の終了時間分位数を含めること
のうちの少なくとも1つを備える、請求項11に記載のシステム。
【請求項14】
前記動作が、前記デジタルコンポーネントの提示に応答して、提示認証トークンを備える提示レポートを前記レポートシステムに送信することを備え、前記提示認証トークンが、データの前記セットと、データの前記セットの前記デジタル署名とを備える、請求項1
1に記載のシステム。
【請求項15】
クライアントデバイスの1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
デジタルコンポーネントに対応する1つまたは複数の物理的位置を定義するジオフェンスデータを備える前記デジタルコンポーネントを提示することと、
前記デジタルコンポーネントの提示に応答して、前記クライアントデバイスの信頼できるプログラムによって、提示イベントデータ構造に、前記ジオフェンスデータを指定する提示イベントデータ要素を記憶することと、
前記信頼できるプログラムによって、前記クライアントデバイスの現在の位置と前記ジオフェンスデータを示す位置情報に基づいて、前記クライアントデバイスが前記1つまたは複数の物理的位置のうちの1つにあることを検出することと、
前記クライアントデバイスが前記1つまたは複数の物理的位置のうちの1つにあることの検出に応答して、前記デジタルコンポーネントの位置イベントが発生したことを示すイベントレポートを前記デジタルコンポーネントのレポートシステムに提供することであって、前記位置イベントが、前記デジタルコンポーネントが前記クライアントデバイスによって提示された後の前記1つの物理的位置への訪問である、送信することと、
第1の集約サーバに、前記デジタルコンポーネントの前記提示に応答して、(i)少なくとも前記レポートシステムのリソースロケータと、前記クライアントデバイスまたは前記クライアントデバイスのユーザの識別子と、および前記1つの物理的位置の位置識別子との暗号化された組合せを備える第1の暗号化されたデータ要素と、(ii)前記第1の暗号化されたデータ要素に基づいて生成された第1のブラインド署名とを備える、前記デジタルコンポーネントの前記提示
のための暗号化された提示データと、第1のブラインド署名された鍵とを備える提示レポートを送信することと、
を備える動作を実行させる命令を記憶する、1つまたは複数のコンピュータ可読媒体と、
を備え、
前記イベントレポートを送信することが、前記イベントレポートを第2の集約サーバに送信することを備え、前記イベントレポートが、(i)少なくとも前記レポートシステム
のリソースロケータと、前記クライアントデバイスまたは前記クライアントデバイスの前記ユーザの前記識別子と、前記位置識別子との暗号化された組合せを備える、第2の暗号化されたデータ要素と、(ii)前記第2の暗号化されたデータ要素に基づいて生成された第2のブラインド署名とを備える、前記デジタルコンポーネントの暗号化されたイベントデータと第2のブラインド署名された鍵とを備え、
前記第1の集約サーバと前記第2の集約サーバが、前記暗号化された提示データと前記暗号化されたイベントデータを結合および復号化するために、前記第1と第2のブラインド署名された鍵を使用してマルチパーティ計算を実行する
、
システム。
【請求項16】
前記第1の集約サーバと前記第2の集約サーバが、少なくともしきい値数の異なるクライアントデバイスから前記ブラインド署名された鍵を受信したブラインド署名された鍵ごとに暗号化された提示データと暗号化されたイベントデータのみを復号化するために、しきい値処理技法を前記マルチパーティ計
算に適用する、請求項1
5に記載のシステム。
【請求項17】
前記動作が、前記イベントレポートを前記レポートシステムに送信する前に、前記クライアントデバイスのユーザに、前記イベントレポートを送信する許可を促すことを備え、前記ユーザが、前記イベントレポートを送信する許可を提供したことに応答して、前記イベントレポートが前記レポートシステムに送信される、請求項
10から16のいずれか一項に記載のシステム。
【請求項18】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項
1から9のいずれか一項に記載の方法を備える動作を実行させる命令を記憶する、1つまたは複数のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、正確な位置イベント測定値を決定する際のデータ操作の防止とユーザのプライバシの保護に関する。
【背景技術】
【0002】
クライアントデバイスは、インターネットなどのパブリックネットワークを介してデータを送信する。これらの通信は、意図された受信者以外のエンティティによって傍受および/または変更される可能性がある。さらに、エンティティはネットワークアイデンティティを偽造し、これらの偽造されたネットワークアイデンティティから発信されたように見えるデータを送信することができる。
【発明の概要】
【課題を解決するための手段】
【0003】
本明細書は、不正行為を防止し、ユーザのプライバシを保護する方法で位置イベント測定値を生成することに関連する技術について説明する。
【0004】
一般に、本明細書に記載されている主題の1つの革新的な態様は、クライアントデバイスによって、デジタルコンポーネントに対応する1つまたは複数の物理的位置を定義するジオフェンスデータを備えるデジタルコンポーネントを提示するステップを含む方法において具体化することができる。デジタルコンポーネントの提示に応答して、クライアントデバイスの信頼できるプログラムは、提示イベントデータ構造に、ジオフェンスデータを指定する提示イベントデータ要素を記憶する。信頼できるプログラムは、クライアントデバイスの現在の位置とジオフェンスデータを示す位置情報に基づいて、クライアントデバイスが1つまたは複数の物理的位置のうちの1つにあることを検出する。クライアントデバイスが1つまたは複数の物理的位置のうちの1つにあることの検出に応答して、イベントレポートがデジタルコンポーネントのレポートシステムに送信される。イベントレポートは、デジタルコンポーネントの位置イベントが発生したことを示す。この態様の他の実装形態は、コンピュータストレージデバイス上に符号化された、方法の態様を実行するように構成された、対応する装置、システム、およびコンピュータプログラムを含む。
【0005】
これらおよび他の実装形態は、それぞれ任意で、次の機能のうちの1つまたは複数を含むことができる。いくつかの態様では、イベントレポートは認証トークンを含む。認証トークンは、クライアントデバイスのデバイス公開鍵と、認証トークンが作成された時刻を示す認証トークンの作成時刻と、クライアントデバイスの信頼性のレベルを示すデバイス整合性トークンと、1つの物理的位置の位置識別子を備えるペイロードデータとを含むデータのセットを含むことができる。認証トークンはまた、デバイスの公開鍵に対応するデバイスの秘密鍵を使用して生成されたデータのセットのデジタル署名を含むことができる。
【0006】
いくつかの態様では、認証トークンのペイロードデータは、(i)1つの物理的位置への訪問の訪問期間、(ii)訪問の開始時間、または(iii)訪問の終了時間のうちの少なくとも1つを含む。いくつかの態様は、複数の訪問期間分位数の所与の訪問期間分位数に訪問の訪問期間を割り当てて、ペイロードデータに訪問期間分位数を含めるステップ、複数の開始時間分位数の所与の開始時間分位数に訪問の開始時間を割り当てて、ペイロードデータに所与の開始時間分位数を含めるステップ、および/または、複数の終了時間分位数の所与の終了時間分位数に訪問の終了時間を割り当てて、ペイロードデータに所与の終了時間分位数を含めるステップを含むことができる。いくつかの態様は、デジタルコンポーネントの提示に応答して、提示認証トークンを含む提示レポートをレポートシステムに送信するステップを含むことができる。提示認証トークンは、データのセットと、データのセットのデジタル署名とを含むことができる。
【0007】
いくつかの態様では、イベントレポートをレポートシステムに提供するステップは、しきい値暗号化スキームを使用して、少なくとも1つの物理的位置の位置識別子を含むイベントデータを指定するシークレットの共有を生成するステップと、イベントレポートにシークレットの共有を含めるステップとを含む。レポートシステムは、シークレットのそれぞれの共有を備える少なくともしきい値数のイベントレポートが、デジタルコンポーネントを提示するクライアントデバイスから受信されたときに、シークレットを復号化することができる。
【0008】
いくつかの態様は、第1の集約サーバに、デジタルコンポーネントの提示に応答して、(i)少なくともレポートシステムのリソースロケータと、クライアントデバイスまたはクライアントデバイスのユーザの識別子と、1つの物理的位置の位置識別子との暗号化された組合せを含む第1の暗号化されたデータ要素と、(ii)第1の暗号化されたデータ要素に基づいて生成された第1のブラインド署名とを含む、デジタルコンポーネントの提示用の暗号化された提示データと、第1のブラインド署名された鍵とを含む提示レポートを送信するステップを含む。イベントレポートを送信するステップは、イベントレポートを第2の集約サーバに送信するステップを含む。イベントレポートは、(i)少なくともレポートシステムのリソースロケータと、クライアントデバイスまたはクライアントデバイスのユーザの識別子と、位置識別子との暗号化された組合せを含む、第2の暗号化されたデータ要素と、(ii)第2の暗号化されたデータ要素に基づいて生成された第2のブラインド署名とを含む、デジタルコンポーネントの暗号化されたイベントデータと第2のブラインド署名された鍵とを含むことができる。第1の集約サーバと第2の集約サーバは、暗号化された提示データと暗号化されたイベントデータを結合および復号化するために、第1と第2のブラインド署名された鍵を使用してマルチパーティ計算を実行することができる。第1の集約サーバと第2の集約サーバは、少なくともしきい値数の異なるクライアントデバイスからブラインド署名された鍵を受信したブラインド署名された鍵ごとに暗号化された提示データと暗号化されたイベントデータのみを復号化するために、しきい値処理技法をマルチパーティ計算プロセスに適用することができる。
【0009】
いくつかの態様は、イベントレポートをレポートシステムに送信する前に、クライアントデバイスのユーザに、イベントレポートを送信する許可を促すステップを含む。ユーザが、イベントレポートを送信する許可を提供したことに応答して、イベントレポートをレポートシステムに送信することができる。いくつかの態様では、信頼できるプログラムは、クライアントデバイスのオペレーティングシステムである。
【0010】
本明細書に記載されている主題は、以下の利点のうちの1つまたは複数を実現するために、特定の実施形態において実装することができる。クライアントデバイスに位置イベントを報告させることによって、位置イベント測定値のレポートと集計の精度、たとえば、ユーザがデジタルコンポーネントに対応するエンティティの物理的位置を訪問する回数が向上する。本明細書で説明されている技法がない場合、これらの測定値は正確で信頼できる方法で決定されない可能性がある。
【0011】
説明されている技法はまた、データの操作を防ぎ、侵害されたクライアントデバイスや不正なクライアントデバイスからのデータの集約を防ぐ方法で位置イベントが報告されることを保証する。たとえば、位置イベントデータは、クライアントデバイスの秘密鍵を使用してデジタル署名された認証トークンを使用して報告できるため、認証トークンのデータの操作を検出することができる。認証トークンはまた、クライアントデバイスが信頼できるかどうかを示すデバイス整合性トークンを含むことができ、これは、レポートされたデータが信頼できるデバイスから確実に受信されるように、クライアントデバイスを信頼できると認定した信頼できるデバイス評価者のデジタル署名を含む。ユーザのプライバシを保護し、位置イベントデータをレポートおよび集約する際の不正を防ぐために、安全なマルチパーティ計算、差分プライバシ技法(または、同様の技法)、および/またはしきい値暗号化技法も使用することができる。本明細書で説明されている技法は、デジタルコンポーネントがユーザに提示された後、デジタルコンポーネントに対応するエンティティの物理的位置を実際に訪問するユーザの数を決定するための効率的で信頼性の高い方法を提供し、位置イベントカウントの改ざんを防ぎ、ユーザのプライバシを保護する。そのような技法を使用すると、受信者は追加のセキュリティ対策を実行することなく要求および他の通信を信頼できるようになり、したがって、そのようなプロセスを実行するために通常消費される計算要件(たとえば、CPUサイクル)およびネットワーク帯域幅が削減される。
【0012】
前述の主題の様々な特徴および利点を、図面に関して以下に説明する。追加の特徴および利点は、本明細書に記載の主題および特許請求の範囲から明らかである。
【図面の簡単な説明】
【0013】
【
図1】位置イベント測定値が決定される環境のブロック図である。
【
図2】位置イベントデータを収集するための例示的なプロセスを示すスイムレーン図である。
【
図3】位置イベント測定値を決定するための例示的なプロセスを示す流れ図である。
【
図4】位置イベント測定値を決定するための例示的なプロセスを示す流れ図である。
【
図5】位置イベント測定値を決定するための例示的なプロセスを示す流れ図である。
【
図6】上記の動作を実行するために使用することができる例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0014】
様々な図面における同様の参照番号および名称は、同様の要素を示している。
【0015】
一般に、本明細書は、データ整合性を向上させ、データ操作、たとえば不正を防止し、位置イベントデータ、たとえば位置イベント測定値を報告および集約する際のユーザのプライバシを保護するシステムおよび技法について説明する。ユーザのプライバシ保護の所望のレベル、適用可能なプライバシルール、および/またはユーザの期待に基づいて、様々な技法を使用することができる。たとえば、集計レポートと比較して、イベントレベルの位置データレポートに様々な技法を使用することができる。以下でより詳細に説明するように、本明細書に記載のシステム、プログラム、または機能が、ユーザ情報(たとえば、ユーザの現在の位置)の収集を可能にし得、位置情報(都市、郵便番号、または州レベルなど)が取得されるユーザの地理的位置を一般化し得るかどうか、およびいつにするかの両方について、ユーザが選択できるようにする制御をユーザに提供することができるため、ユーザの特定の位置を決定することはできない。
【0016】
いくつかの実装形態では、クライアントデバイスの信頼できるコードは、位置イベントデータの有効性を認証する認証トークンを生成し、トークンが生成された後のデータの操作を防ぐ。信頼できるコードは、たとえば、アプリケーションのオペレーティングシステムコードまたはバイナリコードであり得る。認証トークンには、他のデータの中でも、トークンを送信するクライアントデバイスの信頼性のレベルを示すデータとデータのデジタル署名を含めることができるため、データの有効性は、たとえば、トークンが複数の中間エンティティを通過する場合でも、トークンを受信するエンティティによって検証することができる。
【0017】
集約位置イベント測定データを収集および決定するために、しきい値暗号化スキームを使用することができる。各クライアントデバイスは、シークレットの共有、たとえば、デジタルコンポーネントに関連付けられる位置ベースの変換のイベントデータを生成し、シークレットの共有をレポートシステムに送信するために、しきい値暗号化スキームを使用することができる。しきい値暗号化スキームを使用すると、レポートシステムは、クライアントデバイスからシークレットの共有のしきい値数が受信された場合にのみイベントデータを復号化することができる。これにより、エンティティが個々のユーザを追跡することができなくなる。
【0018】
位置イベント測定データを収集および集約するために、安全なマルチパーティ計算と差分プライバシ(または、同様の)技法を使用することができる。各クライアントデバイスは、暗号化された提示データを第1の集約サーバに送信し、暗号化された位置イベントデータを第2の集約サーバに送信することができる。暗号化されたデータは、集約サーバが提示データを位置イベントデータと結合し、安全なマルチパーティ計算を使用して暗号化されたデータを復号化できるようにする結合鍵を使用して送信することができる。同じイベント(たとえば、同じデジタルコンポーネントおよび同じ位置)のイベントデータが少なくともしきい値数のクライアントデバイスから受信された場合にのみデータが復号化されるようにするために、しきい値暗号化技法を使用することができる。差分プライバシ技法と同様に、測定データにランダムノイズを挿入するために、追加のプライバシ技法を使用することができる。
【0019】
図1は、位置イベント測定値が決定される例示的な環境100のブロック図である。例示的な環境100は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、モバイルネットワーク、またはそれらの組合せなどのデータ通信ネットワーク105を含む。ネットワーク105は、クライアントデバイス110、発行者130、ウェブサイト140、デジタルコンポーネント配信システム150、不正検出システム170、集約サーバ180-Aおよび180-B、レポートシステム190、およびジオフェンシングシステム195を接続する。例示的な環境100は、多くの異なるクライアントデバイス110、発行者130、ウェブサイト140、デジタルコンポーネント配信システム150、およびレポートシステム190を含み得る。
【0020】
ウェブサイト140は、ドメイン名に関連付けられ、1つまたは複数のサーバによってホストされる1つまたは複数のリソース145である。ウェブサイトの例は、テキスト、画像、マルチメディアコンテンツ、およびスクリプトなどのプログラミング要素を含むことができるHTML形式のウェブページのコレクションである。各ウェブサイト140は、ウェブサイト140を含む1つまたは複数のウェブサイトを制御、管理、および/または所有するエンティティである発行者130によって維持される。ドメインはドメインホストであり得、これは対応するドメイン名をホストするコンピュータ、たとえば、リモートサーバであり得る。
【0021】
リソース145は、ネットワーク105を介して提供することができる任意のデータである。リソース145は、リソース145に関連付けられるリソースアドレス、たとえば、ユニバーサルリソースロケータ(URL)によって識別される。リソースは、ほんの数例を挙げると、HTMLページ、ワードプロセッシングドキュメント、ポータブルドキュメントフォーマット(PDF)ドキュメント、画像、ビデオ、およびフィードソースを含む。リソースは、単語、フレーズ、画像、および音声などのコンテンツを含むことができ、これらのコンテンツは、埋込み情報(ハイパーリンクにおけるメタ情報など)および/または埋込み命令(スクリプトなど)を含み得る。
【0022】
クライアントデバイス110は、ネットワーク105を介して通信することができる電子デバイスである。例示的なクライアントデバイス110は、パーソナルコンピュータ、モバイル通信デバイス、たとえば、スマートフォン、およびネットワーク105を介してデータを送受信することができる他のデバイスを含む。クライアントデバイスはまた、マイクを通じてオーディオ入力を受け取り、スピーカを通じてオーディオ出力を出力するデジタルアシスタントデバイスを含むことができる。デジタルアシスタントデバイスはまた、画像をキャプチャし、情報を視覚的に提示するためのカメラおよび/またはディスプレイを含むことができる。デジタルアシスタントは、ウェアラブルデバイス(たとえば、時計またはメガネ)、スマートフォン、スピーカデバイス、タブレットデバイス、または別のハードウェアデバイスを含む、様々な形式のハードウェアデバイスにおいて実装することができる。
【0023】
クライアントデバイス110は、典型的には、ネットワーク105を介したデータの送受信を容易にするために、ウェブブラウザおよび/またはネイティブアプリケーションなどのアプリケーション112を含む。ネイティブアプリケーションは、特定のプラットフォームまたは特定のデバイス(たとえば、特定のオペレーティングシステムを備えたモバイルデバイス)用に開発されたアプリケーションである。発行者130は、ネイティブアプリケーションを開発し、クライアントデバイス110に提供する、たとえば、ダウンロード可能にすることができる。いくつかの実装形態では、クライアントデバイス110は、デジタルメディアデバイス、たとえば、ビデオをテレビにストリーミングするためにテレビまたは他のディスプレイにプラグインするストリーミングデバイスである。デジタルメディアデバイスはまた、ビデオをストリーミングし、および/またはリソースを提示するウェブブラウザおよび/または他のアプリケーションを含むことができる。
【0024】
ウェブブラウザは、たとえば、クライアントデバイス110のユーザがウェブブラウザのアドレスバーにリソース145のリソースアドレスを入力すること、または、リソースアドレスを参照するリンクを選択することに応答して、発行者130のウェブサイト140をホストするウェブサーバからリソース145を要求することができる。同様に、ネイティブアプリケーションは、発行者130のリモートサーバからアプリケーションコンテンツを要求することができる。
【0025】
いくつかのリソース145、アプリケーションページ、または他のアプリケーションコンテンツは、リソース145またはアプリケーションページを用いてデジタルコンポーネントを提示するためのデジタルコンポーネントスロットを含むことができる。本明細書全体で使用されているように、「デジタルコンポーネント」という語句は、デジタルコンテンツまたはデジタル情報の個別のユニット(たとえば、ビデオクリップ、オーディオクリップ、マルチメディアクリップ、画像、テキスト、または別のコンテンツのユニット)を指す。デジタルコンポーネントは、単一のファイルまたはファイルのコレクションとして物理メモリデバイスに電子的に記憶することができ、デジタルコンポーネントは、ビデオファイル、オーディオファイル、マルチメディアファイル、画像ファイル、またはテキストファイルの形式を取り、広告がデジタルコンポーネントの一種であるように、広告情報を含むことができる。たとえば、デジタルコンポーネントは、アプリケーション112によって提示されるウェブページまたは他のリソースのコンテンツを補足することを目的としたコンテンツであり得る。より具体的には、デジタルコンポーネントは、リソースコンテンツに関連するデジタルコンテンツを含み得る(たとえば、デジタルコンポーネントは、ウェブページコンテンツと同じトピック、または関連するトピックに関連し得る)。したがって、デジタルコンポーネント配信システム150によるデジタルコンポーネントの提供は、ウェブページまたはアプリケーションコンテンツを補足し、一般に強化することができる。
【0026】
アプリケーション112が、1つまたは複数のデジタルコンポーネントスロットを含むリソース145(または、アプリケーションコンテンツ)をロードするとき、アプリケーション112は、デジタルコンポーネント配信システム150からスロットごとのデジタルコンポーネントを要求することができる。次に、デジタルコンポーネント配信システム150は、デジタルコンポーネントプロバイダ160にデジタルコンポーネントを要求することができる。デジタルコンポーネントプロバイダ160は、リソース145および/またはアプリケーションコンテンツを提示するためのデジタルコンポーネントを提供するエンティティである。
【0027】
いくつかのデジタルコンポーネントは、エンティティの1つまたは複数の位置、たとえば、デジタルコンポーネントのサブジェクトに対応する。デジタルコンポーネントは、位置デジタルコンポーネントと呼ばれることもある。たとえば、1つまたは複数の物理的位置がある組織、たとえば店舗は、組織に関連するコンテンツを含むデジタルコンポーネントを作成することができる。場合によっては、コンテンツは、たとえば、住所または位置への道順の形で物理的位置に関連している。たとえば、レストランのオーナーは、レストランの住所を含むデジタルコンポーネントを作成することができる。
【0028】
他の例では、デジタルコンポーネントは、位置ベースのコンテンツを含まずに、エンティティの1つまたは複数の物理的位置に対応することができる。たとえば、国の組織によって作成されたデジタルコンポーネントは、特定の位置ベースのコンテンツがなくても、組織に関する視覚的なコンテンツを含み得る。
【0029】
エンティティは、1つまたは複数の位置の各々にジオフェンスデータを指定し、ジオフェンスデータをデジタルコンポーネントにリンクすることによって、デジタルコンポーネントを1つまたは複数の位置にリンクすることができる。ジオフェンスデータは、その位置の周りの境界を示すことができる。たとえば、ジオフェンスデータには、境界を定義する座標(たとえば、全地球測位システム(GPS)座標、または緯度と経度の座標)のセットを含むことができる。
【0030】
位置ごとに定義された境界は、任意の形状、たとえば、中心点と半径の座標によって表される円形領域、ポリゴンのコーナのシーケンスの座標によって表されるポリゴン、またはS2セルのコレクションであり得る。
【0031】
ジオフェンスは連続的である必要はない。たとえば、組織は、ローカルコミュニティに5つの物理的位置を有している場合があり、その場合、ジオフェンスは、5つの中心点と5つの対応する半径の緯度/経度によって表される5つの円形領域を含み得る。
【0032】
以下に説明するように、ジオフェンスデータは、デジタルコンポーネントに対応する位置イベントがいつ発生するかを決定するために使用される。位置イベントの例は、デジタルコンポーネントがユーザに提示された後、デジタルコンポーネントに対応する物理的位置(たとえば、対応するジオフェンスデータによって定義された境界内)を入力するユーザである。
【0033】
デジタルコンポーネントは、デジタルコンポーネントに対応する各物理的位置(たとえば、デジタルコンポーネントを作成したエンティティによって指定されたもの)の対応するジオフェンスデータ、デジタルコンポーネントの提示に関連付けられるイベントレベルのインプレッションデータ、提示の有効期限(以下で説明する)、およびデジタルコンポーネントのレポートが送信されるレポートシステム190のリソースロケータ、たとえば、ユニバーサルリソースロケータ(URL)を含むパラメータを指定する、たとえばメタデータの形式のデータを含むことができる。リソースロケータは、デジタルコンポーネントのレポートが送信されるeTLD+1(有効なトップレベルドメインに加えて、パブリックサフィックスよりも1つ多いラベル、たとえばexample.com、ここで.comはトップレベルドメインである)エンドポイントを含むことができる。いくつかの実装形態では、データはまた、デジタルコンポーネントに対応する物理的位置の営業時間、たとえば、店舗が開いている時間を含むことができる。
【0034】
クライアントデバイス110はまた、デジタルコンポーネントの提示およびデジタルコンポーネントの提示に続いて発生するイベントに関連する情報を指定するイベントレポートを送信する信頼できるプログラム114を含む。信頼できるプログラム114は、改ざんするのが難しい信頼性の高いソースからの信頼できるコードを含むことができる。たとえば、信頼できるプログラム114は、オペレーティングシステム、オペレーティングシステムの一部、ウェブブラウザなどであり得る。一般に、信頼できるプログラム114は侵入するのが難しく、実行者が信頼できるプログラム114を改ざんするために費やす必要がある時間の長さと労力は法外に高い。さらに、信頼できるプログラム114は信頼性の高いソースによって提供および維持されるため、発生する脆弱性はソースによって対処することができる。
【0035】
信頼できるプログラム114は、クライアントデバイス110に対してローカルであり得る。たとえば、信頼できるプログラム114は、クライアントデバイス110のオペレーティングシステムのデバイスドライバであり得る。いくつかの実装形態では、信頼できるプログラム114は、クライアントデバイス110に対して完全にローカルで動作し、ユーザ情報を送信する必要性を減らす。いくつかの実装形態では、信頼できるプログラム114は、クライアントデバイス110に対してローカルに、およびネットワーク105などのネットワークを介して動作することができる。たとえば、信頼できるプログラム114は、クライアントデバイス110にインストールされ、ネットワーク105を介して情報を送受信するウェブブラウザであり得る。
【0036】
位置デジタルコンポーネントがクライアントデバイス110によって提示されるとき、信頼できるプログラム114は、提示に関連するデータを、データベース、テーブル、または他の適切なデータ構造であり得る提示イベントデータ構造116に記憶することができる。提示イベントデータ構造116は、信頼できるプログラム114によって維持される安全なデータストレージの一部であり得る。信頼できるプログラム114は、提示イベントデータ構造116内の位置デジタルコンポーネントごとの提示イベントデータ要素を記憶することができる。位置デジタルコンポーネントの提示イベントデータ要素は、たとえば、位置デジタルコンポーネントのパラメータおよび/または他のデータ、ならびに提示が行われた時刻を含むことができる。たとえば、位置デジタルコンポーネントの提示イベントデータ要素は、デジタルコンポーネントのジオフェンスデータを含むことができる。
【0037】
信頼できるプログラム114は、デジタルコンポーネントによって指定された提示の有効期限に基づいて、位置デジタルコンポーネントの提示のための提示イベントデータを削除することができる。たとえば、提示の有効期限は、デジタルコンポーネントの提示イベントデータをクライアントデバイス110に記憶することができる時間の長さであり得る。その時間の長さが経過すると、信頼できるプログラム114は、位置デジタルコンポーネントの提示イベントデータを提示イベントデータ構造116から削除することができる。以下でより詳細に説明するように、信頼できるプログラム114は、デジタルコンポーネントによって指定されたリソースロケータを使用して、デジタルコンポーネントのレポートシステム190に提示イベントデータを送信することができる。
【0038】
信頼できるプログラム114および/またはアプリケーション112は、提示イベントデータ構造116に記憶されたジオフェンスデータによって定義された位置に入るために、クライアントデバイス110を監視することができる。たとえば、エンティティのアプリケーション112(たとえば、エンティティのネイティブアプリケーション)は、たとえば、ユーザがクライアントデバイス110の位置データにアクセスできるアプリケーションにオプトインした場合、クライアントデバイス110の現在の位置を決定するために、クライアントデバイス110の地図アプリケーションまたは他の位置アプリケーションと相互作用することができる。アプリケーション112(または、信頼できるプログラム114)はまた、現在の位置を、提示イベントデータ構造116に記憶されたジオフェンスデータと定期的に比較することができる。現在の位置が提示イベントデータ要素によって定義されたジオフェンス内にある場合、アプリケーション112(または信頼できるプログラム114)は、位置イベントが発生したと決定することができる。すなわち、ユーザは、クライアントデバイス110(または、以下に説明するように、ユーザの別のデバイス)によって提示されたデジタルコンポーネントのジオフェンスを入力した。
【0039】
いくつかの実装形態では、衛星ナビゲーション信号を受信し、現在のデバイスの位置を計算するために、デバイスにおけるGPSユニットがアクティブ化された場合、デバイスオペレーティングシステム、またはアプリケーション112、あるいは信頼できるプログラム114は、計算された位置を、提示イベントデータ構造116に記憶されたジオフェンスデータと比較することができる。いくつかの実装形態では、ワイヤレス無線コンポーネントまたはワイヤレス無線コンポーネントのデバイスドライバがワイヤレス信号強度の変化を検出した場合、あるいは別の異なるキャリア基地局に接続したとき、ワイヤレス無線コンポーネントのデバイスドライバ、またはオペレーティングシステムは、基地局からのワイヤレスキャリアの信号に基づいてデバイスの位置を再計算する。デバイスオペレーティングシステム、またはアプリケーション112、あるいは信頼できるプログラム114は、計算された位置を、提示イベントデータ構造116に記憶されたジオフェンスデータと比較することができる。いくつかの実装形態では、デバイスのWi-Fiまたはブルートゥース(登録商標)コンポーネントが、知られている位置にある別のWi-FiまたはブルートゥースデバイスからのWi-Fiまたはブルートゥース信号の存在を検出した場合、デバイスオペレーティングシステム、またはアプリケーション112、あるいは信頼できるプログラム114は、知られている位置を、提示イベントデータ構造116に記憶されたジオフェンスデータと比較することができる。したがって、クライアントデバイス110の位置を決定し、位置とジオフェンスデータとの間の比較をトリガするために、正確な位置情報を取得する様々な方法を使用することができる。
【0040】
いくつかの実装形態では、信頼できるプログラム114は、デジタルコンポーネントが位置イベントレポートに適格であることを検証することができる。たとえば、信頼できるプログラム114は、デジタルコンポーネントが位置イベントレポートに適格であるかどうかを検証するために、ジオフェンシングシステム195に要求を送信することができる。ジオフェンシングシステム195は、デジタルコンポーネントが位置イベントレポートに適格であるかどうかを決定するためにデジタルコンポーネントのデータを評価する、信頼できるエンティティによって動作される1つまたは複数のコンピュータの形態であり得る。この要求は、たとえば、デジタルコンポーネントのジオフェンスデータ、および/またはジオフェンスに対応する位置の名前または識別子を含むことができる。
【0041】
ジオフェンシングシステム195は、ジオフェンスのサイズ、所与の時間期間にその位置を訪問する人々の数(たとえば、1日、1週間、1か月あたりの人数)、および/またはその位置が機密(たとえば、特定の種類の診療所)として分類されるかどうかに基づいて、デジタルコンポーネントが位置イベントレポートに適格であるかどうかを決定することができる。たとえば、デジタルコンポーネントに対応する位置のサイズ(たとえば、ジオフェンスデータで定義されている)がしきい値を下回っている場合(たとえば、特定のユーザの位置の追跡を防ぐために)、デジタルコンポーネントは位置イベントレポートに適格ではない場合がある。別の例では、所与の時間期間中にその位置を訪問する人々の数がしきい値未満である場合(たとえば、やはり特定のユーザの位置の追跡を防ぐために)、デジタルコンポーネントは位置イベントレポートに適格ではない場合がある。これらのしきい値は、位置イベントレポートのユーザのプライバシのレベルに基づいて設定することができる。別の例では、位置が機密性の高い位置と一致するデジタルコンポーネントは、たとえば、これらの位置におけるユーザのプライバシを保護するために、位置イベントレポートに適格ではない場合がある。いくつかの実装形態では、ジオフェンシングシステム195は、3つのすべてのテストに合格した場合にのみ、デジタルコンポーネントは位置イベントレポートに適格であるとみなす。
【0042】
ジオフェンシングシステム195はまた、追加の検証を実施することができる。たとえば、ジオフェンシングシステム195は、デジタルコンポーネントに対応するエンティティがデジタルコンポーネントによって指定されたジオフェンシングエリア内に物理的位置を有する場合にのみ、デジタルコンポーネントは位置イベントレポートに適格であるとみなし得る。ジオフェンシングシステム195は、デジタルコンポーネントが位置イベントレポートに適格であるかどうかを示す信頼できるプログラム114への応答を提供することができる。デジタルコンポーネントが適格ではない場合、信頼できるプログラム114は、デジタルコンポーネントの提示イベントデータを提示イベントデータ構造116から削除することができ、そのデジタルコンポーネントの位置イベントを報告しない。
【0043】
信頼できるプログラム114は、様々な方法で位置イベントをレポートすることができる。いくつかの実装形態では、信頼できるプログラム114は、レポートシステム190にイベントレポートを提供する。レポートシステム190は、デジタルコンポーネントを提供するデジタルコンポーネントプロバイダ160のシステム、または位置イベント測定値をデジタルコンポーネントプロバイダ160に報告する別個のレポートエンティティのシステムであり得る。
【0044】
いくつかの実装形態では、イベントレポートは認証トークンの形式である。信頼できるプログラム114は、位置イベントの検出に応答して認証トークンを生成することができる。認証トークンは、データのセットと、データのセットに基づいて生成されたデジタル署名を含むことができる。データのセットは、クライアントデバイス110のデバイス公開鍵、認証トークンが信頼できるプログラム114によって作成される時間を示す認証トークン作成時間、不正検出システム170によって発行されたデバイス整合性トークン、およびペイロードデータを含むことができる。
【0045】
信頼できるプログラム114は、データのセットに含まれるデバイスの公開鍵に対応する、たとえば、数学的にリンクされているデバイスの秘密鍵を使用して、データのセットのデジタル署名を生成することができる。たとえば、デバイスの公開鍵とデバイスの秘密鍵は、非対称暗号化鍵のペアにすることができる。クライアントデバイス110は、その秘密鍵を機密に保つことができるので、クライアントデバイス110から認証トークンを受信するエンティティ、たとえば、レポートシステム190は、認証トークンの有効性を信頼することができる。
【0046】
デバイス整合性トークンは、たとえば、位置イベントが発生した時間またはその近くで、クライアントデバイス110の信頼性のレベルを示す。いくつかの実装形態では、信頼できるプログラム114は、デバイスレベルの不正信号を収集し、その信号を不正検出システム170に提供することができる。不正検出システム170は、不正信号を評価し、その評価に基づいて判断を下す、信頼できるエンティティの信頼できるシステムであり得る。不正検出システム170は、信頼できるプログラム114に対して、判断を含むデバイス整合性トークンを発行することができる。デバイス整合性トークンは、不正検出システム170の秘密鍵を使用して、判断のデジタル署名およびデバイス整合性トークンの任意の他のデータを含むことができる。このようにして、デバイス整合性トークンを含む認証トークンを受信するエンティティは、不正検出システム170の公開鍵を使用してデジタル署名を検証することによって、デバイス整合性トークンのデータが修正されていないことを検証することができる。デバイス整合性トークンのデータはまた、デバイス整合性トークンが作成された時刻を示すトークン作成時刻を含むことができる。これにより、トークンを受信するエンティティは、デバイス整合性トークンがクライアントデバイス110の現在の状態に対応し、古い状態に対応していないことを検証することができる。
【0047】
いくつかの実装形態では、不正検出システム170は、デバイスオペレーティングシステム/信頼できるプログラム114と協力して、またはその要求に従って、クライアントデバイス110の信頼性を定期的に評価し、クライアントデバイス110の安全な位置においてキャッシュされたデバイス整合性トークンを発行する。キャッシュされたデバイス整合性トークンは、最新の評価におけるデバイスの信頼性のレベルを示す。
【0048】
ペイロードデータは、デジタルコンポーネントの提示に関連付けられるイベントレベルのインプレッションデータ、ユーザが訪問した位置(たとえば、位置の一意の識別子であり、これは、提示イベントデータ構造内の位置のジオフェンスデータにマッピングすることができる)、位置イベントの開始時間(たとえば、クライアントデバイス110がその位置のジオフェンス内にあると検出された時間)、位置イベントの終了時間(たとえば、ジオフェンスに入った後、クライアントデバイス110がジオフェンス内にあるともはや検出されなくなった時間)、および/または位置イベントの合計期間(たとえば、終了時間と開始時間の差)を含むことができる。
【0049】
いくつかの実装形態では、ユーザのプライバシを保護するために、信頼できるプログラム114は、開始時間、終了時間、および/または期間を、実際の値ではなく分位数に割り当てることができる。開始時間および/または終了時間の分位数は、分および/または秒の範囲にすることができる。たとえば、開始時間および/または終了時間は、それぞれ対応する2分(または、他の適切な期間)の分位数に割り当てることができる。この例では、ユーザが午前10時1分にジオフェンスによって定義された位置を入力した場合、開始時間は午前10時から午前10時2分までの分位数に割り当てられ得る。時間期間分位数は、ユーザのプライバシを適切に保護し、それでもなおデジタルコンポーネントプロバイダ160に有用な訪問期間データを提供するように調整することができる。
【0050】
認証トークンのデータを取得した後、信頼できるプログラム114は、認証トークンを作成し、デバイスの秘密鍵を使用してデータのデジタル署名を生成することができる。次いで、信頼できるプログラム114は、認証トークンをレポートシステム190に送信するために、デジタルコンポーネントによって指定されたリソースロケータを使用することができる。以下に説明するように、レポートシステム190は、有効性が検証された場合、認証トークンの有効性を検証し、デジタルコンポーネントの位置イベント測定値を更新することができる。位置イベント測定値は、位置に対応するデジタルコンポーネントがユーザのクライアントデバイスによって提示された後、またはユーザによって相互作用された後に、ユーザが位置に訪問した回数にすることができる。
【0051】
いくつかの実装形態では、信頼できるプログラム114は、たとえば、認証トークンを送信するのではなく、または送信することに加えて、しきい値暗号化スキームを使用して、位置イベントをレポートシステム190にレポートする。各クライアントデバイス110の信頼できるプログラム114は、位置イベントを報告するために、同じしきい値暗号化スキームを使用することができる。信頼できるプログラム114が、デジタルコンポーネントに対して位置イベントが発生したと決定すると、信頼できるプログラム114は、シークレットの共有を生成するためにしきい値暗号化スキームを使用することができる。シークレットは、位置イベントデータ、たとえば、物理的位置の位置識別子、および/または物理的位置に対応するデジタルコンポーネントの識別子であり得る。シークレットはまた、位置イベントの期間、位置イベントの開始時間、および/または位置イベントの終了時間などの他のデータを含むことができる。これらの例では、しきい値の数のユーザが同じ開始時間(または、分位数の場合は同様)、同じ(または、同様の)終了時間、および/または同じ(または、同様の)期間を有している場合にのみ、シークレットを復号化することができる。しきい値暗号化スキームは、(t、n)しきい値暗号化スキームであり得、シークレットを復号化できるようにするために、n個のパーティからのシークレットの少なくともしきい値t共有を受信する必要がある。
【0052】
信頼できるプログラム114は、シークレットの共有をレポートシステム190に送信することができる。たとえば、信頼できるプログラム114は、鍵値ペアをレポートシステム190に送信することができる。鍵は、デジタルコンポーネントに対応するタグと、シークレットの共有である値であり得る。このようにして、レポートシステム190は、同じタグを有する共有を一緒にグループ化することができる。シークレットの共有の少なくともしきい値数がクライアントデバイス110から受信されると、レポートシステム190は、シークレット、たとえば、ユーザによって訪問された物理的位置の位置識別子を復号化することができる。次いで、レポートシステム190は、たとえば、クライアントデバイスから受信された個別の共有の数に基づいて、デジタルコンポーネントの位置イベント測定値を決定または更新することができる。すなわち、各共有は、デジタルコンポーネントがクライアントデバイス110において提示された後の位置への訪問を表すことができる。レポートシステム190は、共有数の合計を決定することによって訪問数を決定することができる。
【0053】
シークレットが、たとえば、訪問期間、開始時間、および/または終了時間を含むメタデータに関連付けられている(たとえば、リンクされている)場合、レポートシステム190は、同じ位置および/または同じデジタルコンポーネントの複数の復号化されたシークレットにわたる期間を集約することができる。たとえば、開始時間が午前10時の特定の位置のシークレットは、分位数が2時間ではないと仮定すると、開始時間が午後12時の同じ特定の位置のシークレットとは異なる。しかしながら、位置識別子は同じである。この例では、レポートシステム190は、各位置イベントの期間を決定し(たとえば、終了時間と開始時間の差または報告された期間に基づいて)、たとえば、期間の平均を決定することによって、位置の期間を集約することができる。
【0054】
イベントデータを暗号化するために、様々なタイプの(t、n)しきい値暗号化スキームを使用することができる。たとえば、シークレットの共有(たとえば、インプレッションおよび変換データ)を配信し、少なくともt個の共有が受信されたときにシークレットを回復するための、多項式または平面を使用する(t、n)しきい値暗号化スキームを使用することができる。特定の例では、しきい値暗号化スキームは、グループ鍵が平面を備え、測定データは各平面が交差する点にある平面ベースの暗号化スキーム、たとえばBlakleyのスキームであり得る。他の例では、しきい値暗号化スキームは、中国の剰余定理、プロアクティブなシークレット共有、検証可能なシークレット共有(VSS)、または他の適切なしきい値暗号化スキームを使用することができる。
【0055】
いくつかの実装形態では、信頼できるプログラム114は、提示イベントおよび位置イベントを集約サーバ180-Aおよび180-Bに報告する。たとえば、信頼できるプログラム114は、暗号化された提示データを、以下に説明するようにブラインド署名された結合鍵であり得る結合鍵とともに、集約サーバ180-Aに送信することができる。同様に、信頼できるプログラム114は、暗号化されたイベントデータを、ブラインド署名された結合鍵でもあり得る結合鍵とともに、集約サーバ180-Bに送信することができる。集約サーバ180-Aおよび180-Bは、イベントデータに対応する提示データを結合し、暗号化された提示データおよびイベントデータを復号化するために、安全なマルチパーティ計算を使用することができる。集約サーバ180-Aおよび180-Bはまた、少なくともしきい値数のクライアントデバイスから受信した結合された提示およびイベントデータのみを復号化して、ユーザのプライバシをより適切に保護するために、しきい値処理技法を使用することができる。集約サーバ180-Aおよび180-Bは、復号化されたデータをレポートシステム190に提供することができ、レポートシステム190は、復号化されたデータに基づいて位置イベント測定値を生成または更新することができる。集約サーバ180-Aおよび180-Bは、同じまたは異なる信頼できるエンティティによって維持および動作することができる。いくつかの実装形態では、信頼できるプログラム114は、代替の安全なマルチパーティ計算(MPC)設計に依存する集約サービスに提示および位置イベントを報告する。この集約サービスは、ユーザのプライバシを保護しながら測定データを集約するために、安全なMPC、および任意で差分プライバシ技法に依存することができる。集約サービスは、1つまたは複数の信頼できるエンティティによって動作することができる。
【0056】
いずれの実装形態においても、デジタルコンポーネントごとのレポートシステム190は、デジタルコンポーネントの位置イベント測定値を決定し、デジタルコンポーネントを提供するデジタルコンポーネントプロバイダ160に測定値を提供することができる。これらの測定値は、たとえば、デジタルコンポーネントがクライアントデバイス110において提示された回数、デジタルコンポーネントがクライアントデバイス110において相互作用された回数、クライアントデバイス110のユーザが、デジタルコンポーネントがクライアントデバイス110において提示された後にデジタルコンポーネントに対応する位置を訪問した回数、特定の時間範囲内に位置イベントが開始された回数、特定の時間範囲内に位置イベントが終了した回数、および/または位置イベントの平均期間を含むことができる。各デジタルコンポーネントプロバイダ160は、レポートシステム190を選択することができ、これは、デジタルコンポーネントプロバイダ160または異なるエンティティによって維持されるシステムであり得る。
【0057】
いくつかの実装形態はまた、差分プライバシ(または、同様の)技法を含むことができる。たとえば、わずかな割合の確率で、クライアントデバイス110は、実際に起こった位置イベントを報告しない。別の例では、わずかな割合の確率で、クライアントデバイス110は、決して起こらなかった位置イベントを報告する。別の例では、ランダムノイズが位置イベントの開始時間、終了時間、または期間に追加される。これらの追加のプライバシ技法は、ユーザに追加のプライバシを提供することができる。いくつかの実装形態では、集約サーバ180-Aおよび180-Bは、レポートをレポートシステム190に送信する前に、レポートに差分プライバシノイズを追加することができる。
【0058】
図2は、位置イベントデータを収集するための例示的なプロセスを示すスイムレーン図である。プロセス200は、クライアントデバイス110、デジタルコンポーネント配信システム150、不正検出システム170、レポートシステム190、およびジオフェンシングシステム195によって実行することができる。
【0059】
クライアントデバイス110は、デジタルコンポーネントをフェッチする(202)。たとえば、クライアントデバイス110は、デジタルコンポーネントスロットを含むリソースまたはアプリケーションコンテンツを提示することができる。それに応答して、クライアントデバイス110は、デジタルコンポーネント配信システム150からデジタルコンポーネントを要求することができる。
【0060】
デジタルコンポーネント配信システム150は、位置デジタルコンポーネントを返す(204)。上記のように、位置デジタルコンポーネントは、デジタルコンポーネントに対応する1つまたは複数の位置のジオフェンスデータ、デジタルコンポーネントの提示に関連付けられるイベントレベルのインプレッションデータ、デジタルコンポーネントのレポートが送信されるレポートシステム190の提示の有効期限とリソースロケータ(たとえば、eTLD+1)を含むパラメータを指定するデータを含むことができる。受信されると、クライアントデバイス110は、デジタルコンポーネントを提示することができる。
【0061】
クライアントデバイス110の信頼できるプログラム114は、デジタルコンポーネントの提示イベントデータ要素を記憶する(206)。提示イベントデータ要素は、デジタルコンポーネントのパラメータと、デジタルコンポーネントがクライアントデバイス110によって提示された時間を含むことができる。上記のように、信頼できるプログラム114は、デジタルコンポーネントによって指定された提示の有効期限に基づいて、提示イベントデータ要素を提示イベントデータ構造に一時的に記憶することができる。
【0062】
信頼できるプログラム114は、提示レポートをレポートシステム190に送信する(208)。信頼できるプログラム114は、提示レポートをレポートシステム190に送信するために、デジタルコンポーネントによって指定されたリソース位置を使用することができる。提示レポートは、たとえば、イベントレベルのインプレッションデータ、デジタルコンポーネントの識別子、および/またはデジタルコンポーネントによって指定されたジオフェンスデータ、ならびに/あるいは提示が発生したときのタイムスタンプ、提示が発生したデバイスの識別子、アプリケーションの識別子または提示が発生したウェブページのURL、提示が実際にユーザに表示されていることを証明するためにデバイスのオペレーティングシステムまたは信頼できるアプリケーションによって撮影されたスクリーンショット(または、スクリーンショットの画像ハッシュ)、ならびに/あるいは上記のメタデータが本物であることのデジタル署名の証明(たとえば、デジタル署名された認証トークン)を含むことができる。
【0063】
いくつかの実装形態では、たとえば、イベントデータが認証トークンを使用して報告される実装形態では、提示レポートは、提示認証トークンを含むか、またはその形式にすることができる。この提示認証トークンは、データのセットと、データのセットおよびクライアントデバイス110のクライアント秘密鍵を使用して生成されたデジタル署名とを含むことができる。データのセットは、クライアントデバイス110のデバイス公開鍵、提示認証トークンが信頼できるプログラム114によって作成される時間を示す提示認証トークン作成時間、不正検出システム170によって発行されたデバイス整合性トークン、およびペイロードデータを含むことができる。ペイロードデータには、イベントレベルのインプレッションデータ、および/またはデジタルコンポーネントの識別子、ならびに/あるいはデジタルコンポーネントによって指定されたジオフェンスデータを含むことができる。
【0064】
しきい値暗号化スキームを使用する実装形態では、提示データをイベントデータの一部として含むことができる。以下でより詳細に説明するように、安全なマルチパーティ計算を使用する実装形態では、提示レポートは、暗号化された提示データと結合鍵を含むことができる。安全なマルチパーティ計算を使用するいくつかの実装形態では、提示レポートを複数のシークレット共有に分割し、安全なマルチパーティ計算のセットアップにおけるパーティごとに1つの共有を設定することができる。
【0065】
デジタルコンポーネントとのユーザ相互作用が検出される(210)。ユーザ相互作用は、デジタルコンポーネントの選択、たとえばクリックにすることができる。クライアントデバイス110は、デジタルコンポーネントが提示されている間、デジタルコンポーネントとの相互作用を監視することができる。
【0066】
いくつかの実装形態では、信頼できるプログラム114は、クリックレポートをレポートシステム190に送信する(212)。クリックレポートは、デジタルコンポーネントとのユーザ相互作用が検出されたことを示すことができる。いくつかの実装形態では、クリックレポートは、認証トークンを含むか、またはその形式にすることができる。この認証トークンは、データのセットと、クライアントデバイス110のデータのセットおよび秘密鍵を使用して生成されたデジタル署名とを含むことができる。データのセットは、クライアントデバイス110のデバイス公開鍵、認証トークンが信頼できるプログラム114によって作成される時間を示す認証トークン作成時間、不正検出システム170によって発行されたデバイス整合性トークン、およびペイロードデータを含むことができる。ペイロードデータは、イベントレベルのインプレッションデータ、デジタルコンポーネントとのユーザ相互作用が検出されたことを指定するデータ、および/またはデジタルコンポーネントのジオフェンスデータを含むことができる。いくつかの実装形態では、信頼できるプログラム114は、たとえば1つは提示用でもう1つはユーザ相互作用用ではなく、デジタルコンポーネントとのユーザの相互作用が検出されたかどうかを指定する提示用の1つのレポートを送信する。
【0067】
クライアントデバイス110は、デジタルコンポーネントがジオフェンスおよび位置イベントレポートに適格であることを検証する(214)。たとえば、信頼できるプログラム114は、デジタルコンポーネントが位置イベントレポートに適格であるかどうかを検証するために、ジオフェンシングシステム195に要求を送信することができる。上記のように、ジオフェンシングシステム195は、ジオフェンスのサイズ、所与の時間期間にその位置を訪問する人々の数(たとえば、1日、1週間、1か月あたりの人数など)に基づいて、デジタルコンポーネントが位置イベントレポートに適格であるかどうか、ならびに/あるいは、その位置が機密として分類されるかどうか、および/またはデジタルコンポーネントプロバイダ160および/またはレポートシステム190がジオフェンシングエリアに店舗を有するエンティティと提携しているか、またはそれによって認可されているかどうかを決定することができる。
【0068】
ジオフェンシングシステム195は、信頼できるプログラムへの適格性応答を提供する(216)。応答は、デジタルコンポーネントがジオフェンスおよび位置イベントレポートに適格かどうかを示すことができる。
【0069】
デジタルコンポーネントが適格である場合、クライアントデバイス110は、デジタルコンポーネントに関してジオフェンスを監視することができる(218)。たとえば、アプリケーション112または信頼できるプログラム114は、クライアントデバイス110がジオフェンスによって定義された位置内にあるかどうかを決定するために、クライアントデバイス110の現在の位置を示す位置情報を、デジタルコンポーネントのジオフェンスデータによって定義されたジオフェンスと定期的(または、継続的に)比較することができる。
【0070】
クライアントデバイス110は、クライアントデバイス110が、デジタルコンポーネントのジオフェンスによって定義された領域内にあることを検出する(220)。すなわち、信頼できるプログラムまたはアプリケーションは、クライアントデバイス110の現在の位置が、比較に基づいてジオフェンスによって定義された位置内にあると決定することができる。
【0071】
クライアントデバイス110は、ジオフェンスに対応するインプレッションデータを検索することができる(222)。たとえば、信頼できるプログラムは、提示イベントデータ構造116内のデジタルコンポーネントの提示イベントデータ要素にアクセスし、イベントレベルのインプレッションデータを取得することができる。
【0072】
いくつかの実装形態では、クライアントデバイス110は、クライアントデバイス110のユーザに、クライアントデバイス110がデジタルコンポーネントのイベントレポートを送信するための許可を提供するように促すことができる(224)。たとえば、信頼できるプログラム114は、潜在的レポートまたはその後のすべての潜在的レポートごとに、ユーザを促すことができる。たとえば、信頼できるプログラム114は、ユーザがこの特定のレポートまたはすべてのレポートに対する許可を提供することを可能にするプロンプトを提示することができる。ユーザは、いずれかのオプションに許可を提供するか、レポートの送信を拒否することができる。上記の提示とクリックレポートにも同様のプロンプトを使用することができる。
【0073】
ユーザが許可を提供する場合、信頼できるプログラム114は、不正検出システムにデバイス整合性トークンを要求することができる(226)。信頼できるプログラムは、クライアントデバイス110からデバイスレベルの不正信号を収集し、その信号を不正検出システム170に提供することができる。上記のように、不正検出システム170は、不正信号を評価し、その評価に基づいて判断を下すことができる。デバイス整合性トークンを要求する動作は、プロセス200におけるこの時点で発生するものとして示されているが、この動作はいつでも発生する可能性がある。たとえば、信頼できるプログラム114は、たとえば、このプロセス200と非同期に、またはユーザ相互作用と非同期に、デバイス整合性トークンを定期的にフェッチおよびキャッシュすることができる。不正検出システム170は、信頼できるプログラム114に、判断を含むデバイス整合性トークンを送信することができる(228)。
【0074】
クライアントデバイス110は、イベントレポートを生成し、レポートシステム190に送信することができる(230)。いくつかの実装形態では、イベントレポートは、認証トークンを含むか、またはその形式にすることができる。この認証トークンは、データのセットと、データのセットおよびクライアントデバイス110のクライアント秘密鍵を使用して生成されたデジタル署名とを含むことができる。データのセットは、クライアントデバイス110のデバイス公開鍵、認証トークンが信頼できるプログラム114によって作成される時間を示す認証トークン作成時間、不正検出システム170によって発行されたデバイス整合性トークン、およびペイロードデータを含むことができる。
【0075】
ペイロードデータは、デジタルコンポーネントの提示に関連付けられるイベントレベルのインプレッションデータ、ユーザが訪問した位置(たとえば、位置の一意の識別子であり、これは、提示イベントデータ構造内の位置のジオフェンスデータにマッピングすることができる)、位置イベントの開始時間(たとえば、クライアントデバイス110がその位置のジオフェンス内にあると検出された時間)、位置イベントの終了時間(たとえば、ジオフェンスに入った後、クライアントデバイス110がジオフェンス内にあるともはや検出されなくなった時間)、および/または位置イベントの合計期間(たとえば、終了時間と開始時間の差)を含むことができる。上記のように、開始時間、終了時間、および/または期間を定量化することができる。
【0076】
しきい値暗号化が使用される実装形態では、信頼できるプログラム114は、以下でより詳細に説明するように、少なくともデジタルコンポーネントによって指定されたジオフェンスデータを備えるイベントデータを指定するシークレットの共有を含むイベントレポートを生成することができる。安全なマルチパーティ計算が使用される実装形態では、以下でより詳細に説明するように、イベントレポートは暗号化されたイベントデータと結合鍵を含むことができる。安全なマルチパーティ計算が使用される一部の実装形態では、イベントレポートを複数のシークレット共有に分割でき、安全なマルチパーティ計算のセットアップにおいてパーティごとに1つの共有である。
【0077】
レポートシステム190は、複数のクライアントデバイスからイベントレポートを受信し、報告されたデータに基づいて位置イベント測定値を生成することができる。
図3~
図5は、イベントレポートの有効性を決定するため、および/またはイベントレポートのデータを復号化し、位置イベント測定値を決定するための例示的なプロセスを示している。
【0078】
図3は、位置イベント測定値を決定するための例示的なプロセスを示す流れ図である。プロセス300は、たとえば、レポートシステム、たとえば、
図1のレポートシステム190によって実装することができる。プロセス300の動作はまた、非一時的であり得るコンピュータ可読媒体に記憶された命令として実装することができ、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス300の動作を実行させることができる。簡潔にするために、プロセス300は、
図1のレポートシステム190に関して説明されている。例示的なプロセス300は、イベントレベルの位置イベント測定データ、たとえば、デジタルコンポーネントがクライアントデバイスにおいて提示された後、ユーザがデジタルコンポーネントに対応する位置を訪問するかどうかを報告するために、認証トークンを使用する。
【0079】
レポートシステム190は、イベントレポートを受信する(302)。イベントレポートは、認証トークンを含むか、またはその形式にすることができる。この認証トークンは、データのセットと、イベントレポートを送信したクライアントデバイス110のデータのセットおよびクライアント秘密鍵を使用して生成されたデジタル署名とを含むことができる。データのセットは、クライアントデバイス110のデバイス公開鍵、認証トークンがクライアントデバイス110の信頼できるプログラム114によって作成される時間を示す認証トークン作成時間、不正検出システム170によって発行されたデバイス整合性トークン、およびペイロードデータを含むことができる。ペイロードデータは、デジタルコンポーネントの提示に関連付けられるイベントレベルのインプレッションデータ、ユーザが訪問した位置(たとえば、位置の一意の識別子)、位置イベントの開始時間、位置イベントの終了時間、および/または位置イベントの合計期間を含むことができる。上記のように、開始時間、終了時間、および/または期間を定量化することができる。
【0080】
レポートシステム190は、イベントレポートの整合性が有効であるかどうかを決定する(304)。レポートシステム190は、認証トークンのデータのセットおよび認証トークンのデジタル署名に基づいて、イベントレポートの整合性が有効であるかどうかを決定することができる。たとえば、レポートシステム190は、認証トークンに含まれるデバイス公開鍵を使用して、データのセットのデジタル署名を検証することを試みることができる。デジタル署名が生成されてからデータセット内のデータのいずれかが変更された場合、検証は失敗する。データのセットが同じである場合、検証は成功する。
【0081】
レポートシステム190が、イベントレポートの整合性が有効ではないと決定した場合、レポートシステム190は、デジタルコンポーネントの位置イベント測定値を更新しない(306)。
【0082】
レポートシステム190がイベントレポートの整合性が有効であると決定した場合、レポートシステムは、クライアントデバイス110の整合性が有効であるかどうかを決定する(308)。レポートシステム190は、認証トークンのデバイス整合性トークンを使用して、クライアントデバイス110の整合性が信頼できるかどうかを決定することができる。たとえば、レポートシステム190は、不正検出システム170がクライアントデバイス110は信頼できると決定したかどうかを決定するために、デバイス整合性トークンの判断を評価することができる。
【0083】
レポートシステム190はまた、デバイス整合性トークンのデジタル署名を検証することを試みることができる。たとえば、レポートシステム190は、デバイス整合性トークンのデジタル署名を検証することを試みるために、不正検出システム170の公開鍵およびデバイス整合性トークンのデータのセットを使用することができる。
【0084】
レポートシステム190はまた、デバイス整合性トークンのトークン作成時間を評価することができる。トークン作成時間が、認証トークン作成時間またはイベントレポートが送信または受信された時間のしきい値の時間の長さ以内にある場合、レポートシステム190は、デバイス整合性トークンは古くないと決定することができる。
【0085】
判断が、クライアントデバイスが信頼できることを示し、デバイス整合性トークンのデジタル署名が正常に検証され、デバイス整合性トークンが古くない場合、レポートシステム190は、クライアントデバイス110の整合性が有効であったと決定することができる。テストのいずれかが失敗した場合、レポートシステム190は、クライアントデバイス110の整合性が無効であると決定することができる。
【0086】
レポートシステム190が、クライアントデバイス110の整合性が有効ではないと決定した場合、レポートシステム190は、デジタルコンポーネントの位置イベント測定値を更新しない(306)。
【0087】
レポートシステム190が、クライアントデバイス110の整合性が有効であると決定した場合、レポートシステム190は、デジタルコンポーネントの位置イベント測定値を更新する(310)。たとえば、レポートシステム190は、デジタルコンポーネントがユーザのデバイスによって提示された後に、デジタルコンポーネントに対応する位置に入ったユーザの総数のカウントを更新することができる。すなわち、イベントレポートが1つの位置イベントに対応する場合、レポートシステム190は、カウントを1つ増やすことができる。デジタルコンポーネントが複数の位置に対応する場合(したがって、複数の位置のジオフェンスデータを含む場合)、レポートシステム190は、イベントレポートによって指定された位置のカウントを更新することができる。
【0088】
レポートシステム190はまた、イベントレポートのペイロードデータに基づいて他のメトリックを決定することができる。たとえば、レポートシステム190は、その位置への訪問の合計または平均期間を決定するために、期間を使用することができる。レポートシステム190はまた、各訪問の期間に基づいて、短期の訪問、中程度の訪問、および長期の訪問などの期間範囲への訪問を分類することができる。次いで、レポートシステム190は、各範囲の訪問数を決定することができる。
【0089】
レポートシステム190はまた、デジタルコンポーネントに対応する各位置への平均訪問期間、開始時間範囲内に各位置を訪問したユーザの数、および/または終了時間範囲内に訪問を終了したユーザの数を決定することができる。例示的なプロセス300は、位置イベントに関して説明されているが、デジタルコンポーネントが提示または相互作用された回数のカウントを決定するために、同様のプロセスを使用することができる。
【0090】
図4は、位置イベント測定値を決定するための例示的なプロセスを示す流れ図である。プロセス400は、たとえば、レポートシステム、たとえば、
図1のレポートシステム190によって実装することができる。プロセス400の動作はまた、非一時的であり得るコンピュータ可読媒体に記憶された命令として実装することができ、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス300の動作を実行させることができる。簡潔にするために、プロセス400は、
図1のレポートシステム190に関して説明されている。例示的なプロセス400は、集約位置イベント測定データ、たとえば、デジタルコンポーネントがクライアントデバイスにおいて提示された後、デジタルコンポーネントに対応する物理的位置を訪問するユーザの数のために、しきい値暗号化スキームを使用する。
【0091】
レポートシステム190は、複数のクライアントデバイスからイベントレポートを受信する(402)。各クライアントデバイス110が、デジタルコンポーネントに対応する位置イベントが発生したと決定すると、クライアントデバイスは、デジタルコンポーネントに対応するシークレットの共有を含むイベントレポートを生成することができる。各クライアントデバイス110は、シークレットの共有を生成するために共通のしきい値暗号化スキームを実装するように構成することができる。しきい値暗号化スキームは、グループ鍵が平面を含み、測定データは各平面が交差する点にある平面ベースの暗号化スキーム、たとえばBlakleyのスキームであり得る。他の例では、しきい値暗号化スキームは、中国の剰余定理、プロアクティブなシークレット共有、検証可能なシークレット共有(VSS)、または他の適切なしきい値暗号化スキームを使用することができる。
【0092】
シークレットは、デジタルコンポーネントのイベントデータであり得る。たとえば、イベントデータ、つまりシークレットは、訪問した位置の位置識別子を含むことができる。その位置への平均訪問期間を測定する場合、シークレットは、位置識別子と訪問期間または訪問期間分位数の組合せであり得る。同様に、特定の時間または特定の開始時間分位数内に開始された訪問数の測定の場合、イベントデータは、位置識別子と特定の開始時間または特定の開始時間分位数の組合せであり得る。特定の時間または特定の終了時間分位数内に終了した訪問数を測定する場合、イベントデータは、位置識別子と特定の終了時間または特定の終了時間分位数の組合せであり得る。イベントデータはまた、位置識別子、識別子またはインプレッションまたはデジタルコンポーネント、訪問期間(または、その分位数)、開始時間(または、その分位数)、および/または終了時間(または、その分位数)の組合せであり得る。
【0093】
いくつかの実装形態では、シークレットとして使用されるイベントデータは、不正検出システム170によってブラインド署名されたブラインド署名データである。この例では、クライアントデバイスの信頼できるプログラム114は、位置イベントのイベントデータを見えなくする(たとえば、曖昧にする)ために、ブラインド技法を使用することができる。一般に、ブラインド技法は、実際のイベントデータを非表示にするブラインドイベントデータを生成するためにインプレッションデータにブラインド係数を適用することができるため、ブラインドイベントデータを受信するエンティティは、ブラインド技法とブラインドインプレッションデータを生成するために使用されるパラメータ/鍵の知識がないと、実際のイベントデータを決定することができない。いくつかの実装形態では、信頼できるプログラム114は、デジタルコンポーネントのインプレッションデータを見えなくするために、インターネット技術特別調査委員会(IETF)ドラフト標準プロトコルである検証可能、忘却擬似ランダム関数(VOPRF)プロトコルを使用して、デジタルコンポーネントのイベントデータを見えなくする。他の適切なブラインド署名技法も使用することができる。
【0094】
信頼できるプログラム114は、ブラインドイベントデータをデバイスレベルの不正信号とともに不正検出システム170に送信することができる。不正検出システム170は、ブラインドイベントデータから実際のイベントデータにアクセスすることができないので、ブラインドデータのこの使用は、ユーザのプライバシを保護する。不正検出システム170は、クライアントデバイス110が信頼できるかどうかを決定するために、不正信号を評価することができる。クライアントデバイス110が信頼できる場合、不正検出システム170は、ブラインド技法を使用してブラインドイベントデータにデジタル署名し、ブラインド署名を信頼できるプログラム114に返すことができる。信頼できるプログラム114は、ブラインド署名を検証するために、ブラインド技法を使用することができる。信頼できるプログラム114はまた、イベントデータのブラインドを解除するために、ブラインド技法を使用することができる。
【0095】
信頼できるプログラム114は、シークレットの共有、たとえば、イベントデータまたはブラインド署名されたブラインドイベントデータを生成するために、しきい値暗号化スキームを使用することができる。信頼できるプログラム114はまた、イベントデータのタグを生成することができる。タグは、イベントデータを一意に識別し、イベントデータの少なくとも一部に基づく番号であり得る。たとえば、各信頼できるプログラム114は、各信頼できるプログラムが同じイベントデータに対して同じタグを生成するように、イベントデータに基づいてタグを生成するように構成することができる。
【0096】
次いで、信頼できるプログラム114は、イベントレポートをレポートシステム190に提供することができる。イベントレポートは、イベントデータおよびシークレットの共有を識別するタグを含むことができる。
【0097】
レポートシステム190は、同じタグを有する少なくともしきい値数の個別のイベントレポートが受信されたかどうかを決定する(404)。しきい値暗号化を使用すると、少なくともしきい値数のシークレットの個別の共有が受信されない限り、シークレットを復号化することはできない。同じタグを有する受信されたイベントレポートの数がしきい値より少ない場合、プロセス400は、追加のイベントレポートを待つためにステップ402に戻る。
【0098】
同じタグを有する受信イベントレポートの数がしきい値以上である場合、レポートシステム190はシークレットを復号化することができる(406)。レポートシステム190は、シークレット、たとえば、イベントデータまたはブラインド署名されたイベントデータを復号化するために、しきい値暗号化スキームおよびイベントレポートに含まれるシークレットの共有を使用することができる。
【0099】
イベントデータがブラインド署名されたイベントデータである場合、レポートシステム190は、クライアントデバイスが信頼できることを確認するために、ブラインド署名の有効性をチェックすることができる。いくつかの実装形態では、レポートシステム190は、ブラインド署名を検証する要求とともに、ブラインド署名されたブラインドイベントデータを不正検出システム170に送信することができる。不正検出システム170は、ブラインド署名を検証し、ブラインド署名が正常に検証されたかどうかに関するレポートを用いてレポートシステム190に応答するために、ブラインド技法を使用することができる。公的に検証可能なブラインド署名スキームに依存する他の実装形態では、レポートシステム190は、不正検出システム170にブラインド署名を検証するよう要求する必要はない。代わりに、レポートシステム190は、不正検出システム170から検証鍵をダウンロードした後、ブラインド署名を独立して検証することができる。
【0100】
レポートシステム190は、イベントレポートに基づいて、デジタルコンポーネントの位置イベント測定値を決定する(408)。たとえば、レポートシステム190は、デジタルコンポーネントがユーザのデバイスによって提示された後に、デジタルコンポーネントに対応する位置に入ったユーザの総数のカウントを決定することができる。これは、イベントデータのタグを含む受信した個別のイベントレポートの数に対応する場合がある。
【0101】
レポートシステム190はまた、シークレットに含まれるデータに応じて他のメトリックを決定することができる。たとえば、レポートシステム190は、その位置への訪問の合計または平均期間を決定するために、期間を使用することができる。レポートシステム190はまた、各訪問の期間に基づいて、短期の訪問、中程度の訪問、および長期の訪問などの期間範囲への訪問を分類することができる。次いで、レポートシステム190は、各範囲の訪問数を決定することができる。
【0102】
レポートシステム190はまた、デジタルコンポーネントに対応する各位置への平均訪問期間、開始時間範囲内に各位置を訪問したユーザの数、および/または終了時間範囲内に訪問を終了したユーザの数を決定することができる。
【0103】
図5は、位置イベント測定値を決定するための例示的なプロセスを示す流れ図である。プロセス500は、たとえば、集約サーバおよびレポートシステム、たとえば、
図1の集約サーバ180-Aおよび180-Bならびにレポートシステム190によって実装することができる。プロセス500の動作はまた、非一時的であり得るコンピュータ可読媒体に記憶された命令として実装することができ、1つまたは複数のデータ処理装置による命令の実行は、1つまたは複数のデータ処理装置にプロセス500の動作を実行させることができる。例示的なプロセス500は、位置イベント測定データ、たとえば、デジタルコンポーネントがクライアントデバイスにおいて提示された後、デジタルコンポーネントに対応する物理的位置を訪問するユーザの数を集約するために、安全なマルチパーティ計算および任意の差分プライバシ技法を使用する。
【0104】
集約サーバ180-Aは、クライアントデバイス110から提示レポートを受信する(502)。クライアントデバイス110は、デジタルコンポーネントの提示に応答して、デジタルコンポーネントの提示レポートを生成および提供することができる。各提示レポートは、デジタルコンポーネントの提示用の暗号化された提示データと提示結合鍵とを含むことができる。提示データは、たとえば、デジタルコンポーネントによって指定されたジオフェンスデータと、デジタルコンポーネントの提示に関連付けられるイベントレベルのインプレッションデータとを含むことができる。提示データは、集約サーバ180-Aの公開鍵と集約サーバ180-Bの公開鍵を使用して暗号化することができる。提示データはまた、デジタルコンポーネント用のレポートシステム190の公開鍵を使用して暗号化することができる。たとえば、提示レポートを集約サーバ180-Aに送信するクライアントデバイス110の信頼できるプログラム114は、レポートシステム190の公開鍵を使用して提示データを暗号化し、次いで、この暗号化されたデータを集約サーバ180-Aの公開鍵を使用して暗号化し、次いで、この暗号化されたデータを集約サーバ180-Bの公開鍵を使用して暗号化することができる。
【0105】
提示結合鍵は、少なくともレポートシステム用のリソースロケータ、クライアントデバイス110の識別子、またはクロスデバイス変換測定のためのユーザ用の仮名識別子、およびデジタルコンポーネントのジオフェンスデータに対応する位置の位置識別子の暗号化された組合せを含む暗号化されたデータ要素を含む、ブラインド署名された鍵であり得る。提示結合鍵はまた、暗号化されたデータ要素の決定論的ブラインド署名を含むことができる。たとえば、不正検出システム170は、信頼できるプログラム114によって提供されるデバイスレベルの不正信号を評価し、クライアントデバイス110が信頼できる場合、暗号化されたデータ要素にブラインド署名することができる。提示結合鍵は、提示レポートを対応するイベントレポートと結合するために使用される。
【0106】
集約サーバ180-Bは、クライアントデバイス110からイベントレポートを受信する(504)。クライアントデバイス110は、ユーザがデジタルコンポーネントの提示後にデジタルコンポーネントのジオフェンスデータに対応する位置を訪問したとの決定に応答して、デジタルコンポーネントのイベントレポートを生成および提供することができる。各提示レポートは、デジタルコンポーネントの暗号化されたイベントデータと提示結合鍵を含むことができる。イベントデータは、たとえば、デジタルコンポーネント識別子、訪問期間(または、その分位数)、ならびに/あるいは、訪問開始時間および/または終了時間(または、それらの分位数)を含むことができる。
【0107】
イベントデータは、集約サーバ180-Aの公開鍵と集約サーバ180-Bの公開鍵を使用して暗号化することができる。イベントデータはまた、デジタルコンポーネントのレポートシステム190の公開鍵を使用して暗号化することができる。たとえば、イベントレポートを送信するクライアントデバイス110の信頼できるプログラム114は、レポートシステム190の公開鍵を使用して提示データを暗号化し、次いで、この暗号化されたデータを集約サーバ180-Bの公開鍵を使用して暗号化し、次いで、この暗号化されたデータを集約サーバ180-Aの公開鍵を使用して暗号化することができる。
【0108】
イベント結合鍵は、少なくともレポートシステム用のリソースロケータ、クライアントデバイス110の識別子、またはクロスデバイス変換測定のためのユーザ用の仮名識別子、およびユーザによって訪問された位置の位置識別子の暗号化された組合せを含む暗号化されたデータ要素を含む、ブラインド署名された鍵であり得る。イベント結合鍵はまた、暗号化されたデータ要素の決定論的ブラインド署名を含むことができる。たとえば、不正検出システム170は、信頼できるプログラム114によって提供されるデバイスレベルの不正信号を評価し、クライアントデバイス110が信頼できる場合、暗号化されたデータ要素にブラインド署名することができる。イベント結合鍵は、提示レポートを対応するイベントレポートと結合するために使用される。
【0109】
結合鍵の識別子は、実装形態によって異なる場合がある。たとえば、識別子は、クライアントデバイス110の識別子、クライアントデバイス110のデバイス公開鍵、またはクライアントデバイス110に固有の他の適切な情報、クライアントデバイス110のユーザの識別子(ユーザによって許可される場合)、あるいはレポートが生成されるアプリケーションであり得る。
【0110】
集約サーバ180-Aおよび集約サーバ180-Bは、提示レポートおよびイベントレポートに安全に参加し、次いで、復号化するために、安全なマルチパーティ計算を実行する(506)。このプロセスは、結合鍵を使用して、提示レポートを対応するイベントレポートに結合することを含むことができる。結合鍵は、ユーザによって訪問された、およびデジタルコンポーネントに対応する位置の位置識別子と、クライアントデバイス110の識別子とに基づいているので、クライアントデバイス110におけるデジタルコンポーネントの提示用の提示レポートを、位置イベント(存在する場合)のイベントレポートと結合するために、結合鍵を使用することができる。
【0111】
位置イベントの暗号化されたイベントデータは、イベントデータが同じであり、データを暗号化するために使用される公開鍵が同じであるため、異なるクライアントデバイスにおける同じイベントごとに同じになる。たとえば、2つの異なるクライアントデバイスにおける同じ位置のデジタルコンポーネントに関連付けられる同じジオフェンスエリアへの訪問のイベントデータは同じになる。同様に、2つの異なるクライアントデバイスにおける、同じ位置への訪問と同じ期間の五分位数のイベントデータは同じになる。同じデジタルコンポーネントの暗号化された提示データも、複数のクライアントデバイスにわたって同じになる。
【0112】
したがって、同じ暗号化された提示データおよび同じ暗号化されたイベントデータを有する暗号化された提示データと対応する暗号化されたイベントデータとの結合された各ペアは、同じイベントデータを有するデジタルコンポーネントの一意の位置イベントを表す。暗号化された提示データと対応するイベントデータを結合した後、集約サーバ180-Aと180-Bは、各ペアの発生数、たとえば、暗号化された提示データと対応する暗号化されたイベントデータの同じ結合ペアにすべてリンクされている一意の鍵の数をカウントすることができる。イベントデータが特定のデジタルコンポーネントに対応する特定の位置への訪問に関するものである場合、このカウントは、デジタルコンポーネントがクライアントデバイスにおいて提示された後に特定の位置を訪問したユーザの数を表す。同様に、イベントデータが特定の訪問期間の五分位数を有する特定の位置への訪問に関するものである場合、カウントは、特定の訪問期間の五分位数の期間範囲内の期間に継続した特定の位置への訪問の数を表す。集約サーバ180-Aおよび180-Bは、暗号化された提示データおよび対応する暗号化されたイベントデータの結合されたペアごとに、これらの位置イベント測定値を決定することができる。
【0113】
安全なマルチパーティ計算プロセスはまた、集約サーバ180-Aおよび180-Bの秘密鍵を使用してレポートを暗号化および復号化することと、暗号化/復号化されたデータを2つの集約サーバ180-Aと180-Bとの間で渡すこととを含むことができる。レポートはまた、レポートシステム190の公開鍵を使用して暗号化されている場合、集約サーバ180-Aおよび180-Bは、レポートの実際のデータにアクセスすることができない。
【0114】
いくつかの実装形態では、安全なマルチパーティ計算プロセスは、しきい値処理技法を採用することができる。たとえば、集約サーバ180-Aおよび180-Bは、暗号化された提示データと、たとえば、少なくともしきい値数のクライアントデバイス110によって報告されている、少なくともしきい値数の一意の結合鍵を有する対応する暗号化されたイベントデータとの結合されたペアの位置イベント測定値のみを決定し得る。同様に、集約サーバ180-Aおよび180-Bは、暗号化された提示データと、少なくともしきい値数の一意の結合鍵を有する対応する暗号化されたイベントデータとの結合されたペアのデータのみを復号化し得る。これにより、特定のクライアントデバイスにリンクされている可能性のある少数のクライアントデバイスからのデータを復号化しないことによって、ユーザのプライバシが保護される。
【0115】
集約サーバ180-Aおよび180-Bは、復号化されたデータをレポートシステム190に送信する(508)。レポートシステム190はまた、復号化されたデータに基づいて位置イベント測定値を決定することができる。たとえば、レポートシステム190は、イベントレポートおよび/またはクライアントデバイス110におけるデジタルコンポーネントの提示の数に基づいて、クライアントデバイスにおけるデジタルコンポーネントの提示後にクライアントデバイスにおいて発生した位置への総訪問数のカウントを決定することができる。
【0116】
レポートシステム190はまた、平均訪問期間、短期、中期、および長期の訪問の数、特定の開始時間範囲内に開始された訪問の数、および/または、特定の終了時間範囲内に終了した訪問の数などの復号化されたデータに基づいて、他のメトリックを決定することができる。そうするために、レポートシステム190は、位置の位置識別子を含む復号化されたデータを集約し、集約されたデータに基づいてメトリックを計算することができる。
【0117】
上記の技法はまた、デジタルコンポーネントが提示されたデバイスとは異なるデバイスによって検出された位置イベントの位置イベント測定値を決定するために使用することができる。たとえば、ジオフェンスデータが関連付けられているデジタルコンポーネントは、ユーザがログインしているタブレットコンピュータまたはスマートテレビに提示することができる。次いで、ユーザはスマートフォンを持ってその位置を訪問し得る。スマートフォンは、他のデバイスから受信したジオフェンスデータに基づいて位置イベントを検出し、報告することができる。
【0118】
いくつかの実装形態では、ユーザの複数のデバイス(たとえば、ユーザがログインしているデバイス)は、デジタルコンポーネントの提示イベントデータを同期することができる。一例では、各デバイスの信頼できるプログラムは、それぞれの提示イベントデータ構造116内の提示イベントデータを同期することができる。別の例では、各デバイスのウェブブラウザは、提示イベントデータを相互に同期することができる。このように、ユーザがデバイスのうちの1つを用いて位置を訪問すると、そのデバイスは、デバイスの現在の位置を同期イベントデータの同期ジオフェンスデータと比較することによって、デジタルコンポーネントのうちの1つの位置イベントが発生したかどうかを決定することができる。検出された場合、デバイスは上記のように位置イベントを報告することができる。
【0119】
提示イベントデータが位置イベントデータとは異なるサーバに報告される実装形態では、たとえば、
図5を参照して上記で説明したように、同期は必要ない場合がある。たとえば、ユーザの各デバイスの信頼できるプログラムは、位置デジタルコンポーネントごとに提示レポートを送信することができる。これらの提示レポートは、たとえば、クライアントデバイスの識別子に加えて、またはその代わりに、ユーザの識別子を含むことができる。同様に、ユーザの各デバイスの信頼できるプログラムは、デバイスによって検出された位置イベントごとにイベントレポートを送信することができる。これらのイベントレポートはまた、ユーザの識別子を含むことができる。提示および位置イベントの結合鍵は、デジタルコンポーネントの提示の提示イベントの結合鍵がデジタルコンポーネントの位置イベントの結合鍵と同じになるように、ユーザの識別子に基づくことができる。このようにして、あるデバイスからの提示イベントは、安全なマルチパーティ計算プロセス中に別のデバイスからの対応する位置イベントと結合される。
【0120】
上記の説明に加えて、本明細書に記載のシステム、プログラム、または機能がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクション、アクティビティ、職業、ユーザの好み、またはユーザの現在の位置に関する情報)の収集を可能にし得るかどうか、およびいつ可能にし得るか、また、パーソナライズされたコンテンツまたは通信がサーバからユーザに送信されたかどうかの両方について、ユーザが選択できるようにする制御をユーザに提供し得る。さらに、特定のデータは、記憶または使用される前に1つまたは複数の方法で処理される場合があるため、個人を識別できる情報は削除される。たとえば、ユーザのIDを処理して、ユーザの個人を特定できる情報(たとえば、電話番号、IMEI、デバイスのシリアル番号)を決定できないようにしたり、ユーザの地理的位置(都市、郵便番号、または州レベルなど)を一般化して位置情報を取得したりして、ユーザの特定の位置を決定できないようにすることができる。したがって、ユーザは、ユーザに関して収集される情報、その情報の使用方法、情報保持ポリシ、およびユーザに提供される情報を制御し得る。
【0121】
図6は、上記の動作を実行するために使用することができる例示的なコンピュータシステム600のブロック図である。システム600は、プロセッサ610、メモリ620、ストレージデバイス630、および入力/出力デバイス640を含む。コンポーネント610、620、630、および640の各々は、たとえば、システムバス650を使用して相互接続することができる。プロセッサ610は、システム600内で実行するための命令を処理することができる。いくつかの実装形態では、プロセッサ610は、シングルスレッドプロセッサである。別の実装形態では、プロセッサ610はマルチスレッドプロセッサである。プロセッサ610は、メモリ620またはストレージデバイス630に記憶された命令を処理することができる。
【0122】
メモリ620は、システム600内に情報を記憶する。一実装形態では、メモリ620は、コンピュータ可読媒体である。いくつかの実装形態では、メモリ620は揮発性メモリユニットである。別の実装形態では、メモリ620は、不揮発性メモリユニットである。
【0123】
ストレージデバイス630は、システム600に大容量ストレージを提供することができる。いくつかの実装形態では、ストレージデバイス630は、コンピュータ可読媒体である。様々な異なる実装形態では、ストレージデバイス630は、たとえば、ハードディスクデバイス、光ディスクデバイス、複数のコンピューティングデバイス(たとえば、クラウドストレージデバイス)によってネットワークを介して共有されるストレージデバイス、または他の何らかの大容量ストレージデバイスを含むことができる。
【0124】
入力/出力デバイス640は、システム600に入力/出力動作を提供する。いくつかの実装形態では、入力/出力デバイス640は、ネットワークインターフェースデバイス、たとえばイーサネットカード、シリアル通信デバイス、たとえば、およびRS-232ポート、および/またはワイヤレスインターフェースデバイス、たとえば、および802.11カードのうちの1つまたは複数を含むことができる。別の実装形態では、入力/出力デバイスは、入力データを受信し、出力データを外部デバイス660、たとえば、キーボード、プリンタ、およびディスプレイデバイスに送信するように構成されたドライバデバイスを含むことができる。しかしながら、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビクライアントデバイスなど、他の実装形態も使用することができる。
【0125】
例示的な処理システムが
図6に記載されているが、本明細書に記載されている主題の実装形態および機能的動作は、他のタイプのデジタル電子回路、あるいは本明細書に開示される構造およびそれらの構造的同等物を含むコンピュータソフトウェア、ファームウェア、またはハードウェア、あるいはそれらの1つまたは複数の組合せにおいて実装することができる。
【0126】
本明細書に記載の主題および動作の実施形態は、デジタル電子回路、あるいは本明細書に開示される構造およびそれらの構造的同等物を含むコンピュータソフトウェア、ファームウェア、またはハードウェア、あるいはそれらの1つまたは複数の組合せにおいて実装することができる。本明細書に記載されている主題の実施形態は、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、コンピュータストレージ媒体(または、媒体)上に符号化された、1つまたは複数のコンピュータプログラム、すなわち、コンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。あるいは、またはさらに、プログラム命令は、データ処理装置による実行のために適切な受信機装置に送信するための情報を符号化するために生成される、人工的に生成された伝搬信号、たとえば、機械生成の電気、光、または電磁信号に符号化することができる。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムまたはシリアルアクセスメモリアレイまたはデバイス、あるいはそれらの1つまたは複数の組合せであるか、またはそれらに含まれ得る。さらに、コンピュータストレージ媒体は伝播信号ではないが、コンピュータストレージ媒体は、人工的に生成された伝播信号に符号化されたコンピュータプログラム命令のソースまたは宛先である可能性がある。コンピュータストレージ媒体はまた、1つまたは複数の別個の物理的コンポーネントまたは媒体(たとえば、複数のCD、ディスク、または他のストレージデバイス)であるか、またはそれらに含まれ得る。
【0127】
本明細書に記載されている動作は、1つまたは複数のコンピュータ可読ストレージデバイスに記憶されているか、または他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装することができる。
【0128】
「データ処理装置」という用語は、たとえば、プログラム可能なプロセッサ、コンピュータ、チップ上のシステム、または複数のもの、あるいは前述の組合せを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路を含むことができる。装置はまた、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、あるいはそれらの1つまたは複数の組合せを構成するコードを含むことができる。装置と実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0129】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型またはインタープリタ型言語、宣言型または手続き型言語を含む、任意の形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、あるいはモジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境における使用に適したその他のユニットとしてなどを含む、任意の形式で展開することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、対応する必要はない。プログラムは、他のプログラムまたはデータ(たとえば、マークアップ言語ドキュメントに記憶されている1つまたは複数のスクリプト)を保持するファイルの一部、問題のプログラム専用の単一のファイル、または複数の調整されたファイル(たとえば、1つまたは複数のモジュール、サブプログラム、あるいはコードの一部を記憶するファイル)に記憶することができる。コンピュータプログラムは、1台のコンピュータにおいて、または1つのサイトに配置されているか、複数のサイトに分散され、通信ネットワークによって相互接続されている複数のコンピュータにおいて実行されるように展開することができる。
【0130】
本明細書に記載のプロセスおよび論理フローは、入力データを処理して出力を生成することによってアクションを実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なプロセッサによって実行することができる。プロセスおよび論理フローはまた、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路によって実行することもでき、専用論理回路として装置を実装することもできる。
【0131】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサの両方を含む。一般に、プロセッサは読取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令およびデータを受け取る。コンピュータの本質的な要素は、命令に従ってアクションを実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量ストレージデバイス、たとえば、磁気、光磁気ディスク、または光ディスクを含むか、あるいはそこからデータを受信するか、またはそこにデータを転送するか、あるいはその両方に動作可能に結合される。しかしながら、コンピュータにそのようなデバイスが必要なわけではない。さらに、コンピュータは、ほんの数例を挙げると、たとえばモバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、あるいはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)などの別のデバイスに埋め込むことができる。コンピュータプログラム命令およびデータを記憶するために適したデバイスは、たとえば、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、メディア、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完または組み込むことができる。
【0132】
ユーザとの相互作用を提供するために、本明細書に記載されている主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装することができる。ユーザとの対話を提供するために、他の種類のデバイスを使用することもでき、たとえば、ユーザに提供されるフィードバックは、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなど、任意の形式の感覚的フィードバックであってよく、また、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受け取ることができる。さらに、コンピュータは、ユーザによって使用されるデバイスとの間でドキュメントを送受信することによって、たとえば、ウェブブラウザから受信したリクエストに応じてユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと相互作用することができる。
【0133】
本明細書に記載されている主題の実施形態は、たとえばデータサーバとしてのバックエンドコンポーネントを含むか、または、たとえばアプリケーションサーバなどのミドルウェアコンポーネントを含むか、または、フロントエンドコンポーネント、たとえば、ユーザが本明細書に記載されている主題の実装形態と相互作用することができるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ、あるいは、1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムにおいて実装することができる。システムのコンポーネントは、通信ネットワークなどの任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)とワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、およびピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【0134】
コンピューティングシステムは、クライアントとサーバを含むことができる。クライアントとサーバは通常互いにリモートであり、通常は通信ネットワークを通じて相互作用する。クライアントとサーバの関係は、それぞれのコンピュータで実行され、クライアントとサーバの関係を相互に有するコンピュータプログラムによって発生する。いくつかの実施形態では、サーバは、データ(たとえば、HTMLページ)をクライアントデバイスに送信する(たとえば、クライアントデバイスと相互作用するユーザにデータを表示し、そこからユーザ入力を受信する目的で)。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザ相互作用の結果)は、サーバにおいてクライアントデバイスから受信することができる。
【0135】
本明細書は多くの特定の実装形態の詳細を含むが、これらは、発明の範囲または請求される可能性のあるものの制限として解釈されるべきではなく、特定の発明の特定の実施形態に固有の特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書に記載されている特定の特徴はまた、単一の実施形態において組み合わせて実装することができる。逆に、単一の実施形態の文脈において説明される様々な特徴はまた、複数の実施形態において別々に、または任意の適切なサブコンビネーションにおいて実装することができる。さらに、特徴は、特定の組合せにおいて作用するものとして上で説明され、最初にそのように主張されても、主張された組合せからの1つまたは複数の特徴は、場合によっては組合せから切り出され得、主張された組合せは、サブコンビネーションまたはサブコンビネーションの変形に向けられ得る。
【0136】
同様に、動作は特定の順序で図面に示されているが、これは、所望の結果を達成するために、そのような動作が示される特定の順序または連続した順序で実行されること、あるいは図示されるすべての動作が実行されることを必要とすることとして理解されるべきではない。特定の状況では、マルチタスクと並列処理が有利な場合がある。さらに、上記の実施形態における様々なシステムコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、説明されたプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージ化され得ることが理解されるべきである。
【0137】
したがって、主題の特定の実施形態が説明されてきた。他の実施形態は、以下の特許請求の範囲内にある。場合によっては、特許請求の範囲に記載されているアクションは、異なる順序で実行することができ、それでも所望の結果を達成することができる。さらに、添付の図に示されているプロセスは、所望の結果を達成するために、必ずしも示されている特定の順序または連続した順序を必要としない。特定の実装形態では、マルチタスクと並列処理が有利な場合がある。
【符号の説明】
【0138】
100 環境
105 データ通信ネットワーク
110 クライアントデバイス
112 アプリケーション
114 信頼できるプログラム
116 提示イベントデータ構造
130 発行者
140 ウェブサイト
145 リソース
150 デジタルコンポーネント配信システム
160 デジタルコンポーネントプロバイダ
170 不正検出システム
180-A 集約サーバ
180-B 集約サーバ
190 レポートシステム
195 ジオフェンシングシステム
200 プロセス
300 プロセス
400 プロセス
500 プロセス
600 コンピュータシステム
610 プロセッサ
620 メモリ
630 ストレージデバイス
640 入力/出力デバイス
650 システムバス
660 外部デバイス