EP4605848A1 - Secure and efficient workflows using trusted execution environments - Google Patents
Secure and efficient workflows using trusted execution environmentsInfo
- Publication number
- EP4605848A1 EP4605848A1 EP23848040.4A EP23848040A EP4605848A1 EP 4605848 A1 EP4605848 A1 EP 4605848A1 EP 23848040 A EP23848040 A EP 23848040A EP 4605848 A1 EP4605848 A1 EP 4605848A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- trusted
- digital component
- digital components
- candidate
- content platform
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6227—Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
- H04L63/0442—Network 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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
Definitions
- This specification relates to data security , data privacy, and efficiently performing computing tasks using trusted execution environments.
- a trusted execution environment provides a secure environment for computation and is sometimes implemented as a secure area of a main processor.
- a TEE can guarantee that code and data loaded inside the TEE are protected with respect to integrity and confidentiality. Integrity 7 indicates that unauthorized entities cannot alter code and/or data within the TEE, and confidentiality 7 indicates that unauthorized entities cannot read code and/or data within the TEE.
- This specification describes technologies that increase the speed and efficiency at which computing tasks are performed by distributing tasks among different ty pes of execution environments including TEEs.
- executing tasks in a TEE is more resource intensive than executing the same tasks in a general-purpose environment, e.g., by a computer’s main operating system.
- applications that run in a TEE can be separated from other applications and resources of the computer using cryptographic functions and other functions that can require significant computations that introduce additional latency to execution of the applications.
- a TEE provides enhanced security 7 of sensitive data, such as user data for which the security 7 is critical.
- TEEs and general purpose computing environments (e g., server class computers) to efficiently and quickly select and distribute relevant content to users based on sensitive user data without compromising user privacy or data security.
- sensitive user data may only be stored in TEEs when stored away from the user’s device in cleartext, and it is not released to or accessible in cleartext to untrusted platforms such as untrusted content platforms and digital component providers.
- Storing and evaluating user data only in TEEs, e.g., TEEs of trusted content platforms, when off of the user’s device ensures user privacy while also enabling delivery 7 of content relevant to a user.
- Delivering relevant content can reduce the demand on computing resources.
- servers process fewer requests (saving both processing and power), and client devices issue fewer requests (saving processing and power).
- client device is a mobile device, which can be connected to bandwidth-constrained cellular networks (increasing the importance of bandwidth savings) and run on battery (increasing the importance of reducing additional requests and associated power usage).
- TEEs executing computing tasks in TEEs is resource intensive and adds latency to the process.
- the cryptography used to protect data can involve substantial computing resources to process. Therefore, implementing all techniques using only TEEs can be undesirable, especially in content distribution workflows in which content has to be selected and sent to client devices in milliseconds or errors (e.g., page load errors) may occur.
- a delay responding to a request can result in page load errors at the client device or cause portions of an electronic document, e.g., web page, or other resource to remain unpopulated even after other portions of the electronic document are presented at the client device.
- portions of an electronic document e.g., web page, or other resource to remain unpopulated even after other portions of the electronic document are presented at the client device.
- delays in providing the digital component can result in a failed delivery of the digital component, for example, if the electronic document is no longer presented at the client device when the digital component is provided.
- untrusted content platforms which can operate using substantially less computing resources, can perform operations that do not risk compromising user privacy or the security of other confidential information or code.
- untrusted platforms can collect candidate digital components using only non-sensitive data (e.g., no user data) and provide those candidate digital components to one or more trusted content platforms, and the trusted content platforms can determine the relevance of the component to the user and/or generate data that is used to select a digital component from multiple candidate digital components.
- the trusted content platforms can include a TEE in which user data is processed in cleartext to ensure that such data is not exposed outside the TEE. This approach enables accurate selection of relevant content using sensitive data and effectively limits the use of computationally intensive resources to operations that involve sensitive data, resulting in fast and efficient content selection and distribution while also enhancing user privacy and data security.
- the techniques described in this document utilize both trusted content platforms that include TEEs and non-trusted content platforms that are generally secure but do not include TEEs to process sensitive and non-sensitive data using different routes/workflows to enable faster and more efficient content selection while securely protecting sensitive user data.
- sensitive data is transferred along a fully trusted route and processed by TEEs while non-sensitive data is transferred along a different, non-fully trusted, route so that the non-sensitive data is processed in a less computationally intensive computing environment than the sensitive data and without consuming the resources of TEEs. This ensures that the sensitive data is fully protected reducing the computing resource consumption and content delivery speed relative to implementations that include all TEEs.
- the second digital component request includes first- party data related user actions of a user of the client device with respect to one or more resources of a publisher of the resource.
- the one or more first candidate digital components are selected from one or more second trusted repositories of digital components. Each of the one or more second trusted repositories is maintained by a corresponding second trusted content platform.
- the one or more second candidate digital components are selected from one or more second untrusted repositories of digital components. Each of the one or more second untrusted repositories is maintained by a corresponding second untrusted content platform. [0015] In some aspects, each second trusted content platform is configured to send the non-sensitive data to a corresponding second untrusted content platform operated by a same entity that operates the second trusted content platform.
- the corresponding second untrusted content platform is configured to select one or more candidate digital components based on the non-sensitive data.
- the corresponding second untrusted content platform is configured to send the selected one or more candidate digital components to the second trusted content platform.
- each second trusted content platform is configured to decrypt the encrypted user data and to generate a selection value for each of a set of candidate digital components comprising the first candidate digital components and the selected one or more candidate digital components based on the decrypted user data.
- the second trusted content platform selects the given digital component from the set of candidate digital components based on the generated selection value for each candidate digital component.
- each second trusted content platform is configured to decrypt the encrypted user data, generate, based at least on the decrypted user data, a score for each candidate digital component in the set of candidate digital components based on a selection value for the candidate digital component and a predicted performance metric for the candidate digital component, and select the given candidate digital component based on the score for each candidate digital component.
- selecting, by the first trusted content platform, a given digital component from a set of candidate digital components includes receiving, from each second trusted content platform and each of the one or more second untrusted content platform, a selection value for each candidate digital component and selecting the given digital component based on the selection values.
- a first digital component request including (i) sensitive data including encr pted user data for the user and (ii) non- sensitive data including contextual data related to a resource with which a selected digital component will be presented at the client device; sending, by the first untrusted content platform, a second digital component request including the sensitive data to one or more first trusted content platforms; receiving, by the first untrusted content platform and from each second trusted content platform, one or more encrypted trusted candidate digital components; sending, by the first untrusted content platform, a third digital component request to one or more second untrusted content platforms, wherein the third digital component request sent to each second untrusted content platform includes the nonsensitive data: receiving, by the first untrusted content platform and from each second untrusted content platform, one or more untrusted candidate digital components; and sending one or more of the enc
- the first trusted content platform is configured to send the encrypted user data to one or more second trusted content platforms, and receive one or more trusted candidate digital components from each of the second trusted content platforms.
- At least one of the one or more second trusted content platforms is configured to send first-party data to a corresponding second untrusted content platform.
- the corresponding second untrusted content platform is configured to select candidate digital components based on the first-party data.
- the corresponding second untrusted content platform is configured to send the selected candidate digital components to the second trusted content platform.
- the second trusted content platform is configured to select one or more of the selected candidate digital components to send to the first trusted content platform as trusted candidate digital components based on the encrypted user data.
- the first trusted content platform is configured to select one or more of the trusted candidate digital components received from the second trusted content platforms to send as encry pted trusted candidate digital components to the first untrusted content platform.
- FIG. 1 In general, another innovative aspect of the subject matter described in this specification can be embodied in methods including the operations of sending, by a client device of a user, a first digital component request to one or more first untrusted content platforms, the first digital component request including non-sensitive data including contextual data related to a resource with which a selected digital component will be presented at the client device; receiving, by the client device, one or more untrusted candidate digital components from the one or more first untrusted content platforms; sending, by the client device, a second digital component request to one or more first trusted content platforms, the second digital component request including user data; receiving, by the client device, one or more trusted candidate digital components from the one or more first trusted content platforms; and selecting, by the client device, a given digital component from a set of candidate digital components comprising the one or more untrusted candidate digital components received from each first untrusted content platform and the one or more encrypted trusted candidate digital components received from each first trusted content platform for presentation with the resource.
- Other implementations of this aspect include corresponding apparatus, systems, and
- At least one of the one or more second trusted content platforms is configured to send a fifth digital component request including the non-sensitive data and first-party data related user actions of a user of the client device with respect to one or more resources of a publisher of the resource.
- the first trusted content platform is configured to select one or more of the trusted candidate digital components received from the second trusted content platforms to send as encrypted trusted candidate digital components to the client device.
- the first trusted content platform is configured to send, to each of the second trusted content platforms, the encrypted user data and the non-sensitive data for the second trusted content platform.
- selecting, by the client device, a given digital component from a set of candidate digital components includes receiving, from each first untrusted content platform and each first trusted content platform, a selection value for each of the candidate digital components in the set of candidate digital components and selecting the given digital component based on the selection values.
- selecting, by the client device, a given digital component from a set of candidate digital components includes determining, for each candidate digital component in the set of candidate digital components, a score based on a selection value for the candidate digital component and a predicted performance metric for the candidate digital component and selecting the given digital component based on the score for each candidate digital component.
- third-party cookies e.g., cookies from a different domain than the resource being rendered by a client device
- some browsers and device platforms block the use of third-party cookies and third-party cookies are increasingly being removed from use, thereby preventing the collection and identification of data using third-party cookies. This creates a challenge when attempting to utilize collected data to make inferences, segment data, or otherwise utilize data to enhance online browsing experiences, e.g., by selecting content relevant to users based on the data collected and identified using third-party cookies.
- particular embodiments of the subject matter described in this specification can be implemented to address challenges that arise from the computing resources required to operate trusted computing platforms.
- trusted computing platforms often use compute-intensive cryptographic techniques, which can require substantial processor and power resources.
- the techniques of this specification both reduce the processor resources required and reduce the amount of energy demanded and consumed by such resources.
- the techniques described in this document can distribute the operations of a process to select and distribute digital components between trusted platforms that include TEEs for processing sensitive data and untrusted platforms (e.g., general purpose servers) in ways that reduce latency and resource consumption while enhancing user privacy and data security.
- FIG. 1 is a block diagram of an example environment in which digital components are selected and distributed to client devices in a privacy preserving manner.
- FIG. 2A is a flow diagram of an example process for privacy-preserving content selection.
- FIG. 2B is a flow diagram of an example process for obtaining digital components.
- FIG. 3 is a block diagram of another example environment in which digital components are selected and distributed to client devices in a privacy preserving manner.
- FIG. 4 is flow diagram of another example process for privacy -preserving content selection.
- FIG. 5 is a block diagram of another example environment in which digital components are selected and distributed to client devices in a privacy preserving manner.
- FIG. 6A is a flow diagram of another example process for privacy-preserving content selection.
- FIG. 6B is a flow diagram of an example process for obtaining digital components.
- FIG. 7 is a block diagram of an example computer system.
- this document describes systems and techniques for selecting digital components for display at client devices in ways that are both resource efficient and that protect user privacy by determining relevant content without providing user data to untrusted content platforms and/or to unaffiliated web sites. Ensuring the privacy of user data, e.g., personal data of a user, is a requirement of many computing systems, especially those connected to public networks such as the Internet. Some users who do not trust that strong privacy protection will be enforced by a system will simply choose not to use that system.
- an untrusted digital component is a digital component that is selected based on non-sensitive data (e.g., contextual data) and a trusted digital component is a digital component that is selected based on sensitive data, e.g., user attributes (e.g., general location, age, etc.).
- Sensitive data is data that is considered to be sensitive and can vary based on the privacy level of the system. However, data that is considered to be sensitive is processed differently than nonsensitive data.
- FIG. 1 is a block diagram of an example environment 100 in which digital components 115 are selected for client devices 110 in a privacy preserving manner.
- the environment 100 includes a data communication network 105, e.g., a local area network (LAN), a wide area network (WAN), the Internet, a mobile network, or a combination thereof.
- the data communication network 105 connects client devices 110 to content platforms, which can include supply side platforms (SSPs), e.g., SSP 145, and/or demand side platforms (DSPs) 150, 152, 155.
- SSPs supply side platforms
- DSPs demand side platforms
- Each content platform 145. 150, 152, 155 can be a trusted content platform 145, 155 or an untrusted content platform 150, 152.
- FIG. 1 includes only a trusted SSP (tSSP 145)
- an SSP can be an untrusted SSP (uSSP) or a trusted SSP (tSSP) 145.
- a DSP 150, 152, 155 can be an untrusted DSP (uDSP) 150, 152 or a trusted DSP (tDSP) 155.
- the tSSP 145 is also referred to as a first trusted content platform.
- the tDSP 155 is also referred to as a second trusted content platform.
- the uDSP 150 is also referred to as a second untrusted platform.
- An SSP 145 is a technology platform implemented in hardware and/or software that automates the process of obtaining digital components 115 for presentation with resources of publishers.
- Publishers of resources can use an SSP 140 to manage the process of obtaining digital components 115 for digital component slots of its resources.
- Each publisher can have a corresponding SSP 145 or multiple SSPs 145. Some publishers may share the same SSP 145.
- a DSP 150, 152, 155 is a technology’ platform implemented in hardware and/or software that automates the process of distributing digital components 115 for display with the resources.
- a DSP 150, 152, 155 can interact with multiple SSPs 145 on behalf of digital component providers 160 to provide digital components 115 for display with the resources of multiple different publishers.
- Digital component providers 160 can create (or otherwise publish) digital components 115 that are displayed with publisher’s resources, e.g., in digital component slots of publisher’s resources.
- a trusted content platform e.g., tSSP 145 and tDSP 155, includes or is implemented using an environment for executing code on a computing platform in which the environment ensures that the code is isolated from the computing platform, providing confidentiality of the code.
- the computing platform can provide the tCP using hardware, software or a combination of hardware and software.
- each tCP can include a TEE in which computing tasks performed by the tCP are performed.
- a tCP includes a hardware isolation mechanism that runs a secure operating system, and the secure operating system runs applications, thus providing isolation for the applications. Third parties can inspect the operating system code, allowing such parties to confirm the isolation properties.
- use of tCP ensures that data stored on the tCP cannot be accessed by outside entities, thereby protecting user privacy.
- a TCP can use cryptographic techniques to ensure that access to data and to code is limited to authorized parties.
- An untrusted platform such as uSSP and uDSP 150, 152, does not provide similar trust guarantees.
- a server that executes tasks using a conventional operating system can be considered an untrusted platform.
- untrusted platforms do not provide the same isolation guarantees, they can be quite secure, including using antivirus, firewalls, process isolation and other security features.
- uDSP 150 and tDSP 155 are operated by. or on behalf of, a first entity, and tSSP 145 is operated by, or on behalf of, a second entity. That is, one entity (e.g., an SSP service provider) provides the trusted SSP functionality, and one entity (e.g., a DSP server provider) provides both trusted and untrusted DSP functionality.
- one entity e.g., an SSP service provider
- one entity e.g., a DSP server provider
- the functionality of the SSP can be provided for one entity (e.g., an SSP service provider) using the tSSP 145 and the functionality of the DSP can be provided for a different entity (e.g., the DSP service provider) using the tDSP 155.
- a DSP can select candidate digital components to provide in response to a request in two different environments and using two different types of data, sensitive and non-sensitive data. This is in contrast to digital component distributions systems in w hich all of the functionality of an SSP of an entity is implemented on a single computer or multiple instances of the same computing environment and in which all of the functionality of a DSP of an entity is implemented on a single computer or multiple instances of the same computing environment.
- FIG. 1 shows requests flowing from a single tSSP 145 to a single tDSP 155, but tSSP 145 can send requests to any number of tDSPs.
- tSSP 1445 can send requests to multiple uDSPs 152 that are each operated by different entities, e.g., different entities that provide candidate digital components for display to users on behalf of digital component providers 160. That is, each uDSP 152 can be operated by or on behalf of a different entity (e.g., a different DSP sendee provider) than the tDSP 155 and the tDSP 150.
- entities e.g., different entities that provide candidate digital components for display to users on behalf of digital component providers 160. That is, each uDSP 152 can be operated by or on behalf of a different entity (e.g., a different DSP sendee provider) than the tDSP 155 and the tDSP 150.
- the network 105 can also connect the various content platforms 145, 150, 152, 155 to one another and/or to digital component providers 160, e.g., to servers of the digital component providers 160.
- content platforms 145, 150, 152, 155 can distribute digital components of multiple digital component providers 160 to client devices 110.
- the digital component providers 160 are illustrated as outside the content platforms 145, 150, 152, 155, a content platform 145, 150, 152, 155 can both contain digital component providers 160 and communicate with digital component providers 160 via the network 105 that are outside the content platforms 145, 150, 152, 155.
- At least part of the tSSP 145 and the tDSP 155 can be implemented on the client device 1 10.
- at least some of the operations of the tSSP 145 and the tDSP 155 can be performed by the client device 110.
- the other operations of the tSSP 145 and the tDSP 155 can be performed by a server of the tSSP 145 or a server of the tDSP 155.
- all of the functionality of the tSSP 145 is implemented on the client device 110 and/or all of the functionality of the tDSP 155 is implemented on the client device 110.
- a client device 110 is an electronic device capable of requesting and receiving online resources over the network 105.
- Example client devices 110 include personal computers, gaming devices, mobile communication devices, digital assistant devices, augmented reality devices, virtual reality devices, and other devices that can send and receive data over the network 105.
- a client device 110 typically includes a user application, such as a web browser, to facilitate the sending and receiving of data over the network 105. but native applications (other than browsers) executed by the client device 1 10 can also facilitate the sending and receiving of data over the network 105.
- a gaming device is a device that enables a user to engage in gaming applications, for example, in which the user has control over one or more characters, avatars, or other rendered content presented in the gaming application.
- a gaming device typically includes a computer processor, a memory device, and a controller interface (either physical or visually rendered) that enables user control over content rendered by the gaming application.
- the gaming device can store and execute the gaming application locally, or execute a gaming application that is at least partly stored and/or served by a cloud server (e.g., online gaming applications).
- the gaming device can interface with a gaming server that executes the gaming application and “streams” the gaming application to the gaming device.
- the gaming device may be a tablet device, mobile telecommunications device, a computer, or another device that performs other functions beyond executing the gaming application.
- Digital assistant devices include devices that include a microphone and a speaker. Digital assistant devices are generally capable of receiving input by way of voice, and respond with content using audible feedback, and can present other audible information. In some situations, digital assistant devices also include a visual display or are in communication with a visual display (e.g., by way of a wireless or wired connection). Feedback or other information can also be provided visually when a visual display is present. In some situations, digital assistant devices can also control other devices, such as lights, locks, cameras, climate control devices, alarm systems, and other devices that are registered with the digital assistant device.
- a client device 110 can include applications 112, such as web browsers and/or native applications, to facilitate the sending and receiving of data over the network 105.
- a native application is an application developed for a particular platform or a particular device (e.g., mobile devices having a particular operating system). Although operations may be described as being performed by the client device 110, such operations may be performed by an application 112 running on the client device 110 and/or by an operating system running on the device 110.
- the applications 112 can display electronic resources, e.g., web pages, other electronic documents, application pages, or other application content, to a user of the client device 110.
- the electronic resources can include digital component slots for displaying digital components 115 with the content of the electronic resources.
- a digital component slot is an area of an electronic resource for displaying a digital component 115.
- a digital component slot can also refer to a portion of an audio and/or video stream (which is another example of an electronic resource) for playing a digital component 115.
- An electronic resource is also referred to herein as a resource for brevity.
- a resource can refer to a web page, application page, application content displayed by a native application, electronic document (e.g., word processing document or portable document format document), audio stream, video stream, image, search results page, feed source, or other appropriate type of electronic resource or electronic document with which a digital component 115 can be displayed.
- electronic document e.g., word processing document or portable document format document
- audio stream e.g., audio stream
- video stream e.g., search results page, feed source
- feed source e.g., search results page, feed source
- digital component refers to a discrete unit of digital content or digital information (e.g., a video clip, audio clip, multimedia clip, image, text, or another unit of content).
- the distribution parameters can contribute to (e.g., trigger) the transmission of a digital component by requiring that a digital component request include at least one item of data that satisfies (e.g., matching either exactly or with some prespecified level of similarity) a corresponding constraint criterion of the digital component.
- Distribution parameters can also include the category of digital component, e.g., whether it is trusted or untrusted.
- the distribution parameters for a digital component can also include a selection value that represents an amount that a digital component provider is willing to provide to a publisher for each presentation of the digital component with a resource of the publisher, user interaction with the digital component, and/or completion of a specified event after interacting with the digital component.
- Constraint criteria can be any functional specification that, when evaluated by a content platform 145, 150, 152, 155. produces one or more values, which can be. for example, numbers or Boolean values.
- the constraint criteria for a digital component 115 can include sensitive and/or non-sensitive constraint criteria.
- Sensitive constraint criteria are criteria that are evaluated using sensitive data, e.g., sensitive user data.
- Non-sensitive constraint criteria are criteria that are evaluated using non-sensitive data.
- Non-sensitive constraint criteria can be evaluated at untrusted content providers, such as uDSPs 150, 152, although they can also be evaluated at trusted content providers, such as tDSPs.
- Examples of non-sensitive constraint criteria can include distribution keywords that must be matched (e.g., by electronic documents, document keywords, or terms specified in a digital component request 125a, 125b, 125c) in order for the digital component to be eligible for presentation.
- digital component requests 125a, 125b, 125 c are collectively referred to as “digital component request 125.”
- the terms specified in a digital component request can include, for example, keywords of a resource for which a digital component is being requested or search terms input by a user, e.g., at a search engine resource.
- Non-sensitive constraint criteria for a digital component 115 can include contextual parameters that condition eligibility of the digital component 115 based on characteristics of the environment in which the digital component 115 will be displayed.
- the contextual parameters can be based on the resource (e.g., the URL of a web page) for which a digital component is requested, keywords and/or topic(s) of the resource, a geographic region of the client device 110 for which a digital component is requested, the type of the client device 110 (e.g., mobile device or tablet device) a number of digital components slots of the resource, the type(s) of digital component slots, the location on the resource of the digital component slots, the page viewport, the user scrolling speed, and/or other contextual data. Similar to the keywords, a digital component 115 may be eligible for distribution to the client device 110 if contextual data of the digital component request satisfies, e.g., matches, the contextual parameters for the digital component.
- Non-sensitive constraint criteria can be criteria that is based on first-party user data of an entity, e.g.. a publisher or digital component provider, that provides content to the client device 110 of the user.
- First-party data is ty pical l data collected by the entity from direct contact between the user and the entity 7 .
- a publisher of a website can collect first-party data for a user based on the user’s interactions with the website, e.g., using first-party cookies.
- first-party 7 data can be considered sensitive in some cases and, if so, constraint criteria based on first- party data can be considered sensitive constraint criteria.
- Examples of first-party constraint criteria can be related to an action performed at a resource of a publisher (e.g., viewing a particular page or item) or a user attribute inferred based on the user’s actions at the publisher’s resources.
- a digital component can be eligible if the user views a particular item or is considered to have a particular attribute.
- the values of potentially sensitive data that are used to evaluate the sensitive constraint criteria are only stored and evaluated in cleartext within trusted environments, e.g., by a tCP. Such data may also be stored in trusted environments and/or in encrypted form on the user's device. When such values must traverse a network connection, strong encryption can be applied.
- the distribution parameters for a digital component 1 15 can include negative criteria that renders the digital component ineligible if a keyword, contextual parameter, or sensitive data matches a corresponding parameter of the digital component request 125.
- a digital component provider 160 can specify, in the distribution parameters, that a digital component is not eligible for display on a particular web page, in a particular geographic region, or to users that are interested in a particular topic.
- a digital component can have distribution parameters with positive criteria (e.g., the digital component is eligible of the criteria is satisfied) , negative criteria (e.g., the digital component is not eligible if the criteria is satisfied), or both.
- the sensitive constraint criteria for a digital component 115 can include one or more user interest group identifiers that identify one or more corresponding user interest groups for which the digital component is eligible and/or one or more user interest group identifiers that identify 7 one or more corresponding user interest groups for which the digital component is not eligible.
- sensitive constraint criteria are associated with digital components 115 and therefore provide no information about any actual user, so constraint criteria do not compromise privacy. Instead, the sensitive constraint criteria are evaluated based on actual user data in a trusted environment, e g., a TEE.
- a digital component 115 associated with sensitive constraint criteria based on user data or other sensitive data can be referred to as a trusted digital component.
- a trusted digital component is a digital component for which distribution of the digital component is conditioned at least on sensitive constraint criteria, and optionally on non-sensitive constraint criteria as well.
- digital components 115 can have associated contextual parameters that represent the context in which a digital component 115 should be displayed. Such contextual parameters can indicate, for example, the device type, display size, device capabilities, and/or position of rendering for which the digital component is eligible, among many other examples.
- contextual data included in a digital component request can be evaluated with contextual parameters associated with a digital component 115 when determining what digital components 115 to include in a digital component response and/or when determining what digital component(s) 115 to render.
- a digital component 115 that is associated with contextual criteria and/or other non-sensitive constraint criteria, but not with sensitive constraint criteria, can be referred to as an untrusted digital component.
- a client device 110 can also include, or be coupled to, a digital component repository 130.
- a digital component repository 130 can be any storage system appropriate for storing digital components 115 and/or a digital component index that identifies digital components and includes the distribution parameters for the digital components.
- the digital component repository 7 130 can be a persistent storage system such as a database or file system, or a transient storage system such as a dedicated area of random access memory (RAM).
- RAM dedicated area of random access memory
- one or more content platforms 145, 150, 152, 155 can include or be coupled to a digital component repository 7 130.
- the client device 110 can separately encrypt the user data using the encryption key for each tDSP and each tDSP can decrypt the user data using its decryption key that corresponds to (e.g., that is mathematically linked to) its public key.
- a user may be provided with controls (e.g., user interface elements with which a user can interact) allowing the user to make an election as to both if and when systems, programs, or features described herein may enable collection of user information (e.g., information about a user’s social network, social actions, or activities, profession, a user's preferences, or a user’s current location), and if the user is sent content or communications from a server.
- user information e.g., information about a user’s social network, social actions, or activities, profession, a user's preferences, or a user’s current location
- certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed.
- a user’s identity may be treated so that no personally identifiable information can be determined for the user, or a user’s geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined.
- location information such as to a city, ZIP code, or state level
- the user may have control over what information is collected about the user, how that information is used, and what information is provided to the user.
- stages A - L An example process for selecting and providing a digital component 115 for display at a client device 110 is illustrated in stages A - L, which illustrate a flow of data between the components of the environment 100.
- the application 112 sends a digital component request 125a over the network 105 to a content platform.
- the application 112 sends the digital component request to the tSSP 145.
- the application 112 can send a digital component request 125a to request a digital component 115 for display in a digital component slot of a resource being (or about to be) displayed by the application 112.
- the digital component request 125a can include a set of data that can be used by content platforms to select one or more digital components for presentation by the application 112.
- the data can include non-sensitive data and/or sensitive data.
- the set of data can include contextual data and/or user data that is considered to be sensitive.
- the application 112 encrypts the user data and any other sensitive data before including the data in the digital component request 125a.
- the application 112 can encrypt the user data using an encryption key of a tDSP 155 from which a digital component is being requested. In this way, only the tDSP 155 can access the user data in cleartext such that the security of the data is preserved during transmission from the client device to the tDSP 155.
- Cleartext is text that is not computationally tagged, specially formatted, or written in code, or data, including binary files, in a form that can be viewed or used without requiring a key or other decryption device, or other decryption process.
- the tSSP 145 can include first-party data in the digital component request 125b.
- the first-party data can include data derived from the user’s interactions with electronic resources of a first-party 7 entity 7 such as a publisher of the resource for which a digital component is being requested.
- the first-party 7 data can indicate the actions of the user at the resources and/or data derived from the actions, e.g., topics of interest of the user, inferred demographics of the user, etc.
- tSSP 145 and the tDSP 155 are shown as separate components, the operations performed by the tSSP 145 and the tDSP 155 can be performed by a single trusted component or by trusted components of a single entity that provides both SSP and DSP services.
- the tDSP 155 can provide a set of data to the uDSP 150 that is operated by, or on behalf of. the same entity (e.g., same DSP service provider) as the tDSP 155.
- This set of data can include non-sensitive data from the digital component request 125b.
- this data can include contextual data and/or first-party data.
- this set of data may not include the sensitive data.
- the uDSP 150 can select one or more candidate digital components based on the data received from the tDSP 155.
- the uDSP 150 can obtain candidate digital components from one or more digital component providers 160.
- Each uDSP 150 can provide data derived from or relating to the digital component request 125b to the digital component providers 160.
- the uDSP 150 can provide the contextual data and/or first-parly data for the digital component request 125b to the digital component providers 160.
- the digital component providers 160 can provide, to the uDSP 150, candidate digital components that are responsive to the contextual data received from the uDSP 150.
- the digital component providers 160 can provide candidate digital components appropriate to the contextual data such as the location of the client device 110 matching a location criterion for the digital component. For example, if a digital component request 125 is for an image appropriate for a small screen (e.g., a cell phone screen), the digital component providers 160 can provide image digital components that are formatted for a small screen and not provide video digital components.
- the uDSP 150 can store the digital components and/or the distribution parameters for digital components of the digital component providers 160.
- the uDSP 150 can use the distribution parameters (e.g., the non-sensitive constraint criteria of the distribution parameters) to select untrusted digital components to send to the tDSP 155.
- the uDSP 150 can also select trusted digital components (e g., using the non-sensitive constraint criteria) and send the selected trusted digital components and sensitive constraint criteria for the trusted digital components to the tDSP 155.
- trusted digital components can have, in addition to sensitive constraint criteria, non-sensitive constraint criteria that can be evaluated based on non-sensitive data, e.g., contextual data and/or first-party data.
- the uDSP 150 can provide the digital component and its distribution parameters, e.g., its sensitive constraint criteria and/or selection value, to the tDSP 155.
- each digital component provider 160 can provide, for each digital component, or for any subset of the digital components, distribution parameters.
- the uDSP 150 can obtain distribution parameters using other techniques, such as retrieving them from a database or other storage system.
- the uDSP 150 can maintain one or more digital component repositories.
- the digital component repository' maintained by the uDSP 150 is also referred to as a second untrusted repository.
- the uDSP 150 can store the digital components received from the digital component providers 160 in one or more second untrusted repositories.
- the uDSP 150 can select, from among digital components stored in the second untrusted repository and/or digital components received from the digital component providers, candidate digital components to provide to the tDSP 155.
- the uDSP 150 can select the candidate digital components based on the data received from the tDSP 155 and the distribution parameters for the digital components stored by the uDSP 150 in the second untrusted repository and/or digital components received from the digital component providers 160.
- the uDSP 150 can select, as candidate digital components, each digital component for which the non-sensitive data received from the tDSP 150 satisfies the non-sensitive constraint criteria of the digital component.
- the tDSP 155 can receive candidate digital components from the uDSP 150.
- the candidate digital components can include zero or more untrusted digital components and zero or more trusted digital components.
- the received candidate digital components can include one or more untrusted digital components and/or one or more trusted digital components.
- the tDSP 155 can also receive distribution parameters, which can include constraint criteria and/or a selection value, for the candidate digital components.
- the tDSP 155 can maintain one or more digital component repositories.
- the digital component repository maintained by the tDSP 155 is also referred to as a second trusted repository.
- the tDSP 155 can store the candidate digital components received from the uDSP 150 in one or more second trusted repositories.
- the tDSP 155 can use the distribution parameters and sensitive data (e.g., user data) to select a subset of the candidate digital components to provide to the tSSP 145 in response to the digital component request 125b.
- the tDSP 155 can access the user data by decry pting the encrypted user data using its decryption key.
- the tDSP 155 can filter one or more candidate digital components from consideration and optionally determine the selection values for the remaining one or more candidate digital components that remain after the filtering.
- the tDSP 155 can filter from consideration any candidate digital component for which the user data does not satisfy the sensitive constraint criteria for the candidate digital component.
- the tDSP 155 can determine the selection value for a candidate digital component by adjusting (e.g., increasing or decreasing) an initial selection value that is part of the distribution parameters for the candidate digital component.
- the uDSP 150 can generate the initial selection value for a candidate digital component, e.g., based on the contextual data of the digital component request 125b, and include the initial selection value in the distribution parameters for the candidate digital component.
- the tDSP 155 is operated by or on behalf of the same entity as the uDSP 150.
- the entity that operates the uDSP 150 and the tDSP 155 can thus provide both untrusted digital components that are eligible for distribution to the client device 110 based on the contextual data of the digital component request 125 a and trusted digital components that are eligible based on the user data of the digital component request 125a.
- the uDSP 150 may not be allowed to receive or have access to the user data in cleartext. Instead, the uDSP 150 provides distribution parameters that include sensitive constraint criteria in its response to the digital component request of stage C. This enables the tDSP 155 to generate a selection value for any of the trusted digital components that are eligible for distribution to the client device 110 based on the user data in a TEE.
- the tDSP 155 can receive candidate digital components from digital component providers 160.
- the tDSP 155 can obtain candidate digital components from one or more digital component providers 160 such as the digital component providers 160.
- the tDSP 155 can provide data derived from or relating to the digital component request 125b to the digital component providers 160.
- the tDSP 155 can provide, to the digital component providers 160, the contextual data for the digital component request 125b.
- the digital component providers 160 can provide digital components that are responsive to the contextual data.
- the tDSP 155 can store the candidate digital components received from the digital component providers in one or more of the second trusted repositories.
- the tDSP 155 can select candidate digital components to provide to the tSSP 145 in response to the digital component request 125b.
- the tDSP 155 has a set of candidate digital components received from the uDSP 150 and optionally candidate digital components received from digital component providers 160.
- the candidate digital components received from the uDSP 150 have been selected based on the non-sensitive data of the digital component request 125b.
- the tDSP 155 can select the candidate digital components to provide to the tSSP 145 by filtering, from the candidate digital components, those that have sensitive constraint criteria that is not satisfied by the user data received from the tSSP 145. As the untrusted candidate digital components do not have sensitive constraint criteria, the untrusted candidate digital components would not be filtered.
- the tDSP 155 can also select the candidate digital components to provide to the tSSP 145 by scoring the candidate digital components based on the sensitive data and/or the non-sensitive data received from the tSSP 145 in the digital component request 125b. For example, the score for each candidate digital component can be based on a level of match between the sensitive and/or non-sensitive data and the distribution parameters of the candidate digital component. The score for a digital component can be based on the selection value for the candidate digital component and/or a predicted performance of the digital component (e.g., a predicted user interaction rate). In this example, the tDSP 155 can select the candidate digital components having the highest scores (e.g., a predetermined number of candidate digital components having the highest scores) or each candidate digital component having a score that satisfies a threshold.
- the score for each candidate digital component can be based on a level of match between the sensitive and/or non-sensitive data and the distribution parameters of the candidate digital component.
- the score for a digital component
- the tDSP 155 can generate a score for each candidate digital component using one or more trained machine learning models or otherwise.
- the tDSP 155 can generate a predicted performance metric for each digital component using the data received from the tSSP 145 (e g., sensitive and/or non- sensitive data) and/or distribution parameters for the digital component as input to a first machine learning model.
- the tDSP 155 can generate a selection value for each digital component using the data received from the tSSP 145 (e.g., sensitive and/or non-sensitive data) and/or distribution parameters for the digital component as input to a second machine learning model.
- the tDSP 155 can be configured to perform operations such as store candidate digital components, receive candidate digital components, score digital components, and/or select candidate digital components on the client device 110.
- the tDSP 155 can provide the selected candidate digital component(s) and distribution parameters (which can include adjusted selection values) to the tSSP 145.
- the tDSP 155 can provide zero or more untrusted candidate digital components and zero or more trusted candidate digital components to the tSSP 145.
- the tSSP 145 provides the digital component request 125c to one or more other uDSPs (shown in FIG. 1 as uDSP 152).
- each uDSP 152 that receives a digital component request 125c directed from the tSSP 145 can be operated by an entity that does not operate a corresponding tDSP that interacts with the tSSP 145.
- the tSSP 145 removes and stores the user data before forwarding the digital component request 125c. Note that since the user data are encrypted, forwarding the user data would not introduce a privacy exposure, but would result in extra network traffic. In some implementations, the tSSP 145 can generate a new digital component request 125c that does not include the encrypted user data instead of removing the encrypted data and forwarding the digital component request 125a as 125c.
- the digital component request 125c can include non-sensitive data, e.g., contextual data and/or first-party data.
- the uDSP 152 selects one or more candidate digital components based on the data of the digital component request.
- the uDSP 152 can obtain and select candidate digital components in a similar manner as the uDSP 155, as described above.
- the uDSP 152 can obtain candidate digital components from digital component providers 160 and/or from a digital component repository.
- the tSSP 145 can receive candidate digital components from the uDSP 152.
- the tSSP 145 can also receive selection values for each of the candidate digital components.
- the uDSP 152 can be configured to select candidate digital components based on the first party data or contextual data and send the one or more selected candidate digital components to the tSSP 145.
- the tSSP 145 can select one or more digital components 115 from among a set of candidate digital components.
- the set of candidate digital components can include the digital component(s) received from the tDSP 155 (e.g., trusted and/or untrusted candidate digital components provided by the tDSP 155) and optionally candidate digital components received from other tDSPs or other uDSPs such as the uDSP 152.
- stages B - G can be performed for multiple tDSPs to generate the set of candidate digital components.
- stages H - J can be performed for multiple uDSPs to obtain additional candidate digital components for inclusion in the set of candidate digital components.
- stages H - J can be performed in parallel with stages B - G to reduce latency in selecting and providing digital components to client devices 110.
- the tSSP 145 can select the digital component(s) 115 based on the selection values. For example, the tSSP 145 can select the digital components 115 having the highest selection value or a highest score that is based on the selection value and a predicted performance (e.g., predicted interaction rate) of the digital component.
- a predicted performance e.g., predicted interaction rate
- the tSSP 145 can send the selected digital components 115 to the client device 110 for rendering.
- the client device 110 can also provide the selected digital component(s) 115 to one or more applications 112 and/or store the digital component(s) 115 in a digital component repository 130.
- a client device sends (202) and a tSSP receives (204) a first digital component request that requests one or more digital components for display at the client device.
- An application running on the client device can generate the first digital component request in response to various operations on the client device, including rendering a resource that includes a digital component slot, in response to a user action (e.g., submitting a query, opening an application, interacting with an application, etc.), or another operation.
- the corresponding providing and receiving operations can be performed using any appropriate technique.
- the providing component uses HyperText Transfer Protocol (HTTP) or HTTP-Secure (HTTP-S)
- the receiving component can use the corresponding HTTP or HTTP-S operations to receive the information.
- the providing component can make a Remote Procedure Call (RPC) to the receiving component, and the RPC operation results in the transfer of the data.
- RPC Remote Procedure Call
- Message passing techniques such as passing data over a TCP/IP socket from the providing component to the receiving component, can also be used.
- TCP/IP socket from the providing component to the receiving component
- the tSSP can send (206) to one or more tDSPs a second digital component request.
- the second digital component request can include sensitive data and/or non- sensitive data.
- the second digital component request can include encrypted user data and/or contextual data of the first digital component request.
- user data can be encry pted using the private key of the tDSP and therefore would not be available to the tSSP.
- the second digital component request can also include first- party data for a publisher of the resource for which a digital component is being requested.
- the one or more tDSPs can receive (208) the second digital component request from the tSSP. [00130] The tDSP can select (210) candidate digital components to provide to the tSSP in response to the second digital component request. For example, in examples where the same entity operates both a uDSP and a tDSP, as described in more detail with reference to FIG. 2B, the tDSP can obtain candidate digital components by sending a digital component request to the corresponding uDSP.
- FIG. 2B is a flow diagram of an example process 250 for obtaining digital components.
- a uDSP operated by or on behalf of the same entity as the tDSP can be used to obtain digital components.
- the process 250 will be described as being performed by components for obtaining digital components, such as the tDSP (e.g., tDSP 155), and a uDSP (e.g.. uDSP 150 of FIG. 1).
- Operations of the process 250 can also be implemented as instructions stored on one or more computer readable media, which may be non-transitory, and execution of the instructions by one or more data processing apparatus can cause the one or more data processing apparatus to perform the operations of the process 250.
- One or more other components described herein can perform operations of the process 250.
- the process 250 can be performed by multiple tDSPs (e.g., multiple tDSPs 155 of FIG. 1).
- the tDSP can provide (262) a digital component request to a uDSP operated by the same entity as the tDSP.
- the tDSP can remove the encry pted user data from the second digital component request received in operation 208 of FIG. 2A. or can generate a new digital component request that does not include the encrypted user data before providing the digital component request to the uDSP.
- the digital component request can include first-party 7 data and/or contextual data.
- the uDSP can receive (264) the digital component request.
- the uDSP can select (266) candidate digital components based on the digital component request.
- the candidate digital components can include zero or more trusted digital components and/or zero or more untrusted digital components.
- the uDSP can select zero or more untrusted digital components.
- the uDSP can evaluate the contextual data and/or the first-party data included in the digital component request and non-sensitive criteria associated with the digital components, or a subset of the digital components, available to the uDSP.
- the uDSP can process all or a subset of the contextual and/or first-party' data using a machine learning model that is configured to produce a prediction that indicates the relevance of the digital component to the digital component request.
- the uDSP can select, as the untrusted digital component, the digital component with the highest predicted relevance.
- the uDSP can select as untrusted digital components all candidate digital components for which the prediction satisfies a configured threshold.
- the uDSP can select trusted digital components.
- the uDSP can use various techniques for selecting the trusted digital components.
- the uDSP can provide digital components relevant to particular user segments, such as users who are 18 to 24 years of age, users who have an interest in a particular sport, users who have an interest in shoes, among many other examples.
- the uDSPs do not have access to specific information about device users (e.g., users’ ages), so the uDSPs provide constraints on using the trusted digital components to a trusted content platform (e.g., the tDSP), and the trusted content platform can determine whether those constraints are satisfied, as described elsewhere herein.
- the uDSP can select the candidate digital components in a similar manner as described above with reference to stage D of FIG. 1.
- the uDSP can provide (272) the selected candidate digital components.
- the uDSP can also provide distribution parameters for at least some of the candidate digital components, e.g., for any trusted digital components included in the response.
- the distribution parameters for a digital component can include sensitive and/or non-sensitive constraint criteria and a selection value.
- the selection values can be used, at least in part, by a trusted content provider when determining a digital component to render, as described further below. As some selection values can be adjusted by the tDSP, these selection values can be referred to as initial selection values.
- the tDSP can receive (274) the candidate digital components (trusted and/or untrusted) and distribution parameters for the candidate digital components. [00139] Returning to FIG. 2A, the tDSP can select a subset of the candidate digital components from the received candidate digital components.
- the tDSP can adjust selection values for the candidate digital components, or for a subset of the digital components.
- the tDSP receives an initial selection value and the tDSP can determine a selection value by adjusting the initial selection value based at least in part on the constraining values. Note that in the case where no initial selection value has been set for a digital component (e.g., the value is NULL) the tDSP can adjust the selection parameter from the undefined (or NULL) value.
- the tDSP can use various techniques to adjust the selection values. In some implementations, the tDSP can adjust the selection values based at least in part on matching and/or relevance.
- the tDSP can increase the selection value by a configured percentage (e.g., 1%, 5%, 10%, etc.) for each constraint criterion satisfied by the user data.
- the tDSP can increase the selection value based on prior user behavior. For example, if a user visited sites assigned to a particular category or topic of interest (e.g., shoes, soccer, travel, etc.), and a constraint criterion relates to the category, the selection value can be increased based on the number of visits by the user to sites assigned to the category. Information relating to such visits can be included in encrypted user data that is provided in the digital component request to the tDSP. In some implementations, the relevance score can be decreased if user data does not exist for constraint criteria.
- the tDSP can adjust a selection value based at least in part on a computed dot product of the factors influencing the adjustment (e.g., alignment of constraining values and constraint criteria). For example, for each user parameter (e.g., age, location, topic of interest, web page visited), a first vector can contain a user value representing whether the user data contains that feature (e.g., location can be 1 or 0 depending on whether the user in that location, interest can be 0.9 if interested or 0. 1 if not).
- a computed dot product of the factors influencing the adjustment e.g., alignment of constraining values and constraint criteria.
- a first vector can contain a user value representing whether the user data contains that feature (e.g., location can be 1 or 0 depending on whether the user in that location, interest can be 0.9 if interested or 0. 1 if not).
- a second vector can represent the candidate digital component, and includes the same features, but weighted according to the digital component (e.g., if the digital component is designated as relevant to a location, the vector contains a 1 value, and if not then the vector contains a 0).
- a dot product of the two vectors is computed and used as the selection value, or used to adjust the selection value.
- the tDSP can create a first embedding vector from the candidate digital component using a deep neural network (DNN) that has been trained to generate embedding vectors from candidate digital components and a second embedding vector from the user parameters using a DNN that has been trained to generate embedding vectors from user parameters.
- the tDSP can adjust or determine a selection value based at least in part on a computed dot product of the first embedding vector and the second embedding vector.
- the tDSP can adjust a selection value at least in part using a DNN or other type of machine learning model that has been trained to produce selection value adjustments.
- the tDSP can process an input that contains one or more candidate digital components and/or the user parameters to produce an adjustment value.
- the tDSP can generate a selection value using a DNN other type of machine learning model that has been trained to produce selection values.
- the tDSP can process an input that contains one or more candidate digital components and/or the user parameters to produce the selection value. Combinations of the techniques described in this specification can also be used, as can alternate techniques (alone or in combination with the techniques described herein).
- the tDSP can apply the adjustment value to the selection value to produce an adjusted selection value using one or more of various techniques.
- the selection value can be linearly scaled by the adjustment value.
- the adjustment value can be added to the selection value.
- Other techniques for adjusting the selection using the adjustment value can be used.
- the tDSP can use the initial and/or adjusted selection values to select the candidate digital components to provide to the tSSP in response to the second digital component request.
- the candidate digital components can include all digital components with a selection value that satisfies a threshold; the candidate digital components can include a configured number of digital components (e.g., the N digital components with the highest selection values; or the candidate digital components can include a configured number of digital components, but only if the selection value for those components satisfies a threshold.
- Other techniques can also be used.
- the tDSP can remove from the set of trusted digital components, and using the constraint criteria and user data, trusted digital components for which the set of constraint criteria is not satisfied, to form a set of filtered digital components.
- the tDSP can use various techniques for removing trusted digital components.
- the tDSP can remove the digital component from consideration if a user data does not satisfy' a constraint criterion; if user data do not exist for a configured number of constraint criteria; if the number of a times the user data satisfies constraint criteria does not satisfy a configured threshold (e.g., at least 2 constraint criteria must be satisfied; etc.)
- a configured threshold e.g., at least 2 constraint criteria must be satisfied; etc.
- such factors can be considered both when filtering digital components, and for digital components that are not filtered, when adjusting the relevance score.
- the candidate digital components can be selected from the digital components that were not filtered, e.g., using the selection values, described above.
- each of the tDSPs maintains a second trusted repository of digital components.
- Each of the tDSPs can determine one or more candidate digital components from the second trusted repository.
- the tDSP can provide (212) the candidate digital components as first candidate digital components and the tSSP can receive (214) the first candidate digital components.
- the tDSP can also provide a selection value or updated selection value for each candidate digital component.
- the candidate digital components can include a proper subset of the set of the trusted digital components selected based on the user data and, for each trusted digital component, an updated selection value generated by the tDSP based on the user data.
- a proper subset of a set S is a subset of S that contains fewer values than S contains.
- the candidate digital components can also include the untrusted candidate digital component(s).
- the tSSP can send (216) a third digital component request to each of one or more uDSPs.
- the third digital component request sent to each uDSP can include first- party data and/or contextual data of the first digital component request.
- the tSSP can remove the encrypted user data from the first digital component request or generate a third digital component request that does not include the encrypted user data before providing the third request to each uDSP.
- Each of the one or more uDSPs can receive (218) the third digital component request.
- Each uDSP can select (220) one or more candidate digital components.
- Each uDSP can also determine distribution parameters associated with the candidate digital components.
- the candidate digital components can include trusted and/or untrusted candidate digital components.
- Each uDSP that receives the digital component request can select candidate digital components and the distribution parameters associated with the digital components.
- the candidate digital components can include zero or more untrusted digital components and zero or more trusted digital components along with distribution parameters that can include sensitive constraint criteria for the trusted digital components.
- Each uDSP can select candidate digital components in a similar manner as described above with reference to stage I of FIG. 1.
- the uDSP(s) can provide (222) the candidate digital components as second candidate digital components.
- the uDSP can also provide one or more selection values, each associated with one or more of the candidate digital components.
- the selection values can be used, at least in part, by the tSSP when determining a digital component to provide to the client device.
- the tSSP can receive (224) second candidate digital components from the one or more uDSPs.
- the obtained digital components can include one or more untrusted digital components selected based on the contextual data and/or first-party data of the third digital component request.
- operations 206-214 and operations 216-224 can be performed in parallel, reducing the latency compared to performing the groups of operations sequentially.
- the tSSP can select (226) one or more digital components to provide to the client device. For example, the tSSP can generate or update a selection value for each candidate digital component of a set of candidate digital components that includes the first candidate digital components and second candidate digital components based on the contextual data. The tSSP can select the given digital component from the first candidate digital components and second candidate digital components based on the corresponding selection value for each candidate digital component. Additionally, the set of candidate digital components can include digital components received from other tDSPs and/or other uDSPs.
- the tSSP can use the selection values to select a digital component. For example, the tSSP can select the digital component with the highest selection value. In some examples, the tSSP can select multiple digital components from the candidate digital components.
- the tSSP can select the digital components having a highest score that is based on the selection value and a predicted performance (e.g., predicted interaction rate) of the digital component.
- the tSSP can send (228) the selected digital component(s) to the client device.
- the client device can receive and render (240) the digital component(s).
- FIG. 3 is a block diagram of an example environment 300 in which digital components 115 are selected for client devices 110 in a privacy preserving manner.
- the environment 300 is similar to the environment 100 of FIG. 1 in that the environment 300 includes a data communication network 105 that connects client devices 110 to content platforms, which can include SSP 145 and DSPs 150, 152, 155.
- This example environment 300 also includes an untrusted SSP (uSSP) 340 that interacts with the client devices 110, one or more uDSPs 152 and a tSSP 145.
- the uSSP 340 can also be referred to as the first untrusted content platform.
- the uSSP 340 sends a digital component request 325b to one or more uDSPs such as uDSP 152. If user data is included in the digital component request 325a, the uSSP 140 removes and stores the user data before forwarding the digital component request 325b. In some implementations, the uSSP 340 can generate a new digital component request 325b that does not include the encrypted user data instead of removing the encrypted data and forwarding the digital component request 325a.
- the digital component request 325b can include contextual data and/or first-party data related to the user and the resource for which the digital component is being requested.
- the digital component request 325d sent to a tDSP 155 will only include the candidate digital components obtained from the corresponding uDSP 152 operated by or on behalf of the same entity as the tDSP 155.
- the tDSP 155 can send a digital component request 325e to the uDSP 150.
- the digital component request 325e can include non-sensitive data, e.g., first- party data and/or contextual data.
- the tDSP 155 can use the distribution parameters and user data to select candidate digital components to provide to the tSSP for inclusion in a selection process for selecting, from candidate digital components, one or more digital components to send to the client device 110 in response to the digital component request 325a.
- the tDSP 155 can select the candidate digital components and/or generate selection values for the candidate digital components in a similar manner as described above with reference to the tDSP 155 of FIG. 1.
- the tDSP 155 can generate scores for the candidate digital components based on selection values and/or predicted performance metrics and select the candidate digital components based on the scores. As described above, this scoring can be based on user data since the tDSP 155 generates the scores.
- the tDSP 155 can update the selection value based on the user data, as described above. [00176] In stage K, the tDSP 155 can provide the selected candidate digital components and selection values for the selected candidate digital components to the tSSP 145.
- the selected candidate digital components can include zero or more trusted digital components and/or zero or more untrusted digital components.
- the uSSP 340 can provide the selected digital component(s) to the client device 110. If filtering is used, the uSSP 340 can send the selected digital components that remain after the filtering to the client device 110.
- the client device 110 can decrypt the trusted digital component (if encrypted by the tSSP 145) using a decryption key of the client device 110.
- the application 112 can then present the selected digital component(s).
- a client device sends (402) and a uSSP receives (404) a first digital component request that requests one or more digital components for display at the client device.
- An application running on the client device can generate the digital component request in response to various operations on the client device, including rendering a resource that includes a digital component slot, in response to a user action (e.g., submitting a query, opening an application, interacting with an application, etc.), or another operation.
- the first digital component request can include sensitive data that can include user data for a user of the client device.
- the sensitive data can be encrypted, as described above.
- Example t pes of user data are described above.
- the first digital component request can also include non-sensitive data, e.g.. contextual data. Examples of contextual data are described above.
- the uSSP can send (406) a second digital component request to a tSSP.
- the uSSP and the tSSP can be operated by or on behalf of the same entity, e.g., an entity that provides SSP services.
- the second digital component request can include all or a portion of the data included in the first digital component request.
- the tSSP can receive (408) the second digital component request.
- the tSSP can select (410) one or more candidate digital components. For example, the tSSP can obtain candidate digital components from one or more tDSPs.
- the tSSP can provide (414) the selected candidate digital component as encrypted candidate digital components to the uSSP.
- the tSSP can encrypt the each selected candidate digital component before sending the selected candidate digital component to the uSSP.
- the tSSP can encry pt each selected candidate digital component using an encryption key of the client device.
- These candidate digital components can be referred to as trusted digital components or encrypted trusted digital components since they are obtained using trusted content platforms.
- the uSSP can receive (416) the candidate digital components from the tSSP.
- Each uDSP can receive (420) a third digital component request.
- the uDSP can select (422) candidate digital components.
- the uDSP can obtain candidate digital components as described above with reference to stage C of FIG. 3.
- Each uDSP can provide (424) candidate digital components, and the uSSP can receive (426) the candidate digital components.
- each uDSP can provide, to the uSSP, distribution parameters, e.g., selection values, for the candidate digital components.
- operations 406-416 and operations 418-426 can be performed in parallel, reducing the latency compared to performing the groups of operations sequentially.
- the uSSP can send (428) candidate digital components to the client device.
- the uSSP can send the candidate digital components received from the tSSP and the candidate digital components received from the uDSP(s) to the client device.
- operations 418-426 are performed before operation 410.
- the uSSP can receive the candidate digital components from the uDSP(s) and provide the digital components and their distribution parameters to the tSSP.
- the tSSP can then select candidate digital components from those received from the tDSP and the uDSP(s) and provide the selected candidate digital components to the uSSP.
- the uSSP can filter the candidate digital components prior to providing candidate digital components to the client device.
- the uSSP can filter the candidate digital components based on publisher controls, as described above with reference to stage N of FIG. 3.
- the client device can select one or more of the digital components for presentation to the user of the client device.
- the client device can use the selection values to select a digital component. For example, the client device can select the digital component with the highest selection value.
- the client device can select multiple digital components from the candidate digital components received from the uSSP.
- the client device can select the digital components having a highest score that is based on the selection value and a predicted performance (e.g., predicted interaction rate) of the digital component. The client device can then present, e.g., render, the selected digital component.
- FIG. 5 differs from FIG. 3 in that the uSSP 340 does not provide the digital component request 325c to the tSSP 145 as in stage E of FIG. 3, and the tSSP 145 does not send candidate digital components (e.g., encrypted trusted candidate digital components) to the uSSP 340 as in stage M of FIG. 3. Instead, the client device 110 sends two digital component requests to two different content platforms and receives candidate digital components from the two different content platforms.
- candidate digital components e.g., encrypted trusted candidate digital components
- the client device 110 can obtain a first set of candidate digital components from untrusted content platforms uSSP 340 and uDSP(s) 152 by sending a digital component request 325a to the uSSP 340. Since these are untrusted content platforms, this digital component request 325 can include non-sensitive data for selecting untrusted digital components but may not include non-sensitive data.
- the uSSP can obtain untrusted candidate digital components using stages B to D, which can be the same as, or similar to, stages A - D, respectively, of FIG. 3.
- the uSSP 340 can filter the untrusted candidate digital components received from the uDSP(s) 152, e.g., using publisher controls, and send the remaining untrusted candidate digital components to the client device 110 in stage F for inclusion in a digital component selection process performed by the client device 110.
- the uSSP 340 can also send, for each untrusted candidate digital component, a selection value and/or other distribution parameters.
- the client device 110 can also obtain a second set of candidate digital components from trusted content platforms uSSP 145 and tDSP 155 by sending a digital component request 325f to the tSSP 145.
- This digital component request 325f can include sensitive data and optionally non-sensitive data that can be used to select trusted and/or untrusted candidate digital components.
- the application 112 sends the digital component request 325f over the network 105 the tSSP 145.
- the tSSP 145 can obtain a set of candidate digital components using stages H - M, which can be the same as or similar to stages F - K, respectively, of FIG. 3.
- the tSSP 145 can select a subset of the candidate digital components obtained from the tDSP(s) 155 and send the subset of candidate digital components to the client device 110 in stage O.
- the tSSP 145 can encry pt any selected trusted digital components using an encryption key of the client device to generate encrypted trusted digital components before sending the trusted digital components to the client device in stage O.
- the tSSP 145 can also send, for each candidate digital component, a selection value and/or other distribution parameters.
- the client device 110 can perform a selection process to select one or more digital components to present to the user.
- the client device 110 can select the digital component(s) from among the first set of digital components obtained from the uSSP 340 and the second set of candidate digital components obtained from the tSSP 145.
- the client device 110 can select one or more digital components based on the selection values for the candidate digital components, as described below.
- FIG. 6A is a flow diagram of an example process 600 for privacypreserving content selection.
- the process 600 will be described as being performed by the components of the environment 500 of FIG. 5, e g., client devices 110 and content platforms 145, 150, 152, 155, 340 of FIG. 5 appropriately programmed to perform the process 600.
- Operations of the process 600 can also be implemented as instructions stored on one or more computer readable media, which may be non- transitory, and execution of the instructions by one or more data processing apparatus can cause the one or more data processing apparatus to perform the operations of the process 600.
- One or more other components described herein can perform operations of the process 600.
- the client device can send (602) a first digital component request to one or more uSSPs.
- Each first digital component request can include first party-data for first party 7 entities, e.g., one or more uDSPs, contextual data, and/or other non-sensitive data.
- Each uSSP can receive (604) a first digital component request.
- Each uSSP can send (606) a third digital component request to one or more uDSPs.
- Each third digital component request can include first-party data for the uDSP and/or other non-sensitive data.
- Each uDSP can receive (608) a third digital component request.
- the uDSP can select (610) untrusted candidate digital components. For example, the uDSP selects the untrusted candidate digital components using the nonsensitive data of the third digital component request.
- Each uDSP can provide (612) the untrusted candidate digital components, and the uSSP can receive (614) the untrusted candidate digital components.
- the uDSP can also send, for each untrusted digital component, distribution parameters that include a selection value for the untrusted digital component.
- the uSSP can send (616) the untrusted candidate digital components to the client device.
- the uSSP can filter the untrusted digital components, e.g., using publisher controls, and send the remaining untrusted candidate digital components to the client device.
- the uSSP can also send, for each untrusted digital component, distribution parameters that include a selection value for the untrusted digital component.
- the client device can receive (618) the untrusted candidate digital components.
- the client device sends (620) and the tSSP receives (622) a second digital component request that requests one or more digital components for display at the client device.
- the second digital component request can include sensitive data, e.g., encrypted user data, and optionally non-sensitive data.
- the tSSP can obtain (624) trusted candidate digital components and/or untrusted digital components.
- the tSSP can obtain trusted candidate digital components and/or untrusted digital components from one or more tDSPs, as described in further detail with reference to FIG. 6B.
- FIG. 6B is a flow diagram of an example process 650 for obtaining candidate digital components.
- the process 650 will be described as being performed by components for obtaining digital components, such as the tSSP (e.g., tSSP 145), tDSP (e.g., tDSP 155), and a uDSP (e.g., uDSP 152 of FIG. 5).
- Operations of the process 650 can also be implemented as instructions stored on one or more computer readable media, which may be non-transitory. and execution of the instructions by one or more data processing apparatus can cause the one or more data processing apparatus to perform the operations of the process 650.
- One or more other components described herein can perform operations of the process 650.
- the tSSP can provide (652) a fourth digital component request to one or more tDSPs.
- the fourth digital component request can include sensitive data and optionally non-sensitive data of the second digital component request.
- the tDSP can receive (654) the fourth digital component request.
- the tDSP can provide (656) a fifth digital component request to a corresponding uDSP that is operated by or on behalf of the same entity as the tDSP.
- the fifth digital component request can include the non-sensitive data of the fourth digital component request.
- the uDSP (658) can receive the fifth digital component request.
- the uDSP can select (660) candidate digital components.
- the uDSP can select trusted candidate digital components and/or untrusted candidate digital components based on the non-sensitive data, as described above with reference to stage J of FIG. 5.
- the uDSP can also generate or otherwise obtain an initial selection value for each candidate digital component.
- the uDSP can provide (662) and the tDSP can receive (664) the candidate digital components and their initial selection values.
- the uDSP can also provide other distribution parameters that can be used by the tDSP to select candidate digital components and/or generate selection values for the candidate digital components.
- the tDSP can select (666), from the candidate digital components received from the uDSP, candidate digital components to provide to the tSSP in response to the fourth digital component request.
- the selected digital components can include trusted candidate digital components and/or untrusted digital components.
- the tDSP can decrypt the user data and use the user data to select the candidate digital components and/or determine a selection value for each candidate digital component.
- the tDSP can filter, from the candidate digital components, any trusted digital components for which the sensitive constraint criteria are not satisfied.
- the tDSP can also update initial selection values for the candidate digital components based on the user data and/or the non-sensitive data.
- the tDSP can provide (668) and the tSSP can receive (670) the selected candidate digital components.
- the tSSP can provide (628) the selected candidate digital components to the client device.
- the tSSP can encrypt each selected trusted candidate digital component, if any, before sending the selected trusted candidate digital component to the client device.
- the client device can receive (630) the candidate digital components from the tSSP.
- operations 602-618 and operations 620-630 can be performed in parallel, reducing the latency compared to performing the groups of operations sequentially.
- the client device can select a digital component for each digital component slot of a resource for which the digital component(s) are being requested by the client device.
- the client device can perform a selection process to select the digital components. For example, the client device can select, for a digital component slot, the candidate digital component having the highest selection value or the highest score that is based on the selection value and a predicted performance for the candidate digital component.
- the client device can adjust the selection values for the candidate digital components before making a selection. For example, the client device can store additional sensitive data not provided to the trusted content platforms and use this data to adjust the selection values for the candidate digital components. [00231] The client device can then present the selected digital component(s). In some implementations, the client device can present any trusted digital components that are selected in a fenced frame of the application with which the trusted digital component is presented. The fenced frame can decrypt the trusted digital component such that the client device or application cannot identify the trusted digital component and therefore cannot leam about the user based on the trusted digital component.
- FIG. 7 is a block diagram of an example computer system 700 that can be used to perform operations described above.
- the system 700 includes a processor 710, a memory 720, a storage device 730, and an input/output device 740.
- Each of the components 710, 720, 730, and 740 can be interconnected, for example, using a system bus 750.
- the processor 710 is capable of processing instructions for execution within the system 700.
- the processor 710 is a single-threaded processor.
- the processor 710 is a multi -threaded processor.
- the processor 710 is capable of processing instructions stored in the memory 720 or on the storage device 730.
- the memory 720 stores information within the system 700.
- the memory' 720 is a computer-readable medium.
- the memory' 720 is a volatile memory' unit.
- the memory 720 is a non-volatile memory unit.
- the storage device 730 is capable of providing mass storage for the system 700.
- the storage device 730 is a computer-readable medium.
- the storage device 730 can include, for example, a hard disk device, an optical disk device, a storage device that is shared over a network by multiple computing devices (e.g., a cloud storage device), or some other large capacity storage device.
- the input/output device 740 provides input/output operations for the system 700.
- the input/output device 740 can include one or more of a network interface devices, e.g., an Ethernet card, a serial communication device, e.g., and RS-232 port, and/or a wireless interface device, e.g., and 802. 11 card.
- the input/output device can include driver devices configured to receive input data and send output data to other devices, e.g., keyboard, printer, display, and other peripheral devices 760.
- Other implementations, however, can also be used, such as mobile computing devices, mobile communication devices, set-top box television client devices, etc.
- An electronic document (which for brevity will simply be referred to as a document) does not necessarily correspond to a file.
- a document may be stored in a portion of a file that holds other documents, in a single file dedicated to the document in question, or in multiple coordinated files.
- Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
- Embodiments of the subject matter described in this specification can be implemented using one or more modules of computer program instructions encoded on a computer- readable medium for execution by, or to control the operation of, data processing apparatus.
- the computer-readable medium can be a manufactured product, such as a hard drive in a computer system or an optical disc sold through retail channels, or an embedded system.
- the computer-readable medium can be acquired separately and later encoded with the one or more modules of computer program instructions, such as by delivery of the one or more modules of computer program instructions over a wired or wireless network.
- the computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, or a combination of one or more of them.
- a computer program (also known as a program, software, software application, script, or code) can be written in any suitable form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any suitable form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
- a computer program does not necessarily correspond to a file in a file system.
- a program can be stored in a portion of a file that holds other programs or data (e.g.. one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code).
- a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
- processors suitable for the execution of a computer program include, by way of example, special purpose microprocessors.
- a processor will receive instructions and data from a read-only memory or a random access memory or both.
- the essential elements of a computer are a processor for performing instructions and one or more memoiy devices for storing instructions and data.
- a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
- mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
- a computer need not have such devices.
- a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few.
- PDA personal digital assistant
- GPS Global Positioning System
- USB universal serial bus
- Non-volatile memory' media and memory devices
- semiconductor memory devices e.g., EPROM (Erasable Programmable Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), and flash memory devices
- magnetic disks e.g., internal hard disks or removable disks
- magneto-optical disks e.g., magneto-optical disks
- CD-ROM and DVD-ROM disks e.g., CD-ROM and DVD-ROM disks.
- the processor and the memory can be supplemented by. or incorporated in, special purpose logic circuitry.
- an engine is used broadly to refer to a software-based system, subsystem, or process that is programmed to perform one or more specific functions.
- an engine will be implemented as one or more software modules or components, installed on one or more computers in one or more locations. In some cases, one or more computers will be dedicated to a particular engine; in other cases, multiple engines can be installed and running on the same computer or computers.
- embodiments of the subject matter described in this specification can be implemented on a computing device capable of providing information to a user. The information can be provided to a user in any form of sen son format, including visual, auditory, tactile or a combination thereof.
- the computing device can be coupled to a display device, e.g., an LCD (liquid crystal display) display device, an OLED (organic light emitting diode) display device, another monitor, a head mounted display device, and the like, for displaying information to the user.
- a display device e.g., an LCD (liquid crystal display) display device, an OLED (organic light emitting diode) display device, another monitor, a head mounted display device, and the like
- the computing device can be coupled to an input device.
- the input device can include a touch screen, keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computing device.
- the computing system can include clients and servers.
- a client and server are generally remote from each other and typically interact through a communication network.
- the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
- Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described is this specification, or any combination of one or more such back-end, middleware, or front-end components.
- the components of the system can be interconnected by any suitable form or medium of digital data communication, e.g., a communication network.
- a communication network examples include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
Abstract
Description
Claims
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/US2023/084830 WO2025136364A1 (en) | 2023-12-19 | 2023-12-19 | Secure and efficient workflows using trusted execution environments |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4605848A1 true EP4605848A1 (en) | 2025-08-27 |
Family
ID=89768511
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP23848040.4A Pending EP4605848A1 (en) | 2023-12-19 | 2023-12-19 | Secure and efficient workflows using trusted execution environments |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP4605848A1 (en) |
| WO (1) | WO2025136364A1 (en) |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| IL277641A (en) * | 2020-09-29 | 2022-04-01 | Google Llc | Protecting access to information in online interactions |
| IL285766B2 (en) * | 2021-08-22 | 2025-06-01 | Google Llc | Cryptographically secure control through multi-factor secure computation |
-
2023
- 2023-12-19 WO PCT/US2023/084830 patent/WO2025136364A1/en active Pending
- 2023-12-19 EP EP23848040.4A patent/EP4605848A1/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| WO2025136364A1 (en) | 2025-06-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN116097616B (en) | Cryptographic security controls using secure multi-party computation | |
| JP7238213B2 (en) | Using secure multi-party computation to improve the integrity of the content selection process | |
| US20250328632A1 (en) | Secure workflows that enhance data security | |
| EP4101121B1 (en) | Privacy preserving measurements using secure multi-party computation | |
| JP7267471B2 (en) | Secure management of data distribution restrictions | |
| US12530446B2 (en) | Secure workflows that enhance data security using sandboxes hosted by trusted execution environments | |
| KR20200122384A (en) | Domain specific browser identifier self-authentication | |
| US12475245B2 (en) | Secure workflows with rule-based data access security | |
| CN114930334B (en) | Additive and subtractive noise for privacy protection | |
| US12430469B2 (en) | Secure workflows for generating and applying digital component distribution directives | |
| US12585809B2 (en) | Privacy-preserving data processing for content distribution | |
| EP4569427B1 (en) | Efficient and latency reducing task distribution using trusted execution environments | |
| WO2025136364A1 (en) | Secure and efficient workflows using trusted execution environments | |
| EP4413523A1 (en) | Privacy-preserving content delivery | |
| EP4483277B1 (en) | Secure and privacy preserving server-to-server content distribution | |
| US12587372B2 (en) | Single request architecture for increasing efficiency of secure multi-party computations | |
| EP4577936B1 (en) | Efficient multiple garbled circuit protocol | |
| EP4483560B1 (en) | Privacy-preserving attribute prediction and content selection |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20250522 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
| 17Q | First examination report despatched |
Effective date: 20260326 |