JP2023089216A - データ配布制限のセキュアな管理 - Google Patents

データ配布制限のセキュアな管理 Download PDF

Info

Publication number
JP2023089216A
JP2023089216A JP2023067940A JP2023067940A JP2023089216A JP 2023089216 A JP2023089216 A JP 2023089216A JP 2023067940 A JP2023067940 A JP 2023067940A JP 2023067940 A JP2023067940 A JP 2023067940A JP 2023089216 A JP2023089216 A JP 2023089216A
Authority
JP
Japan
Prior art keywords
application
digital component
universal
blocked
digital
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023067940A
Other languages
English (en)
Inventor
ガン・ワン
Gang Wang
ケヴィン・イェオ
Wei Li Yeo Kevin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to JP2023067940A priority Critical patent/JP2023089216A/ja
Publication of JP2023089216A publication Critical patent/JP2023089216A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6263Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Power Engineering (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】適切なデジタルコンポーネントが自動的に選定され、クライアントデバイスに提供するコンピュータプログラムを含む方法、システムおよび装置を提供する。【解決手段】アプリケーションにおいて、提示されるデジタルコンポーネントについてのユニバーサル識別子を生成する。計算サーバMPC1、MPC2は、指定された時間期間にデジタルコンポーネントについて作成されたことがあるユニバーサル識別子の組を更新し、ブロッキングされるデジタルコンポーネントおよび対応するユニバーサル識別子を特定し、ブロッキングされたユニバーサル識別子の組を表す確率的データ構造を生成し、確率的データ構造の複数のシェアを作成し、異なるシェアを異なるサーバに送信し、複数のシェアに基づいて異なるサーバのそれぞれから応答を受信し、応答の組合せに基づいてアプリケーションに提示するためのデジタルコンポーネントを特定する。【選択図】図2

Description

本明細書は、データ処理およびデータセキュリティに関する。
クライアントデバイスは、アプリケーション(たとえば、ウェブブラウザ、ネイティブアプリケーション)を使用して、コンテンツプラットフォーム(たとえば、検索プラットフォーム、ソーシャルメディアプラットフォーム、またはコンテンツをホストする別のプラットフォーム)にアクセスすることができる。コンテンツプラットフォームは、1つまたは複数のコンテンツソース/プラットフォームによって提供され得るデジタルコンポーネント(たとえば、ビデオクリップ、オーディオクリップ、マルチメディアクリップ、画像、テキストなどのデジタルコンテンツもしくはデジタル情報の個別単位、またはコンテンツの別の単位)をクライアントデバイス上に起動したアプリケーション内に表示することができる。いくつかのシステムは、処理リソースの節約など、様々な理由で、デジタルコンポーネントなどのデータの配布を制限している。しかしながら、それらの制限を実装するための技法は、データセキュリティ問題につながることもある。
概して、本明細書に記載の主題の1つの発明的態様は、アプリケーションによって、アプリケーションに提示されるデジタルコンポーネントについて、(i) デジタルコンポーネントを提供するコンテンツソースについてのキャンペーン識別子と(ii)コンテンツソースのドメインとの組合せの暗号化バージョンであるユニバーサル識別子を生成する動作と、アプリケーションによって、生成されたユニバーサル識別子に基づいて、指定された時間期間にわたってアプリケーションによって提示されるデジタルコンポーネントについて作成されたことがあるユニバーサル識別子の組を更新する動作と、アプリケーションによって、(i)アプリケーションによって生成されたことがあり、(ii)アプリケーションに今後のデジタルコンポーネントを提示するための使用をブロッキングされたことがあるユニバーサル識別子に対応するブロッキングされたユニバーサル識別子の組を特定する動作と、アプリケーションによって、ブロッキングされたユニバーサル識別子の組を表す確率的データ構造を生成する動作と、アプリケーションによって、確率的データ構造の複数のシェアを作成する動作と、アプリケーションによって、複数のシェアのうちの異なるシェアを異なるサーバに送信する動作と、アプリケーションによって、異なるサーバに送信された複数のシェアのうちの異なるシェアに基づいて、異なるサーバのそれぞれによって生成される別個の応答を受信する動作と、アプリケーションによって、別個の応答の組合せに基づいて、アプリケーションに提示するためのデジタルコンポーネントを特定する動作とを含む方法において具現化され得る。
本態様の他の実装形態は、対応する装置、システム、およびコンピュータプログラムを含み、コンピュータプログラムは、方法の態様を行うように構成され、コンピュータストレージデバイスにおいて符号化される。これらおよび他の実装形態はそれぞれ、次の特徴のうちの1つまたは複数をオプションで含むことができる。
いくつかの態様においては、アプリケーションに提示される所与のデジタルコンポーネントに対応するミュート要素との対話が検出され、ブロッキングされたユニバーサル識別子の組は、直近のタイムフレームでのミュート要素との対話の検出に応答して、所与のデジタルコンポーネントのユニバーサル識別子を含むように更新される。
いくつかの態様においては、ユニバーサル識別子の組を更新する動作は、特定のユニバーサル識別子を有するデジタルコンポーネントの提示の頻度を示す提示カウンタを、アプリケーションによって特定のユニバーサル識別子に関連付けられたデジタルコンポーネントの提示に応答して、増分する動作を含む。いくつかの態様においては、ユニバーサル識別子の組を更新する動作は、提示カウンタが指定値を上回ったとき、特定のユニバーサル識別子をブロッキングされたユニバーサル識別子の組に追加する動作を含む。
いくつかの態様においては、確率的データ構造を生成する動作は、(i)ブロッキングされたユニバーサル識別子の組と、(ii)アプリケーションのユーザに割り当てられたユーザグループに対応するユーザグループ識別子の組とを表す確率的データ構造を生成する動作を含む。いくつかの態様においては、確率的データ構造を生成する動作は、2つ以上のランダム変数によってパラメータ化される擬似ランダム関数を使用する動作をさらに含み、確率的データ構造は、カッコウフィルタ(cuckoo filter)である。
いくつかの態様においては、デジタルコンポーネントを提供するエンティティは、デジタルコンポーネントについてのユニバーサル識別子を生成することができる。
本明細書に記載の主題の特定の実施形態は、次の利点のうちの1つまたは複数を実現するために実装され得る。特定のタイプのデータへのアクセスは、セキュアマルチパーティ計算(multi-party computation、「MPC」)方法を使用することによって、制限され、保護され、またはセキュリティ保護され得、MPC方法は、異なるパーティにより動作する2つ以上のMPCサーバによって行われて、デジタルコンポーネントをいつクライアントデバイスに配布すべきであるか、および/またはどのデジタルコンポーネントを配布すべきであるかを決定することができる。MPCサーバは、たとえば、データの異なる秘密シェア(たとえば、異種またはばらばらなデータセットサブセット)を別個に処理することによって決定を行うことができ、これらの秘密シェアは、MPCサーバのうちの異なるMPCサーバに提供されて、秘密シェアのうちの1つによって表されるデータにアクセスすることができるいずれかのMPCサーバまたは任意の他のパーティが、クリアテキストのフルデータセットに確実にアクセスできなくする。
決定を行うのに必要なデータおよび処理リソースの量は、たとえば、確率的データ構造、たとえば、カッコウフィルタを使用することによって抑えることができ、それにより、提示をブロッキングされているデジタルコンポーネントと、デジタルコンポーネントなどのデータの提示を要求するクライアントデバイスのユーザが属するグループ(たとえば、興味グループ)とを、ユーザに関する極秘データを明らかにすることなく同時に提示することが可能になる。このようなやり方で確率的データ構造を使用すると、ユーザプライバシーが保護され、MPCクラスタに提供される情報のサイズが縮小される。データサイズのこの縮小により、情報を送信するのに消費される帯域幅の量が抑えられ、情報を送信する際のレイテンシが抑えられ、情報を送信するのに必要なバッテリで動作するデバイス(たとえば、モバイルデバイス)の処理電力および関連のバッテリ電力の量が抑えられる。
また、上述した確率的データ構造を使用すると、クライアントデバイスのユーザが、5つ未満のルックアップ動作(たとえば、いくつかの例においては、2つ以下のルックアップ動作)により分析を行うことによって特定のタイプのデータを受信する資格があるかどうかを決定するのに必要な処理リソース(たとえば、メモリ、CPUサイクル、またはクラウドコンピューティングリソース)の量を低減させることもできるが、既存の技法では、同じ結果に到達するのに数百ものルックアップが必要な場合がある。より具体的には、確率的データ構造を使用すると、特定のクライアントデバイスに特定のデータセット(たとえば、デジタルコンポーネント)を提供するために特定する必要がある情報が、確率的データ構造の指定された数(たとえば、2つまたは3つ)の場所でしか確実に見つけられなくなり、それにより、その2つの場所しか、コンピューティングデバイスによる検証の必要がなくなる。これにより、コンピューティングシステム自体の効率性が明らかに改善され、バッテリ寿命、エネルギー消費、所要の機器冷却など、リソースの保存につながる可能性がある。また、その結果、5つ未満のルックアップ動作を行うことと比較して数百ものルックアップ動作を行うのに必要とされるシステムよりも速く結果を得ることができることにもつながる可能性がある。
MPCクラスタは、MPCクラスタがセキュアMPC方法を使用して選定した、選定されたデジタルコンポーネントを特定する結果の秘密シェアを送信することができる。同様に、デジタルコンポーネントのすべてまたは大きい組についての情報ではなく、選定されたデジタルコンポーネントのみについての結果の秘密シェアを送出することによって、結果を送受信する際の消費される帯域幅、レイテンシ、処理電力、およびバッテリ電力が抑えられる。また、これにより、クライアントデバイスに情報が提供されるデジタルコンポーネントの数を限定することによって、デジタルコンポーネントの選定値をMPCクラスタに提出するコンテンツプラットフォームについての機密情報の潜在的な漏出も抑えられる。したがって、本開示は、クライアントに関連付けられたブロッキングされたデジタルコンポーネントを考慮しながら、適切なデジタルコンポーネントを自動的に選定しクライアントデバイスに提供することを可能にする。このことは、ネットワークを介して送信されたユーザデータのセキュリティを高め、プロセッサおよび帯域幅リソースを効率的に使用するやり方で達成される。
本明細書に記載の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に示される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
デジタルコンポーネントが配布される例示的な環境のブロック図である。 クライアントデバイスに配布するためのデジタルコンポーネントを選定するための例示的な方法のスイムレーン図である。 クライアントデバイスにデジタルコンポーネントを配布する例示的な方法のフロー図である。 説明した動作を行うのに使用され得る例示的なコンピュータシステムのブロック図である。
本明細書は、特定のタイプのデータへのアクセスを限定するための技法を実装するのに使用される方法、システム、装置、およびコンピュータ可読媒体について開示する。いくつかの状況においては、本明細書に論じる技法は、以前にデータを所定の回数、提供したことがあるクライアントデバイス(またはクライアントデバイスのユーザ)へのデータの配布を調整し、制限し、限定し、または防止するために使用され得る。たとえば、クライアントデバイスにおいて、またはクライアントデバイスのユーザに対して(たとえば、様々な異なるクライアントデバイスにおいて)、以前に所定の回数、表示されたことがあるデジタルコンポーネントをそのクライアントデバイスに表示することが防止され得る、または別の形で制限され得る。これらの技法により、クライアントデバイスのユーザは、特定のタイプのデータ(たとえば、特定のタイプのデジタルコンポーネント)のクライアントデバイスへの供給または提示をブロッキングすることがさらに可能になる。これにより、古く、または欲しくないデータをクライアントデバイスに供給することによって普通なら消費されることになるリソースの無駄が防止可能になる。本明細書において論じる技法について、クライアントデバイスへのデジタルコンポーネントの配布に関して説明するが、技法はまた、どんなデータの調整にも適用可能であり、それにより、これらの技法を使用してどんなデータへのアクセスも限定またはセキュリティ保護可能になる。
一般に、クライアントデバイスを介してインターネットに接続されているユーザには、デジタルコンポーネントが提供され得る。そのようなシナリオにおいては、デジタルコンポーネントサーバは、サードパーティクッキー(たとえば、ユーザが現在視聴しているウェブページのドメインとは異なるドメインからのクッキー)、ユーザのオンラインアクティビティなどのアクティビティデータ、ユーザ閲覧履歴に基づいて、デジタルコンポーネントへのアクセスを制御することができる。たとえば、デジタルコンポーネントサーバは、クッキー(たとえば、複数のドメイン/ウェブサイトにわたってデータを収集するサードパーティクッキー)に含まれている情報を使用して、クライアントデバイスのユーザが訪問した以前のウェブサイトに基づいて、デジタルコンポーネントを提供することができる。しかしながら、サードパーティの使用をブロッキングするブラウザにおいては、複数のウェブサイトにわたって、通常、収集される閲覧情報はもはや利用できない。したがって、クライアントデバイスへのデータの配布調整など、サードパーティクッキー(たとえば、ユーザが現在視聴しているウェブページのドメインとは異なる、エフェクティブトップレベルドメイン(eTLD+1)などのドメインからのクッキー)によって収集される情報に依存しているいずれの機能も、もはや利用できない。
本明細書に説明する技法は、データアクセスの調整をサードパーティクッキーまたは他のデバイス/ブラウザの識別子から独立して可能にし、それにより、これらの技法を使用して、サードパーティクッキーの使用が(たとえば、クライアントデバイスにインストールされているブラウザによって)ブロッキングされている場合であっても、クライアントデバイスへのデジタルコンポーネントなどのデータへのアクセス(たとえば、その配布)を制御することが可能になる。これらの技法はまた、サーバによって提供されるデータへのアクセスを制御するのに使用される完全なデータセットが、クライアントデバイスに全体的に(またはかなりの部分に)常駐し、フルデータセットのほんの一部分(たとえば、異種またはばらばらなサブセット)のみがリモートサーバに提供されるような形で実装され得る。これにより、アクセス制御決定が行われる完全なデータセットに、本明細書において論じる技法に寄与するリモートサーバのいずれもがアクセスできなくなる。
本明細書においてさらに説明するように、クライアントデバイスにおいて実行するアプリケーションは、クライアントデバイスに以前に提供されたことがあるデータのソースを特定するユニバーサル識別子を生成する。たとえば、デジタルコンポーネントの文脈においては、ユニバーサル識別子は、クライアントデバイスにデジタルコンポーネントを提供したエンティティ、および/またはクライアントデバイスへのデジタルコンポーネントの送信をトリガした特定のデジタルコンポーネントグループ(たとえば、キャンペーン)を一意に表すことができる。各デジタルコンポーネントグループに対応するユニバーサル識別子は、各デジタルコンポーネントとともにクライアントデバイスに供給され得、それにより、デジタルコンポーネントは、特定のエンティティおよび/またはデジタルコンポーネントグループからのデジタルコンポーネントがクライアントデバイスに供給される頻度の経過を追うことができる。より概括的な調整されたデータアクセス実装形態においては、同様の技法を使用して、クライアントデバイスは、特定のエンティティによって提供されるデータ、および/または特定のデータベース、インデックス、またはフォルダに含まれているデータが、クライアントデバイスに送信された(またはクライアントデバイスによってダウンロードされた)頻度の経過を追うことが可能になる。
より詳細に後述するように、特定のユニバーサル識別子に対応するデジタルコンポーネントがクライアントデバイスに供給されたことがある、および/またはクライアントデバイスによって提示されたことがある頻度に基づいて、デジタルコンポーネント(または他のタイプのデータ)の提示(もしくはアクセス)が許可される、またはブロッキングされるべき経過を追うために、クライアントサイドのアプリケーションによってユニバーサル識別子が使用され得る。加えて、ユニバーサル識別子を使用することにより、クライアントデバイスは、クライアントデバイスのユーザによって要求されるように、指定されたソースからの特定のタイプのデジタルコンポーネント(または他のデータ)の供給ブロッキングを調整することが可能になる。いくつかの状況においては、クライアントデバイスは、ブロッキングされたユニバーサル識別子の組(たとえば、リスト)を維持することができ、それにより、ブロッキングされたユニバーサル識別子のうちの1つと一致するユニバーサル識別子を有するデジタルコンポーネントのクライアントデバイスへの供給またはクライアントデバイスによる提示を防止することが指定される。たとえ本明細書において技法および方法がデジタルコンポーネントおよびキャンペーンを特定する方法としてユニバーサル識別子を使用しているとしても、その方法および技法を他の形態の識別情報まで拡大することができることに留意すべきである。たとえば、デジタルコンポーネントまたはキャンペーンは、それらに関連付けられるタグまたはラベルを使用して特定され得る。たとえば、クライアントデバイスのユーザが、ソーダ飲料に関係するすべてのデジタルコンポーネントをブロッキングしたがっている場合、ソーダ飲料に関係するすべてのデジタルコンポーネントは、「ソーダ飲料」という用語を使用して特定され得る。そのようなシナリオにおいては、「ソーダ飲料」という用語は、ソーダ飲料に関係するデジタルコンポーネントと関連して使用される分類法用語か、またはそのようなデジタルコンポーネントを特定するのにインターネットにおいて使用される用語かのいずれかであってよい。
技法により、クライアントサイドのアプリケーションは、異なるデジタルコンポーネントがクライアントデバイスにおいて提示される回数の経過を追うこと、および指定された時間期間にわたって少なくとも所定の回数、アプリケーションによって特定されたことがあるユニバーサル識別子を有する特定のデジタルコンポーネントの提示を制限することがさらに可能になる。言い換えれば、一旦、なんらかのタイムフレームにおいて、所定の回数、特定のユニバーサル識別子が見られると、クライアントサイドアプリケーションは、ブロッキングされたユニバーサル識別子の組にユニバーサル識別子を追加することによって、その特定のユニバーサル識別子を有するデータ(たとえば、デジタルコンポーネント)がさらに、クライアントデバイスに送信されること、またはクライアントデバイスにおいて提示されることを少なくとも一時的に防止することができる。デジタルコンポーネントなどのデータのクライアントデバイスへのその後の供給に対する制限をかけるために、クライアントデバイスは、ブロッキングされたユニバーサル識別子の組を使用して確率的データ構造を生成し、その確率的データ構造を1つまたは複数のリモートサーバ(たとえば、2つ以上のMPCサーバ)と共有し、リモートサーバは、クライアントデバイスに供給するためのデータ(たとえば、デジタルコンポーネント)を選定する処理中に確率的データ構造を使用することができる。
いくつかの態様においては、デジタルコンポーネントサーバは、2つ以上の計算サーバを含むセキュアマルチパーティ計算(MPC)システムを展開して、いずれのMPCサーバもクリアテキストの情報にアクセスすることができない確率的データ構造に基づいて、デジタルコンポーネントを選定するためのセキュアMPC方法を行うことができる。技法により、クライアントデバイスは、秘密シェアにおける確率的データ構造を生成し、MPCシステムにおけるサーバのそれぞれに送信することが可能になり、それによって、ユーザのプライバシーおよび匿名性が維持される。技法および方法については、図1~図4を参照してさらに説明する。
図1は、デジタルコンポーネントが配布されて、電子ドキュメントとともに提示される例示的な環境100のブロック図である。例示的な環境100は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、Internet、またはそれらの組合せなどのネットワーク102を含む。ネットワーク102は、コンテンツサーバ104、クライアントデバイス106、デジタルコンポーネントサーバ108、およびデジタルコンポーネント配布システム110(コンポーネント配布システム(component disutribution system、CDS)とも称す)を接続する。
クライアントデバイス106は、ネットワーク102を経由してリソースを要求し受信することができる電子デバイスである。例示的なクライアントデバイス106には、パーソナルコンピュータ、モバイル通信デバイス、ウェアラブルデバイス、パーソナルデジタルアシスタント、ゲーミングシステム、仮想現実システム、ストリーミング媒体デバイス、およびネットワーク102を経由してデータを送受信することができる他のデバイスが含まれる。クライアントデバイス106は、典型的には、ネットワーク102を経由してデータの送受信を容易にするためのウェブブラウザなどのユーザプリケーション112を含むが、クライアントデバイス106によって実行されるネイティブアプリケーションも、ネットワーク102を経由してデータの送受信を容易にすることができる。クライアントデバイス106、具体的には、パーソナルデジタルアシスタントは、クライアントデバイス106との音声対話を可能にするハードウェアおよび/またはソフトウェアを含むことができる。たとえば、クライアントデバイス106は、マイクロフォンを含むことができ、それを通じて、ユーザは、コマンド、検索クエリ、閲覧命令、スマートホーム命令、および/または他の情報などのオーディオ(たとえば、音声)入力を提出することができる。加えて、クライアントデバイス106は、スピーカを含むことができ、それを通じて、オーディオ(たとえば、音声)出力がユーザに提供され得る。パーソナルデジタルアシストは、ウェアラブル、スマートスピーカ、家庭電化製品、自動車、タブレットデバイス、または他のクライアントデバイス106を例として含む任意のクライアントデバイス106において実装され得る。
電子ドキュメントは、クライアントデバイス106においてコンテンツセットを提示するデータである。電子ドキュメントの例として、ウェブページ、ワープロドキュメント、ポータブルドキュメントフォーマット(portable document format、PDF)ドキュメント、画像、動画、検索結果ページ、ビデオゲーム、仮想(または拡張)現実環境、およびフィードソースが挙げられる。モバイル、タブレット、またはデスクトップコンピューティングデバイスにおいてインストールされているアプリケーションなどのネイティブアプリケーション(たとえば、「アプリ(app)」)もまた、電子ドキュメントの例である。電子ドキュメントは、コンテンツサーバ104によってクライアントデバイス106に提供され得る。たとえば、コンテンツサーバ104は、パブリッシャウェブサイトをホストするサーバを含めることができる。この例においては、クライアントデバイス106は、所与のパブリッシャウェブページに対する要求を開始することができ、所与のパブリッシャウェブページをホストするコンテンツサーバ104は、クライアントデバイス106における所与のウェブページの提示を開始するマシン実行可能命令を送出することによってその要求に応答することができる。
別の例においては、コンテンツサーバ104は、アプリサーバを含むことができ、クライアントデバイス106は、そのアプリサーバからアプリをダウンロードすることができる。この例においては、クライアントデバイス106は、クライアントデバイス106においてアプリをインストールするのに必要なファイルをダウンロードし、次いで、ダウンロードされたアプリをローカルで実行することができる。ダウンロードされたアプリは、アプリケーション自体の一部であるネイティブコンテンツと、デジタルコンポーネントサーバ108から得られ、アプリがクライアントデバイス106において実行されている間にアプリに挿入される1つまたは複数のデジタルコンポーネント(たとえば、サードパーティによって作成/配布されたコンテンツ)との組合せを提示するように構成され得る。
電子ドキュメントは、多様なコンテンツを含むことができる。たとえば、電子ドキュメントは、電子ドキュメント自体の範囲内にあり、および/または経時的に変化しない静的コンテンツ(たとえば、テキストもしくは他の指定コンテンツ)を含むことができる。電子ドキュメントはまた、経時的にまたは要求ごとに変化し得る動的コンテンツを含むこともできる。たとえば、所与の電子ドキュメントのパブリッシャは、電子ドキュメントの一部分を投入するのに使用されるデータソースを維持することができる。この例においては、所与の電子ドキュメントは、タグまたはスクリプトを含むことができ、所与の電子ドキュメントがクライアントデバイス106によって処理される(たとえば、レンダリングされる、または実行される)と、タグまたはスクリプトにより、クライアントデバイス106は、データソースにコンテンツを要求することになる。クライアントデバイス106は、データソースから得られたコンテンツを所与の電子ドキュメントに統合して、データソースから得られたコンテンツを含んだ複合電信ドキュメントを作成する。
いくつかの状況においては、所与の電子ドキュメントは、デジタルコンポーネント配布システム110にリファレンスするデジタルコンポーネントタグまたはデジタルコンポーネントスクリプトを含むことができる。これらの状況においては、デジタルコンポーネントタグまたはデジタルコンポーネントスクリプトは、所与の電子ドキュメントがクライアントデバイス106によって処理されると、クライアントデバイス106によって実行される。デジタルコンポーネントタグまたはデジタルコンポーネントスクリプトの実行は、デジタルコンポーネントを求める要求(「コンポーネント要求」とも称す)112を生成するようにクライアントデバイス106を構成設定し、その要求は、ネットワーク102を経由してデジタルコンポーネント配布システム110に送信される。たとえば、デジタルコンポーネントタグまたはデジタルコンポーネントスクリプトは、クライアントデバイス106が、ヘッダおよびペイロードデータを含むパケット化されたデータ要求を生成することを可能にする。デジタルコンポーネント要求112は、媒体要求を受けているサーバの名称(またはネットワーク場所)、要求側デバイス(たとえば、クライアントデバイス106)の名称(またはネットワーク場所)、および/またはデジタルコンポーネント配布システム110が、要求に応答して提供される1つまたは複数のデジタルコンポーネントを選定するのに使用することができる情報などの機能を指定するイベントデータを含むことができる。コンポーネント要求112は、クライアントデバイス106によって、ネットワーク102(たとえば、電気通信ネットワーク)を経由して、デジタルコンポーネント配布システム110のサーバに送信される。
デジタルコンポーネント要求112は、電子ドキュメントが要求されていること、およびデジタルコンポーネントが提示され得る電子ドキュメントの場所の特徴など、他のイベント機能を指定するイベントデータを含むことができる。たとえば、デジタルコンポーネントが提示されることになる電子ドキュメント(たとえばウェブページまたはアプリケーション)に対するリファレンス(たとえば、ユニフォームリソースロケータ(Uniform Resource Locator、URL))、デジタルコンポーネントを提示するのに利用可能な電子ドキュメントの利用可能な場所、利用可能な場所のサイズ、および/または場所に提示される資格がある媒体タイプを指定するイベントデータは、デジタルコンポーネント配布システム110に提供され得る。同様に、電子ドキュメントに関連付けられるキーワード(「ドキュメントキーワード」)、または電子ドキュメントによってリファレンスされるエンティティ(たとえば、人々、位置、もしくは物)を指定するイベントデータもまた、コンポーネント要求112内に(たとえば、ペイロードデータとして)含められ、デジタルコンポーネント配布システム110に提供されて、電子ドキュメントとともに提示される資格があるデジタルコンポーネントの特定を容易にすることができる。イベントデータはまた、検索結果ページ、および/または検索結果を指定するデータ、および/または検索結果に含まれているテキスト、可聴、もしくは他の可視コンテンツを得るためにクライアントデバイス106から提出された検索クエリを含むこともできる。
コンポーネント要求112はまた、クライアントデバイス106のユーザが提供したことがある情報、コンポーネント要求の提出元の州もしくは地域を示す地理情報、またはデジタルコンポーネントが表示されることになる環境の文脈を提供する他の情報(たとえば、コンポーネント要求の時刻、コンポーネント要求の曜日、モバイルデバイスもしくはタブレットデバイスなど、デジタルコンポーネントが表示されることになるデバイスのタイプ)など、他の情報に関係するイベントデータを含むこともできる。コンポーネント要求112は、たとえば、パケット化されたネットワークを経由して送信され得、コンポーネント要求112自体が、ヘッダおよびペイロードデータを有するパケット化されたデータとしてフォーマットされ得る。ヘッダは、パケットの宛先を指定することができ、ペイロードデータは、上述した情報のうちのいずれをも含むことができる。
1つまたは複数のデジタルコンポーネント配布サーバを含むデジタルコンポーネント配布システム110は、コンポーネント要求112の受信および/またはコンポーネント要求112に含まれる情報の使用に応答して、所与の電子ドキュメントとともに提示されることになるデジタルコンポーネントを選択する。いくつかの実装形態においては、デジタルコンポーネントは、デジタルコンポーネントの選定遅延によって生じることもあり得るエラーを回避するために、1秒未満で選定される。たとえば、コンポーネント要求112に応答してデジタルコンポーネントを提供する際の遅延は、結果的に、クライアントデバイス106におけるページロードエラーをもたらし、または電子ドキュメントの一部分が、電子ドキュメントの他の部分がクライアントデバイス106において提示された後でも、投入されないままの状態になる可能性がある。また、デジタルコンポーネントをクライアントデバイス106に提供する際の遅延が増加するにつれて、デジタルコンポーネントがクライアントデバイス106に供給されるとき、電子ドキュメントはクライアントデバイス106にもはや提示されなくなる可能性がより高くなり、それによって、電子ドキュメントのユーザのエクスペリエンスに負の影響が及ぶだけでなく、システム帯域幅および他のリソースの浪費がもたらされることになる。さらには、たとえば、デジタルコンポーネントが提供されるときに電子ドキュメントがクライアントデバイス106にもはや提示されない場合、デジタルコンポーネントを提供する際の遅延は、結果的に、デジタルコンポーネントの供給の失敗につながる可能性もある。
電子ドキュメントの検索を容易にするために、環境100は、電子ドキュメントをクロールしインデックスすることによって(たとえば、電子ドキュメントのクロールされたコンテンツに基づいてインデックスされた)電子ドキュメントを特定する検索システム150を含むことができる。電子ドキュメントに関するデータは、データが関連付けられる電子ドキュメントに基づいてインデックスされ得る。電子ドキュメントのインデックスされた、オプションでキャッシュされたコピーは、検索インデックス152(たとえば、ハードメモリデバイス)に記憶される。電子ドキュメントに関連付けられるデータは、電子ドキュメントに含まれるコンテンツを表すデータおよび/または電子ドキュメントについてのメタデータである。
クライアントデバイス106は、ネットワーク102を経由して検索システム150に検索クエリを提出することができる。それに応答して、検索システム150は、検索インデックス152にアクセスして、検索クエリに関係する電子ドキュメントを特定する。検索システム150は、検索結果の形態で電子ドキュメントを特定し、検索結果をクライアントデバイス106に戻して検索結果ページに入れる。検索結果は、特定の検索クエリに応答する(たとえば、関係する)電子ドキュメントを特定する検索システム150によって生成されるデータであり、アクティブリンク(たとえば、ハイパーテキストリンク)を含み、それにより、クライアントデバイスは、検索結果とのユーザ対話に応答して、指定された場所にデータを要求することになる。例示的な検索結果は、ウェブページタイトル、ウェブページから抽出されるテキスト片(snippet of text)または画像の一部分、およびウェブページのURLを含むことができる。別の例示的な検索結果は、ダウンロード可能なアプリケーションのタイトル、ダウンロード可能なアプリケーションを説明するテキスト片、ダウンロード可能なアプリケーションのユーザインターフェースを描写する画像、および/またはクライアントデバイス106にダウンロードされ得るアプリケーションの元の場所に対するURLを含むことができる。別の例示的な検索結果は、ストリーミング媒体のタイトル、ストリーミング媒体を説明するテキスト片、ストリーミング媒体のコンテンツを描写する画像、および/またはクライアントデバイス106にダウンロードされ得るストリーミング媒体の元の場所に対するURLを含むことができる。他の電子ドキュメントと同様に、検索結果ページは、デジタルコンポーネント(たとえば、広告、ビデオクリップ、オーディオクリップ、画像、または他のデジタルコンポーネント)が提示され得る1つまたは複数のスロットを含むことができる。
いくつかの実装形態においては、デジタルコンポーネント配布システム110は、分散型コンピューティングシステムにおいて実装され、この分散型コンピューティングシステムは、たとえば、サーバと、相互接続され、コンポーネント要求112に応答して、デジタルコンポーネントを特定し配布する複数のコンピューティングデバイス114との組を含む。複数のコンピューティングデバイス114の組は一緒に動作して、何百万もの利用可能なデジタルコンポーネントのコーパスの中から電子ドキュメントにおいて提示されることになる資格があるデジタルコンポーネントの組を特定する。
いくつかの実装形態においては、デジタルコンポーネント配布システム110は、デジタルコンポーネントを選定し配布するのに異なる技法を実装する。たとえば、デジタルコンポーネントは、対応するデジタルコンポーネントの選定/配布/送信に寄与する(たとえば、調節する、または限定する)、対応する配布パラメータを含むことができる。たとえば、配布パラメータは、コンポーネント要求が、デジタルコンポーネントの配布パラメータのうちの1つと(たとえば、正確にか、または何らかのあらかじめ指定されたレベルの類似性を伴うかのいずれかで)一致する少なくとも1つの基準を含むことを要求することによって、デジタルコンポーネントの送信に寄与することができる。
別の例においては、特定のデジタルコンポーネントについての配布パラメータは、デジタルコンポーネントが提示の資格があるようにするために、(たとえば、電子ドキュメント、ドキュメントキーワード、またはコンポーネント要求112において指定される用語によって)一致していなくてはならない配布キーワードを含むことができる。配布パラメータはまた、コンポーネント要求112が、コンポーネント項目が提示の資格があるようにするために、特定の地理的な地域(たとえば、国、または州)を指定する情報、および/またはコンポーネント要求112が、特定のタイプのクライアントデバイス106(たとえば、モバイルデバイスまたはタブレットデバイス)において生じたことを指定する情報を含むことを要求することもできる。配布パラメータはまた、より詳細に後述するように、(たとえば、他の利用可能なデジタルコンポーネントの中でも特に)選定/配布/送信に対するコンポーネント項目の資格を評価するのに使用される資格値(たとえば、ランク、スコア、または何らかの他の指定値)を指定することもできる。いくつかの状況においては、資格値は、特定のイベントがデジタルコンポーネント項目(たとえば、デジタルコンポーネントの提示)に起因するときに提出されることになる量に基づくことができる。
資格のあるデジタルコンポーネントの識別情報は、複数のタスク117a~117cにセグメント化され得、次いで、これらのタスク117a~117cは、複数のコンピューティングデバイスの組114の中のコンピューティングデバイス間で割り当てられる。たとえば、組114の中の異なるコンピューティングデバイスはそれぞれ、異なるデジタルコンポーネントを分析して、コンポーネント要求112に含まれている情報と一致する配布パラメータを有する様々なデジタルコンポーネントを特定することができる。いくつかの実施態様においては、組114の中の各所与のコンピューティングデバイスは、異なるデータ次元(または次元の組)を分析し、分析の結果(Res1~Res3)118a~118cをデジタルコンポーネント配布システム110へと元に返す(たとえば、送信する)。たとえば、組114の中のコンピューティングデバイスのそれぞれによって提供される結果118a~118cは、コンポーネント要求に応答して配布の資格があるデジタルコンポーネント項目の副組および/または特定の配布パラメータを有するデジタルコンポーネントの副組を特定することができる。デジタルコンポーネントの副組の特定は、たとえば、イベントデータの配布パラメータとの比較、およびイベントデータの少なくともいくつかの機能と一致する配布パラメータを有するデジタルコンポーネントの副組の特定を含むことができる。
デジタルコンポーネント配布システム110は、複数のコンピューティングデバイスの組114から受け取った結果118a~118cを集約し、集約した結果に関連付けられる情報を使用して、コンポーネント要求112に応答して提供されることになる1つまたは複数のデジタルコンポーネントを選定する。たとえば、デジタルコンポーネント配布システム110は、1つまたは複数のデジタルコンポーネント評価方法の成果に基づいて、ウィニングデジタルコンポーネントの組(1つまたは複数のデジタルコンポーネント)を選定することができる。ひいては、デジタルコンポーネント配布システム110は、クライアントデバイス106が、ウィニングデジタルコンポーネントの組を所与の電子ドキュメントに統合することを可能にする返信データ120(たとえば、返信を表すデジタルデータ)を生成し、それをネットワーク102を経由して送信することができ、それにより、ウィニングデジタルコンポーネントの組と電子ドキュメントのコンテンツとは、クライアントデバイス106のディスプレイに一緒に提示されることになる。
いくつかの実装形態においては、クライアントデバイス106は、クライアントデバイス106が1つまたは複数のデジタルコンポーネントサーバ108からウィニングデジタルコンポーネントの組を得るように構成設定し可能にする、返信データ120に含まれている命令を実行する。たとえば、返信データ120内の命令は、ネットワーク場所(たとえば、URL)、およびスクリプトを含むことができ、それにより、クライアントデバイス106は、デジタルコンポーネントサーバ108から所与のウィニングデジタルコンポーネントを得るためのサーバ要求(SR)121をデジタルコンポーネントサーバ108に送信することになる。サーバ要求121に応答して、デジタルコンポーネントサーバ108は、サーバ要求121において指定される所与のウィニングデジタルコンポーネントを特定し、クライアントデバイス106において電子ドキュメントに所与のウィニングデジタルコンポーネントを提示するデジタルコンポーネントデータ122(DI Data)をクライアントデバイス106に送信することになる。
いくつかの場合においては、以前にユーザが訪問したおよび/またはユーザと対話したウェブページ、アプリケーションページ、または他の電子リソースに関係するデジタルコンポーネント(または他のデータ)を受け取ることは、ユーザにとって有益である。そのようなデジタルコンポーネントをユーザに配布するために、ユーザは、ユーザがアクセスするデジタルコンテンツに基づいて、ユーザグループ、たとえば、ユーザ興味グループ、同様のユーザ群、または同様のユーザデータを含む他のグループタイプに割り当てられ得る。たとえば、ユーザが特定のウェブサイトを訪問し、ウェブサイトにおいて提示される特定の項目と対話し、または項目を仮想カートに追加したとき、ユーザは、同じウェブサイト、または文脈的に類似している、もしくは同じ項目に興味がある他のウェブサイトを訪問したことがあるユーザのグループに割り当てられ得る。例示するために、クライアントデバイス106のユーザがシューズについて検索し、異なるシューズメーカーの複数のウェブページを訪問する場合、ユーザは、シューズに関係するウェブサイトを訪問したことがあるすべてのユーザについての識別子を含むことができるユーザグループ「シューズ」に割り当てられ得る。
いくつかの実装形態においては、ユーザのグループメンバーシップは、デジタルコンポーネントサーバ108でも、コンテンツプラットフォーム104でも、または別のパーティでもなく、たとえばブラウザベースのアプリケーションによって、ユーザのクライアントデバイス106において維持され得る。ユーザグループは、ユーザグループのそれぞれのラベルによって指定され得る。ユーザグループのラベルは、グループ(たとえば、園芸グループ)、またはグループを表すコード(たとえば、記述していない英数字シーケンス)を記述したものとすることができる。ユーザグループのラベルは、クライアントデバイス106におけるセキュアストレージ内に記憶され、および/または記憶されるときに暗号化されて、他者がリストにアクセスするのを防止することができる。
いくつかの実装形態においては、ユーザグループの識別子は、HMAC(user_group_label, eTLD+1)と表されるユーザグループとコンテンツプラットフォーム104のドメインとのラベルによってパラメータ化されるハッシュベースのメッセージ認証コード(hash-based message authentication code、HMAC)を使用して生成され得る。いくつかの実装形態においては、HMACは、ハッシュ化された256ビット(32バイト)出力を生成するために、ダイジェスト長が256ビットの暗号化ハッシュ関数であるセキュアハッシュアルゴリズム(SHA-256)を使用して実装され得る。そのような例においては、HMAC(user_group_label, eTLD+1)は、ユーザグループ識別子として、ユーザグループの256ビット一意識別子を生成する。
コンテンツプラットフォーム104は、ユーザのユーザグループメンバーシップを使用して、デジタルコンポーネント、またはユーザにとって興味がある可能性がある、もしくは別のやり方(たとえば、タスクを完了する際にユーザを支援する)でユーザ/ユーザデバイスに有益である可能性がある他のコンテンツを選定することができる。たとえば、そのようなデジタルコンポーネントまたは他のコンテンツは、ユーザエクスペリエンスを向上させ、ユーザデバイスの動作を向上させ、または何らかの他のやり方でユーザもしくはユーザデバイスに利益をもたらすデータを含むことができる。
ブラウザなどのアプリケーション107が1つまたは複数のデジタルコンポーネントスロットを含むパブリッシャ140のウェブサイト142をロードすると、アプリケーション107は、スロットごとにデジタルコンポーネントを要求することができる。いくつかの実装形態においては、デジタルコンポーネントスロットは、コード(たとえば、スクリプト)を含むことができ、それにより、アプリケーション107は、クライアントデバイス106のユーザに提示するためのデジタルコンポーネントを要求することになる。デジタルコンポーネントサーバからの応答としてデジタルコンポーネントを受け取った後、デジタルコンポーネントは、ウェブサイト142のそれぞれのデジタルコンポーネントスロットにおいて提示される。しかしながら、そのような状況においては、同じデジタルコンポーネントを繰り返し提示することを回避するために、アプリケーション107は、ユニバーサル識別子の組を維持することができ、それにより、組内の各識別子は、クライアントデバイス106において以前に提示されたデジタルコンポーネントを一意に特定することが可能になる。たとえば、信頼済みプログラム、たとえば、ウェブブラウザまたはオペレーティングシステムは、識別子の組またはクライアントデバイス106を維持することができる。
いくつかの実装形態においては、各デジタルコンポーネントは、(たとえば、デジタルコンポーネントサーバ108のための)コンテンツソースのドメイン内で各デジタルコンポーネントを一意に特定する識別子を含むことができる。他の実装形態においては、デジタルコンポーネントは、デジタルコンポーネントサーバ108についてのキャンペーンの一部とすることができる。たとえば、デジタルコンポーネントサーバ108は、特定のブランドのシューズを宣伝するためのキャンペーンを開始することができる。キャンペーンを宣伝するために、デジタルコンポーネントサーバ108は、特定のブランドのシューズに文脈的に関係する複数のデジタルコンポーネントを提供することができる。そのようなシナリオにおいては、シューズのブランドに文脈的に関係する複数のデジタルコンポーネントはそれぞれ、キャンペーンの一部である。そのようなシナリオにおいては、キャンペーンにおける複数のデジタルコンポーネントはそれぞれ、そのキャンペーンをデジタルコンポーネントサーバ108の他のキャンペーンと区別する一意の識別子(キャンペーン識別子とも称す)により特定され得る。
デジタルコンポーネントがアプリケーション107を介してクライアントデバイス106において提示されると、アプリケーション107は、デジタルコンポーネントサーバ108によってデジタルコンポーネントに割り当てられたキャンペーン識別子を読み出す。いくつかの実装形態においては、アプリケーション107はまた、デジタルコンテンツプロバイダのドメインのeTLD+1も読み出すことができる。eTLD+1は、パブリックサフィックスに1レベル加えたエフェクティブトップレベルドメイン(eTLD)である。eTLD+1の一例が「example.com」であり、ここで、「.com」は、トップレベルドメインである。
特定のデジタルコンポーネントについて、キャンペーン識別子と、コンテンツソースとも称すデジタルコンテンツプロバイダのドメインのeTLD+1とを読み出した後、アプリケーション107は、特定のデジタルコンポーネントについてのユニバーサル識別子を生成することができる。いくつかの実施形態においては、デジタルコンポーネントサーバ108は、ユニバーサル識別子を生成し、それをデジタルコンポーネントに割り当てることができる。そのような実施形態においては、アプリケーション107は、クライアントデバイス106において提示されるデジタルコンポーネントのユニバーサル識別子を読み出すことができる。ユニバーサル識別子は、(i)特定のコンテンツソース(たとえば、デジタルコンテンツプロバイダ)によって提供され、(ii)同じキャンペーンまたは配布ルールの組によって、クライアントデバイスに供給されるようにトリガされる、デジタルコンポーネントを一意に表すデータである。言い換えれば、同じユニバーサル識別子を有する2つの異なるデジタルコンポーネント(または他のデータファイル)は、同じコンテンツソースから生じていること、および同じキャンペーンによって供給されるようにトリガされていることと考えられる。簡単に読みやすくするために、次の説明はまた、特定のデジタルコンポーネントを一意に特定するとしてユニバーサル識別子を示すことになる。いくつかの実装形態においては、デジタルコンポーネントについてのユニバーサル識別子は、HMAC(campaign_identifier, eTLD+1)と表されるキャンペーン識別子とデジタルコンポーネントサーバ108のドメインとによってパラメータ化されるハッシュベースのメッセージ認証コード(HMAC)を使用して算出され得る。いくつかの実装形態においては、HMACは、ハッシュ化された256ビット(32バイト)出力を生成するために、ダイジェスト長が256ビットの暗号化ハッシュ関数であるセキュアハッシュアルゴリズム(SHA-256)を使用して実装され得る。そのような例においては、HMAC(campaign_identifier, eTLD+1)は、ユニバーサル識別子として、デジタルコンポーネントの256ビット一意識別子を生成する。
追加の情報なしに、ハッシュ関数を使用してユニバーサル識別子を生成することによって、クライアントデバイス106およびデジタルコンポーネントのそれぞれのデジタルコンポーネントサーバ108において実行するアプリケーション107以外の任意のエンティティが、デジタルコンポーネントを提供したコンテンツソースの属性情報、またはコンテンツソースによって使用されるキャンペーン識別子を見つけ出すことは、計算上実用的ではない。したがって、ハッシュ関数手法は、別のエンティティが、ユニバーサル識別子の組を受け取った、またはユニバーサル識別子に対する未承認アクセスを何らかの形で得た場合、コンテンツソースの機密情報を保護する。
アプリケーション107は、すべてのデジタルコンポーネントサーバ108において、キャンペーンのスペース全体にわたって、デジタルコンポーネントを一意に特定するユニバーサル識別子の組を維持する。いくつかの実装形態においては、ユニバーサル識別子の組は、組内のユニバーサル識別子のそれぞれについての提示カウンタを含み、提示カウンタにインデックスされ、または別の形で提示カウンタに関連付けられる。各特定のユニバーサル識別子の提示カウンタは、その特定のユニバーサル識別子を有するデジタルコンポーネントの供給および/または提示の頻度を示す。たとえば、特定のユニバーサル識別子についての提示カウンタは、その特定のユニバーサル識別子を有するデジタルコンポーネントが、所与のタイムフレームにおいて、以前にクライアントデバイス106に供給された、および/またはクライアントデバイス106において提示された回数を示すことができる。
クライアントデバイス106に供給され、クライアントデバイス106において提示された特定のデジタルコンポーネントについてのユニバーサル識別子を計算し/生成した後、アプリケーション107は、特定のデジタルコンポーネントのユニバーサル識別子によりユニバーサル識別子の組を更新する。特定のデジタルコンポーネントについてのユニバーサル識別子が組の中にすでに存在しない状況においては、アプリケーション107は、特定のデジタルコンポーネントのユニバーサル識別子を組に追加し、対応する提示カウンタを1だけ増分する。特定のデジタルコンポーネントについてのユニバーサル識別子が組の中にすでに存在する状況においては、アプリケーション107は、ユニバーサル識別子の対応する提示カウンタを、たとえば、1だけカウンタを増分することによって更新する。
いくつかの実装形態においては、クライアントデバイス106において実行するアプリケーション107は、ユーザによって明確にブロッキングされたことがあるデジタルコンポーネントのユニバーサル識別子を含む、ブロッキングされたユニバーサル識別子の組を維持することができる。たとえば、ユーザが、所与のデジタルコンポーネント(またはクライアントデバイス106に供給されたデータの一部分)に対応するミュート要素と対話することを仮定する。この例においては、ミュート要素とのユーザの対話は、今後(たとえば、少なくとも一定の時間量の間)、そのデジタルコンポーネント、または可能性として類似している(たとえば、同じコンテンツソースもしくはキャンペーンからの)デジタルコンポーネントを見ることをユーザが望んでいないことを示している。対話に応答して、アプリケーション107は、所与のデジタルコンポーネントについてのユニバーサル識別子をブロッキングされたユニバーサル識別子の組に追加することができ、次いで、それを使用して、所与のデジタルコンポーネントと同じユニバーサル識別子を有する他のデジタルコンポーネントの供給(または提示)を防止することができる。
アプリケーション107は、少なくとも所定の回数、供給/提示されたことがある(たとえば、1日、1週間、1カ月などの指定された時間期間にわたってX回を超えて提示されたことがある)デジタルコンポーネントのそれらのユニバーサル識別子を、ブロッキングされたユニバーサル識別子の組に追加することができる。たとえば、ユニバーサル識別子1A2B3Cを有するデジタルコンポーネントが、ここY日にわたって、X回を上回って特定のユーザに供給され提示されている場合、アプリケーション107は、ユニバーサル識別子1A2B3Cをブロッキングされたユニバーサル識別子の組に追加することができ、それは、クライアントデバイス106において記憶される。
ユニバーサル識別子を、ブロッキングされたユニバーサル識別子の組に追加するための、閾値提示数および/または指定時間期間は、コンテンツソースごとに、および/またはキャンペーンごとに指定され得る。たとえば、デジタルコンポーネントサーバは、キャンペーンのデジタルコンポーネントの提示が、クライアントデバイス106において、設定された持続時間(max_timeと称す)内に設定された回数(max_pptと称す)を上回ることを許可しないキャンペーンのルールの組を記憶することができる。そのようなシナリオにおいては、アプリケーション107は、デジタルコンポーネントを含む応答からデジタルコンポーネント識別子とeTLD+1ドメインとを読み出しながら、キャンペーンのルールを定義する情報も読み出すことができる。アプリケーション107は、ある時間期間にわたって特定のキャンペーンのデジタルコンポーネントを提示し、デジタルコンポーネントに関連するユニバーサル識別子の組を更新する一方、提示カウンタがmax_pptを上回った場合、ユニバーサル識別子をブロッキングされたユニバーサル識別子の組に追加することによって、ブロッキングされたユニバーサル識別子の組を更新する。たとえば、max_pptを2、max_timeを60秒と設定するデジタルコンポーネントサーバ108によって設定される特定のキャンペーンのルールをアプリケーション107が読み出すことを仮定する。さらには、特定のキャンペーンについてデジタルコンポーネントサーバ108によって提供された第1のデジタルコンポーネントをアプリケーション107が提示したことがあることをさらに仮定する。この時点において、アプリケーション107は、第1のデジタルコンポーネントについてのユニバーサル識別子を生成し、第1のデジタルコンポーネントについてのユニバーサル識別子を含むことによってユニバーサル識別子の組を更新し、対応する提示カウンタを0から1に増分する。max_ppt=2およびmax_time=60秒は、第1のデジタルコンポーネントの提示後60秒以内に、もう1つのデジタルコンポーネントしか、デジタルコンポーネントサーバ108の特定のキャンペーンに属するクライアントデバイス106において提示することができないことを意味することに留意されたい。
上記の例を続けると、第1のデジタルコンポーネントの提示から20秒後に、アプリケーション107は、特定のキャンペーンについて、同じデジタルコンポーネントサーバ108から第2のデジタルコンポーネントを受け取ることを仮定する。アプリケーション107は、第2のデジタルコンポーネントについてのユニバーサル識別子を生成し、ユニバーサル識別子の組を、対応する提示カウンタを1から2に増分することによって更新する。この時点において、デジタルコンポーネントがデジタルサーバ108によって提供され、クライアントデバイス106において提示されたことがある特定のキャンペーンに関係付けられる回数は2である(すなわち、max_pptに等しい)ことに留意されたい。そのような状況においては、アプリケーション107は、ユニバーサル識別子をブロッキングされたユニバーサル識別子の組に追加し、それによって、その同じユニバーサル識別子(またはある範囲の値以内など、正確には同じでないこともある、別の形で一致するユニバーサル識別子)を有するデジタルコンポーネント(または他のデータ)の、クライアントデバイス106における提示が防止される。
いくつかの実装形態においては、同じmax_timeを含むユニバーサル識別子の組は、先入れ先出し(first-in, first-out、FIFO)法を使用して実装され得る。FIFOにおける各エントリは、ペア{time_stamp, universal_identifier}である。また、デジタルコンポーネントサーバ108が、デジタルコンポーネントサーバの特定のキャンペーンに属しているデジタルコンポーネントについてmax_pptを2、およびmax_timeを60秒と設定すること、すなわち、デジタルコンポーネントサーバの特定のキャンペーンについて、最大で2つのデジタルコンポーネントが、60秒の持続時間でアプリケーション107において提示されることになることを仮定する。そのようなシナリオにおいては、アプリケーション107によって実装されるFIFOは2エントリを保持することになり、特定のキャンペーンからのデジタルコンポーネントがアプリケーション107において提示されるたびに、デジタルコンポーネントのキャンペーンのユニバーサル識別子と、デジタルコンポーネントがアプリケーション107において提示されたときのタイムスタンプとを含むエントリがFIFOにプッシュされる。そのような実装形態はまた、第1のエントリのタイムスタンプがmax_timeよりも古いとき、FIFOの第1のエントリを自動的に削除することができるエントリ削除法を含むことができる。いつの時点でも、FIFOがuniversal_identifierのmax_ppt出現よりも多く含んでいる場合、対応するエントリは、ブロッキングされたユニバーサル識別子の組に含められる。
いくつかの実装形態においては、アプリケーション107は、ブロッキングされたユニバーサル識別子の組からユニバーサル識別子を取り除くことができ、それによって、max_timeによって示される直近の時間期間に、キャンペーンおよび/またはユニバーサル識別子に関連するデジタルコンポーネントをユーザがブロッキングしなかった場合、削除されたユニバーサル識別子に関連付けられたデジタルコンポーネントは、クライアントデバイス106上のアプリケーション107において提示されることが許される。上記の例を続けると、アプリケーションは、ブロッキングされたユニバーサル識別子と、ユーザが対応するキャンペーンおよび/またはデジタルコンポーネントをブロッキングしたときのタイムスタンプとのペアによりFIFOを維持することができる。アプリケーションは、第1のエントリのタイムスタンプがmax_timeよりも古い場合、FIFIの第1のエントリを自動的に削除する。いつの時点でも、アプリケーション107は、FIFOにおけるブロッキングされたユニバーサル識別子の組を収集することができ、結果は、ブロッキングされたユニバーサル識別子の組である。
いくつかの実装形態においては、アプリケーション107は、クライアントデバイスにおけるデジタルコンポーネントの提示をユーザがブロッキングすることおよび/または許可することを可能にするユーザインターフェースを設けることができる。たとえば、ユーザインターフェースは、ユーザが今後見ないことを希望するデジタルコンポーネントをユーザが選定することを可能にすることができる。そのようなシナリオにおいては、アプリケーション107は、ユニバーサル識別子を生成し、ブロッキングされたユニバーサル識別子の組にそれを追加することができる。これにより、より良い透明性および制御がユーザにもたらされる。別のシナリオにおいては、ユーザインターフェースは、ブロッキングされたユニバーサル識別子の組をユーザがリセットすることを可能にすることができ、それにより、ブロッキングされたユニバーサル識別子の組からすべてのエントリが取り除かれて、クライアントデバイス106におけるすべてのデジタルコンポーネントの提示が可能になる。
いくつかの実装形態においては、デジタルコンポーネントサーバ108によって提供されるデジタルコンポーネントは、ミュート要素を含むことができる。ミュート要素は、ユーザインターフェース制御部であり、ユーザインターフェース制御部は、デジタルコンポーネントに含められ、ミュート要素とのユーザ対話に応答して、ユーザが今後(たとえば、少なくとも一定の時間期間の間)、そのデジタルコンポーネント(または可能性として類似のデジタルコンポーネント)を見ることを望んでいないという指示を生成するスクリプトをトリガする。使用に際して、ユーザは、ユーザが今後、類似のデジタルコンポーネントを見ないことを希望している場合、ミュート要素と対話することができる。
そのような実装形態においては、アプリケーション107は、信号の組を分析することによって、クライアントデバイス106において提示されるデジタルコンポーネントのミュート要素とのユーザ対話を決定するための技法および方法を含むことができる。たとえば、アプリケーション107は、デジタルコンポーネントのミュート要素とのユーザ対話を決定するためのヒューリスティックベースの手法を実装することができる。そのような実装形態においては、アプリケーション107は、デジタルコンポーネントサーバ108によって提供されるデジタルコンポーネントとのユーザ対話によって生成される信号を分析する。
別の例においては、アプリケーション107は、マシン学習モデルを実装することができ、マシン学習モデルは、複数の訓練可能なパラメータを含み、信号を分析することによってクライアントデバイス106において提示されるデジタルコンポーネントのミュート要素とのユーザのユーザ対話を決定するように訓練される。マシン学習モデルは、決定木、人工ニューラルネットワーク、遺伝的プログラミング、論理プログラミング、サポートベクトルマシン、クラスタリング、強化学習、ベイズ推定など、特定の実施形態に適していると考えられる任意のモデルとすることができる。
別の例においては、デジタルコンポーネントが提示されるデジタルコンポーネントスロットを含むウェブサイト142は、デジタルコンポーネントのミュート要素とのユーザ対話を決定するための(たとえばウェブサイト142に埋め込まれているスクリプトについての)マシン実行可能命令を含むことができる。ミュート要素とのユーザ対話を検出した後、マシン実行可能命令は、1つまたは複数のアプリケーションユーザインタフェース(API)を使用してアプリケーション107に伝えることができる。
ブラウザなどのアプリケーション107が1つまたは複数のデジタルコンポーネントスロットを含むウェブサイト142をロードすると、アプリケーション107は、スロットごとにデジタルコンポーネントを要求することができる。いくつかの実装形態においては、アプリケーション107は、ブロッキングされたユニバーサル識別子の組、およびクライアントデバイス106(またはユーザ)が属しているユーザグループを表す確率的データ構造を生成することができる。いくつかの状況においては、アプリケーション107は、より大きい帯域幅消費およびより大きい消費コストを代償に、ブロッキングされたユニバーサル識別子の組およびユーザグループについて2つのカッコウフィルタを生成することができる。アプリケーション107は、クライアントデバイス106に、デジタルコンポーネントなどのデータの供給の調整をしやすくするために、デジタルコンポーネントを求める要求と一緒に確率的データ構造を送信することができる。
いくつかの実装形態においては、確率的データ構造は、カッコウフィルタである。概して、カッコウフィルタはバケットのアレイを含み、各バケットは、b個のフィンガプリントを保持することができる。項目のフィンガプリントは、その項目のハッシュから導出されたビット文字列である。カッコウフィルタは、n個のハッシュ関数を使用し、それにより、b個の位置のうちのいずれかにおけるn個の異なるバケット内に項目を置くことが可能になる。典型的には、カッコウフィルタは、そのフィンガプリントおよびバケットサイズによって特定される。たとえば、(2, 4)カッコウフィルタは、2ビット長フィンガプリントを記憶し、カッコウアレイにおける各バケットは、最大で4つのフィンガプリントを記憶することができる。
いくつかの実装形態においては、アプリケーション107は、ユーザグループ識別子か、またはブロッキングされたユニバーサル識別子の組からのユニバーサル識別子かのいずれかと、アプリケーション107によって生成されたランダム変数とによってパラメータ化される疑似ランダム関数(pseudo random function、PRF)を使用する。たとえば、アプリケーション107によって生成されたランダム変数が、rand_var1a、rand_var1b、およびrand_var2であることを仮定する。また、バケット内の各項目がkビット整数であることを仮定する。アプリケーションは、PRF(ug_id, rand_var1a)、およびPRF(blocked_uid, rand_var1b)を使用してカッコウフィルタテーブルを生成することができ、ここで、ug_idは、コンテンツプロバイダのドメインに基づいてユーザグループのラベルにHMACを加えることによって生成されるユーザグループの識別子であり、blocked_uidは、ブロッキングされたユニバーサル識別子の組からの識別子である。この方法がすべてのユーザグループ識別子に関して、およびブロッキングされたユニバーサル識別子の組内のすべてのユニバーサル識別子に関して繰り返されることに留意されたい。
先に述べたように、デジタルコンポーネントサーバ108は、セキュアマルチパーティ計算(MPC)システムを展開することができ、このMPCシステムは、いずれのMPCサーバもクリアテキストの情報にアクセスすることができない確率的データ構造に基づいて、デジタルコンポーネントを選定するようにセキュアMPC方法を行うための2つ以上の計算サーバを含む。たとえば、MPCシステムが2つの計算サーバMPC1およびMPC2を含むことを仮定する。ユーザプライバシーを保護するために、アプリケーション107は、確率的データ構造の秘密シェアを生成し、その秘密シェアのそれぞれをMPCシステムのそれぞれの計算サーバに送信する。
アプリケーション107は、ユーザグループ識別子、およびブロッキングされたユニバーサル識別子の組内のユニバーサル識別子について生成されるカッコウフィルタテーブルに基づいてベクトルBを生成することができる。ベクトルBは、Bi=PRF(rand_var2, i)-Aiと表すことができ、ここで、Aiは、カッコウフィルタテーブルであり、iは、ベクトルBiおよびカッコウフィルタテーブルAiの指数である。アプリケーション107がスロットのためのデジタルコンポーネントを求める要求を開始すると、アプリケーションは、rand_var1a、rand_var1b、およびrand_var2をMPC1に送信する。また、アプリケーション107は、ベクトルB、ならびにrand_var1aおよびrand_var1bをMPC2に送信する。計算サーバMPC1およびMPC2のいずれも、3つの秘密シェアおよびベクトルBのすべてにアクセスできるわけではないので、計算サーバはいずれも、カッコウフィルタテーブルを再作成することができず、それによってユーザプライバシーが維持されることに留意されたい。
いくつかの実装形態においては、アプリケーション107は、ブロッキングされたユニバーサル識別子の組のシェアを生成するために、分散型点関数(distributed point functions)を使用することができる。分散型点関数は、点関数の秘密シェアを表す。概して、点関数は、関数fi:[N]→[N]、ただし、x!=iおよびf(i)=1のとき、f(x)=0である。点関数fiの秘密シェアリングは、2つの関数gi:[N]→[N]、およびhi:[N]→[N]であり、それにより、セット[N]におけるすべてのxについて、fi(x)=gi(x)+hi(x)になる。さらには、関数hiまたはgi(ただし、両方ではない)の仕様を所与として、元の関数fiを回復することはできない。
そのような実装形態は、カッコウフィルタを、2つのハッシュ関数F1およびF2を使用するテーブルとともに使用することができる。クライアントデバイスは、ユーザグループ識別子の組内の各ユーザグループ識別子について、ハッシュ関数F1およびF2をともに使用してユーザグループ識別子についての両方の可能な場所を計算することによって、カッコウフィルタを生成することができる。2つの可能な場所のうちの少なくとも一方が空である場合、クライアントデバイス110は、いずれかのテーブル内にある可能性もあり得る空の場所に要素を挿入して、そのユーザグループ識別子についての挿入方法を完了することができる。両方の場所が占有されている場合、クライアントデバイス110はランダムに1つの場所を抜き取り、その場所の中に現在ある項目を、挿入されることになる項目と入れ替える。次いで、クライアントデバイス110は、2つのハッシュ関数F1およびF2を再算出し、再度、挿入を試すことができる。この方法は、挿入が成功するまで、またはあまりにも多くの試みがユーザグループ識別子の組内の各ユーザグループ識別子について失敗するまで繰り返される。カッコウフィルタが構築された後、各ユーザグループ識別子ug_idは、テーブルの特定のインデックスに記憶される。
ブロッキングされたユニバーサル識別子の組内の各ユニバーサル識別子(blocked_uid)の場合、分散型点関数gblocked_uid, 1およびgblocked_uid, 2に分割され得る点関数Gblocked_uidが必要であり、それにより、∀j∈[1,C]の場合、次の関係が満たされる。
i=F1(blocked_uid)の場合、
Gblocked_uid)(i)=gblocked_uid,1(i)+gblocked_uid,2(i)=blocked_uid
そうでない場合、
Gblocked_uid(i)=gblocked_uid,1(i)+gblocked_uid,2(i)=0
同様に、分散型点関数hblock_uid, 1およびhblock_uid, 2に分割され得る点関数Hblock_uidが必要であり、それにより、∀j∈[1,C]の場合、次の関係が満たされる。
i=F2(blocked_uid)の場合、
Hblocked_uid(i)=hblocked_uid,1(i)+hblocked_uid,2(i)=blocked_uid
そうでない場合、
Hblocked_uid(i)=hblocked_uid,1(i)+hblocked_uid,2(i)=0
特定の点関数の分散型点関数は、複数の可能な点、たとえば、複数の可能なブロッキングされた識別子に関して評価され得るが、結果は常に、blocked_uidを除いてゼロである。分散型点関数は、データサイズが非常に小さく、それは、ユーザグループ識別子の他の暗号化された形態を送出することと比較して、帯域幅をそれほど使用せず、低いレイテンシによりネットワークを経由して送信され得る。
所与のblocked_uid、点関数F1、およびカッコウフィルタの対応する第1のテーブルについて(blocked_uidが第1のテーブルに挿入された場合)、アプリケーション107は、コンピューティングシステムMPC1について分散型点関数gblocked_uid, 1を生成し、コンピューティングシステムMPC2について分散型点関数gblocked_uid, 2を生成する。同様に、所与のblocked_uid、点関数F2、およびカッコウフィルタの対応する第2のテーブルについて(blocked_uidが第2のテーブルに挿入された場合)、アプリケーション107は、コンピューティングシステムMPC1について分散型点関数hblocked_uid, 1を生成し、コンピューティングシステムMPC2について分散型点関数hblocked_uid, 2を生成する。
同様に、アプリケーション107は、分散型点関数を使用して、アプリケーション107が関連付けられるユーザグループのすべてのユーザグループ識別子の秘密シェアを生成することができる。所与のug_id、点関数F1、およびカッコウフィルタの対応する第1のテーブルについて(blocked_uidが第1のテーブルに挿入された場合)、アプリケーション107は、コンピューティングシステムMPC1について分散型点関数gug_id, 1を生成し、コンピューティングシステムMPC2について分散型点関数gug_id, 2を生成する。同様に、所与のug_id、点関数F2、およびカッコウフィルタの対応する第2のテーブルについて(blocked_uidが第2のテーブルに挿入された場合)、アプリケーション107は、コンピューティングシステムMPC1について分散型点関数hug_id, 1を生成し、コンピューティングシステムMPC2について分散型点関数hug_id, 2を生成する。
クライアントデバイス106において実行するアプリケーション107は、MPCシステムの対応する計算サーバに、対応する秘密シェアを含むデジタルコンポーネント要求を送信することができる。たとえば、アプリケーション107は、確率的データ構造(すなわち、カッコウフィルタ)の第1の秘密シェアを含むデジタルコンポーネントを求める要求を生成し、MPC1に送信する。要求パラメータは、rand_var1a、rand_var1b、およびrand_var2を含む。同様に、アプリケーション107はまた、確率的データ構造の第2の秘密シェアを含むデジタルコンポーネントを求める要求をMPC2に送信する。要求パラメータは、ベクトルB、rand_var1a、およびrand_var1bを含む。
いくつかの実装形態においては、秘密シェアを受け取った後、MPCシステム内の各計算サーバはそれぞれ、デジタルコンポーネントを選定するために、確率的データ構造の秘密シェアを使用するセキュアMPC方法を行う。たとえば、MPC1は、アレイTを算出することができ、ここでアレイのi番目の要素は、Ti=PRF(rand_var2, i)である。TおよびBがカッコウベクトルテーブルAの2つの追加の秘密シェアであることに留意されたい。本明細書に説明する目的で、2つの追加の秘密シェアは、[Ai, 1]および[Ai, 2]と表される。また、MPC1は[Ai, 1]を算出することができ、MPC2はアプリケーション107から[Ai, 2]を受け取ることにも留意されたい。
上記の例を続けると、各デジタルコンポーネントの資格を決定する場合、デジタルコンポーネントがそれぞれ、ブロッキングされたユニバーサル識別子の組によってブロッキングされているかどうか、およびユーザについてのユーザグループ識別子(たとえば、興味グループ識別子)が各デジタルコンポーネントについての選定値に対応するユーザグループ識別子と一致しているかどうかの決定が行われ得る。この評価の一部として、MPC1は、次を算出することができる。
[loc1, 1]=[AH1(ug_id(sv)), 1]==PRF(ug_id(sv), rand_var2)
[loc2, 1]=[AH2(ug_id(sv)), 1]==PRF(ug_id(sv), rand_var2)
[block1, 1]=[AH1(blocked_uid(sv)), 1]==RF(blocked_uid(sv), rand_var2)
[block2, 1]=[AH2(blocked_uid(sv)), 1]==RF(blocked_uid(sv), rand_var2)
同様に、MPC2は、次を算出することができる。
[loc1, 2]=[AH1(ug_id(sv)), 2]==PRF(ug_id(sv), rand_var2)
[loc2, 2]=[AH2(ug_id(sv)), 2]==PRF(ug_id(sv), rand_var2)
[block1, 2]=[AH1(blocked_uid(sv)), 2]==PRF(blocked_uid(sv), rand_var2)
[block2, 2]=[AH2(blocked_uid(sv)), 2]==PRF(blocked_uid(sv), rand_var2
ここで、svは、Table 2(表2)を参照して説明する選定値である。
MPCシステムの各計算サーバは、たとえ計算サーバがMPCシステムの他の計算サーバの秘密シェアにアクセスすることができなくても、上記に決定された値を使用して、秘密シェア情報に基づいて異なるデジタルコンポーネントの資格を決定することができる。概して言えば、MPCの各計算サーバは、MPCシステムのその計算サーバが受け取った確率的データ構造の秘密シェア内で2つの場所を調べることによって、各選定値(たとえば、各デジタルコンポーネントについてのスコア、ランキング、ビッド(bid)、または他の選定値)に対応する特定のユーザグループ識別子(たとえば、興味グループ識別子)がクライアントデバイス106によって提供される確率的データ構造に含まれているかどうかを決定する。MPCシステムの各計算サーバはまた、各選定値に対応するユニバーサル識別子が、そのMPCが受け取った確率的データ構造の秘密シェアにおいてクライアントデバイスによって提供される確率的データ構造に含まれていたブロッキングされたユニバーサル識別子の組に含まれているかどうかも決定している。デジタルコンポーネントに配布の資格があるようにするために、そのデジタルコンポーネントについての選定値に関連するユーザグループ識別子は、確率的データ構造内に見つけられなくてはならないが、デジタルコンポーネントについてのユニバーサル識別子は、確率的データ構造内に見つけることができない。
上記に挙げた算出により結果的に、確率的データ構造のそれらのそれぞれの秘密シェアにおける2つの指定された場所のうちのいずれかの中に、デジタルコンポーネントについての選定値に関連するユーザグループ識別子(たとえば、興味グループ識別子)をMPC計算サーバのいずれかが探し出したかどうかということを示すことになる。たとえば、MPC計算サーバは、loc1またはloc2の秘密シェアにおいて値1を算出するためのセキュアMPC方法を実行することになり、すなわち、loc1についての値は、[loc1, 1]および[loc1, 2]から再構成されることもあり得る。同様に、loc2についての値は、MPC計算サーバが利用可能な確率的データ構造の2つの場所のうちのいずれかが選定値に関連するユーザグループ識別子との一致を示す場合、[loc2, 1]および[loc2, 2]から再構成されることもあり得る。そうでない場合、MPCサーバは、選定値に関連するユーザグループ識別子とユーザについてのユーザグループ識別子との間で特定された一致がなかったことを示す、loc1とloc2との両方についての秘密シェアにおいて値0を算出することになる。選定値に資格があるようにするために、および対応するデジタルコンポーネントにクライアントデバイス106に供給される資格があるようにするために、選定値に関連するユーザグループ識別子は、MPCシステムによって場所のうちの1つにおいて特定されなくてはならない。ただし、デジタルコンポーネントが(たとえば、ブロッキングされたユニバーサル識別子の組内にそのユニバーサル識別子を含めることによって)ブロッキングされる場合には、たとえMPCのうちの1つがデジタルコンポーネントについての選定値のユーザグループ識別子とユーザのユーザグループ識別子との間の一致を特定していても、依然デジタルコンポーネントは供給される資格がないことになる。
上記に示す関係により、選定値に対応するデジタルコンポーネントがブロッキングされているかどうかに関して、デジタルコンポーネントのユニバーサル識別子がブロッキングされたユニバーサル識別子の組内に含められていることを確率的データ構造の2つの場所のうちのいずれかが示す場合、MPC1は、block1またはblock2のうちのいずれかについて1を算出することになる。そうでない場合、MPCサーバは、block1とblock2の両方について0を算出することになる。MPCサーバによってユニバーサル識別子が確率的データ構造内に含められていると決定される場合、デジタルコンポーネントは、クライアントデバイスに供給される資格がなくなる。
各選定値および対応するデジタルコンポーネントの資格を決定するために、MPC1およびMPC2の結果は、デジタルコンポーネントがブロッキングされているかどうか、および選定値に関連するユーザグループ識別子が確率的データ構造内に見つかったかどうかを決定するために評価されなくてはならない。上記の例を続けると、資格決定の一部として、MPC1は、たとえば、次のように秘密ブール型パラメータ[is_candidatesv, 1]を算出することによって、各候補選定値(および候補デジタルコンポーネント)の資格を決定することができる。
[is_candidatesv, 1]=(1-[loc1, 1==0]x[loc2, 1==0])x[block1, 1==0]x[block2, 1==0]
同様に、MPC2は、次のように秘密ブール型パラメータ[is_candidatesv, 2]を算出することができる。
[is_candidatesv, 2]=(1-[loc1, 2==0]x[loc2, 2==0])x[block1, 2==0]x[block2, 2==0]
MPCが利用できる確率的データ構造の秘密シェアの2つの指定場所のうちのいずれかの中にユーザのユーザグループ識別子(たとえば、興味グループ識別子)が見つかり、またMPCが利用できる確率的データ構造の秘密シェアの2つの指定場所のうちのいずれかの中にデジタルコンポーネントのユニバーサル識別子が見つからないとき、これらの動作により、クライアントデバイス106に供給するためのデジタルコンポーネントを選定するための資格を示す値1がもたらされる。MPCによって調べられる2つの指定場所のうちのいずれかの中にユニバーサル識別子が見つかった場合、値は0になり、デジタルコンポーネントに供給の資格がなくなる。これらの結果は、図2を参照してより詳細に説明するように、クライアントデバイスに供給するためのデジタルコンポーネントを選定するデジタルコンポーネント選定方法の一部として使用することができる。たとえば、2つの秘密シェアが[is_candidatesv, 1]および[is_candidatesv, 2]である秘密メッセージが値0である場合、その選定値は、資格がないと考えられることになり、それにより、その選定値を使用して、対応するデジタルコンポーネントのクライアントデバイス106への供給をトリガすることはできなくなる。
いくつかの実装形態においては、デジタルコンポーネントのソースは、デジタルコンポーネントについての選定基準を、選定値を含んで、MPCシステムに提供することができる。選定値は、デジタルコンポーネントサーバ108(またはコンテンツソース)が、デジタルコンポーネントの提示またはデジタルコンポーネントとのユーザ対話を行いたがっている量を示すことができる。MPCシステムは、クライアントデバイス106から受け取った今後のデジタルコンポーネント要求についての選定基準を記憶することができる。各デジタルコンポーネントについて、コンテンツソースはまた、デジタルコンポーネントについての追加のデータ、たとえば、メタデータをアップロードすることができる。デジタルコンポーネントについての追加のデータは、デジタルコンポーネントに対応するユーザグループについてのユーザグループ識別子(たとえば、興味グループ識別子)を含むことができる。たとえば、コンテンツソースは、(デジタルコンポーネントの組を含む)キャンペーンを管理することができ、ここで、デジタルコンポーネントは、ユーザグループのメンバーであるユーザのクライアントデバイス106に配布される。
デジタルコンポーネントについての追加のデータは、デジタルコンポーネントに資格がある文脈、たとえば、クライアントデバイス106の場所、アプリケーション107に対して選定される話されている言語、デジタルコンポーネントとともに提示可能なリソースのUniversal Resource Locators (URL)、および/またはデジタルコンポーネントとともに提示不可能なリソースのURLの除外を示す文脈的選定信号を含むことができる。デジタルコンポーネントについてのこのデータは、たとえば一意の識別子、デジタルコンポーネントの取得可能元のドメイン、および/またはデジタルコンポーネントについての他の適切なデータを使用して、デジタルコンポーネントを特定することもできる。
いくつかの実装形態においては、MPCシステムは、デジタルコンポーネント要求について、MPCシステムに提供されるデジタルコンポーネントについての選定値をキャッシュする、または別の形で記憶する。この例においては、デジタルコンポーネントおよび選定値についての文脈的信号は、そのデジタルコンポーネント要求に含まれている文脈的信号を含むことができる。
いくつかの実装形態においては、MPCシステムの各計算サーバは、2段階のルックアップテーブル(lookup table、LUT)を使用して、デジタルコンポーネントについての選定値を記憶する。第1の段階は、ユーザグループ要求キー(UG_Request_Key)によってキー付けされ得る。UG_Request_Keyは、文脈的信号の組、たとえば、デジタルコンポーネント要求の文脈的信号の組(たとえば、URL、場所、言語など)、またはデジタルコンポーネントに配布される資格がある文脈的信号の組に基づく複合メッセージとすることができる。つまり、第1の段階のLUTは、文脈的信号の組に基づいてキー付けされ得る。第1の段階のキーは、たとえばSHA256などのハッシュ関数を使用するUG_Request_Keyのハッシュとすることができる。このキーは、指定された数のビット、たとえば、16ビット、32ビット、または別の適切な数のビットに切り詰めることができる。第1の段階のLUTにおける各キーUG_Request_Keyについての値は、UG_Request_Keyの文脈的信号を含むデジタルコンポーネント要求について資格があるデジタルコンポーネントについてのデータを含む第2の段階のLUTの行を示すことができる。第1の段階のLUTの一例が、Table 1(表1)として下記に示されている。
Figure 2023089216000002
第2の段階のLUTは、第1の段階のLUTにおけるユーザグループ要求キーUG_Request_Keyとユーザグループ識別子との組合せに基づいてキー付けされ得る。第2の段階のLUTにおける各行は、特定のデジタルコンポーネントについての特定の選定値向けとすることができる。たとえば、コンテンツソースは、同じデジタルコンポーネントについて異なる選定値を提出することができ、各選定値は、文脈的信号の異なる組、および/または異なるユーザグループ識別子向けである。したがって、デジタルコンポーネントについての選定値は、文脈に基づいて変わる場合がある。
コンテンツソース(たとえば、デジタルコンポーネントサーバ108)は、デジタルコンポーネントを、コンテンツソースがデジタルコンポーネントの提示を望んでいるユーザグループに関連付ける、たとえば、リンクする、またはマッピングすることができる。たとえば、デジタルコンポーネントサーバ108は、男性のバスケットボールシューズに関係するデジタルコンポーネントが、バスケットボールおよび/またはシューズに興味を示したことがある男性に提示すべきであることを指定することができる。この例においては、デジタルコンポーネントサーバ108は、バスケットボールおよび/またはシューズに興味を示したことがある男性を含むユーザグループについてのユーザグループ識別子にデジタルコンポーネントが対応することを示すデータをMPCシステムに提供することができる。
いくつかの実装形態においては、第2の段階のLUTにおける行のキーは、その行のデジタルコンポーネントについてユーザグループ要求キーUG_Request_Keyとユーザグループ識別子との組合せに基づいて生成されるハッシュまたはコードとすることができる。たとえば、キーは、この組合せのハッシュベースのメッセージ認証コード(HMAC)とすることができ、それは、HMACSHA256(UG_Request_Key, ug_id)と表すことができる。
先の男性のバスケットボールシューズの例を続けると、男性のバスケットボールシューズグループにおけるユーザに提示されることになるデジタルコンポーネントについての情報を含む行についての第2の段階のルックアップキーは、男性のバスケットボールシューズグループについてのユーザグループ要求キーUG_Request_Keyとユーザグループ識別子ug_idとの組合せとすることができる。デジタルコンポーネントは異なる文脈で提示され得るので、第2の段階のルックアップテーブルは、男性のバスケットボールシューズグループについてのデジタルコンポーネントおよびユーザグループ識別子について、複数の行を含むことができ、それぞれの行は、異なるユーザグループ要求キーUG_Request_Keyおよび異なる値を含む。
第2の段階のLUTの各行の値は、デジタルコンポーネントについての選定値およびデジタルコンポーネントについての他のデータ、たとえば、デジタルコンポーネント、またはデジタルコンポーネントのダウンロード可能元のネットワーク場所などを特定するメタデータとすることができる。値は、デジタルコンポーネント情報要素dc_information_elementとすることができ、それは、選定値およびメタデータを有するバイトアレイとすることができる。バイトアレイは、クライアントデバイス106のアプリケーション107または信頼済みプログラム、およびコンピューティングシステムMPC1およびMPC2が選定値およびメタデータを得るように構文解析することができる特定の形式を有することができる。第2の段階のLUTの一例が、Table 2(表2)として下記に示されている。
Figure 2023089216000003
第2の段階のLUTは、特定のデジタルコンポーネントに、特定のユーザグループ識別子ug_idに、および第1の段階のルックアップキーUG_Request_Keyによって定義される文脈的信号の特定の組に、選定値をマッピングする。そうすることによって、第2の段階のLUTは、デジタルコンポーネントについての選定値が意図されるデジタルコンポーネントスロットの特定の文脈を示す。これにより、デジタルコンポーネントサーバ108は、文脈的信号およびユーザのグループメンバーシップによって定義される異なる文脈について同じデジタルコンポーネントについての異なる選定値を指定することが可能になる。デジタルコンポーネント要求が提示されることになるユーザが特定のユーザグループ識別子ug_idによって特定される特定のユーザグループのメンバーであること、およびデジタルコンポーネントが第1の段階のルックアップキーの文脈的信号によって定義される特定の文脈で提示されることになることを示すデジタルコンポーネント要求を受け取った場合、一致するユーザグループ識別子および一致する第1の段階のルックアップキーを有する第2の段階のLUTにおける選択値はいずれも、要求に応答して配布されるように選定される候補である。
図2は、クライアントデバイスに配布するためのデジタルコンポーネントを選定するための例示的な方法200のスイムレーン図である。方法200の動作は、たとえば、MPCシステムのコンピューティングシステムMPC1およびMPC2によって実装され得る。方法200の動作はまた、非一時的とすることができる1つまたは複数のコンピュータ可読媒体において記憶されている命令として実装され得、1つまたは複数の処理装置による命令の実行により、1つまたは複数のデータ処理装置は、方法200の動作を行うことが可能になる。
コンピューティングシステムMPC1は、資格のある選定値を特定する(202)。コンピューティングシステムMPC1は、図1を参照して詳細に上述したように、アプリケーション107から受け取ったデジタルコンポーネント要求について資格のある選定値を特定することができる。たとえば、アプリケーション107がスロットのためのデジタルコンポーネントを求める要求を開始すると、アプリケーションは、デジタルコンポーネント要求におけるパラメータとしてrand_var1a、rand_var1b、およびrand_var2をMPC1に送信することができる。デジタルコンポーネント要求はまた、デジタルコンポーネント要求についての文脈的信号に基づいて生成された第1の段階のルックアップキー、たとえば、SHA256(UG_Request_Key)を含むことができる。
コンピューティングシステムMPC1は、デジタルコンポーネント要求の第1の段階のルックアップキーを使用して資格がある選定値を特定することができる。コンピューティングシステムMPC1は、第1の段階のLUTにアクセスし、第1の段階のルックアップキーを使用して、第2の段階のLUTの行を特定することができ、この第2の段階のLUTの行は、第1の段階のルックアップキーによって表される文脈的信号の組について、提示される資格がある、たとえば、選定値が受け取られたことがある、デジタルコンポーネントについての選定値の情報を含む。たとえば、上述したように、第2の段階のLUTの各行は、デジタルコンポーネントと、文脈的信号の組に基づいている第2の段階のルックアップキーとについての情報を含む。したがって、コンピューティングシステムMPC1は、第1の段階のルックアップキーを使用して、デジタルコンポーネント要求において受け取った第1の段階のルックアップキーによって定義される文脈的信号の組と一致する文脈的信号の組を有する第2の段階のLUTの行を特定することができる。これらの行は、提示される資格がある、またはデジタルコンポーネント要求において受け取った第1の段階のルックアップキーによって定義される文脈について資格のある選定値を有する、デジタルコンポーネントについての情報を含む。
コンピューティングシステムMPC2は、資格のある選定値を特定する(204)。コンピューティングシステムMPC2は、クライアントデバイス106から受け取ったデジタルコンポーネント要求についての資格のある選定値を特定することができる。たとえば、アプリケーション107がスロットのためのデジタルコンポーネントを求める要求を開始すると、アプリケーションは、ベクトルB、rand_var1a、およびrand_var1bをMPC1に送信する。デジタルコンポーネント要求はまた、デジタルコンポーネント要求についての文脈的信号に基づいて生成された第1の段階のルックアップキー、たとえば、SHA256(UG_Request_Key)を含むことができる。コンピューティングシステムMPC2が受け取ったデジタルコンポーネント要求の第1の段階のルックアップキーは、コンピューティングシステムMPC1が受け取った第1の段階のルックアップキーと同じであってよい。
簡単にするために、方法200の残りのステップについては、確率的データ構造に関して、デジタルコンポーネント要求に応答して、クライアントデバイス106においてアプリケーション107に配布するためのデジタルコンポーネントを選定するという観点で説明する。MPCシステムは、アプリケーション107において提示するためのデジタルコンポーネントを選定することができる。たとえば、MPC1とMPC2はともに、後述するように、デジタルコンポーネントを選定するようにセキュアMPC方法を実行する。
コンピューティングシステムMPC2は、デジタルコンポーネント要求の第1の段階のルックアップキーを使用して資格がある選定値を特定することができる。コンピューティングシステムMPC2は、第1の段階のLUTにアクセスし、第1の段階のルックアップキーを使用して、第2の段階のLUTの行を特定することができ、この第2の段階のLUTの行は、第1の段階のルックアップキーによって表される文脈的信号の組について、提示される資格がある、たとえば、選定値が受け取られたことがある、デジタルコンポーネントについての情報を含む。上述したように、コンピューティングシステムMPC1およびMPC2はそれぞれ、同じ情報を含むそれぞれの2段階のLUTを維持することができる。MPC2と同様にMPC1もまた、デジタルコンポーネント要求の第1の段階のルックアップキーを使用して資格のある選定値を特定することができる。
資格のある選定値ごとに、コンピューティングシステムMPC1およびMPC2は、選定値およびそのデジタルコンポーネントが、デジタルコンポーネント要求に応答してアプリケーション107に配布されるために選定される候補であるかどうかを決定する(206)。候補選定値は、ユーザについてのユーザグループ識別子、たとえば、メンバーとしてユーザを含むユーザグループについてのユーザグループ識別子と一致するユーザグループ識別子を有し、かつブロッキングされたユニバーサル識別子の組内に含まれていないユニバーサル識別子を有するデジタルコンポーネントについての資格のある選定値である。上述したように、各デジタルコンポーネントは、デジタルコンポーネントサーバ108が、デジタルコンポーネントが提示されるべきであることを示したメンバーを含む1つまたは複数のユーザグループにマッピングされ得る。この情報は、上述したように、第2の段階のLUTについての第2の段階のルックアップキーの一部である。
第2の段階のLUTにおける行のデジタルコンポーネントは、(各デジタルコンポーネントについての)各選定値に対応する行についての第2の段階のルックアップキーの一部であるそのユーザグループ識別子ug_idが、MPCシステムのその計算サーバが受け取った確率的データ構造内で2つの場所を調べることによって、クライアントデバイス106によって提供された確率的データ構造内に含まれる場合、選定の候補である。しかしながら、(たとえば、ブロッキングされたユニバーサル識別子の組内にそのユニバーサル識別子を含めることによって)デジタルコンポーネントがブロッキングされる場合には、たとえMPCシステムがデジタルコンポーネントについての選定値のユーザグループ識別子とユーザのユーザグループ識別子との間の一致を特定していても、依然、デジタルコンポーネントは供給される資格がないことになる。
コンピューティングシステムMPC1およびMPC2は、どのデジタルコンポーネントが候補であるかについて、またはメンバーとしてユーザを含むユーザグループについてMPC1もMPC2もわからないように、秘密シェアを使用するセキュアMPC技法を使用して候補選定値を特定することができる。これを行うために、コンピューティングシステムMPC1は、ユーザグループ識別子ug_idに関連付けられ、選定の候補であるデジタルコンポーネントに関連付けられる各選定値について候補パラメータ[is_candidatesv, 1]の第1のシェアを算出する。同様に、コンピューティングシステムMPC2は、同じデジタルコンポーネントに関連付けられるユーザグループ識別子ug_idに関連付けられる各選定値について候補パラメータ[is_candidatesv, 2]の第2のシェアを算出する。候補パラメータ[is_candidatesv, 1]は、第1の秘密シェアであり、候補パラメータ[is_candidatesv, 2]は、第2の秘密シェアである。
コンピューティングシステムMPC1およびMPC2は、下記のTable 3(表3)に示されている動作を支持する秘密シェアリング技法または秘密シェアリングライブラリを使用することができる。これらの動作を支持する1つの例示的な秘密シェアリング技法が、Security through Private Information Aggregation(SEPIA)である。
Figure 2023089216000004
計算サーバMPC1は、選定値の順序を決定する(208)。同様に、計算サーバMPC2は、選定値の順序を決定する(210)。これらの2つの順序は、順序付け方法に対する入力が2つのコンピューティングシステムMPC1およびMPC2において同じであるので、まったく同じとすべきである。各計算サーバMPC1およびMPC2は、その第2の段階のLUTにおける選定値の順序を決定することができる。この順序は、候補選定値、および候補ではない選定値を含む、UG_Request_keyに関連する第2の段階のLUTにおける選定値をすべて含むことができる。順序は、最も高い選定値から最も低い選定値までとすることができる。いくつかの実装形態においては、順序に使用される選定値は、選定されたデジタルコンポーネントとともに提示されることになるウェブサイトのパブリッシャに提供されることになる値とすることができる。選定値がクリアテキストであるとき、計算サーバMPC1およびMPC2は、選定値を順序付けするためにラウンドトリップ計算を何ら行う必要はない。そうではなく、各コンピューティングシステムMPC1およびMPC2は、独立して、UG_Request_keyに関連するその第2の段階のLUTの選定値を順序付けることができる。選定値が各計算サーバMPC1およびMPC2において秘密シェアとして記憶され、各計算サーバMPC1およびMPC2が各選定値のそれぞれの秘密シェアを有する場合、計算サーバMPC1およびMPC2は、選定値を順序付けるのにラウンドトリップ計算を使用するセキュアMPC方法を行うことができる。2つ以上の選定値間に同点が存在する場合、コンピューティングシステムMPC1およびMPC2は、これらの選定値に対応するデジタルコンポーネントについての他のメタデータを使用して決定的に同点を破ることができる。
計算サーバMPC1およびMPC2は、各候補選定値について累積値の秘密シェアを決定する(212)。概念上、デジタルコンポーネントについての所与の選定値についての累積値は、順序の最上位から所与の選定値までの候補選定値の総数を表し、所与の選定値が候補である場合、所与の選定値を含める。この概念は、下記のTable 4(表4)に示されている。
Figure 2023089216000005
この表においては、累積値(acc)は、順序の最上位から順序の最下位に進むにつれて、1に等しい候補パラメータis_candidateを有する各選定値について増分される。たとえば、最も高い選定値についての候補パラメータis_candidateがゼロに等しいとき、最も高い選定値についての累積値accはゼロである。第2の選定値についての候補パラメータis_candidateが1に等しく、2番目に高い選定値よりも上の選定値に、1に等しい候補パラメータis_candidateを有するものがないとき、第2の選定値についての累積値accは1である。順序を下方に移動すると、3番目に高い候補値についての候補パラメータis_candidateはゼロであり、したがって、3番目に高い選定値についての累積値accは、第2の選定値についての累積値accから増分されない。4番目に高い選定値についての候補パラメータis_candidateが1であるとき、4番目に高い選定値についての累積値accは、3番目に高い選定値についての累積値から1だけ増分される。したがって、最も高い選定値から4番目に高い選定値まで(最も高い選定値と4番目に高い選定値は含まれる)の候補パラメータis_candidateを有する2つの選定値が存在するとき、4番目に高い選定値についての累積値accは2に等しい。
この表を使用すると、コンピューティングシステムMPC1およびMPC2は、Table 4(表4)の第4の列に示されているように、アプリケーション107に配布するために、候補パラメータis_candidateが値1を有し、累積値accが値1を有する選定パラメータに対応するデジタルコンポーネントを選定することになる。これは、候補パラメータis_candidateが値1を有する最も高い順序の選定値を表す。候補パラメータis_candidateが、ユーザプライバシーを維持し、ユーザデータが漏洩されないことを確実にするために、コンピューティングシステムMPC1およびMPC2についての秘密シェアにあるとき、コンピューティングシステムMPC1およびMPC2は、各選定値についての累積値accの秘密シェアを決定し、ラウンドトリップ計算を使用して、どの選定値が1に等しい累積値accと、1に等しい候補パラメータis_ candidateとを有するかを決定する。
計算サーバMPC1およびMPC2は、ラウンドトリップ計算を用いずに、独立して、各選定値についての累積値accのそれらの秘密シェアを決定することができる。たとえば、計算サーバMPC1は、Table 4(表4)を参照して上述したように、各選定値について、最高から最低への順序で選定値のすべてをジグザグに進み、その進行中に選定値についての候補パラメータis_candidateを加算することによって、選定値svについての累積値accの第1のシェア[accsv, 1]を決定することができる。同様に、計算サーバMPC2は、各選定値について、最高から最低への順序で選定値のすべてをジグザグに進み、その進行中に選定値についての候補パラメータis_candidateを加算することによって、累積値accの第2のシェア[accsv, 2]を決定することができる。
計算サーバMPC1およびMPC2は、選定値ごとに、累積値が指定値を有するかどうかを示す結果の秘密シェアを決定する(214)。指定値は、Table 4(表4)の列3および列4に示されているように、値1とすることができる。上述したように、累積値が1であり、候補パラメータis_candidateが1である選定値は、候補選定値の中で最も高い選定値である。
計算サーバMPC1およびMPC2は、各選定値についての秘密シェアの観点で、等式演算accsv==1を算出するためのセキュアMPC方法の一部として、複数の計算ラウンド、たとえば、複数のリモートプロシージャコール(remote procedure call、RPC)に関わることができる。この方法の終わりに、計算サーバMPC1は、各選定値について、結果accsv, 1==1の一方の秘密シェアを有し、計算サーバMPC2は、各選定値について、結果accsv, 2==1の他方の秘密シェアを有する。
計算サーバMPC1およびMPC2は、選定結果を決定する(216)。計算サーバMPC1およびMPC2は、各選定値について、accsv==1の秘密シェアおよび候補パラメータis_candidatesvの秘密シェアに基づいて選定結果を決定することができる。そうするためには、計算サーバMPC1およびMPC2は、秘密シェアの観点でウィナー(winner)パラメータ[is_winnersv, 1]および[is_winnersv, 2]を算出することができる。ウィナーパラメータは、選定値が選定方法のウィナーであるかどうか、たとえば、選定値に対応するデジタルコンポーネントが、デジタルコンポーネント要求に応答してアプリケーション107に配布されるために選定されるかどうかを示すブール値とすることができる。
各計算サーバMPC1およびMPC2は協調して、各選定値について、秘密シェアの観点でウィナーパラメータを算出するように暗号プロトコルを実行することができる。これには、2つの秘密シェアを乗ずるために、計算サーバMPC1とMPC2との間に1つのRPCが必要である。このMPC方法の終わりに、計算サーバMPC1は、[is_winnersv, 1]=[is_candidatesv, 1]x([accsv, 1]==1)と表される結果is_winnersvの一方の秘密シェアを有する。同様に、計算サーバMPC2は、[is_winnersv, 2]=[is_candidatesv, 2]x([accsv, 2]==1)と表される結果is_winnersvの他方の秘密シェアを有する。すべての選定値について、最大でも1つの選定値が、アプリケーション107に配布されるために選定されるデジタルコンポーネントに対応する、1に等しいウィナーパラメータis_ winnersvを有することに留意されたい。他はすべて、ゼロに等しくなる。
計算サーバMPC1およびMPC2は、選定値についてのウィナーパラメータ、および選定値についてのデジタルコンポーネント情報要素information_elementまたは選定値自体に基づいて、選定結果を算出することができる。上述したように、デジタルコンポーネントについてのデジタルコンポーネント情報要素information_elementは、デジタルコンポーネントについての選定値、およびデジタルコンポーネントについての他のデータを含むことができる。
計算サーバMPC1およびMPC2は、下記の関係1を用いて選定結果resultF1を算出することができる。
Figure 2023089216000006
この例においては、選定結果resultF1は、ユーザのユーザグループ識別子と一致するユーザグループ識別子を有するキャッシュされた選定値が存在しない場合に値ゼロを有することになるか、または1に等しいis_winnersvを有する選定されたデジタルコンポーネントのデジタルコンポーネント情報要素information_elementに等しい値を有することになるかのいずれかである。別の例においては、デジタルコンポーネント情報要素information_elementは、デジタルコンポーネントについての選定値と関係1において置き換えることができる。この例においては、選定結果resultF1は、ユーザのユーザグループ識別子と一致するユーザグループ識別子を有するキャッシュされた選定値が存在しない場合に値ゼロを有することになるか、または1に等しいis_winnersvを有する選定されたデジタルコンポーネントの選定値に等しい値を有することになるかのいずれかである。
秘密シェアにおいて算出を行うために、コンピューティングシステムMPC1は、選定値のすべてを取り、クリアテキストとすることができる選定値についてのデジタルコンポーネント情報要素information_elementsvに、ウィナーパラメータ[is_winnersv, 1]の第1の秘密シェアを乗ずる。次いで、コンピューティングシステムMPC1は、これらの積の和を決定し、デジタルコンポーネント要求を提出したクライアントデバイス106にその和を戻すことができる。つまり、MPC1は、結果の第1のシェアとして、下記の関係2を用いて、和を決定することができる。
Figure 2023089216000007
コンピューティングシステムMPC2は、下記の関係3を用いて結果の第2のシェアを決定するために同様の算出を行うことができる。
Figure 2023089216000008
コンピューティングシステムMPC1は、アプリケーション107に選定結果の第1のシェアを戻すことができる。同様に、コンピューティングシステムMPC2は、アプリケーション107に選定結果の第2のシェアを戻すことができる。次いで、アプリケーション107は、2つの秘密シェア
Figure 2023089216000009
および
Figure 2023089216000010
を用いて、たとえば、追加の秘密シェアアルゴリズムが採用されることを仮定して秘密シェアの和を決定することによって、クリアテキストの選定結果resultF1を再構成することができる。選定結果resultF1が値ゼロである場合には、MPCクラスタ130は、メンバーとしてユーザを含むユーザグループについてのデジタルコンポーネントを特定しなかった。そうでない場合、選定結果resultF1は、デジタルコンポーネント情報要素information_elementに等しい値であり、アプリケーション107は、デジタルコンポーネント情報要素information_elementを構文解析して、デジタルコンポーネントについての選定値およびメタデータを得ることができる。次いで、アプリケーション107は、デジタルコンポーネントを表示すること、または上述したように、デジタルコンポーネント、およびデジタルコンポーネントサーバ108から受け取った他のデジタルコンポーネントを使用して選定方法を行うことのいずれかが可能である。
いくつかの実装形態においては、アプリケーション107は、MPCシステムによって選定されたデジタルコンポーネントについてのユーザグループが、メンバーとしてユーザを含むユーザグループと一致することの最終検証を行うことができる。たとえば、各デジタルコンポーネントについてのデジタルコンポーネント情報要素information_elementは、デジタルコンポーネントについてのユーザグループ識別子を含むことができる。アプリケーション107は、デジタルコンポーネント情報要素information_elementのユーザグループ識別子を、ユーザについてのユーザグループリストと比較することができる。一致が存在しない場合、アプリケーション107は、選定方法からデジタルコンポーネントを除外することができる。一致が存在する場合、アプリケーション107は、選定方法にデジタルコンポーネントを含めることができる。
図3は、クライアントデバイスにデジタルコンポーネントを配布する例示的な方法のフロー図である。方法300の動作については、図1に説明し示したシステムの構成要素によって行われると後述する。方法300の動作については、例示目的としてのみ後述する。方法300の動作は、任意の適切なデバイスまたはシステム、たとえば、任意の適切なデータ処理装置によって行われ得る。方法300の動作はまた、非一時的コンピュータ可読媒体において記憶されている命令として実装され得る。命令の実行により、1つまたは複数の処理装置は、方法300の動作を行うことになる。
ブラウザにおいて提示されるデジタルコンポーネントについてのユニバーサル識別子を生成する(310)。特定のデジタルコンポーネントについてのキャンペーン識別子とコンテンツソースとも称すデジタルコンテンツプロバイダのドメインのeTLD+1とを読み出した後、アプリケーション107は、その特定のデジタルコンポーネントについてのユニバーサル識別子を生成することができる。いくつかの実装形態においては、コンテンツソースは、ユニバーサル識別子を算出することができる。デジタルコンポーネントについてのユニバーサル識別子は、HMAC(campaign_identifier, eTLD+1)と表されるキャンペーン識別子とデジタルコンポーネントサーバ108のドメインとによってパラメータ化されるハッシュベースのメッセージ認証コード(HMAC)を使用して算出され得る。いくつかの実装形態においては、HMACは、ハッシュ化された256ビット(32バイト)出力を生成するために、ダイジェスト長が256ビットの暗号化ハッシュ関数であるセキュアハッシュアルゴリズム(SHA-256)を使用して実装され得る。そのような例においては、HMAC(campaign_identifier, eTLD+1)は、ユニバーサル識別子として、デジタルコンポーネントについての256ビット一意識別子を生成する。
デジタルコンポーネントについて作成されたことがあるユニバーサル識別子の組を更新する(320)。アプリケーション107は、すべてのデジタルコンポーネントサーバ108において、キャンペーンの空間全体にわたって、デジタルコンポーネントを一意に特定するユニバーサル識別子の組を維持する。クライアントデバイス106に供給され提示された特定のデジタルコンポーネントについてのユニバーサル識別子を計算し/生成した後、アプリケーション107は、その特定のデジタルコンポーネントのユニバーサル識別子により、ユニバーサル識別子の組を更新する。たとえば、特定のデジタルコンポーネントについてのユニバーサル識別子が組の中にはもう存在しないとき、アプリケーション107は、特定のデジタルコンポーネントのユニバーサル識別子を組に追加し、対応する提示カウンタを1だけ増分する。特定のデジタルコンポーネントについてのユニバーサル識別子が組の中にすでに存在する状況においては、アプリケーション107は、ユニバーサル識別子の対応する提示カウンタを、たとえば、カウンタを1だけ増分することによって更新する。
ユニバーサル識別子に対応するブロッキングされたユニバーサル識別子の組を特定する(330)。クライアントデバイス106において実行するアプリケーション107は、最近ユーザによって明確にブロッキングされたことがあるデジタルコンポーネントのユニバーサル識別子を含む、ブロッキングされたユニバーサル識別子の組を維持することができる。たとえば、ユーザが、所与のデジタルコンポーネント(またはクライアントデバイス106に供給されたデータの一部分)に対応するミュート要素と対話することを仮定する。この例においては、ミュート要素とのユーザの対話は、今後(たとえば、少なくとも一定の時間量の間)、そのデジタルコンポーネント、または可能性として類似している(たとえば、同じソースコンテンツもしくはキャンペーンからの、または視覚的に類似している)デジタルコンポーネントを見ることをユーザが望んでいないことを示している。対話に応答して、アプリケーション107は、所与のデジタルコンポーネントについてのユニバーサル識別子をブロッキングされたユニバーサル識別子の組に追加することができ、次いで、それを使用して、所与のデジタルコンポーネントと同じユニバーサル識別子を有する他のデジタルコンポーネントの供給(または提示)を防止することができる。
アプリケーション107は、少なくとも所定の回数、供給/提示されたことがある(たとえば、1日、1週間、1カ月などの指定された時間期間にわたってX回を超えて提示されたことがある)デジタルコンポーネントのそれらのユニバーサル識別子を、ブロッキングされたユニバーサル識別子の組に追加することができる。たとえば、ユニバーサル識別子1A2B3Cを有するデジタルコンポーネントが、ここY日にわたってX回を上回って特定のユーザに供給/提示されている場合、アプリケーション107は、ユニバーサル識別子1A2B3Cを、ブロッキングされたユニバーサル識別子の組に追加することができ、それは、クライアントデバイス106において記憶される。
ブロッキングされたユニバーサル識別子の組およびユーザグループ識別子を表す確率的データ構造を生成する(340)。アプリケーション107は、ブロッキングされたユニバーサル識別子の組と、クライアントデバイス106(またはユーザ)が属するユーザグループとを表す確率的データ構造を生成することができる。いくつかの実装形態においては、確率的データ構造は、カッコウフィルタである。カッコウフィルタを生成するために、アプリケーション107は、ユーザグループ識別子か、またはブロッキングされたユニバーサル識別子の組からのユニバーサル識別子かのいずれかと、アプリケーション107によって生成された2つのランダム変数のうちのいずれか一方とによってパラメータ化される擬似ランダム関数(PRF)を使用する。たとえば、アプリケーション107によって生成された3つのランダム変数がrand_var1a、rand_var1b、およびrand_var2であることを仮定する。また、バケット内の各項目がkビットの整数であることを仮定する。アプリケーションは、PRF(ug_id, rand_var1a)、およびPRF(blocked_uid, rand_var1b)を含んでいるカッコウフィルタテーブルを生成することができ、ここで、ug_idは、コンテンツプロバイダのドメインに基づいてユーザグループのラベルにHMACを加えることによって生成されるユーザグループの識別子であり、blocked_uidは、ブロッキングされたユニバーサル識別子の組からの識別子である。
確率的データ構造の複数のシェアを生成する(350)。アプリケーション107は、ユーザグループ識別子と、ブロッキングされたユニバーサル識別子の組内のユニバーサル識別子とについて生成されるカッコウフィルタテーブルに基づいてベクトルBiを生成することができる。ベクトルBは、Bi=PRF(rand_var2, i)-Aiと表すことができ、ここで、Aiは、カッコウフィルタテーブルにおけるi番目のエントリのコンテンツであり、iは、ベクトルBiおよびカッコウフィルタテーブルAiの指数である。アプリケーション107は、MPC1に送られるデジタルコンポーネント要求におけるパラメータとしてrand_var1a、rand_var1b、およびrand_var2を生成する。アプリケーション107はまた、MPC2に送られるデジタルコンポーネント要求におけるパラメータとしてベクトルB、rand_var1a、およびrand_var1bを生成する。
異なるサーバに複数のシェアのうちの異なるシェアを送信する(360)。たとえば、アプリケーション107がスロットのためのデジタルコンポーネントを求める要求を開始すると、アプリケーションは、MPC1に、要求パラメータとしてrand_var1a、rand_var1b、およびrand_var2を送信する。アプリケーション107はまた、MPC2に、要求パラメータとしてベクトルB、rand_var1a、およびrand_var1bを送信する。
異なるサーバに送信される異なるシェアのうちの異なるシェアに基づいて異なるサーバのそれぞれによって生成される別個の応答を受け取る(370)。秘密シェアを受け取った後、MPCシステム内の各計算サーバはそれぞれ、確率的データ構造の秘密シェアを使用するセキュアMPC方法を行って、デジタルコンポーネントを選定する。たとえば、MPC1は、アレイTを算出することができ、ここで、アレイのi番目の要素は、Ti=PRF(rand_var2, i)である。選定するための各デジタルコンポーネントの資格を決定するとき、デジタルコンポーネントのそれぞれが、ブロッキングされたユニバーサル識別子の組によってブロッキングされているかどうか、およびユーザについてのユーザグループ識別子(たとえば、興味グループ識別子)が各デジタルコンポーネントについての選定値に対応するユーザグループ識別子と一致しているかどうかの決定を行うことができる。
MPCシステムの各計算サーバは、秘密シェア情報に基づいて異なるデジタルコンポーネントの資格を決定するように決定される値を使用することができる。MPCシステムの各計算サーバはまた、各選定値に対応するユニバーサル識別子が、そのMPCが受け取った確率的データ構造の秘密シェアにおいてクライアントデバイスによって提供される確率的データ構造に含まれていたブロッキングされたユニバーサル識別子の組に含まれているかどうかも決定している。デジタルコンポーネントに配布の資格があるようにするために、そのデジタルコンポーネントについての選定値に関連するユーザグループ識別子は、確率的データ構造内に見つけられなくてはならないが、デジタルコンポーネントについてのユニバーサル識別子は、確率的データ構造内に見つけることができない。
選定方法の詳細について、図2を参照して説明する。その後、MPCシステムの計算サーバは、選定結果resultF1を計算し、resultF1の秘密シェアを生成し、それぞれの秘密シェアをアプリケーション107に送信する。たとえば、MPC1は、選定結果の第1のシェアをアプリケーション107に戻すことができる。同様に、コンピューティングシステムMPC2は、選定結果の第2のシェアをアプリケーション107に戻すことができる。
ブラウザに提示するデジタルコンポーネントを特定する(380)。アプリケーション107は、MPCシステムの計算サーバから受け取った秘密シェアを使用して、クリアテキストの選定結果resultF1を再構成することができる。次いで、たとえば、アプリケーション107は、2つの秘密シェアを使用して、およびたとえば、秘密シェアの和を決定することによって、クリアテキストの選定結果resultF1を再構成することができる。
図4は、上記の動作を行うために使用され得る例示的なコンピュータシステム400のブロック図である。システム400は、プロセッサ410、メモリ420、ストレージデバイス430、および入力/出力デバイス440を含む。構成要素410、420、430、および440はそれぞれ、たとえば、システムバス450を使用して相互接続され得る。プロセッサ410は、システム400内で実行するための命令を処理することができる。1つの実装形態においては、プロセッサ410は、シングルスレッドのプロセッサである。別の実装形態においては、プロセッサ410は、マルチスレッドのプロセッサである。プロセッサ410は、メモリ420内に、またはストレージデバイス430上に記憶される命令を処理することができる。
メモリ420は、システム400内に情報を記憶する。1つの実装形態においては、メモリ420は、コンピュータ可読媒体である。1つの実装形態においては、メモリ420は、揮発性メモリユニットである。別の実装形態においては、メモリ420は、不揮発性メモリユニットである。
ストレージデバイス430は、システム400にマスストレージを提供することができる。1つの実装形態においては、ストレージデバイス430は、コンピュータ可読媒体である。様々な異なる実装形態においては、ストレージデバイス430には、たとえば、ハードディスクデバイス、光ディスクデバイス、複数のコンピューティングデバイスによってネットワークを経由して共有されるストレージデバイス(たとえば、クラウドストレージデバイス)、またはいくつかの他の大容量ストレージデバイスを含めることができる。
入力/出力デバイス440は、システム400に入力/出力動作を提供する。1つの実装形態においては、入力/出力デバイス440は、ネットワークインターフェースデバイス、たとえば、Ethernetカード、シリアル通信デバイス、たとえば、RS-232ポート、および/またはワイヤレスインターフェースデバイス、たとえば802.11カードのうちの1つまたは複数を含むことができる。別の実装形態においては、入力/出力デバイスは、入力データを受け取り、出力データを他の入力/出力デバイス、たとえば、キーボード、プリンタ、およびディスプレイデバイスに送るように構成されたドライバデバイスを含むことができる。しかしながら、モバイルコンピューティングデバイス、モバイル通信デバイス、セットトップボックステレビジョンクライアントデバイスなど、他の実装形態が使用されてもよい。
例示的な処理システムについて図4では説明しているが、本明細書に記載の主題および機能動作の実装形態は、他のタイプのデジタル電子回路機構で、または本明細書に開示される構造を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェア、およびそれらの構造的均等物で、またはそれらのうちの1つまたは複数の組合せで実装され得る。
(簡単にするために、単純にドキュメントと称す)電子ドキュメントは、必ずしもファイルに対応するとは限らない。ドキュメントは、問題のドキュメントに専用の単一のファイルで、または複数のコーディネートファイルで、他のドキュメントを保持するファイルの一部分に記憶されてもよい。
本明細書に記載の主題および機能動作の実施形態は、デジタル電子回路機構で、または本明細書に開示される構造を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェア、およびそれらの構造的均等物で、またはそれらのうちの1つまたは複数の組合せで実装され得る。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置の動作を制御することによって、または制御するために実行される複数のコンピュータストレージ媒体(もしくは1つのコンピュータストレージ媒体)において符号化されるコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替として、または追加として、プログラム命令は、データ処理装置によって実行されるのに適している受信機装置に送信するための情報を符号化するために生成される、人工的に生成された伝搬信号、たとえば、マシン生成の電気、光、または電磁信号において符号化され得る。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムまたはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せとすることも、あるいはそれらに含められてもよい。その上、コンピュータストレージ媒体は、伝搬信号ではないが、コンピュータストレージ媒体は、人工的に生成された伝搬信号において符号化されたコンピュータプログラム命令のソースまたは送り先であってもよい。また、コンピュータストレージ媒体は、1つまたは複数の別個の物理的構成要素もしくは媒体(たとえば、複数のCD、ディスク、または他のストレージデバイス)であっても、それらに含められてもよい。
本明細書に記載の動作は、1つまたは複数のコンピュータ可読ストレージデバイスにおいて記憶された、または他のソースから受け取ったデータに関して、データ処理装置によって行われる動作として実装され得る。
「データ処理装置(data processing apparatus)」という用語は、例として、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または前述の複数、もしく前述の組合せを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用の論理回路機構、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)を含むことができる。装置はまた、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つまたは複数の組合せを構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散型コンピューティングインフラストラクチャおよびグリッドコンピューティングインフラストラクチャなど、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)は、コンパイラ型またはインタープリタ型の言語、宣言型または手続き型の言語を含む任意の形態のプログラミング言語で書くことができ、スタンドアロンプログラムとして、またはモジュールとして、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境での使用に適している他のユニットを含む、任意の形態で展開することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応している場合があるが、対応している必要はない。プログラムは、他のプログラムまたはデータを保持するファイルの一部分(たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプト)の中に、問題のプログラムに専用の単一ファイルの中に、または複数のコーディネートファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)の中に記憶され得る。コンピュータプログラムは、1つのコンピュータ、または1つのサイトに配置され、もしくは複数のサイトにわたって分散され、通信ネットワークによって相互接続されている複数のコンピュータにおいて実行されるように展開され得る。
本明細書に記載の方法および論理フローは、1つまたは複数のプログラマブルプロセッサが、入力データに関して操作し出力を生成することによってアクションを行うように1つまたは複数のコンピュータプログラムを実行することによって行うことができる。また、方法および論理フローは、専用の論理回路機構、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行することもでき、また装置も、専用の論理回路機構、たとえば、FPGAまたはASICとして実装することができる。
コンピュータプログラムの実行に適しているプロセッサには、例として、汎用マイクロプロセッサと専用のマイクロプロセッサとをともに含む。概して、プロセッサは読取り専用メモリもしくはランダムアクセスメモリ、またはその両方から命令およびデータを受け取ることになる。コンピュータの必須要素は、命令に従ってアクションを行うためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。概して、コンピュータはまた、データを記憶するための1つまたは複数のマスストレージデバイス、たとえば、磁気、磁気光学ディスク、もしくは光ディスクを含む、あるいはそれらの同士の間でデータを受信もしくは転送する、またはその両方を行うように、動作可能なように結合されることになる。しかしながら、コンピュータは、そのようなデバイスを有する必要があるわけではない。その上、コンピュータは、別のデバイス、たとえば、ほんの数例を挙げると、携帯電話、パーソナルデジタルアシスト(PDA)、モバイルオーディオもしくはビデオプレイヤ、ゲームコンソール、全地球測位システム(Global Positioning System、GPS)受信機、またはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に埋め込まれていてもよい。コンピュータプログラム命令およびデータを記憶するのに適しているデバイスとしては、例として、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、たとえば、内部ハードディスクまたはリムーバブルディスク; 磁気光学ディスク;ならびにCD-ROMおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリ、媒体、およびメモリデバイスが挙げられる。プロセッサおよびメモリは、専用の論理回路機構によって補足されても、またはその中に組み込まれていてもよい。
ユーザとの対話を可能にするために、本明細書に記載の主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータにおいて実装することができる。他の種類のデバイスを使用して、ユーザとの対話を可能にすることができるだけでなく、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックとすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受け取ることができる。加えて、コンピュータは、ユーザが使用するデバイスとの間でドキュメントを送受信することによって、たとえば、ウェブブラウザから受け取った要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送ることによってユーザと対話することができる。
本明細書に記載の主題の実施形態は、たとえばデータサーバとして、バックエンドコンポーネントを含む、もしくはミドルウェアコンポーネント、たとえばアプリケーションサーバを含む、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書に記載の主題の実装形態と対話することができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータ、あるいは1つまたは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムにおいて実装され得る。システムのコンポーネントは、デジタルデータ通信の任意の形態または媒体、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク(local area network、「LAN」)、および広域ネットワーク(wide area network、「WAN」)、インターネットワーク(たとえば、Internet)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)が挙げられる。
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、概して、互いにリモートであり、典型的には、通信ネットワークを通じて対話する。クライアントとサーバとの関係は、コンピュータプログラムがそれぞれのコンピュータにおいて動作し、互いにクライアント/サーバ関係を有することにより生じる。いくつかの実施形態においては、サーバは、データ(たとえば、HTMLページ)をクライアントデバイスに送信する(たとえば、クライアントデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受け取る目的で)。クライアントデバイスにおいて生成されるデータ(たとえば、ユーザ対話の結果)は、サーバにおいてクライアントデバイスから受け取ることができる。
本明細書は、多くの特定の実装形態の詳細を含んでいるが、これらは、いかなる発明の範囲に対する、または特許請求され得ることの限定として解釈すべきではなく、むしろ、特定の発明の特定の実施形態に固有の特徴の説明と解釈すべきである。別個の実施形態の文脈で本明細書に説明する特定の特徴はまた、単一の実施形態における組合せで実装され得る。逆に、単一の実施形態の文脈で説明する様々な特徴もまた、複数の実施形態で別個に、または任意の適切な副組合せで実装され得る。その上、特徴は、特定の組合せで機能すると上述している場合があり、最初はそのようものとして特許請求される場合があるが、特許請求される組合せからの1つまたは複数の特徴は、いくつかの場合においては、組合せから削除されることもあり、特許請求される組合せは、副組合せまたは副組合せの変形形態を対象とすることもある。
同様に、動作は、特定の順序で図面に示されているが、このことは、所望の結果を達成するために、そのような動作が、示されている特定の順序でもしくは連続した順序で行われるものとすること、またはすべての例示の動作が行われるものとすることを要求していると理解すべきではない。特定の状況においては、マルチタスクおよび並行処理が有利であることもある。その上、上述の実施形態における様々なシステムコンポーネントの分離は、すべての実施形態においてそのような分離を要求していると理解すべきでなく、説明したプログラムコンポーネントおよびシステムが、概して、単一のソフトウェア製品に一緒に統合されても、または複数のソフトウェア製品にパッケージ化されてもよいことを理解すべきである。
このように、主題の特定の実施形態について説明してきた。他の実施形態は、添付の特許請求の範囲内にある。いくつかの場合においては、特許請求の範囲に列挙したアクションは、異なる順序で行うことができ、それでもなお、所望の結果を達成することができる。加えて、添付の図に示した方法には、所望の結果を達成するために、必ずしも示されている特定の順序または連続した順序が必要であるわけでもない。特定の実装形態においては、マルチタスクおよび並行処理が有利であることもある。
100 環境
102 ネットワーク
104 コンテンツサーバ、コンテンツプラットフォーム
106 クライアントデバイス
107 アプリケーション
108 デジタルコンポーネントサーバ
110 デジタルコンポーネント配布システム
112 デジタルコンポーネント要求
114 コンピューティングデバイス
117a~117c タスク
118a~118c 分析の結果(Res1~Res3)
120 返信データ
121 サーバ要求
122 デジタルコンポーネントデータ
140 ブリッシャ
142 ウェブサイト
150 検索システム
152 検索インデックス
200 方法
300 方法
400 コンピュータシステム
410 プロセッサ
420 メモリ
430 ストレージデバイス
440 入力/出力デバイス
450 システムバス
MPC1、MPC2 計算サーバ

