TECHNOLOGICAL FIELD

This document relates to search and retrieval of keyed data maintained using a keyed database.

BACKGROUND

When a user is consuming digital content, a computer system that is serving the digital content can sometimes repeatedly serve the same digital content to a user.

SUMMARY

This document describes a digital component deduplication system including a keyed database storing keyed data, with each item of keyed data representing a particular digital component; a packetized data search engine that searches packetized data received from a first client device to determine that an encryption token is included with the packetized data, the encryption token comprising keyed data representing a first digital component, wherein the packetized data search engine searches the keyed database to identify contents, in the keyed database, of one or more entries that includes the keyed data representing the first digital component; a logic execution server that executes data logic to generate, based on the contents of the one or more entries that include the keyed data representing the first digital component, a list of candidate digital components; a registration interface that determines that a candidate digital component of the list is associated with a data interface for requesting an eligibility value from a second client device associated with the candidate digital component; and a security server that generates, using the data interface, additional packetized data comprising i) a request for the eligibility value from the second client device, and ii) the encryption token, wherein the logic execution server, in response to receiving the eligibility value of the request, designates, from the list of the candidate digital components, a second digital component for transmitting to the first client device, and wherein the second digital component is different than the first digital component.

In some implementations, the system includes a digital component assembly server performs actions including transmitting the second digital component and a second encryption token associated with the second digital component to the first client device. In some implementations, the packetized data includes first packetized data. In some implementations, the logic execution server generates, in response to a determination that the encryption token is not included in the first packetized data, second packetized data that comprises one or more instructions to i) generate the encryption token, and ii) transmit that encryption token and keyed data representing a digital component over the one or more packetized networks to the first client device. In some implementations, the security server receives an encryption key from the second client device. The security server decrypts the encryption token in response to a determination that the encryption token is included in the packetized data. The logic execution server removes, from the list of candidate digital components, a particular candidate digital component associated with a particular identifier that matches the keyed data of the decrypted encryption token.

In some implementations, the encryption key includes a private key of the second client device. In some implementations, the security server decrypts, using an encryption key provided by the second client device, the encryption token included in the packetized data, in response to a determination that a candidate digital component of the list is not associated with a data interface for requesting an eligibility value from a second client device. In some implementations, the keyed data includes data that uniquely identifies the digital component and, when the keyed data is decrypted, the keyed data matches an identifier of the encryption token.

In some implementations, the digital component deduplication system stores keyed data by a keyed database, with each item of keyed data representing a particular digital component; searching, by a packetized data search engine, packetized data received from a first client device to determine that an encryption token is included with the packetized data. In some implementations, the encryption token includes keyed data representing a first digital component, wherein the packetized data search engine searches the keyed database to identify contents, in the keyed database, of one or more entries that includes the keyed data representing the first digital component.

In some implementations, the digital component deduplication system executes, by a logic execution server, data logic to generate, based on the contents of the one or more entries that include the keyed data representing the first digital component, a list of candidate digital components. In some implementations, the digital component deduplication system determines, by a registration interface, that a candidate digital component of the list is associated with a data interface for requesting an eligibility value from a second client device associated with the candidate digital component. In some implementations, the digital component deduplication system generates, by a security server, using the data interface, additional packetized data comprising i) a request for the eligibility value from the second client device, and ii) the encryption token; and designating, from the list of the candidate digital components, by the logic execution server in response to receiving the eligibility value of the request, a second digital component for transmitting to the first client device, wherein the second digital component is different than the first digital component

In some implementations, the digital component deduplication system transmits, by a digital component assembly server, the second digital component and a second encryption token associated with the second digital component to the first client device. In some implementations, the packetized data includes first packetized data. In some implementations, the logic execution server generates, in response to a determination that the encryption token is not included in the first packetized data, second packetized data that comprises one or more instructions to i) generate the encryption token, and ii) transmit that encryption token and keyed data representing a digital component over the one or more packetized networks to the first client device.

In some implementations, the digital component deduplication system receives, by the security server, an encryption key from the second client device; and decrypting, by the security server, the encryption token in response to a determination that the encryption token is included in the packetized data. The actions include removing, by the logic execution server, from the list of candidate digital components, a particular candidate digital component associated with a particular identifier that matches the keyed data of the decrypted encryption token. In some implementations, the encryption key includes a private key of the second client device.

In some implementations, the actions include decrypting, by the security server, using an encryption key provided by the second client device, the encryption token included in the packetized data, in response to a determination that a candidate digital component of the list is not associated with a data interface for requesting an eligibility value from a second client device. The keyed data comprises data that uniquely identifies the digital component and, when the keyed data is decrypted, the keyed data matches an identifier of the encryption token.

