(57)【要約】  デジタルコンポーネントとの対話を検証するための方法、システム、およびコンピュータ可読媒体。この方法は、コンテンツプロバイダによって提供され、ユーザデバイスのユーザインターフェースによって提示される、デジタルコンポーネントに関連付けられた対話を示す入力を受信するステップと、ユーザデバイスの信頼できるプログラムによって、対話が有効であると決定するステップと、信頼できるプログラムによって、および有効性評価に基づく対話が有効であるという決定に基づいて、デジタルコンポーネントとの対話の有効性を証明するデジタル署名されたトークンを生成するステップと、信頼できるプログラムによって、およびサードパーティに、対話の有効性の指示としてデジタル署名されたトークンを提供するステップとを含む。
2022501671.tif 000002
【特許請求の範囲】
【請求項１】
ユーザデバイスにおいて、特定の時間に、(i)コンテンツプロバイダによって提供され、(ii)前記ユーザデバイスのユーザインターフェースによって提示される、デジタルコンポーネントに関連付けられた対話を示す入力を受信するステップと、
前記ユーザデバイスの信頼できるプログラムによって、
前記信頼できるプログラムによって、前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことを検出することと、
前記信頼できるプログラムによって、および前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことを検出したことに応答して、前記デジタルコンポーネントがアクティブに提示された前記ユーザインターフェース内の場所を含む前記デジタルコンポーネントの属性のセットを決定することと、
前記信頼できるプログラムによって、前記決定された属性のセットの各属性を、前記コンテンツプロバイダによって提供される前記デジタルコンポーネントの参照属性のセット内の対応する属性と比較することと、
前記比較に基づいて、および前記信頼できるプログラムによって、前記対話の有効性を評価することであり、前記対話は、(i)前記決定された属性のセットと参照属性の前記セットとの間の一致を示す前記比較、および(ii)前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことの前記検出に応答して、有効と見なされる、評価することと
によって、前記対話が有効であると決定するステップと、
前記信頼できるプログラムによって、および前記有効性評価に基づく前記対話が有効であるという前記決定に基づいて、前記デジタルコンポーネントとの前記対話の前記有効性を証明するデジタル署名されたトークンを生成するステップと、
前記信頼できるプログラムによって、およびサードパーティに、前記対話の前記有効性の指示として前記デジタル署名されたトークンを提供するステップと
を含む方法。
【請求項２】
前記信頼できるプログラムによって、前記ユーザデバイスのディスプレイとの特定のユーザ対話を示す、前記特定の時間より前の第1の時間におけるトリガイベントを検出するステップと、
前記信頼できるプログラムによって、および前記第1の時間の後、前記特定の時間に、前記ユーザデバイスの前記ディスプレイとの異なるユーザ対話を示すターゲットイベントを検出するステップと、
前記信頼できるプログラムによって、および前記特定の時間より前の前記第1の時間において前記トリガイベントと、前記特定の時間において前記ターゲットイベントとを検出することに基づいて、前記トリガイベントおよび前記ターゲットイベントに関連付けられた前記デジタルコンポーネントが提示されたデジタルコンポーネントスロットを識別するステップと、
前記信頼できるプログラムによって、および(i)前記特定の時間より前の前記第1の時間において前記トリガイベントと、前記特定の時間において前記ターゲットイベントとを検出し、(ii)前記トリガイベントおよび前記ターゲットイベントに関連付けられた前記デジタルコンポーネントスロットを識別することに基づいて、(a)前記第1の時間と前記特定の時間との間の時間期間、および(b)前記デジタルコンポーネントとの未検証のユーザ対話が発生したことを決定するステップと、をさらに含み、
前記デジタルコンポーネントとの前記対話を示す前記入力を受信するステップが、(a)前記第1の時間と前記特定の時間との間の前記時間期間、および(b)前記デジタルコンポーネントとの未検証のユーザ対話が発生したという前記決定に応答して実行され、
前記未検証のユーザ対話が、前記入力によって示される前記対話である、
請求項1に記載の方法。
【請求項３】
前記デジタルコンポーネントの前記決定された属性のセットが、前記デジタルコンポーネントが提示されるアプリケーションを含む、請求項1に記載の方法。
【請求項４】
前記デジタルコンポーネントの前記決定された属性のセットが、前記デジタルコンポーネントのサイズ、タイプ、および前記コンテンツのうちの1つを含む、請求項1に記載の方法。
【請求項５】
前記デジタルコンポーネントに関連付けられた前記対話が、前記ユーザデバイスのユーザに対する前記デジタルコンポーネントのインプレッションである、請求項1に記載の方法。
【請求項６】
前記デジタルコンポーネントに関連付けられた前記対話が、前記ユーザデバイスのユーザによる前記デジタルコンポーネントのクリックである、請求項1に記載の方法。
【請求項７】
前記デジタルコンポーネントに関連付けられた前記対話が、前記ユーザデバイスによって、および前記サードパーティデバイスに、前記デジタルコンポーネントの要求を提供することを含む、請求項1に記載の方法。
【請求項８】
前記ユーザデバイスが(i)前記要求および(ii)前記トークンを生成したことを、前記デジタル署名されたトークンが証明する、請求項7に記載の方法。
【請求項９】
前記デジタルコンポーネントの前記要求が変更されていないことを、前記デジタル署名されたトークンが証明する、請求項7に記載の方法。
【請求項１０】
(i)前記要求が前記ユーザデバイスによって生成されたこと、および(ii)前記ユーザデバイスが変更されていないこと、またはデバイスエミュレータであることを、前記デジタル署名されたトークンが証明する、請求項7に記載の方法。
【請求項１１】
1つまたは複数の通信ネットワークを介した通信を可能にする通信インターフェースを含むサードパーティデバイスと、
ユーザデバイスとを含み、前記ユーザデバイスが、
特定の時間に、(i)コンテンツプロバイダによって提供され、(ii)前記ユーザデバイスのユーザインターフェースによって提示される、デジタルコンポーネントとの対話を示す入力を受信することと、
前記ユーザデバイスの信頼できるプログラムによって、
前記信頼できるプログラムによって、前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことを検出することと、
前記信頼できるプログラムによって、および前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことを検出したことに応答して、前記デジタルコンポーネントがアクティブに提示された前記ユーザインターフェース内の場所を含む前記デジタルコンポーネントの属性のセットを決定することと、
前記信頼できるプログラムによって、前記決定された属性のセットの各属性を、前記コンテンツプロバイダによって提供される前記デジタルコンポーネントの参照属性のセット内の対応する属性と比較することと、
前記比較に基づいて、および前記信頼できるプログラムによって、前記対話の有効性を評価することであり、前記対話は、(i)前記決定された属性のセットと参照属性の前記セットとの間の一致を示す前記比較、および(ii)前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことの前記検出に応答して、有効と見なされる、評価することと
によって、前記対話が有効であると決定することと、
前記信頼できるプログラムによって、および前記有効性評価に基づく前記対話が有効であるという前記決定に基づいて、前記デジタルコンポーネントとの前記対話の前記有効性を証明するデジタル署名されたトークンを生成することと、
前記信頼できるプログラムによって、および前記サードパーティデバイスに、前記対話の前記有効性の指示として前記デジタル署名されたトークンを提供することと
を含む動作を実行する、
システム。
【請求項１２】
前記動作が、
前記信頼できるプログラムによって、前記ユーザデバイスのディスプレイとの特定のユーザ対話を示す、前記特定の時間より前の第1の時間におけるトリガイベントを検出することと、
前記信頼できるプログラムによって、および前記第1の時間の後、前記特定の時間に、前記ユーザデバイスの前記ディスプレイとの異なるユーザ対話を示すターゲットイベントを検出することと、
前記信頼できるプログラムによって、および前記特定の時間より前の前記第1の時間において前記トリガイベントと、前記特定の時間において前記ターゲットイベントとを検出することに基づいて、前記トリガイベントおよび前記ターゲットイベントに関連付けられた前記デジタルコンポーネントが提示されたデジタルコンポーネントスロットを識別することと、
前記信頼できるプログラムによって、および(i)前記特定の時間より前の前記第1の時間において前記トリガイベントと、前記特定の時間において前記ターゲットイベントとを検出し、(ii)前記トリガイベントおよび前記ターゲットイベントに関連付けられた前記デジタルコンポーネントスロットを識別することに基づいて、(a)前記第1の時間と前記特定の時間との間の時間期間、および(b)前記デジタルコンポーネントとの未検証のユーザ対話が発生したことを決定することと、をさらに含み、
前記デジタルコンポーネントとの前記対話を示す前記入力を受信することが、(a)前記第1の時間と前記特定の時間との間の前記時間期間、および(b)前記デジタルコンポーネントとの未検証のユーザ対話が発生したという前記決定に応答して実行され、
前記未検証のユーザ対話が、前記入力によって示される前記対話である、
請求項11に記載のシステム。
【請求項１３】
前記デジタルコンポーネントの前記決定された属性のセットが、前記デジタルコンポーネントが提示されるアプリケーションを含む、請求項11に記載のシステム。
【請求項１４】
前記デジタルコンポーネントの前記決定された属性のセットが、前記デジタルコンポーネントのサイズ、タイプ、および前記コンテンツのうちの1つを含む、請求項11に記載のシステム。
【請求項１５】
前記デジタルコンポーネントに関連付けられた前記対話が、前記ユーザデバイスのユーザに対する前記デジタルコンポーネントのインプレッションである、請求項11に記載のシステム。
【請求項１６】
前記デジタルコンポーネントに関連付けられた前記対話が、前記ユーザデバイスのユーザによる前記デジタルコンポーネントのクリックである、請求項11に記載のシステム。
【請求項１７】
前記デジタルコンポーネントに関連付けられた前記対話が、前記ユーザデバイスによって、および前記サードパーティデバイスに、前記デジタルコンポーネントの要求を提供することを含む、請求項11に記載のシステム。
【請求項１８】
前記ユーザデバイスが(i)前記要求および(ii)前記トークンを生成したことを、前記デジタル署名されたトークンが証明する、請求項17に記載のシステム。
【請求項１９】
1つまたは複数のコンピューティングデバイスによって実行されると、前記1つまたは複数のコンピューティングデバイスに、
ユーザデバイスにおいて、特定の時間に、(i)コンテンツプロバイダによって提供され、(ii)前記ユーザデバイスのユーザインターフェースによって提示される、デジタルコンポーネントとの対話を示す入力を受信することと、
前記ユーザデバイスの信頼できるプログラムによって、
前記信頼できるプログラムによって、前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことを検出することと、
前記信頼できるプログラムによって、および前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことを検出したことに応答して、前記デジタルコンポーネントがアクティブに提示された前記ユーザインターフェース内の場所を含む前記デジタルコンポーネントの属性のセットを決定することと、
前記信頼できるプログラムによって、前記決定された属性のセットの各属性を、前記コンテンツプロバイダによって提供される前記デジタルコンポーネントの参照属性のセット内の対応する属性と比較することと、
前記比較に基づいて、および前記信頼できるプログラムによって、前記対話の有効性を評価することであり、前記対話は、(i)前記決定された属性のセットと参照属性の前記セットとの間の一致を示す前記比較、および(ii)前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことの前記検出に応答して、有効と見なされる、評価することと
によって、前記対話が有効であると決定することと、
前記信頼できるプログラムによって、および前記有効性評価に基づく前記対話が有効であるという前記決定に基づいて、前記デジタルコンポーネントとの前記対話の前記有効性を証明するデジタル署名されたトークンを生成することと、
前記信頼できるプログラムによって、およびサードパーティに、前記対話の前記有効性の指示として前記デジタル署名されたトークンを提供することと
を含む動作を実行させる命令を格納する非一時的コンピュータ可読媒体。
【請求項２０】
前記動作が、
前記信頼できるプログラムによって、前記ユーザデバイスのディスプレイとの特定のユーザ対話を示す、前記特定の時間より前の第1の時間におけるトリガイベントを検出することと、
前記信頼できるプログラムによって、および前記第1の時間の後、前記特定の時間に、前記ユーザデバイスの前記ディスプレイとの異なるユーザ対話を示すターゲットイベントを検出することと、
前記信頼できるプログラムによって、および前記特定の時間より前の前記第1の時間において前記トリガイベントと、前記特定の時間において前記ターゲットイベントとを検出することに基づいて、前記トリガイベントおよび前記ターゲットイベントに関連付けられた前記デジタルコンポーネントが提示されたデジタルコンポーネントスロットを識別することと、
前記信頼できるプログラムによって、および(i)前記特定の時間より前の前記第1の時間において前記トリガイベントと、前記特定の時間において前記ターゲットイベントとを検出し、(ii)前記トリガイベントおよび前記ターゲットイベントに関連付けられた前記デジタルコンポーネントスロットを識別することに基づいて、(a)前記第1の時間と前記特定の時間との間の時間期間、および(b)前記デジタルコンポーネントとの未検証のユーザ対話が発生したことを決定することと、をさらに含み、
前記デジタルコンポーネントとの前記対話を示す前記入力を受信することが、(a)前記第1の時間と前記特定の時間との間の前記時間期間、および(b)前記デジタルコンポーネントとの未検証のユーザ対話が発生したという前記決定に応答して実行され、
前記未検証のユーザ対話が、前記入力によって示される前記対話である、
請求項19に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、信頼できるコード証明トークンを使用して、データの完全性を向上させることに関する。
【背景技術】
【０００２】
インターネット上のコンテンツと対話するユーザは、簡単に操作される対話データを生成する。操作された対話データは、不正なスキームで使用されるか、またはそうでない場合、オンラインシステムを弱体化させるために使用される可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００３】
一般に、本明細書に記載される主題の1つの革新的な態様は、ユーザデバイスにおいて、特定の時間に、(i)コンテンツプロバイダによって提供され、(ii)ユーザデバイスのユーザインターフェースによって提示される、デジタルコンポーネントに関連付けられた対話を示す入力を受信するステップを含む方法で具体化することができる。この方法は、ユーザデバイスの信頼できるプログラムによって、信頼できるプログラムによって、ユーザデバイスのユーザインターフェースがアクティブであり、特定の時間にデジタルコンポーネントをアクティブに提示していたことを検出することと、信頼できるプログラムによって、およびユーザデバイスのユーザインターフェースがアクティブであり、特定の時間にデジタルコンポーネントをアクティブに提示していたことを検出したことに応答して、デジタルコンポーネントがアクティブに提示されたユーザインターフェース内の場所を含むデジタルコンポーネントの属性のセットを決定することと、信頼できるプログラムによって、決定された属性のセットの各属性を、コンテンツプロバイダによって提供されるデジタルコンポーネントの参照属性のセット内の対応する属性と比較することと、比較に基づいて、および信頼できるプログラムによって、対話の有効性を評価することであり、対話は、(i)決定された属性のセットと参照属性のセットとの間の一致を示す比較、および(ii)ユーザデバイスのユーザインターフェースがアクティブであり、特定の時間にデジタルコンポーネントをアクティブに提示していたことの検出に応答して、有効と見なされる、評価することによって、対話が有効であると決定するステップを含む。この方法は、信頼できるプログラムによって、および有効性評価に基づく対話が有効であるという決定に基づいて、デジタルコンポーネントとの対話の有効性を証明するデジタル署名されたトークンを生成するステップを含む。この方法は、信頼できるプログラムによって、およびサードパーティに、対話の有効性の指示としてデジタル署名されたトークンを提供するステップを含む。
【０００４】
これらおよび他の実施形態は各々、任意選択で、以下の特徴のうちの1つまたは複数を含むことができる。この方法はまた、信頼できるプログラムによって、ユーザデバイスのディスプレイとの特定のユーザ対話を示す、特定の時間より前の第1の時間におけるトリガイベントを検出するステップを含むこともできる。この方法はまた、信頼できるプログラムによって、および第1の時間の後、特定の時間に、ユーザデバイスのディスプレイとの異なるユーザ対話を示すターゲットイベントを検出するステップを含むこともできる。この方法はまた、信頼できるプログラムによって、および特定の時間より前の第1の時間においてトリガイベントと、特定の時間においてターゲットイベントとを検出することに基づいて、トリガイベントおよびターゲットイベントに関連付けられたデジタルコンポーネントが提示されたデジタルコンポーネントスロットを識別するステップを含むこともできる。この方法はまた、信頼できるプログラムによって、および(i)特定の時間より前の第1の時間においてトリガイベントと、特定の時間においてターゲットイベントとを検出し、(ii)トリガイベントおよびターゲットイベントに関連付けられたデジタルコンポーネントスロットを識別することに基づいて、(a)第1の時間と特定の時間との間の時間期間、および(b)デジタルコンポーネントとの未検証のユーザ対話が発生したことを決定するステップを含むこともできる。デジタルコンポーネントとの対話を示す入力を受信するステップは、(a)第1の時間と特定の時間との間の時間期間、および(b)デジタルコンポーネントとの未検証のユーザ対話が発生したという決定に応答して実行することができる。未検証のユーザ対話は、入力によって示される対話とすることができる。
【０００５】
いくつかの実装形態では、デジタルコンポーネントの決定された属性のセットは、デジタルコンポーネントが提示されるアプリケーションを含む。
【０００６】
いくつかの実装形態では、デジタルコンポーネントの決定された属性のセットは、デジタルコンポーネントのサイズ、タイプ、およびコンテンツのうちの1つを含む。
【０００７】
いくつかの実装形態では、デジタルコンポーネントに関連付けられた対話は、ユーザデバイスのユーザに対するデジタルコンポーネントのインプレッションである。
【０００８】
いくつかの実装形態では、デジタルコンポーネントに関連付けられた対話は、ユーザデバイスのユーザによるデジタルコンポーネントのクリックである。
【０００９】
いくつかの実装形態では、デジタルコンポーネントに関連付けられた対話は、ユーザデバイスによって、およびサードパーティデバイスに、デジタルコンポーネントの要求を提供することを含む。
【００１０】
いくつかの実装形態では、ユーザデバイスが(i)要求、および(ii)トークンを生成したことを、デジタル署名されたトークンが証明する。
【００１１】
いくつかの実装形態では、デジタルコンポーネントの要求が変更されていないことを、デジタル署名されたトークンが証明する。
【００１２】
いくつかの実装形態では、(i)要求がユーザデバイスによって生成されたこと、および(ii)ユーザデバイスが変更されていないこと、またはデバイスエミュレータであることを、デジタル署名されたトークンが証明する。
【００１３】
この態様の他の実施形態は、コンピュータ記憶デバイス上に符号化された方法のアクションを実行するように構成された対応するシステム、装置、およびコンピュータプログラムを含む。
【００１４】
本明細書に記載される主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実施することができる。提案された技法は、生成されたデータの完全性を向上させ、デジタルコンポーネントとのユーザ対話など、イベントの有効性を検証するために信頼できるコードに依存することによって、詐欺の可能性を低減する。オペレーティングシステムコードや信頼できるプログラム(ウェブブラウザなど)のバイナリコードなどの信頼できるコードは、侵入するのが非常に困難であり、したがって、そのようなコードの完全性を損なうためにリソースを費やすことは、一般に、規模的には経済的に実現可能ではない。したがって、提案された技法は、信頼性がより高く、脆弱性の対象となる可能性は低い。
【００１５】
信頼できるアプリケーションは、たとえば、デバイスドライバなどのユーザデバイスのオペレーティングシステムの一部であり得る。デバイスドライバは、タッチスクリーンのタッチイベントなど、特定のイベントに応答する最初のソフトウェアである。サードパーティのアプリケーションレベルコードがユーザが画面に触れたことを示すデータを受信する前に、デバイスドライバは、タッチイベントを検出し、検証することができ、したがって、サードパーティのアプリケーションコードが対話を改ざんすることによって干渉する機会はない。証明トークンの検証方法によって、クリック詐欺やインプレッション詐欺を助長する脆弱性のない対話イベントの検証が可能になる。
【００１６】
信頼できるコードによる証明トークンの生成、およびユーザ対話イベントを検証する際のこれらのトークンの使用は、既存の詐欺検出方法を補完し、追加のセキュリティ層を提供する。この方法は、低い追加の計算コストでより高品質の詐欺検出を提供する。デジタルコンポーネントとのユーザ対話が検出されるたびに、デジタルコンポーネントのプロバイダは、ユーザデバイスに対話の検証の要求を送信する。デジタルコンポーネント配信システムは、要求の受信および処理にすでにコストがかかるので、デバイス上での検証の追加のコストは、それほど追加の負担にはならない。この方法には3つの部分がある。(1)証明トークンを生成し、署名することによる、デバイス上またはブラウザ内での検証であり、これには、ミリ秒の何分の1しかかからない、(2)デジタルコンポーネントの宣言されたプロパティを検証するための機械学習モデルによる処理、これは、機械学習モデルの高度さに依存する可能性がある、(3)デジタルコンポーネントのプロバイダによって、証明トークンのデジタル署名を検証して、署名が有効であることを確実することであり、これも、ミリ秒の何分の1しかかからない可能性がある。全体的に、既存のソリューションと組み合わせて使用したとき、証明トークンの検証方法を実行する追加の計算時間およびコストは重要ではない。
【００１７】
現在の詐欺検出方法は、一般に、統計分析に基づいており、手動で定義されたルールなど、人間の入力を必要とする。たとえば、あるルールは、特定のデバイス上のクリックイベントが常に同じ正確な座標で右上隅にある場合、クリックは、不正なイベントである可能性が高いと指定することができる。しかしながら、これらのルールを決定し、定義するために、データを分析して不正なパターンを見つけるための人間の入力が必要である。したがって、提案された技法は、従来の方法と比較して、開発および検証に必要なリソースが少なくて済む。加えて、提案された技法は、ユーザ対話データをサードパーティのアプリケーションに送信する必要なしに、証明トークンがデバイス上またはブラウザ内で生成されるので、イベント検証中にユーザのプライバシーを保護する。提案された技法は、ユーザデータをローカルで分析、処理、および記憶することができる。統計分析手法に基づく詐欺検出の必要性を低減することによって、証明トークン方法は、他の方法に関してユーザデータを危険にさらすリスクを低減する。
【００１８】
本明細書に記載の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００１９】
【図１】電子文書での提示のために配信されるデジタルコンポーネントとのユーザ対話が決定論的暗号化プロセスを介して検証される例示的な環境のブロック図である。
【図２】デジタルコンポーネントとのユーザ対話を検証するための例示的なデータフローを示す図である。
【図３】証明トークンの生成を介したデジタルコンポーネントとのユーザ対話を検証するための例示的なプロセスのフローチャートである。
【図４】例示的なコンピューティングシステムのブロック図である。
【発明を実施するための形態】
【００２０】
様々な図面における同様の参照番号および名称は同様の要素を示す。
【００２１】
本明細書では、決定論的暗号化技法を介して、データの完全性を向上させ、インプレッションおよび/またはクリック詐欺を防止する方法、システム、およびデバイスについて説明する。詐欺は、デジタルエコシステムで蔓延しており、その結果、数十億ドルのリソースおよび収益が失われている。この不正行為を低減し、および/または排除するには、クライアントデバイスから収集されたデータの完全性を向上させる技法が必要である。提案された技法は、信頼できるコード(たとえば、クライアントデバイス内で実行される)が、ユーザ対話を検証するための要求を受信し、ユーザ対話が有効な対話であると決定し、ユーザ対話および要求の有効性を証明する暗号化されたトークンを生成し、暗号化されたトークンを、対話したデジタルコンポーネントのプロバイダなどのサードパーティに提供することを含む。オペレーティングシステムコードやアプリケーションのバイナリコードなどの信頼できるコードは、詐欺や改ざんの傾向が低く、信頼できるコードの更新またはパッチを介して、この改善された詐欺検出機能を簡単に含むように、ユーザデバイスを更新することができる。この信頼できるコードは、ユーザ対話の有効性を証明する暗号トークンを生成する。証明トークンと呼ばれるこれらのトークンは、インプレッションおよびクリックイベントなどのイベントが正当な対話であることを証明するために、サードパーティに提供される前に、ユーザデバイスによってデジタル署名される。たとえば、署名された証明トークンをデジタルコンポーネント配信システムに提供して、デジタル署名を検証し、さらに複数の異なるエンティティを有するエンティティのチェーンを介して、インプレッションおよびクリック詐欺などの詐欺を検出することができる。
【００２２】
本明細書に記載されている技法は、ユーザが利用可能なアプリケーション(たとえば、オンライン分析アプリケーションまたはウェブブラウザ)または他の環境(たとえば、発行者のウェブページ)を閲覧している状況でも実装できることに留意されたい。簡潔にするために、以下の説明の多くは、データ分析環境に言及するが、本明細書全体で説明されている技法は、クライアントデバイスとの対話を表すデータの完全性を向上させることが望ましい他の状況に適用できることを理解されたい。たとえば、本明細書全体で説明されている技法は、要求が有効であることを確実にするために、特定のサーバ、特定のウェブサイト、特定のデータセット、または特定のアカウントへのアクセスを要求しているクライアントデバイスでのユーザ対話を検証するために使用することもできる。
【００２３】
本明細書全体で使用される場合、「デジタルコンポーネント」というフレーズは、デジタルコンテンツまたはデジタル情報の個別のユニット(たとえば、ビデオクリップ、オーディオクリップ、マルチメディアクリップ、画像、テキスト、または別のコンテンツユニット)を指す。デジタルコンポーネントは、単一のファイルとして、またはファイルの集合で、物理的なメモリデバイスに電子的に記憶されていてもよく、デジタルコンポーネントは、ビデオファイル、オーディオファイル、マルチメディアファイル、画像ファイル、またはテキストファイルの形態をとり、広告情報を含むことができ、したがって、広告は、デジタルコンポーネントの一種である。一般に、デジタルコンポーネントは、単一のプロバイダまたはソース(たとえば、広告主、発行者、または他のコンテンツプロバイダ)によって定義(または提供)されるが、複数のソースからのコンテンツの組合せとすることができる。複数の異なるソースからのデジタルコンポーネントを単一の電子文書に結合することができ(たとえば、様々な異なるデジタルコンポーネントの集合)、異なるソースからの様々なデジタルコンポーネントの一部を、検索結果(またはコンテンツの他の部分)から抽出された情報を使用して単一のデジタルコンポーネントに結合することができる。
【００２４】
図1は、電子文書で提示するためにデジタルコンポーネントが配信される例示的な環境100のブロック図である。これらのデジタルコンポーネントとのユーザ対話が収集され、トレーニングデータを生成するために使用される。生成されたデータは、対話の有効性を決定する検証モデルをトレーニングするために使用される。例示的な環境100は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはそれらの組合せなどのネットワーク102を含む。ネットワーク102は、電子文書サーバ120、ユーザデバイス104、およびデジタルコンポーネント配信システム(DCDS)112(配信システムとも呼ばれる)を接続する。例示的な環境100は、多くの異なる電子文書サーバ120、およびユーザデバイス104のタイプを含み得る。
【００２５】
ユーザデバイス104は、ネットワーク102を介してリソースを要求し、受信することができる電子デバイスである。例示的なユーザデバイス104は、ネットワーク102を介してデータを送受信することができるパーソナルコンピュータ、モバイル通信デバイス、および他のデバイスを含む。いくつかの例では、ユーザデバイス104は、携帯電話などのモバイルデバイス、仮想現実デバイス(たとえば、ヘッドセット、またはスピーカーとディスプレイとの組合せなど他のデバイスに実装される)、スマートフォン、携帯情報端末(たとえば、卓上スピーカー、またはスピーカーとディスプレイとの組合せなど他のデバイスに実装される)、またはタブレットであり、ワイヤレスネットワークを介して通信する。ユーザデバイス104は、通常、ネットワーク102を介したデータの送受信を容易にするために、ウェブブラウザなどのユーザアプリケーションを含むが、ユーザデバイス104によって実行されるネイティブアプリケーションは、ネットワーク102を介したデータの送受信も容易にすることができる。
【００２６】
ユーザデバイス104は、信頼できるプログラム130および検証モデル140を含む。信頼できるプログラム130は、改ざんするのが難しい信頼できるソースからの信頼できるコードを含む。たとえば、信頼できるプログラム130は、オペレーティングシステム、オペレーティングシステムの一部、ウェブブラウザなどとすることができる。一般に、信頼できるプログラム130は、侵入するのが難しく、加害者が信頼できるプログラム130を改ざんするために費やす必要がある時間および労力の量は法外に多い。さらに、信頼できるプログラム130は、信頼できるソースによって提供され、維持されるので、生じる任意の脆弱性は、ソースによって対処することができる。
【００２７】
信頼できるプログラム130は、ユーザデバイス104に対してローカルであり得る。たとえば、信頼できるプログラム130は、ユーザデバイス104のオペレーティングシステムのデバイスドライバとすることができる。いくつかの実装形態では、信頼できるプログラム130は、ユーザデバイス104に対して完全にローカルで動作し、ユーザ情報を送信する必要性を低減する。いくつかの実装形態では、信頼できるプログラム130は、ユーザデバイス104に対してローカルに、およびネットワーク102などのネットワークを介して動作することができる。たとえば、信頼できるプログラム130は、ユーザデバイス104にインストールされ、ネットワーク102を介して情報を送受信するウェブブラウザとすることができる。
【００２８】
検証モデル140は、ユーザデバイス104からの対話イベントを検証するために機械学習モデルをトレーニングし、実装するシステムとすることができる。検証モデル140は、たとえば、トレーニング例およびユーザまたはプロファイル情報を入力として受信し、対話イベント自体またはイベントの特性が有効であるかどうかの予測を出力するニューラルネットワークとすることができる。たとえば、検証モデル140は、クリックなどのイベントが発生したかどうかを決定することができる。検証モデル140はまた、インプレッションが発生したデジタルコンポーネントの内容などのイベントの特性が有効であるかどうかを決定することもできる。
【００２９】
ユーザデバイス104は、ユーザ対話データを収集して、検証モデル140に入力するためのトレーニングデータを生成することができる。ユーザデバイス104は、たとえば、ロジスティック回帰モデル140など、トレーニングするためのネガティブな例を取得するために、ランダムサンプルを選択することができる。ユーザデバイス104は、ユーザ対話データの複数のサンプルを取得して、トレーニングデータの1つまたは複数のセットを生成することができる。
【００３０】
トレーニングデータのセットを生成するとき、ユーザデバイスは、デジタルコンポーネントとの履歴のユーザ対話からトレーニングデータのセット内で使用されるトレーニング機能を選択する。ユーザデバイス104は、いくつかの方法のうちの1つでトレーニング例の重みを決定する。いくつかの実装形態では、ユーザデバイス104は、各トレーニング例に等しく重みを付け、所定の時間期間内にデータポイントのみをサンプリングすることができる。いくつかの実装形態では、ユーザデバイス104は、減衰関数を使用して、例がどれだけ最近のものであるかに応じて、トレーニング例に異なるように重みを付けることができる。
【００３１】
システムは、トレーニング、妥当性検査、およびテストデータの生成を、モデリング時間およびリソースの様々なパーセンテージに分割することができる。システムは、モデルの出力を相互検証することもできる。
【００３２】
検証モデル140は、トレーニングデータを受信し、機械学習モデルをトレーニングして、イベントが正当であるかどうかを決定する。機械学習モデルは、決定ツリー、線形回帰モデル、ロジスティック回帰モデル、ニューラルネットワーク、分類器、サポートベクターマシン、帰納論理プログラミング、(たとえば、バギング、ブースティング、ランダムフォレストなどの技法を使用する)モデルのアンサンブル、遺伝子アルゴリズム、ベイジアンネットワークなど、様々な技法のいずれかを使用してもよく、深層学習、関連ルール、帰納論理、クラスタリング、最大エントロピー分類、学習分類などの様々なアプローチを使用してトレーニングすることができる。いくつかの例では、機械学習モデルは、教師あり学習を使用する。いくつかの例では、機械学習モデルは、教師なし学習を使用する。機械学習モデルでは、ワイド&ディープラーニング、長短期記憶モデリング、ブースティング、行列因数分解、ユーザ埋め込み、またはアイテム埋め込みを使用することもできる。
【００３３】
検証モデル140は、対話が有効な対話であるかどうかを決定するために使用される。検証モデル140の出力は、対話が有効な対話であるかどうかの決定である。いくつかの実装形態では、検証モデル140は、対話が有効な対話である可能性を出力することができる。
【００３４】
電子文書は、ユーザデバイス104においてコンテンツのセットを提示するデータである。電子文書の例には、分析レポート、ウェブページ、ワード処理文書、ポータブルドキュメントフォーマット(PDF)文書、画像、ビデオ、検索結果ページ、およびフィードソースがある。モバイル、タブレット、またはデスクトップコンピューティングデバイスにインストールされたアプリケーションなどのネイティブアプリケーション(「アプリ」など)も、電子文書の例である。電子文書121(「Electronic Docs」)は、電子文書サーバ120(「Electronic Doc Servers」)によってユーザデバイス104に提供することができる。たとえば、電子文書サーバ120は、発行者のウェブサイトをホストするサーバを含むことができる。この例では、ユーザデバイス104は、所与の発行者ウェブページなど、リソースの要求を開始することができ、所与の発行者ウェブページをホストする電子文書サーバ120は、ユーザデバイス104において所与のウェブページの提示を開始する機械実行可能命令を送信することによって要求に応答することができる。
【００３５】
別の例では、電子文書サーバ120は、ユーザデバイス104がアプリをダウンロードすることができるアプリサーバを含むことができる。この例では、ユーザデバイス104は、アプリをインストールし、ファイルをダウンロードし、次いで、ダウンロードされたアプリをローカルで実行するために必要なファイルなどのリソースを要求することができる。
【００３６】
電子文書121は、様々なコンテンツを含むことができる。たとえば、電子文書121は、電子文書自体の中にある、および/または時間とともに変化しない静的コンテンツ(たとえば、テキストまたは他の指定されたコンテンツ)を含むことができる。電子文書121はまた、時間とともに、または要求ごとに変化する可能性のある動的コンテンツを含むこともできる。たとえば、所与の電子文書121の発行者は、電子文書121の一部をポピュレートするために使用されるデータソースを維持することができる。この例では、所与の電子文書121は、所与の電子文書121がユーザデバイス104によって処理(たとえば、レンダリングまたは実行)されるときに、ユーザデバイス104が、データソースにコンテンツを要求する1つもしくは複数のタグまたはスクリプトを含むことができる。ユーザデバイス104は、データソースから取得されたコンテンツを所与の電子文書121に統合して、データソースから取得されたコンテンツを含む複合電子文書を作成する。電子文書は、他のソースからのデータを処理する動的に生成されたレポートを含むこともできる。たとえば、所与の電子文書121は、他の電子文書121とのユーザの対話など、複数の他のデータソースからのデータを分析する動的に生成されたレポートとすることができる。
【００３７】
いくつかの状況では、所与の電子文書121は、DCDS112を参照する1つまたは複数のデジタルコンポーネントタグまたはデジタルコンポーネントスクリプトを含むことができる。これらの状況では、所与の電子文書121がユーザデバイス104によって処理されるときに、デジタルコンポーネントタグまたはデジタルコンポーネントスクリプトがユーザデバイス104によって実行される。デジタルコンポーネントタグまたはデジタルコンポーネントスクリプトの実行は、ネットワーク102を介してDCDS112に送信される1つまたは複数のデジタルコンポーネントを含むリソースの要求(「コンポーネント要求」と呼ばれる)を生成するようにユーザデバイス104を構成する。たとえば、デジタルコンポーネントタグまたはデジタルコンポーネントスクリプトは、ユーザデバイス104が、ヘッダおよびペイロードデータを含むパケット化されたデータ要求を生成することを可能にすることができる。コンポーネント要求は、デジタルコンポーネントが要求されているサーバの名前(またはネットワークの場所)、要求側デバイス(たとえば、ユーザデバイス104)の名前(またはネットワークの場所)、および/またはDCDS112が要求に応答して提供される1つまたは複数のデジタルコンポーネントを選択するために使用することができる情報などの特徴を指定するイベントデータを含むことができる。コンポーネント要求は、ユーザデバイス104によって、ネットワーク102(たとえば、電気通信ネットワーク)を介して、DCDS112のサーバに送信される。
【００３８】
コンポーネント要求は、要求されている電子文書およびデジタルコンポーネントを提示することができる電子文書の場所の特性など、他のイベントの特徴を指定するイベントデータを含むことができる。たとえば、デジタルコンポーネントが提示される電子文書(たとえば、ウェブページ)への参照(たとえば、URL)、デジタルコンポーネントを提示するために利用可能な電子文書の利用可能な場所、利用可能な場所のサイズ、および/またはその場所での提示に適格なメディアタイプを指定するイベントデータは、DCDS112に提供することができる。同様に、電子文書によって参照される電子文書に関連付けられたキーワード(「文書キーワード」)またはエンティティ(たとえば、人、場所、または物)を指定するイベントデータも、(たとえば、ペイロードデータとして)コンポーネント要求に含め、DCDS112に提供されて、電子文書での提示に適格なデジタルコンポーネントの識別を容易にすることができる。イベントデータはまた、検索結果ページ、ならびに/あるいは検索結果および/または検索結果に含まれるテキスト、可聴、もしくは他の視覚的コンテンツを指定するデータを取得するために、ユーザデバイス104からサブミットされた検索クエリも含むことができる。
【００３９】
コンポーネント要求はまた、クライアントデバイスのユーザが提供した情報、コンポーネント要求がサブミットされた状態もしくは領域を示す地理情報、またはデジタルコンポーネントが表示される環境のコンテキスト(たとえば、コンポーネント要求の時刻、コンポーネント要求の曜日、モバイルデバイスまたはタブレットデバイスなどデジタルコンポーネントが表示されるデバイスのタイプ)を提供する他の情報など、他の情報に関連するイベントデータを含むことができる。コンポーネント要求は、たとえば、パケット化されたネットワークを介して送信することができ、コンポーネント要求自体は、ヘッダおよびペイロードデータを有するパケット化されたデータとしてフォーマットすることができる。ヘッダは、パケットの宛先を指定することができ、ペイロードデータは、上記の情報のいずれかを含むことができる。
【００４０】
DCDS112は、コンポーネント要求を受信すること、および/またはコンポーネント要求に含まれる情報を使用することに応答して、所与の電子文書とともに提示されるデジタルコンポーネントを選択する。システム110は、電子文書121などのデジタルコンポーネントとのユーザ対話から生成されたデータを使用して、ユーザデバイス104に提示される電子文書121の選択を個人化する。
【００４１】
ユーザデバイス104は、ユーザデバイス104が、DCDS112にデジタルコンポーネントを要求するデータを受信することができる。たとえば、DCDS112は、ユーザデバイス104に提示されるデジタルコンポーネントを選択することができる。プロセスの完全性を維持するために、ユーザデバイス104は、それがデジタルコンポーネントを要求しているデバイスであり、その要求が本物の要求であることを証明することができる。ユーザデバイス104は、デジタルコンポーネントとの対話を示すデータを受信することができる。次いで、デジタルコンポーネントのプロバイダは、ユーザデバイス104への対話の妥当性検査のための要求を生成する。ユーザデバイス104がデジタルコンポーネントとの対話を示すデータを受信すると、ユーザデバイス104は、対話を妥当性検査するためのプロセスを開始する。対話は、単に、ユーザデバイス104のユーザによるデジタルコンポーネントの提示およびその後の表示、またはインプレッションであり得る。対話は、ユーザデバイス104のユーザによるデジタルコンポーネントとの明示的な対話であり得る。たとえば、対話は、ユーザデバイス104のユーザによるデジタルコンポーネント上のクリックであり得る。デジタルコンポーネントのコンテキストでは、対話は、インプレッションまたはクリックであり、デジタルコンポーネント配信システムは、対話ごとに補償することができる。そのような対話は、簡単に改ざんされる可能性があり、したがって、提案された技法は、信頼できるプログラムによって各対話の有効性を検証することによって、詐欺のインスタンスを低減する。
【００４２】
ユーザデバイス104は、対話の有効性を証明する決定論的暗号トークン、または証明トークンを生成することによって、デジタルコンポーネントまたはデジタルコンポーネントとの対話の要求を検証することができる。たとえば、信頼できるプログラム130は、対話データおよび履歴のユーザデータに基づいて、証明トークンを生成することができる。証明トークンを生成するとき、ユーザデバイス104は、公開鍵および秘密鍵を生成する。信頼できるプログラム130は、一致する公開鍵/秘密鍵インフラストラクチャを使用し、プラットフォームにわたって一致する詐欺検出ソリューションを可能にする。信頼できるプログラム130は、秘密鍵をローカルに安全に記憶し、ユーザデバイス104が機密または詐欺の傾向がある要求を発行したとき、またはユーザデバイス104が対話の妥当性検査の要求を受信したときに、公開鍵を送信する。次いで、ユーザデバイス104は、改ざんされやすいパラメータを含む証明トークンを生成し、秘密鍵でそれに署名する。ユーザデバイス104は、デジタル署名された証明トークンをデジタルコンポーネントの要求に添付するか、またはデジタルコンポーネントとの対話の妥当性検査の要求に応答してトークンを提供することができる。トークンを使用して、要求が特定のデバイスから生成されたこと、特定のデバイスが対話を実行したこと、対話が特定のデジタルコンポーネントと行われたこと、および/または要求もしくはデジタルコンポーネントのパラメータが送信中に変更されなかったことを検証することができる。
【００４３】
証明トークンは、コンテンツプロバイダが各要求のソースを独立して検証することを可能にし、したがって、偽造された要求および詐欺のために失われたリソースのインスタンスを低減する。証明トークンは、秘密鍵を使用してユーザデバイス104によってデジタル署名されるので、コンテンツプロバイダは、要求とトークンの両方がユーザデバイス104によって生成されたことを確実にするために、要求に添付された証明トークンを使用して要求を認証することができる。デジタルコンポーネント配信システム(DCDS112など)および/または他のデバイスは、対話が発生したこと、および/または対話が宣言されたデジタルコンポーネントと対話したことを確実にするために、検証の要求に応答して提供された証明トークンを使用して要求および/または対話を認証することができる。証明トークンの暗号化の性質により、要求および/または対話の完全性が認証され、コンテンツプロバイダおよびデジタルコンポーネント配信システムは、他のサードパーティの中でも、要求および/または対話が不正に作成されていない、または仲介者によって変更されていないことを認識して安全を確保することができる。コンテンツプロバイダおよび/またはデジタルコンポーネント配信システムは、証明トークンを使用して、要求が新規要求であるかリプレイアタックであるか、および/または、他の不正行為の中でも、対話がルート化されたデバイスやデバイスエミュレータなどの障害を受けたデバイスによって生成されたかどうかを決定することができる。
【００４４】
図2は、図1の例示的な環境で妥当性検査プロセスを実施するための例示的なデータフロー200である。データフロー200の動作は、ユーザデバイス104によって実行される。フロー200のステージは、環境100などのネットワーク環境内で実行される。
【００４５】
いくつかの例では、ユーザデバイス104は、携帯電話、スマートフォン、またはタブレットなどのタッチスクリーンを有するモバイルデバイスであり、ネットワーク102などのワイヤレスネットワークを介して通信する。いくつかの例では、ユーザデバイス104は、他のデバイスの中でも、ラップトップ、デスクトップコンピュータ、ワークステーションなどのデスクトップデバイスとすることができ、タッチスクリーンを有していてもよい。サードパーティデバイス210は、たとえば、ネットワーク102などのワイヤレスネットワークを介して通信するサーバ、またはユーザデバイス104が通信するワイヤレスネットワークとは別の有線ネットワークであり得る。たとえば、ユーザデバイス104は、ワイヤレスセルラーネットワークを介して通信するスマートフォンとすることができ、一方、サードパーティデバイス210は、有線ネットワークを介して通信するリモートサーバである。いくつかの例では、サードパーティデバイス210は、DCDS112または電子文書サーバ120とすることができる。たとえば、サードパーティデバイス210は、電子文書サーバ120とすることができ、DCDS112を補償する前に、対話イベントの有効性を検証することができる。
【００４６】
この特定の例では、ユーザデバイス104は、タッチスクリーンを有するスマートフォンであり、フロー200のステージとして実行される通信は、インターネットであり得るネットワーク102を介して行われ、サードパーティデバイス210は、DCDS112によってユーザデバイス104に提供されるデジタルコンポーネントを提供する電子文書サーバ120である。
インプレッションの検証
【００４７】
フロー200は検証プロセスであり、この例では、フロー200は、インプレッションを検証するためのプロセスのデータフローを示している。この例では、ユーザデバイス104は、ユーザデバイス104のUIを介してユーザに表示されるデジタルコンポーネントをレンダリングする。デジタルコンポーネントを提供した電子文書サーバ120に通信可能に接続されたユーザデバイス104のSDKまたはブラウザは、たとえば、デジタルコンポーネントスロット内でデジタルコンポーネントをレンダリングすることができる。デジタルコンポーネントをレンダリングすると、ユーザデバイス104のコンテンツプロバイダSDKは、ユーザデバイス104の信頼できるプログラム130にインプレッション証明トークンを要求する。ユーザデバイス104の信頼できるプログラム130は、たとえば、ユーザデバイス104のOSまたはユーザデバイス104にインストールされたウェブブラウザアプリケーションであり得る。
【００４８】
フロー200は、ステージ(A)で始まり、ユーザデバイス104が特定の時間に対話イベントを示すデータを受信する。この例では、ステージ(A)は、ステージ(A-1)として示され、ユーザデバイス104は、デジタルコンポーネントとの対話イベントを示すデータを受信する。データは、ユーザデバイス104のコンテンツプロバイダSDKがデジタルコンポーネントスロット内にデジタルコンポーネントをレンダリングすることをデータが引き起こすイベントを示すことができる。データは、デジタルコンポーネントがコンテンツプロバイダによって提供されたことを示す。たとえば、デジタルコンポーネントは、電子文書サーバ120によって提供することができる。この特定の例では、サードパーティデバイス210は、対話イベントデータがユーザデバイス104に提供されたデジタルコンポーネントを提供した電子文書サーバ120である。デジタルコンポーネントは、ユーザデバイス104のユーザインターフェース(UI)を介してユーザデバイス104のユーザに提示された。たとえば、デジタルコンポーネントは、そのタッチスクリーンを介してスマートフォンユーザデバイス104のユーザに提示することができる。データは、対話イベントがデジタルコンポーネントとの対話であったことを示す。たとえば、デジタルコンポーネントは、DCDS112によってユーザデバイス104に提供することができ、ユーザ対話は、単純に、デジタルコンポーネントスロット内のデジタルコンポーネントのレンダリングとすることができ、したがって、ユーザデバイス104のユーザは、インプレッションとして知られる、デジタルコンポーネントを閲覧することができる。デジタルコンポーネントスロット内のデジタルコンポーネントのレンダリングを引き起こすデータを受信すると、ユーザデバイス104のSDKは、ユーザデバイス104の信頼できるプログラム130に証明トークンを要求することによって、対話の検証を要求する。
【００４９】
フロー200は、ステージ(B)に続き、ユーザデバイス104の信頼できるプログラム130が、デジタルコンポーネントとの対話を示すデータが有効であると決定する。信頼できるプログラム130は、ユーザデバイス104のUIがアクティブであり、特定の時間にデジタルコンポーネントをアクティブに提示していた(すなわち、デジタルコンポーネントがユーザにとって可視であった)ことを検出し、デジタルコンポーネントの1つまたは複数の属性が有効であることを決定することによって、対話を示すデータが有効であると決定する。
【００５０】
この例では、データによって示される対話は、インプレッション、またはデジタルコンポーネントスロット内のデジタルコンポーネントのレンダリングであり、したがって、ユーザデバイス104のユーザは、デジタルコンポーネントを閲覧することができる。信頼できるプログラム130は、デジタルコンポーネントが表示されたユーザデバイス104のUIの部分が、特定の時間にユーザデバイス104のディスプレイの前景にあったことを確認することによって、対話を示すデータが有効であると決定する。
【００５１】
信頼できるプログラム130はまた、デジタルコンポーネントの属性を決定することもできる。たとえば、信頼できるプログラム130は、デジタルコンポーネントのサイズ、コンテンツ、および場所を決定することができる。
【００５２】
フロー200は、ステージ(C)に続き、信頼できるアプリケーション130は、検証モデル140を使用して、決定された属性をデジタルコンポーネントの宣言された属性のセットと比較し、比較に基づいて対話の有効性を評価する。検証モデル140は、デジタルコンポーネントの決定された属性を、デジタルコンポーネントの宣言された属性のセットと比較することができる。宣言された属性のセットは、たとえば、デジタルコンポーネント、デジタルコンポーネント、またはデジタルコンポーネントをレンダリングするSDKを提供する電子文書サーバ120によって提供することができる。検証モデル140は、デジタルコンポーネントの決定された属性の各々を、デジタルコンポーネントの宣言された属性のセットと比較することによって、比較に基づいて対話の有効性を評価することができる。たとえば、検証モデル140は、デジタルコンポーネントの決定された位置座標がデジタルコンポーネントの宣言された位置座標と一致すること、デジタルコンポーネントがビデオであり、デジタルコンポーネントの宣言されたタイプと一致すること、およびデジタルコンポーネントは300×100ピクセルであり、デジタルコンポーネントの宣言されたサイズと一致することを比較し、確認することができる。
【００５３】
検証モデル140は、デジタルコンポーネントのソースを、デジタルコンポーネントの宣言されたソースと比較することができる。たとえば、電子文書サーバ120は、デジタルコンポーネントとの対話の検証を要求し、検証モデル140は、対話が正しいデジタルコンポーネントとのものであることを検証するために、デジタルコンポーネントのコンテンツの決定されたソースを、宣言されたソース(この例では、電子文書サーバ120)と比較することができる。
【００５４】
検証モデル140は、デジタルコンポーネントの内容を、デジタルコンポーネントの宣言された内容と比較することができる。たとえば、検証モデル140は、デジタルコンポーネントが運動スニーカーに関連する画像であると決定し、これがデジタルコンポーネントの宣言された内容と一致することを確認することができる。
【００５５】
検証モデル140は、対話が疑わしいかどうかに基づいて、これらの比較のうちの1つまたは複数を実行することができる。たとえば、検証モデル140は、ユーザに固有のトレーニングされた機械学習モデルを使用することができ、対話が、ユーザまたは同様の特性を有する他のユーザによって以前に行われた対話から逸脱するかどうかを検出することができる。未検証の各対話には、過去の対話に関する異常スコアを与えることができる。未検証の対話がしきい値異常スコアを超える場合、検証モデル140は、追加のセキュリティのために、より多くの属性の比較を実行することができる。
【００５６】
検証モデル140は、デジタルコンポーネントが特定の時間にユーザデバイス104のディスプレイの前景に表示されていること、および決定された属性が宣言された属性のセットに一致していることに基づいて、対話が有効な対話であると決定することができる。たとえば、ユーザデバイス104の検証モデル140は、デジタルコンポーネントの決定された属性とデジタルコンポーネントの宣言された属性のセットとの比較を自動的に実行して、対話の有効性を評価することができる。この特定の例では、対話はインプレッションである。
【００５７】
デジタルコンポーネントの正確なレジストリを維持するために、信頼できるプログラム130は、デジタルコンポーネントが提示されるユーザデバイス104のUIの一部に関する情報を取得することができる。たとえば、信頼できるプログラム130は、ユーザデバイス104上で実行されているどのアプリケーションにおいて、デジタルコンポーネントスロットおよびデジタルコンポーネントが提示されるかを決定することができる。次いで、信頼できるプログラム130は、デジタルコンポーネントのレジストリを更新して、アプリケーションおよびデジタルコンポーネントをレジストリに含めることができる。レジストリは、デジタルコンポーネントによって占有される画面領域を維持し、デジタルコンポーネントの場所の検証データを提供することができる。たとえば、レジストリは、ユーザデバイス104の画面の特定の領域に現在表示されているデジタルコンポーネントに基づいて更新することができる。
【００５８】
フロー200は、ステージ(D)に続き、対話が有効であるという決定に基づいて、ユーザデバイス104の信頼できるアプリケーション130が証明トークンを生成する。信頼できるアプリケーション130は、トークンのパブリック/プライベートペアを生成し、暗号方法を介して証明トークン自体を生成することができる。
【００５９】
フロー200は、ステージ(E)に続き、ユーザデバイス104が証明トークンにデジタル署名し、トークンをサードパーティデバイス210に提供する。この特定の例では、サードパーティデバイス210は、デジタルコンポーネントを提供した電子文書サーバ120である。
クリック検証
【００６０】
フロー200は検証プロセスであり、この例では、フロー200は、クリックを検証するためのプロセスのデータフローを示している。この例では、ユーザデバイス104は、ユーザデバイス104のUIを介してユーザに表示されるデジタルコンポーネントをレンダリングする。ユーザデバイス104は、ユーザに提示するためにデジタルコンポーネントスロット内にデジタルコンポーネントをレンダリングすることができる。ユーザデバイス104の信頼できるプログラム130は、たとえば、ユーザデバイス104の表示のためのデバイスドライバ、またはユーザデバイス104にインストールされたウェブブラウザアプリケーションなど、ユーザデバイス104のOSの一部であり得る。この特定の例では、ディスプレイは、タッチスクリーンディスプレイである。いくつかの実装形態では、デバイスドライバは、ユーザデバイス104のための、マウスまたはトラックボールなどの物理的なユーザインターフェースデバイスのためのドライバであり得る。
【００６１】
信頼できるプログラム130は、ユーザデバイス104のディスプレイとの特定のユーザ対話を示すトリガイベントを検出することができる。たとえば、デバイスドライバ130は、ユーザデバイス104のタッチスクリーンに触れているユーザからフィンガーダウンイベントを受信することができる。デバイスドライバ130は、ユーザデバイス104のオペレーティングシステムの一部であり、フィンガーダウンイベントを受信する最初のソフトウェアである。デバイスドライバ130は、他の属性の中でも、フィンガーダウンイベントおよびイベントの属性、たとえば、時間、場所、使用される力の量などを検出することができる。
【００６２】
後で、信頼できるプログラム130は、ユーザデバイス104のディスプレイとの異なるユーザ対話を示すターゲットイベントを検出することができる。たとえば、デバイスドライバ130は、ユーザデバイス104のタッチスクリーンから指を持ち上げるユーザからのフィンガーアップイベントを受信することができる。デバイスドライバ130は、他の属性の中でも、フィンガーアップイベントおよびイベントの属性、たとえば、時間、場所、使用される力の量などを検出することができる。
【００６３】
ターゲットイベントおよびターゲットイベントの時間を検出すると、デバイスドライバ130は、最新のトリガイベントを識別する。この特定の例では、最新のトリガイベントは、最新のフィンガーダウンイベントである。次いで、デバイスドライバ130は、フィンガーアップイベントおよび最新のフィンガーダウンイベントに関連付けられたデジタルコンポーネントスロットを決定することができる。加えて、フィンガーアップイベントおよび最新のフィンガーダウンイベントが識別されると、デバイスドライバ130は、検証モデル140を使用して、クリックイベントを検証することができる。たとえば、デバイスドライバ130は、フィンガーアップイベントと最新のフィンガーダウンイベントとの間の時間量を決定し、以下でさらに説明するように、対話の検証のために検証モデル140に時間量を提供することができる。デバイスドライバ130はまた、イベントの決定された座標間の距離を計算することによって、フィンガーアップイベントと最新のフィンガーダウンイベントとの間の距離を決定し、以下に説明するように、対話の検証のための入力として検証モデル140までの距離を提供することができる。
【００６４】
この特定の例では、フロー200は、ステージ(A)で始まり、ユーザデバイス104は、フィンガーダウンイベントとそれに続くフィンガーアップイベントとの間の時間量、およびデジタルコンポーネントとの未検証のユーザ対話が発生したことを決定した後、特定の時間に対話イベントを示すデータを受信する。
【００６５】
フロー200は、インプレッション検証プロセスに関して上記で説明したようにステージ(B)に続く。
【００６６】
フロー200は、ステージ(C)に続き、信頼できるアプリケーション130は、検証モデル140を使用して、決定された属性をデジタルコンポーネントの宣言された属性のセットと比較し、比較に基づいて対話の有効性を評価する。上記のステージ(C)の説明に加えて、検証モデル140は、時間量、ならびにフィンガーダウンおよびフィンガーアップイベントの検出された属性に基づいて、クリックが正当なクリックであったかどうかを決定することができる。検証モデル140は、ユーザによって実行される可能性が高いクリックの定義を自動的に決定することができる。検証モデル140は、フィンガーダウンイベントとクリックのために許容されるそれに続くフィンガーアップイベントとの間の時間量の最小および最大のしきい値を決定することができる。たとえば、フィンガーダウンイベントとそれに続くフィンガーアップイベントとの間の時間が、人間が行動を実行することができる最小しきい値時間量よりも短い場合、検証モデル140は、クリックがボット攻撃または不正なクリックの結果である可能性が高いと決定することができる。追加として、検証モデル140は、フィンガーダウンイベントとクリックのために許容されるそれに続くフィンガーアップイベントとの間の距離の最小および最大のしきい値を決定することができる。たとえば、最小距離のしきい値は、最初に、タッチスクリーンのクリックから解放されてから、人間の指が最初のフィンガーダウンイベントからフィンガーアップイベントまで移動する距離の範囲の下限として設定することができる。検証モデル140は、フィンガーダウンイベントとフィンガーアップイベントのペアがスクロールと見なされる距離を決定することによって、最大距離しきい値を自動的に決定することができる。たとえば、フィンガーダウンイベントとそれに続くフィンガーアップイベントとの間の距離が最大しきい値距離を超える場合、検証モデル140は、フィンガーダウンイベントとフィンガーアップイベントとが一緒にクリックではなくスクロール動作を構成すると決定することができる。いくつかの実装形態では、検証モデル140は、特定のユーザのデータを使用してトレーニングすることができ、それによって、検証結果を各ユーザに個人化することができる。
【００６７】
フロー200は、インプレッション検証プロセスに関して上記で説明したように、ステージ(D)に続き、ステージ(E)で終了する。
要求検証
【００６８】
フロー200は検証プロセスであり、この例では、フロー200は、デジタルコンポーネントの要求を生成し、トークンを要求に添付するプロセスのデータフローを示している。フロー200は、ステージ(A)から始まる。この例では、ステージ(A)は、ステージ(A-2)として示され、ユーザデバイス104は、デジタルコンポーネントとの対話イベントを示すデータを受信する。この例では、ユーザデバイス104は、ユーザデバイス104が、デジタルコンポーネント配信システムにデジタルコンポーネントを要求するデータを受信する。ユーザデバイス104の信頼できるプログラム130は、たとえば、ユーザデバイス104のOSの一部、またはユーザデバイス104にインストールされたウェブブラウザアプリケーションであり得る。この特定の例では、サードパーティデバイス210は、DCDS112である。
【００６９】
フロー200は、ステージ(A-2)からステージ(D)まで続き、対話が有効であるという決定に基づいて、ユーザデバイス104の信頼できるアプリケーション130が証明トークンを生成する。信頼できるアプリケーション130は、トークンのパブリック/プライベートペアを生成し、暗号方法を介して証明トークン自体を生成することができる。
【００７０】
フロー200は、ステージ(E)に続き、ユーザデバイス104が証明トークンにデジタル署名し、デジタルコンポーネントの要求とともに、トークンをサードパーティデバイス210に提供する。
【００７１】
図3は、対話イベントを妥当性検査するための例示的なプロセス300のフローチャートである。いくつかの実装形態では、プロセス300の動作は、ユーザデバイスによって実装することができる。たとえば、プロセス300の動作は、図1〜図2のユーザデバイス104によって実装することができる。いくつかの実装形態では、プロセス300は、非一時的コンピュータ可読媒体に格納された命令として実装することができ、命令がユーザデバイスによって実行されると、命令は、ユーザデバイスに、プロセス300の動作を実行させることができる。
【００７２】
プロセス300は、ユーザデバイスにおいて、特定の時間に、(i)コンテンツプロバイダによって提供され、(ii)ユーザデバイスのユーザインターフェースによって提示される、デジタルコンポーネントに関連付けられた対話を示す入力を受信すること(302)で始まる。たとえば、ユーザデバイス104は、ユーザデバイス104のUIのデジタルコンポーネントスロット内のデジタルコンポーネントの提示を引き起こすデータを受信することができる。この例では、デジタルコンポーネントは、電子文書サーバ120によって提供される。デジタルコンポーネントは、ユーザデバイス104のユーザインターフェースによって提示される。
【００７３】
プロセス300は、続いて、ユーザデバイスの信頼できるプログラムによって、対話が有効であると決定する(304)。この例では、ユーザデバイス104のOS130である信頼できるプログラム130は、入力データによって示される対話が有効であると決定することができる。
【００７４】
対話が有効であると決定することは、ユーザデバイスの信頼できるプログラムによって、ユーザデバイスのユーザインターフェースがアクティブであり、特定の時間にデジタルコンポーネントをアクティブに提示していたことを検出すること(306)を含む。たとえば、ユーザデバイス104の信頼できるプログラム130は、デジタルコンポーネントがユーザデバイス104のユーザインターフェースの前景にあり、デジタルコンポーネントが特定の時間に可視であったと決定することができる。
【００７５】
対話が有効であると決定することはまた、信頼できるプログラムによって、およびユーザデバイスのユーザインターフェースがアクティブであり、特定の時間にデジタルコンポーネントをアクティブに提示していたことを検出したことに応答して、デジタルコンポーネントがアクティブに提示されたユーザインターフェース内の場所を含むデジタルコンポーネントの属性のセットを決定すること(308)も含む。たとえば、信頼できるプログラム130は、他の属性の中でも、サイズ、場所、およびコンテンツなどのデジタルコンポーネントの属性のセットを決定することができる。
【００７６】
対話が有効であると決定することはまた、ユーザデバイスの信頼できるプログラムによって、決定された属性のセットの各属性を、コンテンツプロバイダによって提供されるデジタルコンポーネントの参照属性のセット内の対応する属性と比較すること(310)を含む。たとえば、信頼できるプログラム130は、検証モデル140を使用して、決定された属性のセットの各属性を、参照属性のセット内の対応する属性と比較することができる。参照属性は、デジタルコンポーネントのコンテンツプロバイダである電子文書サーバ120によって提供される宣言された属性のセットであり得る。
【００７７】
対話が有効であると決定することはまた、比較に基づいて、および信頼できるプログラムによって、対話の有効性を評価することであり、対話は、(i)決定された属性のセットと参照属性のセットとの間の一致を示す比較、および(ii)ユーザデバイスのユーザインターフェースがアクティブであり、特定の時間にデジタルコンポーネントをアクティブに提示していたことの検出に応答して、有効と見なされる、評価すること(312)を含む。たとえば、信頼できるプログラム130は、検証モデル140を使用して、決定された属性のセットと参照属性のセットとの間の一致を示す比較、およびデジタルコンポーネントが可視であり、特定の時間にユーザデバイス104のユーザに提示されたという検出に応答して、対話が有効であると決定することができる。
【００７８】
プロセス300は、続いて、ユーザデバイスの信頼できるプログラムによって、および有効性評価に基づく対話が有効であるという決定に基づいて、デジタルコンポーネントとの対話の有効性を証明するデジタル署名されたトークンを生成する(314)。たとえば、信頼できるプログラム130は、暗号方法を使用して証明トークンを生成することができる。証明トークンは、対話の有効性を証明する。
【００７９】
プロセス300はまた、ユーザデバイスの信頼できるプログラムによって、およびサードパーティに、対話の有効性の指示としてデジタル署名された証明トークンを提供すること(316)を含む。たとえば、信頼できるプログラム130は、デジタル署名された証明トークンを、他のデバイスの中でも、サードパーティデバイス210、電子文書サーバ120、およびDCDS112に送信することができる。
【００８０】
図4は、上記の動作を実行するために使用することができる例示的なコンピュータシステム400のブロック図である。システム400は、プロセッサ410、メモリ420、記憶デバイス430、および入力/出力デバイス440を含む。コンポーネント410、420、430、および440の各々は、たとえば、システムバス450を使用して相互接続することができる。プロセッサ410は、システム400内で実行するための命令を処理することができる。一実装形態では、プロセッサ410は、シングルスレッドプロセッサである。別の実装形態では、プロセッサ410は、マルチスレッドプロセッサである。プロセッサ410は、メモリ420または記憶デバイス430に記憶された命令を処理することができる。
【００８１】
メモリ420は、システム400内に情報を記憶する。一実装形態では、メモリ420は、コンピュータ可読媒体である。一実装形態では、メモリ420は、揮発性メモリユニットである。別の実装形態では、メモリ420は、不揮発性メモリユニットである。
【００８２】
記憶デバイス430は、システム400に大容量ストレージを提供することができる。一実装形態では、記憶デバイス430は、コンピュータ可読媒体である。様々な異なる実装形態では、記憶デバイス430は、たとえば、ハードディスクデバイス、光ディスクデバイス、複数のコンピューティングデバイス(たとえば、クラウド記憶デバイス)によってネットワーク上で共有される記憶デバイス、または何らかの他の大容量ストレージデバイスを含むことができる。
【００８３】
入力/出力デバイス440は、システム400に入力/出力動作を提供する。一実装形態では、入力/出力デバイス440は、1つまたは複数のネットワークインターフェースデバイス、たとえばイーサネットカード、シリアル通信デバイス、たとえばRS-232ポート、および/またはワイヤレスインターフェースデバイス、たとえば802.11カードを含むことができる。別の実装形態では、入力/出力デバイスは、入力データを受信し、出力データを他の入力/出力デバイス、たとえば、キーボード、プリンタ、およびディスプレイデバイス460に送信するように構成されたドライバデバイスを含むことができる。しかしながら、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビクライアントデバイスなど、他の実装も使用することができる。
【００８４】
図4には例示的な処理システムが記載されているが、本明細書に記載された主題および機能的動作の実装は、他のタイプのデジタル電子回路、または本明細書に開示された構造およびそれらの構造的均等物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらの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(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびにキーボードおよび、ユーザがコンピュータに入力を提供することができる、たとえば、マウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。さらに、コンピュータは、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってなど、ユーザによって使用されるデバイスとの間で文書を送受信することによって、ユーザと対話することができる。
【００９３】
本明細書に記載される主題の実施形態は、たとえばデータサーバとしてのバックエンド構成要素を含む、またはアプリケーションサーバなどのミドルウェア構成要素を含む、またはたとえば、グラフィカルユーザインタフェースを有するクライアントコンピュータ、またはユーザが本明細書に記載された主題の実装と対話することができるウェブブラウザを有するクライアントコンピュータなどのフロントエンド構成要素を含む、または1つもしくは複数のそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実装することができる。システムの構成要素は、たとえば、通信ネットワークなど、任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえばインターネット)、およびピアツーピアネットワーク(たとえばアドホックピアツーピアネットワーク)を含む。
【００９４】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバとは、一般に、互いに遠隔であり、典型的には、通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアントサーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、データ(たとえば、HTMLページ)をクライアントデバイスに送信する(たとえば、クライアントデバイスと対話しているユーザにデータを表示し、ユーザからユーザ入力を受信するために)。(たとえば、ユーザ対話の結果など)ユーザデバイスにおいて生成されたデータは、サーバにおいてクライアントデバイスから受信することができる。
【００９５】
本明細書は、多くの具体的な実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性のある範囲に対する限定ではなく、むしろ特定の発明の特定の実施形態に対する固有の特徴の説明として解釈されるものとする。別個の実施形態の文脈において本明細書で説明されるいくつかの特徴は、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈で記載されている様々な特徴は、複数の実施形態で別々にまたは任意の適切な部分組合せで実装することもできる。さらに、特徴は、いくつかの組合せで作用するものとして上述されており、当初はそのように請求されているものであるが、請求された組合せからの1つまたは複数の特徴を、いくつかの場合、組合せから切り取ることができ、請求された組合せは、部分組合せ、または部分組合せの変形を対象とし得る。
【００９６】
同様に、動作が特定の順序で図面に示されているが、これは、そのような動作が、示された特定の順序で、または順番に実行されること、あるいは望ましい結果を達成するために、図示されたすべての動作が実行されることを必要とするものとして理解されないものとする。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。さらに、上述した実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とするものと理解されないものとし、記述されたプログラム構成要素およびシステムを、一般に、単一のソフトウェア製品に一緒に組み入れることができ、または複数のソフトウェア製品にパッケージ化することができることを理解されたい。
【００９７】
したがって、主題の特定の実施形態が記載されている。他の実施形態は、以下の特許請求の範囲内にある。いくつかの場合、特許請求の範囲に列挙されたアクションは、異なる順序で実行され、依然として望ましい結果を達成することができる。加えて、添付の図面に示されるプロセスは、望ましい結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。いくつかの実装形態では、マルチタスキングおよび並列処理が有利であり得る。
【符号の説明】
【００９８】
100  環境
102  ネットワーク
104  ユーザデバイス
110  システム
112  デジタルコンポーネント配信システム(DCDS)
120  電子文書サーバ
121  電子文書
130  信頼できるプログラム、信頼できるアプリケーション、デバイスドライバ、OS
140  検証モデル
210  サードパーティデバイス
400  コンピュータシステム
410  プロセッサ
420  メモリ
430  記憶デバイス
440  入力/出力デバイス
450  システムバス
460  ディスプレイデバイス
【図１】
2022501671.tif 000003
【図２】
2022501671.tif 000004
【図３】
2022501671.tif 000005
【図４】
2022501671.tif 000006
【手続補正書】
【提出日】令和3年1月4日(2021.1.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユーザデバイスにおいて、特定の時間に、(i)コンテンツプロバイダによって提供され、(ii)前記ユーザデバイスのユーザインターフェースによって提示される、デジタルコンポーネントに関連付けられた対話を示す入力を受信するステップと、
前記ユーザデバイスの信頼できるプログラムによって、
前記信頼できるプログラムによって、前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことを検出することと、
前記信頼できるプログラムによって、および前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことを検出したことに応答して、前記デジタルコンポーネントがアクティブに提示された前記ユーザインターフェース内の場所を含む前記デジタルコンポーネントの属性のセットを決定することと、
前記信頼できるプログラムによって、前記決定された属性のセットの各属性を、前記コンテンツプロバイダによって提供される前記デジタルコンポーネントの参照属性のセット内の対応する属性と比較することと、
前記比較に基づいて、および前記信頼できるプログラムによって、前記対話の有効性を評価することであり、前記対話は、(i)前記決定された属性のセットと参照属性の前記セットとの間の一致を示す前記比較、および(ii)前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことの前記検出に応答して、有効と見なされる、評価することと
によって、前記対話が有効であると決定するステップと、
前記信頼できるプログラムによって、および前記有効性評価に基づく前記対話が有効であるという前記決定に基づいて、前記デジタルコンポーネントとの前記対話の前記有効性を証明するデジタル署名されたトークンを生成するステップと、
前記信頼できるプログラムによって、およびサードパーティに、前記対話の前記有効性の指示として前記デジタル署名されたトークンを提供するステップと
を含む方法。
【請求項２】
前記信頼できるプログラムによって、前記ユーザデバイスのディスプレイとの特定のユーザ対話を示す、前記特定の時間より前の第1の時間におけるトリガイベントを検出するステップと、
前記信頼できるプログラムによって、および前記第1の時間の後、前記特定の時間に、前記ユーザデバイスの前記ディスプレイとの異なるユーザ対話を示すターゲットイベントを検出するステップと、
前記信頼できるプログラムによって、および前記特定の時間より前の前記第1の時間において前記トリガイベントと、前記特定の時間において前記ターゲットイベントとを検出することに基づいて、前記トリガイベントおよび前記ターゲットイベントに関連付けられた前記デジタルコンポーネントが提示されたデジタルコンポーネントスロットを識別するステップと、
前記信頼できるプログラムによって、および(i)前記特定の時間より前の前記第1の時間において前記トリガイベントと、前記特定の時間において前記ターゲットイベントとを検出し、(ii)前記トリガイベントおよび前記ターゲットイベントに関連付けられた前記デジタルコンポーネントスロットを識別することに基づいて、(a)前記第1の時間と前記特定の時間との間の時間期間、および(b)前記デジタルコンポーネントとの未検証のユーザ対話が発生したことを決定するステップと、をさらに含み、
前記デジタルコンポーネントとの前記対話を示す前記入力を受信するステップが、(a)前記第1の時間と前記特定の時間との間の前記時間期間、および(b)前記デジタルコンポーネントとの未検証のユーザ対話が発生したという前記決定に応答して実行され、
前記未検証のユーザ対話が、前記入力によって示される前記対話である、
請求項1に記載の方法。
【請求項３】
前記デジタルコンポーネントの前記決定された属性のセットが、前記デジタルコンポーネントが提示されるアプリケーションを含む、請求項1に記載の方法。
【請求項４】
前記デジタルコンポーネントの前記決定された属性のセットが、前記デジタルコンポーネントのサイズ、タイプ、およびコンテンツのうちの1つを含む、請求項1に記載の方法。
【請求項５】
前記デジタルコンポーネントに関連付けられた前記対話が、前記ユーザデバイスのユーザに対する前記デジタルコンポーネントのインプレッションである、請求項1に記載の方法。
【請求項６】
前記デジタルコンポーネントに関連付けられた前記対話が、前記ユーザデバイスのユーザによる前記デジタルコンポーネントのクリックである、請求項1に記載の方法。
【請求項７】
前記デジタルコンポーネントに関連付けられた前記対話が、前記ユーザデバイスによって、およびサードパーティデバイスに、前記デジタルコンポーネントの要求を提供することを含む、請求項1に記載の方法。
【請求項８】
前記ユーザデバイスが(i)前記要求および(ii)前記トークンを生成したことを、前記デジタル署名されたトークンが証明する、請求項7に記載の方法。
【請求項９】
前記デジタルコンポーネントの前記要求が変更されていないことを、前記デジタル署名されたトークンが証明する、請求項7に記載の方法。
【請求項１０】
(i)前記要求が前記ユーザデバイスによって生成されたこと、および(ii)前記ユーザデバイスが変更されていないこと、またはデバイスエミュレータであることを、前記デジタル署名されたトークンが証明する、請求項7に記載の方法。
【請求項１１】
1つまたは複数の通信ネットワークを介した通信を可能にする通信インターフェースを含むサードパーティデバイスと、
ユーザデバイスとを含み、前記ユーザデバイスが、
特定の時間に、(i)コンテンツプロバイダによって提供され、(ii)前記ユーザデバイスのユーザインターフェースによって提示される、デジタルコンポーネントとの対話を示す入力を受信することと、
前記ユーザデバイスの信頼できるプログラムによって、
前記信頼できるプログラムによって、前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことを検出することと、
前記信頼できるプログラムによって、および前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことを検出したことに応答して、前記デジタルコンポーネントがアクティブに提示された前記ユーザインターフェース内の場所を含む前記デジタルコンポーネントの属性のセットを決定することと、
前記信頼できるプログラムによって、前記決定された属性のセットの各属性を、前記コンテンツプロバイダによって提供される前記デジタルコンポーネントの参照属性のセット内の対応する属性と比較することと、
前記比較に基づいて、および前記信頼できるプログラムによって、前記対話の有効性を評価することであり、前記対話は、(i)前記決定された属性のセットと参照属性の前記セットとの間の一致を示す前記比較、および(ii)前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことの前記検出に応答して、有効と見なされる、評価することと
によって、前記対話が有効であると決定することと、
前記信頼できるプログラムによって、および前記有効性評価に基づく前記対話が有効であるという前記決定に基づいて、前記デジタルコンポーネントとの前記対話の前記有効性を証明するデジタル署名されたトークンを生成することと、
前記信頼できるプログラムによって、および前記サードパーティデバイスに、前記対話の前記有効性の指示として前記デジタル署名されたトークンを提供することと
を含む動作を実行する、
システム。
【請求項１２】
前記動作が、
前記信頼できるプログラムによって、前記ユーザデバイスのディスプレイとの特定のユーザ対話を示す、前記特定の時間より前の第1の時間におけるトリガイベントを検出することと、
前記信頼できるプログラムによって、および前記第1の時間の後、前記特定の時間に、前記ユーザデバイスの前記ディスプレイとの異なるユーザ対話を示すターゲットイベントを検出することと、
前記信頼できるプログラムによって、および前記特定の時間より前の前記第1の時間において前記トリガイベントと、前記特定の時間において前記ターゲットイベントとを検出することに基づいて、前記トリガイベントおよび前記ターゲットイベントに関連付けられた前記デジタルコンポーネントが提示されたデジタルコンポーネントスロットを識別することと、
前記信頼できるプログラムによって、および(i)前記特定の時間より前の前記第1の時間において前記トリガイベントと、前記特定の時間において前記ターゲットイベントとを検出し、(ii)前記トリガイベントおよび前記ターゲットイベントに関連付けられた前記デジタルコンポーネントスロットを識別することに基づいて、(a)前記第1の時間と前記特定の時間との間の時間期間、および(b)前記デジタルコンポーネントとの未検証のユーザ対話が発生したことを決定することと、をさらに含み、
前記デジタルコンポーネントとの前記対話を示す前記入力を受信することが、(a)前記第1の時間と前記特定の時間との間の前記時間期間、および(b)前記デジタルコンポーネントとの未検証のユーザ対話が発生したという前記決定に応答して実行され、
前記未検証のユーザ対話が、前記入力によって示される前記対話である、
請求項11に記載のシステム。
【請求項１３】
前記デジタルコンポーネントの前記決定された属性のセットが、前記デジタルコンポーネントが提示されるアプリケーションを含む、請求項11に記載のシステム。
【請求項１４】
前記デジタルコンポーネントの前記決定された属性のセットが、前記デジタルコンポーネントのサイズ、タイプ、およびコンテンツのうちの1つを含む、請求項11に記載のシステム。
【請求項１５】
前記デジタルコンポーネントに関連付けられた前記対話が、前記ユーザデバイスのユーザに対する前記デジタルコンポーネントのインプレッションである、請求項11に記載のシステム。
【請求項１６】
前記デジタルコンポーネントに関連付けられた前記対話が、前記ユーザデバイスのユーザによる前記デジタルコンポーネントのクリックである、請求項11に記載のシステム。
【請求項１７】
前記デジタルコンポーネントに関連付けられた前記対話が、前記ユーザデバイスによって、および前記サードパーティデバイスに、前記デジタルコンポーネントの要求を提供することを含む、請求項11に記載のシステム。
【請求項１８】
前記ユーザデバイスが(i)前記要求および(ii)前記トークンを生成したことを、前記デジタル署名されたトークンが証明する、請求項17に記載のシステム。
【請求項１９】
1つまたは複数のコンピューティングデバイスによって実行されると、前記1つまたは複数のコンピューティングデバイスに、
ユーザデバイスにおいて、特定の時間に、(i)コンテンツプロバイダによって提供され、(ii)前記ユーザデバイスのユーザインターフェースによって提示される、デジタルコンポーネントとの対話を示す入力を受信することと、
前記ユーザデバイスの信頼できるプログラムによって、
前記信頼できるプログラムによって、前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことを検出することと、
前記信頼できるプログラムによって、および前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことを検出したことに応答して、前記デジタルコンポーネントがアクティブに提示された前記ユーザインターフェース内の場所を含む前記デジタルコンポーネントの属性のセットを決定することと、
前記信頼できるプログラムによって、前記決定された属性のセットの各属性を、前記コンテンツプロバイダによって提供される前記デジタルコンポーネントの参照属性のセット内の対応する属性と比較することと、
前記比較に基づいて、および前記信頼できるプログラムによって、前記対話の有効性を評価することであり、前記対話は、(i)前記決定された属性のセットと参照属性の前記セットとの間の一致を示す前記比較、および(ii)前記ユーザデバイスの前記ユーザインターフェースがアクティブであり、前記特定の時間に前記デジタルコンポーネントをアクティブに提示していたことの前記検出に応答して、有効と見なされる、評価することと
によって、前記対話が有効であると決定することと、
前記信頼できるプログラムによって、および前記有効性評価に基づく前記対話が有効であるという前記決定に基づいて、前記デジタルコンポーネントとの前記対話の前記有効性を証明するデジタル署名されたトークンを生成することと、
前記信頼できるプログラムによって、およびサードパーティに、前記対話の前記有効性の指示として前記デジタル署名されたトークンを提供することと
を含む動作を実行させる命令を格納するコンピュータ可読記憶媒体。
【請求項２０】
前記動作が、
前記信頼できるプログラムによって、前記ユーザデバイスのディスプレイとの特定のユーザ対話を示す、前記特定の時間より前の第1の時間におけるトリガイベントを検出することと、
前記信頼できるプログラムによって、および前記第1の時間の後、前記特定の時間に、前記ユーザデバイスの前記ディスプレイとの異なるユーザ対話を示すターゲットイベントを検出することと、
前記信頼できるプログラムによって、および前記特定の時間より前の前記第1の時間において前記トリガイベントと、前記特定の時間において前記ターゲットイベントとを検出することに基づいて、前記トリガイベントおよび前記ターゲットイベントに関連付けられた前記デジタルコンポーネントが提示されたデジタルコンポーネントスロットを識別することと、
前記信頼できるプログラムによって、および(i)前記特定の時間より前の前記第1の時間において前記トリガイベントと、前記特定の時間において前記ターゲットイベントとを検出し、(ii)前記トリガイベントおよび前記ターゲットイベントに関連付けられた前記デジタルコンポーネントスロットを識別することに基づいて、(a)前記第1の時間と前記特定の時間との間の時間期間、および(b)前記デジタルコンポーネントとの未検証のユーザ対話が発生したことを決定することと、をさらに含み、
前記デジタルコンポーネントとの前記対話を示す前記入力を受信することが、(a)前記第1の時間と前記特定の時間との間の前記時間期間、および(b)前記デジタルコンポーネントとの未検証のユーザ対話が発生したという前記決定に応答して実行され、
前記未検証のユーザ対話が、前記入力によって示される前記対話である、
請求項19に記載のコンピュータ可読記憶媒体。
【国際調査報告】
2022501671.tif 000007
2022501671.tif 000008
2022501671.tif 000009