Claims (20)

  1. アプリケーションによって、前記アプリケーションに提示されるデジタルコンポーネントについて、(i)前記デジタルコンポーネントを提供するコンテンツソースについてのキャンペーン識別子と(ii)前記コンテンツソースのドメインとの組合せの暗号化バージョンであるユニバーサル識別子を生成するステップと、
    前記アプリケーションによって、前記生成されたユニバーサル識別子に基づいて、指定された時間期間にわたって前記アプリケーションによって提示されるデジタルコンポーネントについて作成されたことがあるユニバーサル識別子の組を更新するステップと、
    前記アプリケーションによって、(i)前記アプリケーションによって生成されたことがあり、(ii)前記アプリケーションに今後のデジタルコンポーネントを提示するための使用をブロッキングされたことがあるユニバーサル識別子に対応するブロッキングされたユニバーサル識別子の組を特定するステップと、
    前記アプリケーションによって、ブロッキングされたユニバーサル識別子の前記組を表す確率的データ構造を生成するステップと、
    前記アプリケーションによって、前記確率的データ構造の複数のシェアを作成するステップと、
    前記アプリケーションによって、前記複数のシェアのうちの異なるシェアを異なるサーバに送信するステップと、
    前記アプリケーションによって、前記異なるサーバに送信された前記複数のシェアのうちの前記異なるシェアに基づいて、前記異なるサーバのそれぞれによって生成される別個の応答を受信するステップと、
    前記アプリケーションによって、前記別個の応答の組合せに基づいて、前記アプリケーションに提示するためのデジタルコンポーネントを特定するステップと
    を含むコンピュータ実装方法。
  2. 前記アプリケーションによって、前記アプリケーションに提示される所与のデジタルコンポーネントに対応するミュート要素との対話を検出するステップと、
    直近のタイムフレームでの前記ミュート要素との前記対話の検出に応答して、前記所与のデジタルコンポーネントの前記ユニバーサル識別子を含むように、ブロッキングされたユニバーサル識別子の前記組を更新するステップと
    をさらに含む、請求項1に記載の方法。
  3. ユニバーサル識別子の前記組を更新するステップが、特定のユニバーサル識別子を有するデジタルコンポーネントの提示の頻度を示す提示カウンタを、前記アプリケーションによって前記特定のユニバーサル識別子に関連付けられたデジタルコンポーネントの提示に応答して、増分するステップを含む、請求項1に記載の方法。
  4. 前記提示カウンタが指定値を上回ったとき、前記特定のユニバーサル識別子をブロッキングされたユニバーサル識別子の前記組に追加するステップをさらに含む、請求項3に記載の方法。
  5. 前記確率的データ構造を生成するステップが、(i)ブロッキングされたユニバーサル識別子の前記組と、(ii)前記アプリケーションのユーザに割り当てられたユーザグループに対応するユーザグループ識別子の組とを表す前記確率的データ構造を生成するステップを含む、請求項1に記載の方法。
  6. 前記確率的データ構造を生成するステップが、2つ以上のランダム変数によってパラメータ化される擬似ランダム関数を使用するステップをさらに含む、請求項5に記載の方法。
  7. 前記デジタルコンポーネントを提供するエンティティが、前記デジタルコンポーネントについての前記ユニバーサル識別子を生成することができる、請求項1に記載の方法。
  8. 前記確率的データ構造が、カッコウフィルタである、請求項1に記載の方法。
  9. アプリケーションによって、前記アプリケーションに提示されるデジタルコンポーネントについて、(i)前記デジタルコンポーネントを提供するコンテンツソースについてのキャンペーン識別子と(ii)前記コンテンツソースのドメインとの組合せの暗号化バージョンであるユニバーサル識別子を生成することと、
    前記アプリケーションによって、前記生成されたユニバーサル識別子に基づいて、指定された時間期間にわたって前記アプリケーションによって提示されるデジタルコンポーネントについて作成されたことがあるユニバーサル識別子の組を更新することと、
    前記アプリケーションによって、(i)前記アプリケーションによって生成されたことがあり、(ii)前記アプリケーションに今後のデジタルコンポーネントを提示するための使用をブロッキングされたことがあるユニバーサル識別子に対応するブロッキングされたユニバーサル識別子の組を特定することと、
    前記アプリケーションによって、ブロッキングされたユニバーサル識別子の前記組を表す確率的データ構造を生成することと、
    前記アプリケーションによって、前記確率的データ構造の複数のシェアを作成することと、
    前記アプリケーションによって、前記複数のシェアのうちの異なるシェアを異なるサーバに送信することと、
    前記アプリケーションによって、前記異なるサーバに送信された前記複数のシェアのうちの前記異なるシェアに基づいて、前記異なるサーバのそれぞれによって生成される別個の応答を受信することと、
    前記アプリケーションによって、前記別個の応答の組合せに基づいて、前記アプリケーションに提示するためのデジタルコンポーネントを特定することと
    を含むシステム。
  10. 前記アプリケーションによって、前記アプリケーションに提示される所与のデジタルコンポーネントに対応するミュート要素との対話を検出することと、
    直近のタイムフレームでの前記ミュート要素との前記対話の検出に応答して、前記所与のデジタルコンポーネントの前記ユニバーサル識別子を含むように、ブロッキングされたユニバーサル識別子の前記組を更新することと
    をさらに含む、請求項9に記載のシステム。
  11. ユニバーサル識別子の前記組を更新することが、特定のユニバーサル識別子を有するデジタルコンポーネントの提示の頻度を示す提示カウンタを、前記アプリケーションによって前記特定のユニバーサル識別子に関連付けられたデジタルコンポーネントの提示に応答して、増分することを含む、請求項9に記載のシステム。
  12. 前記提示カウンタが指定値を上回ったとき、前記特定のユニバーサル識別子をブロッキングされたユニバーサル識別子の前記組に追加することをさらに含む、請求項11に記載のシステム。
  13. 前記確率的データ構造を生成することが、(i)ブロッキングされたユニバーサル識別子の前記組と、(ii)前記アプリケーションのユーザに割り当てられたユーザグループに対応するユーザグループ識別子の組とを表す前記確率的データ構造を生成することを含む、請求項9に記載のシステム。
  14. 前記確率的データ構造を生成することが、2つ以上のランダム変数によってパラメータ化される擬似ランダム関数を使用することをさらに含む、請求項13に記載のシステム。
  15. 前記デジタルコンポーネントを提供するエンティティが、前記デジタルコンポーネントについての前記ユニバーサル識別子を生成することができる、請求項9に記載のシステム。
  16. 前記確率的データ構造が、カッコウフィルタである、請求項9に記載のシステム。
  17. 命令を記憶した非一時的コンピュータ可読記録媒体であって、前記命令が、1つまたは複数のデータ処理装置によって実行されると、前記1つまたは複数のデータ処理装置に、
    アプリケーションによって、前記アプリケーションに提示されるデジタルコンポーネントについて、(i)前記デジタルコンポーネントを提供するコンテンツソースについてのキャンペーン識別子と(ii)前記コンテンツソースのドメインとの組合せの暗号化バージョンであるユニバーサル識別子を生成することと、
    前記アプリケーションによって、前記生成されたユニバーサル識別子に基づいて、指定された時間期間にわたって前記アプリケーションによって提示されるデジタルコンポーネントについて作成されたことがあるユニバーサル識別子の組を更新することと、
    前記アプリケーションによって、(i)前記アプリケーションによって生成されたことがあり、(ii)前記アプリケーションに今後のデジタルコンポーネントを提示するための使用をブロッキングされたことがあるユニバーサル識別子に対応するブロッキングされたユニバーサル識別子の組を特定することと、
    前記アプリケーションによって、ブロッキングされたユニバーサル識別子の前記組を表す確率的データ構造を生成することと、
    前記アプリケーションによって、前記確率的データ構造の複数のシェアを作成することと、
    前記アプリケーションによって、前記複数のシェアのうちの異なるシェアを異なるサーバに送信することと、
    前記アプリケーションによって、前記異なるサーバに送信された前記複数のシェアのうちの前記異なるシェアに基づいて、前記異なるサーバのそれぞれによって生成される別個の応答を受信することと、
    前記アプリケーションによって、前記別個の応答の組合せに基づいて、前記アプリケーションに提示するためのデジタルコンポーネントを特定することと
    を含む動作を行わせる、非一時的コンピュータ可読記録媒体。
  18. 前記アプリケーションによって、前記アプリケーションに提示される所与のデジタルコンポーネントに対応するミュート要素との対話を検出することと、
    直近のタイムフレームでの前記ミュート要素との前記対話の検出に応答して、前記所与のデジタルコンポーネントの前記ユニバーサル識別子を含むように、ブロッキングされたユニバーサル識別子の前記組を更新することと
    をさらに含む、請求項17に記載の非一時的コンピュータ可読記録媒体。
  19. 前記確率的データ構造を生成することが、(i)ブロッキングされたユニバーサル識別子の前記組と、(ii)前記アプリケーションのユーザに割り当てられたユーザグループに対応するユーザグループ識別子の組とを表す前記確率的データ構造を生成することを含む、請求項17に記載の非一時的コンピュータ可読記録媒体。
  20. 前記確率的データ構造を生成することが、2つ以上のランダム変数によってパラメータ化される擬似ランダム関数を使用することをさらに含む、請求項19に記載の非一時的コンピュータ可読記録媒体。