In some implementations, a non-transitory computer readable medium in communication with the digital component deduplication system performs actions including storing keyed data by a keyed database, with each item of keyed data representing a particular digital component. In some implementations, the actions include searching, by a packetized data search engine, packetized data received from a first client device to determine that an encryption token is included with the packetized data. In some implementations, the encryption token includes keyed data representing a first digital component. In some implementations, the packetized data search engine searches the keyed database to identify contents, in the keyed database, of one or more entries that includes the keyed data representing the first digital component.

In some implementations, the actions include executing, by a logic execution server, data logic to generate, based on the contents of the one or more entries that include the keyed data representing the first digital component, a list of candidate digital components. In some implementations, the actions include determining, by a registration interface, that a candidate digital component of the list is associated with a data interface for requesting an eligibility value from a second client device associated with the candidate digital component. In some implementations, the actions include generating, by a security server, using the data interface, additional packetized data comprising i) a request for the eligibility value from the second client device, and ii) the encryption token. In some implementations, the actions include designating, from the list of the candidate digital components, by the logic execution server in response to receiving the eligibility value of the request, a second digital component for transmitting to the first client device, wherein the second digital component is different than the first digital component.

In some implementations, the actions further include transmitting, by a digital component assembly server, the second digital component and a second encryption token associated with the second digital component to the first client device. In some implementations, the packetized data includes first packetized data In some implementations, the logic execution server generates, in response to a determination that the encryption token is not included in the first packetized data, second packetized data that comprises one or more instructions to i) generate the encryption token, and ii) transmit that encryption token and keyed data representing a digital component over the one or more packetized networks to the first client device.

In some implementations, the actions include receiving, by the security server, an encryption key from the second client device; and decrypting, by the security server, the encryption token in response to a determination that the encryption token is included in the packetized data. In some implementations, the actions include removing, by the logic execution server, from the list of candidate digital components, a particular candidate digital component associated with a particular identifier that matches the keyed data of the decrypted encryption token. In some implementations, the encryption key includes a private key of the second client device.

In some implementations, the actions include decrypting, by the security server, using an encryption key provided by the second client device, the encryption token included in the packetized data, in response to a determination that a candidate digital component of the list is not associated with a data interface for requesting an eligibility value from a second client device. In some implementations, the keyed data includes data that uniquely identifies the digital component and, when the keyed data is decrypted, the keyed data matches an identifier of the encryption token.

The described system may provide for one or more benefits, such as reducing the latency for serving digital content that is caused by a logic execution process (e.g., evaluation, auction, etc.) and retrieval of digital components (e.g., ads, videos, text, audio, etc.). A logic execution server evaluates digital components that have not been served to a terminal device, such as during defined session of serving digital components, and ignores digital components that have been identified already having been served to the terminal device during the session (e.g., a browsing session). Since fewer candidate digital components are considered during the logic execution process, the digital component deduplication system reduces the latency for serving the digital component due to the logic execution process.

The digital component deduplication system reduces bandwidth usage for serving digital components by identifying redundant digital components before logic execution. The digital component deduplication system sends fewer packetized requests over a network of the networked system than a system that does not identify redundant digital components before logic execution, reducing bandwidth usage. A list of candidate digital components under consideration to be sent to a terminal device is thus pared back to digital components that have not been served to the terminal device during a session (e.g., a browsing session). For example, the digital component deduplication system avoids sending requests for eligibility values (e.g., bid data) to digital component providers associated with ignored candidate digital components, reducing bandwidth usage.

Digital components that have not been served to the terminal device during the session can be more relevant or interesting to a user of the terminal device, and can thus provide more value to a digital component provider (e.g., advertiser).

The digital component deduplication system enables coordination between multiple logic execution platforms. Digital component providers can use several logic execution platforms that can coordinate to avoid each serving a copy of the same digital component to the terminal device of the user after performing logic execution processes for the user. This enables digital content providers to choose one or many logic execution platforms that are the most competitive for the needs of the digital component provider. The digital component provider avoids a situation where each logic execution platform serves the same digital component to the terminal device, resulting in repeated viewings by the user of the terminal device during the session, which provides diminished value to the digital component provider and frustrates the user. Additionally, the digital component deduplication system uses encryption techniques to ensure that user privacy and digital component identity are not compromised during coordination of the logic execution platforms by the digital component deduplication system.

The digital component can be stored in a memory of the system or to a disk of the system. Storing the digital component in memory reduces the latency for serving the digital component in response to a request in real-time because the system serves the digital component without performing a data query and retrieval from a database. The described system serves digital components that are more relevant to a user. The described system uses a keyed data index to increase retrieval speed relative to non-indexed keyed data of cached data and associate cached data with digital components without requiring identification of the digital component to the logic execution server.

The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the techniques described herein will be apparent from the description and drawings, and from the claims.