JP2023067940A 2020-12-04 2023-04-18 データ配布制限のセキュアな管理 Pending JP2023089216A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023067940A JP2023089216A (ja) 2020-12-04 2023-04-18 データ配布制限のセキュアな管理

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2021576384A JP7267471B2 (ja) 2020-12-04 2020-12-04 データ配布制限のセキュアな管理
PCT/US2020/063409 WO2022119578A1 (en) 2020-12-04 2020-12-04 Secured management of data distribution restrictions
JP2023067940A JP2023089216A (ja) 2020-12-04 2023-04-18 データ配布制限のセキュアな管理

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2021576384A Division JP7267471B2 (ja) 2020-12-04 2020-12-04 データ配布制限のセキュアな管理

Publications (1)

Publication Number Publication Date
JP2023089216A true JP2023089216A (ja) 2023-06-27

Family

ID=74004160

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021576384A Active JP7267471B2 (ja) 2020-12-04 2020-12-04 データ配布制限のセキュアな管理
JP2023067940A Pending JP2023089216A (ja) 2020-12-04 2023-04-18 データ配布制限のセキュアな管理

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2021576384A Active JP7267471B2 (ja) 2020-12-04 2020-12-04 データ配布制限のセキュアな管理

Country Status (6)

Country Link
US (1) US20220414247A1 (ja)
EP (2) EP4220467A1 (ja)
JP (2) JP7267471B2 (ja)
KR (1) KR20220079797A (ja)
CN (1) CN114938668A (ja)
WO (1) WO2022119578A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220391372A1 (en) * 2021-06-08 2022-12-08 Amadeus S.A.S. Database offloading utilizing a locater index

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9363238B2 (en) * 2012-06-04 2016-06-07 Apple Inc. Repackaging demographic data with anonymous identifier
US20140324575A1 (en) * 2013-04-30 2014-10-30 AppNexus Inc. Methods and systems for tracking consumers without server-side profiling
US9881320B2 (en) * 2014-05-28 2018-01-30 Apple Inc. Targeting customer segments
US11115479B2 (en) 2019-01-10 2021-09-07 Google Llc Enhanced online privacy
US11245536B2 (en) * 2019-04-16 2022-02-08 Meta Platforms, Inc. Secure multi-party computation attribution

Also Published As

Publication number Publication date
CN114938668A (zh) 2022-08-23
WO2022119578A1 (en) 2022-06-09
US20220414247A1 (en) 2022-12-29
JP2023508251A (ja) 2023-03-02
JP7267471B2 (ja) 2023-05-01
EP4038532B1 (en) 2023-07-26
EP4220467A1 (en) 2023-08-02
KR20220079797A (ko) 2022-06-14
EP4038532A1 (en) 2022-08-10

Similar Documents

Publication Publication Date Title
US20230188329A1 (en) Using secure multi-party computation and probabilistic data structures to protect access to information
EP4070223B1 (en) Using secure multi-party computation to improve content selection process integrity
US20230077152A1 (en) Feedback controller using secret sharing
JP2023089216A (ja) データ配布制限のセキュアな管理
EP4066141A1 (en) Privacy preserving machine learning labelling
EP4081971B1 (en) Using secure mpc and vector computations to protect access to information in content distribution
WO2023027982A1 (en) Cryptographically secure control using secure multi-party computation
US20220405407A1 (en) Privacy preserving cross-domain machine learning
JP7471450B2 (ja) セキュアマルチパーティ計算の性能の向上
US20240022392A1 (en) Privacy preserving measurements using secure multi-party computation
US20230171091A1 (en) Flexible content selection processes using secure multi-party computation
US20230259815A1 (en) Machine learning techniques for user group based content distribution
US20230072957A1 (en) Privacy-preserving techniques for content selection and distribution
CN114930334A (zh) 用于隐私保护的加性和减性噪声

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230424

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230424