Transmitting high latency digital components in a low latency environment
By generating a digital component priority queue on the server side and updating it on the client device, the problem of difficulty in transmitting high-delay digital components in low-delay environments is solved, and the low-delay digital components are received within the delay constraint and after the delay constraint is over is realized. The effect of high-delay digital components.
Patent Information
- Application Number
- CN202210447278.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2017-06-13
- Filing Date
- 2017-09-06
- Publication Date
- 2025-02-25
- Estimated Expiration
- 2037-09-06
AI Technical Summary
In low-latency environments, high-latency digital components are difficult to transmit within specified delay constraints, resulting in client devices not being able to receive the required digital content in a timely manner.
By identifying and generating digital component priority queues on the server side, determining their presentation order based on the priority indicator of each digital component, and updating the digital component priority queue on the client device, enabling high-delay digital components to be able to Insert the queue later.
The possibility of transmitting high-delay digital components in a low-delay environment is realized, so that the client device can receive low-delay digital components within a specified delay constraint and receive high-delay digital components after the delay constraint is completed to satisfy the delay constraint. At the same time, the response time of the digital component is expanded.
Smart Images

Figure CN114880603B_ABST
Abstract
Description
[0001] This application is a divisional application of the invention patent application with application date of September 6, 2017 and application number 201780082951.X. Background Art
[0002] This article relates to a technique for transmitting high-delay digital components in a low-delay environment. For example, a large number of digital components are distributed to portable computing devices, such as mobile phones, tablet devices, and other portable computing devices. Typically, the digital components distributed to these portable devices are transmitted via a wireless connection including a mobile phone network (e.g., a cellular communication network). In some cases, the distributed digital components must be transmitted within a specified delay constraint, so that the digital components that are not provided to the client device within the delay constraint cannot be used by the client device. Summary of the invention
[0003] Various innovative aspects of the subject matter described in this specification can be embodied in a method comprising the following actions: identifying, by one or more servers, an electronic document for delivery to a client device; during a first time period, identifying, by one or more servers, a set of first digital components for presentation when one or more electronic documents from the electronic document are presented at the client device; generating, by one or more servers and using a priority indicator assigned to each first digital component in the set of first digital components, a digital component priority queue that specifies a presentation order of first digital components from the set of first digital components identified during the first time period; transmitting, by one or more servers and to the client device, the electronic document, the set of first digital components, and the digital component priority queue; during a second time period occurring after the first time period, identifying, by one or more servers, a second digital component for presentation when the one or more electronic documents are presented at the client device; and updating, by one or more servers, the digital component priority queue at the client device, including inserting the second digital component into the digital component priority queue based on the priority indicator assigned to the second digital component.
[0004] Other embodiments of these aspects include corresponding systems, apparatus, and computer programs encoded on computer storage devices configured to perform the actions of these methods.
[0005] These and other embodiments may each optionally include one or more of the following features. For example, updating also includes updating the digital component priority queue at the client device by one or more servers based on the priority indicator assigned to the second digital component and the priority indicator assigned to each of the first digital components. Updating the digital component priority queue includes inserting the second digital component into the first digital component priority queue based on the priority indicator assigned to the second digital component rather than the time when the second digital component is added to the digital component priority queue. The set of first digital components is proposed by one or more third-party systems, and the second digital component is proposed by an additional third-party system. The priority indicator of each first digital component is assigned by a corresponding third-party system, and the priority indicator of the second digital component is assigned by an additional third-party system. The electronic document includes a collection of electronic documents. A composite document is generated by one or more servers, the composite document i) hosted by a domain different from at least some of the electronic documents in the collection of electronic documents, and ii) including a collection of electronic documents, wherein the transmission also includes transmitting the composite page, the collection of first digital components, and the digital component priority queue to the client device by one or more servers.
[0006] Additional features include, for example, during a third period occurring after the second period, identifying, by one or more servers, a third digital component that has been proposed by another third-party system during the third period for presentation when one or more electronic documents are presented at the client device; and updating, by one or more servers, a digital component priority queue at the client device, including inserting the third digital component into the digital component priority queue based on a priority indicator assigned to the third digital component. The updating also includes updating, by one or more servers, the digital component priority queue at the client device based on a priority indicator assigned to the third digital component, a priority indicator assigned to the second digital component, and a priority indicator assigned to each of the first digital components. A search query is received by the one or more servers from the client device, wherein the identifying also includes identifying, by the one or more servers, a set of electronic documents using the search query. The set of first digital components includes digital components that are less than the second digital components.
[0007] Various innovative aspects of the subject matter described in this specification can be embodied in a system comprising: an electronic document inspection device that identifies a collection of electronic documents for delivery to a client device; a digital component identification device that i) identifies a first set of digital components proposed by one or more third-party systems during a first time period for presentation when one or more electronic documents from the collection of electronic documents are presented at the client device, and ii) identifies a second digital component proposed by an additional third-party system during a second time period occurring after the first time period for presentation when the one or more electronic documents are presented on the client device; and a digital component priority queue manager that i) generates a digital component priority queue using a priority indicator assigned to each first digital component in the collection of digital components, the digital component priority queue specifying a presentation order of first digital components from the collection of digital components identified during the first time period, and ii) updates the digital component priority queue at the client device to include the second digital component based on the priority indicator assigned to the second digital component.
[0008] Other embodiments of these aspects include corresponding methods, and computer programs encoded on computer storage devices configured to perform the actions of these methods.
[0009] These and other embodiments may each optionally include one or more of the following features. For example, the digital component priority queue manager also updates the digital component priority queue at the client device based on the priority indicator assigned to the second digital component and the priority indicator assigned to each of the first digital components. The digital component priority queue manager also includes inserting the second digital component into the first digital component priority queue based on the priority indicator assigned to the second digital component rather than the time when the second digital component is added to the digital component priority queue. The priority indicator of each first digital component is assigned by a corresponding third-party system, and the priority indicator of the second digital component is assigned by an additional third-party system. The digital component identification device i) identifies a third digital component that has been proposed by another third-party system during a third time period occurring after the second time period for presentation when one or more electronic documents are presented on the client device, and wherein the digital component priority queue manager updates the digital component priority queue at the client device by inserting the third digital component into the digital component priority queue based on the priority indicator assigned to the third digital component. The digital component priority queue manager also updates the digital component priority queue at the client device based on the priority indicator assigned to the third digital component, the priority indicator assigned to the second digital component, and the priority indicator assigned to each of the first digital component.
[0010] Various innovative aspects of the subject matter described in this specification can be embodied in a method comprising the following actions: identifying, by one or more servers, a set of electronic documents for delivery to a client device; during a first time period, identifying, by the one or more servers, a set of first digital components that have been proposed by one or more third-party systems during the first time period for presentation when one or more electronic documents from the set of electronic documents are presented on the client device; generating, by the one or more servers, a digital component priority queue using a priority indicator assigned to each first digital component in the set of first digital components, the digital component priority queue specifying a presentation order of the first digital components in the set of first digital components identified during the first time period; transmitting, by the one or more servers and to the client device, the set of electronic documents, the set of first digital components, and the digital component priority queue; during a second time period occurring after the first time period, identifying, by the one or more servers, a second digital component that has been proposed by an additional third-party system during the second time period for presentation when the one or more electronic documents are presented at the client device; and updating, by the one or more servers, the digital component priority queue at the client device, including inserting the second digital component into the digital component priority queue based on the priority indicator assigned to the second digital component.
[0011] Other embodiments of these aspects include corresponding systems and apparatus and computer programs encoded on computer storage devices configured to perform the actions of these methods.
[0012] These and other embodiments may also each optionally include one or more of the following features. For example, updating also includes updating the digital component priority queue at the client device by one or more servers based on the priority indicator assigned to the second digital component and each priority indicator assigned to the first digital component. Updating the digital component priority queue includes inserting the second digital component into the first digital component priority queue based on the priority indicator assigned to the second digital component rather than the time when the second digital component is added to the digital component priority queue. The priority indicator of each first digital component is assigned by a corresponding third-party system, and the priority indicator of the second digital component is assigned by an additional third-party system. A composite document is generated by one or more servers, the composite document i) being hosted by a domain different from at least some of the electronic documents in the collection of electronic documents, and ii) including a collection of electronic documents, wherein the transmission also includes transmitting the composite page, the collection of first digital components, and the digital component priority queue by one or more servers and to the client device.
[0013] Additional features include, for example, during a third period occurring after the second period, identifying, by one or more servers, a third digital component that has been proposed by another third-party system during the third period for presentation when the one or more electronic documents are presented at the client device; and updating, by the one or more servers, a digital component priority queue at the client device, including inserting the third digital component into the digital component priority queue based on a priority indicator assigned to the third digital component. Updating also includes updating, by the one or more servers, the digital component priority queue at the client device based on a priority indicator assigned to the third digital component, a priority indicator assigned to the second digital component, and a priority indicator assigned to each of the first digital components. A search query is received by the one or more servers and from the client device, wherein identifying also includes identifying, by the one or more servers, a set of electronic documents using the search query.
[0014] The specific implementation of the subject matter described in this specification can be implemented to achieve one or more of the following advantages. A high-delay digital component (e.g., a digital component that is not provided to a client device within a specified delay constraint) can still be provided for use by the client device, despite the fact that the high-delay digital component is not identified and / or provided within the specified delay constraint. The embodiments of the present disclosure are based on the priority of the digital component, and independently of the time when the digital component is added to the digital component queue, add digital components (e.g., video, image, text) to the digital component queue. In other words, high-delay digital components can be included in the digital component queue, despite the fact that these high-delay digital components do not meet the specified delay constraint. For example, a third-party system may encounter delay-related issues (e.g., network connectivity issues, limited bandwidth, digital component file size, etc.), which may prevent the third-party system from responding to requests for digital components within the specified delay constraint. Within the delay constraint, third-party delay-related issues and / or the amount of bandwidth available for delivering digital components to the client device may prevent larger digital components (e.g., audio, video or other multimedia files) from being delivered to the client device, and / or being added to the digital component queue maintained at the client device. In order to compensate for latency related issues of third party systems and / or bandwidth constraints that prevent delivery of larger digital components, the digital component queue maintained at the client device is sorted by priority indicators assigned to the digital components, rather than by arrival time. Thus, by doing so, this enables the client device to receive lower latency digital components for use within specified latency constraints and create queues using these lower latency digital components, while also enabling higher latency digital components (e.g., video digital components) to be added to the digital component queue at a later time (e.g., after expiration of the specified latency constraints), thereby compensating for latency issues (e.g., limited bandwidth) of third party systems that provide higher latency digital components and / or bandwidth constraints that may delay delivery of larger digital components. Furthermore, priority indicator based digital component queue management enables those higher latency digital components to take the position they would have occupied in the digital component queue if they were also provided within the specified latency constraints, rather than simply adding them to the digital component queue based on the time they were delivered to the client device. Thus, the techniques discussed herein improve the functionality of a computer by enabling the computer to provide digital components that it could not otherwise provide due to specified delay constraints, while still satisfying specified delay constraints by making the digital components available to client devices within the specified delay constraints.
[0015] The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other potential features, aspects, and advantages of the subject matter will become apparent from the description, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0016] Figure 1A , Figure 1B and Figure 1C An environment for distributing digital components is shown.
[0017] Figure 2 , Figure 3 , Figure 4 and Figure 5 An example digital component priority queue is shown.
[0018] Figure 6 and Figure 7 An example graphical user interface displaying an example composite page including a digital component is shown.
[0019] Figure 8 An example process for managing a digital component priority queue is shown.
[0020] Fig. 9 Example computing systems and mobile computing devices are shown that can be used to implement the techniques described herein. DETAILED DESCRIPTION
[0021] Methods, systems, and computer-readable media capable of distributing high-latency digital components in a low-latency environment are described herein. For purposes of illustration, it is assumed that a given system distributes digital components in a distributed network environment. After receiving a request for a digital component, a given system may need to distribute (e.g., transmit) a collection of digital components within a specified amount of time (e.g., within a specified delay constraint, which specifies how long a given system must select and distribute the digital component). If a given system fails to distribute the digital component within a specified amount of time, the digital component will not be available for presentation with an electronic document on a client device requesting the digital component. In this way, the electronic document may be presented with one or more blank spaces where the digital component should have been presented. In addition, the unavailability of the digital component may potentially result in page loading errors (or other errors) at the client device.
[0022] For various reasons, a given system may not be able to distribute digital components within a specified amount of time. For example, a given system may simply be unable to respond to a request for a digital component within a specified amount of time. For purposes of illustration, assume that a given system contacts a third-party system to identify the digital components that will be provided in response to the request. These third-party systems may be allocated a certain amount of time (e.g., an amount of time less than the specified amount of time that the given system must respond to the request for the digital component) to respond to the given system. However, if these third-party systems do not respond quickly enough, the given system may not have identified any digital components to provide to the client device in response to the request for the digital component. In this case, the given system will not be able to provide the digital component to the client device within a specified amount of time after the request for the digital component.
[0023] In another example, a given system may be unable to distribute a digital component to a client device within a specified amount of time when the identified digital component cannot be transmitted to the client device within a specified amount of time. For example, in the case where the digital component has a large file size, the available bandwidth for delivering the digital component to the client device may not be sufficient to complete the delivery of the digital component to the client device within the specified amount of time. For example, if the client device is on a slow mobile network, or there is a large amount of traffic on the network being used by the client device, the delivery of the digital component may be delayed for more than the specified amount of time. Similarly, a communication interruption between a given system and a client device may delay the delivery of the digital component to the client device within a specified amount of time.
[0024] As described throughout this document, techniques may be implemented to enable high-latency digital components to be delivered in a low-latency environment. As used throughout this specification, the term low-latency environment refers to an environment in which a specified delay constraint (e.g., a specified amount of time) or some other constraint is used to specify an initial amount of time in which a digital component should be provided to a client device in response to a request. At the same time, the term high-latency digital component refers to any digital component that is not provided within a specified amount of time. For example, a low-latency digital component can be a digital component that requires a low bit rate to be transmitted to a client device relative to a high-latency digital component. For example, a low-latency digital component can include a small number of bits relative to a high-latency digital component.
[0025] In general, the techniques described throughout this document allow low-latency digital components to be provided within a specified amount of time, while still allowing high-latency digital components to be provided after the specified amount of time has ended. When low-latency digital components are provided to a client device, the client device will be provided with a digital component queue that specifies the order in which the low-latency digital components will be presented at the client device. When high-latency digital components are provided to a client device, the client device will update the digital component queue using a priority indicator to place the high-latency digital components in the queue based on their priority rather than the time they arrive at the client device. Therefore, despite the fact that these high-latency digital components arrive at the client device after the specified amount of time has ended, these high-latency digital components are still provided with the same priority within the digital component queue. These techniques combine the advantages of utilizing delay constraints (which ensure that digital components can be presented at the client device when needed) and providing a longer time to identify the digital components to be provided to the client device (which expands the corpus of digital components that can be presented at the client device in response to digital component requests). These techniques may, for example, allow a user interface to be provided using a network, and displayed at a client device for a predetermined period of time, and then populated with components that require additional time to transmit to the client device using the network. These techniques may allow a first user interface to be provided that is then augmented with digital components that are transmitted more slowly to the device.
[0026] As described in more detail below, the system described herein identifies a collection of electronic documents for delivery to a client device. For example, the system identifies, during a first time period, a collection of first digital components proposed by one or more third-party systems during the first time period for presentation when one or more electronic documents from the collection of electronic documents are presented on a client device. The system generates a digital component priority queue using a priority indicator assigned to each first digital component in the collection of first digital components, the digital component priority queue specifying a presentation order of first digital components from the collection of first digital components identified during the first time period. The system transmits the collection of electronic documents, the collection of first digital components, and the digital component priority queue to the client device. During a second time period occurring after the first time period, the system identifies, during the second time period, a second digital component that has been proposed by an additional third-party system for presentation when one or more electronic documents are presented at the client device. The system updates the digital component priority queue at the client device, which includes inserting the second digital component into the digital component priority queue based on the priority indicator assigned to the second digital component.
[0027] Figures 1A-1CAn environment 100 for distributing digital components is shown. Environment 100 includes server computing system 102, client computing device 104, electronic document database 106, third party computing systems 108a, 108b, 108c (collectively, third party computing systems 108), and digital component libraries 110a, 110b, 110c (collectively, digital component libraries 110). Server computing system 102 includes electronic document inspection device 112, digital component identification device 114, and digital component priority queue manager 116. Each of electronic document inspection device 112, digital component identification device 114, and digital component priority queue manager 116 can be a separate server computing system, or a combination of server computing systems.
[0028] The server computing system 102 communicates with the client computing device 104, the electronic document database 106, and the third-party computing system 108 via one or more networks. Each of the third-party computing systems 108a, 108b, 108c can communicate with a respective digital component library 110a, 110b, 110c, each of which stores digital components distributed by the respective third-party computing system. The digital components can include text, images, videos, or multimedia digital content. In some examples, the digital components can include advertisements.
[0029] refer to Figure 1A In some implementations, server computing system 102 receives a request 120 for an electronic document from client computing device 104 (operation A). In some examples, the request may include a search query. Request 120 may include a text query, a visual query, an audio query, or a combination thereof.
[0030] Server computing system 102, and in particular electronic inspection device 112, identifies a set of electronic documents 122 (operation B), e.g., in response to request 120. In some examples, when request 120 includes a search query, electronic inspection device 112 uses the search query to identify electronic documents 122—that is, electronic documents 122 that are responsive to the search query. Electronic inspection device 112 may identify electronic documents 122 in response to request 120 based on one or more factors, including keywords, meta information, and other information indicating content included in electronic documents 122. In some implementations, electronic documents 122 may be news articles from a variety of different news websites.
[0031] The server computing system 102 generates a request 124 for a digital component to be presented with the electronic document 122, e.g., when the electronic document 122 is presented at the client computing device 104. The server computing system 102 transmits the request 124 to any subset of the third-party computing systems 108 (operation C), including to each of the third-party computing systems 108. In some examples, the server computing system 102 transmits the request to the third-party computing systems 108 substantially simultaneously (e.g., in parallel). In some examples, the request 124 may include information about the electronic document 122, e.g., identification of the content of the electronic document 122 or a source of the electronic document (e.g., a website URL). In some examples, the request 124 may include information about the client computing device 104, e.g., identification of profile characteristics of the client computing device 104 and / or a user of the client computing device 104.
[0032] The server computing system 102, and in particular the digital component identification device 114, identifies the first digital component 126 during a first period of time (e.g., within a specified amount of time or delay constraint) (operation D). Specifically, in response to the request 124, the third-party computing system 108a accesses the digital component library 110a to identify the first digital component 126 proposed by the third-party computing system 108a for presentation when the one or more electronic documents 122 are presented at the client computing device 104. In some examples, the first digital component 126 can be identified by the third-party computing system 108a based on the content of the electronic document 122, the characteristics of the client computing device 104, or both. In some examples, the first digital component 126 can be determined in response to the search query of the request 120 based on the search query itself and / or one or more criteria of the electronic document 122 (including keywords, meta information, and other information indicating the content of the electronic document 122). In some examples, the first digital component 126 includes text, images, and / or video. The third party computing system 108a transmits the first digital component 126 to the server computing system 102 during a first period of time (eg, in response to the request 124 ).
[0033] First digital component 126 may be presented by client computing device 104 in conjunction with presentation of electronic document 122, as further described herein. In some examples, first digital component 126 may present one or more of electronic document 122 when electronic document 122 is presented by client computing device 104.
[0034] The server computing system 102, and in particular the digital component priority queue manager 116, generates a digital component priority queue 128 (operation E). The digital component priority queue 128 may be provided to the client computing device 104 when the first digital component 134 is provided to the client computing device 104. The digital component priority queue 128 specifies a presentation order of the first digital components 126 identified during the first time period. The presentation order of the first digital components 126 is the order in which the client computing device 104 presents the first digital components 126 within the electronic document 122, as will be further described herein. For example, a digital component at the top of the digital component priority queue 128 is selected for presentation with the electronic document 122 before a digital component below the top of the digital component priority queue 128.
[0035] The digital component priority queue manager 116 generates the digital component priority queue 128 using the priority indicators 130. The priority indicators 130 are respectively assigned to each of the first digital components 126. In some examples, the digital component priority queue manager 116 assigns the priority indicators 130 to each of the first digital components 126 based on the resource allocation of the corresponding first digital component 126. In some examples, the third party computing system 108a assigns the priority indicators 130 to each of the first digital components 126.
[0036] In some examples, the priority indicator 130 of the first digital component 126 is based on a bid provided by the third-party computing system 108a, for example, in response to a real-time auction for presenting the digital component within the electronic document 122. Thus, the priority indicator 130 may indicate the bid for the corresponding first digital component 126 or a value calculated using the bid (e.g., a bid predicting performance).
[0037] The digital component priority queue manager 116 positions the first digital component 126 in the digital component priority queue 128 based on the priority indicator 130. For example, a digital component having a higher priority as indicated by the priority indicator 130 is positioned higher within the digital component priority queue 128 than a digital component having a lower priority as indicated by the priority indicator 130.
[0038] Figure 2 is an illustration of an example digital component priority queue 128. The digital component priority queue 128 specifies the presentation order of the first digital component 126. In the example shown, the first digital component 126 includes digital component A, digital component B, and digital component C; however, the first digital component 126 may include any number of digital components.
[0039] In the illustrated example, the digital component priority queue manager 116 positions digital component A within the first position 202, digital component B within the second position 204, and digital component C within the third position 206 based on the priority indicators 130 of each of the first digital components 126. That is, the priority indicator 130 of digital component A is greater than the priority indicator 130 of digital component B; and the priority indicator 130 of digital component B is greater than the priority indicator 130 of digital component C.
[0040] Back to Figure 1A , the server computing system 102 transmits a subset 132 of the electronic document 122, a subset 134 of the first digital component 126, and the digital component priority queue 128 to the client computing device 104 (operation F). The subset 132 of the electronic document 122 may be any portion or each of the electronic document 122. Note that the electronic document 122 may be provided by another computing system (e.g., a computing system operated by another entity). The subset 132 of the first digital component 122 may be any portion or each of the first digital component 126. The subset 132 of the first digital component 126 is transmitted to the client computing device 104 during the first period.
[0041] In some implementations, the server computing system 102 uses a counter or other timing mechanism to ensure that the subset 132 of the first digital component 126 is transmitted to the client computing device 104 within the first time period. For example, upon receiving the request 120, the server computing system 102 can start a timer. The timer can be an increasing count timer or a decreasing count timer, and the server computing system 102 can be configured to transmit the subset 132 of the first digital component 126 when the timer reaches a specified value (e.g., when an increasing count timer is used, the specific value corresponds to the time when the first time period ends, or when a decreasing count timer is used, the specific value corresponds to zero).
[0042] In some examples, client computing device 104 may store subset 132 of electronic documents 122, subset 134 of first digital components 126, and digital component priority queue 128, which is shown as digital component priority queue 150. That is, client computing device 104 stores a local copy of digital component priority queue 128 as digital component priority queue 150.
[0043] refer to Figure 1B, the server computing system 102, and in particular the digital component identification device 114, identifies the second digital component 152 during a second period that occurs after the first period (e.g., after a specified amount of time or delay constraint has passed) (operation G). Specifically, in response to the request 124, the third-party computing system 108b accesses the digital component library 110b to identify the second digital component 152 being proposed by the third-party computing system 108b for presentation when one or more electronic documents are presented at the client computing device 104. In some examples, the second digital component 152 may be identified by the third-party computing system 108b based on the content of the electronic document 122, the characteristics of the client computing device 104, or both. In some examples, the second digital component 152 may be determined based on the search query of the request 120 itself and / or one or more criteria of the electronic document 122 (including keywords, meta information, and other information indicating the content of the electronic document 122) in response to the search query. In some examples, the second digital component 152 includes text, images, and / or video. The third party computing system 108 b transmits the second digital component 152 to the server computing system 102 during a second period occurring after the first period, such as in response to the request 124 .
[0044] Second digital component 152 may be presented by client computing device 104 in conjunction with presentation of electronic document 122, as further described herein. In some examples, second digital component 152 may be presented within one or more electronic documents 122 when electronic documents 122 are presented by client computing device 104.
[0045] The server computing system 102, in particular the digital component priority queue manager 116, updates the digital component priority queue 150 at the client computing device 104 (operation H). Specifically, the digital component priority queue manager 116 updates the digital component priority queue 150 based on the priority indicators 130 assigned to the second digital components 152, so that one or more of the second digital components 152 are inserted into the digital component priority queue 150.
[0046] The priority indicator 130 is assigned to each of the second digital components 152. In some examples, the digital component priority queue manager 116 assigns the priority indicator 130 to each of the second digital components 152 based on the corresponding resource allocation of the second digital components 152. In some examples, the third party computing system 108b assigns the priority indicator 130 to each of the second digital components 152.
[0047] In some examples, the priority indicator 130 of the second digital component 152 is based on a bid provided by the third party computing system 108b, e.g., in response to a real-time bid for presenting the digital component within the electronic document 122. Thus, the priority indicator 130 may indicate a bid (e.g., a predicted performance of the bid) for the corresponding second digital component 152.
[0048] The digital component priority queue manager 116 updates the digital component priority queue 150 at the client computing device 104 by transmitting a subset 154 of the second digital component 152 and the priority indicator 130 of the subset 154 of the second digital component 152 to the client computing device 104. Specifically, by transmitting the priority indicator 130 of the subset 154 of the second digital component 152, the digital component priority queue manager 116 causes the second digital component 152 to be inserted into the digital component priority queue 150 based on the priority indicator 130 assigned to the second digital component 152. The subset 154 of the second digital component 152 may be any portion or each of the second digital components 152. The subset 154 of the second digital component 152 is transmitted to the client computing device 104 during the second time period.
[0049] In some implementations, the server computing system 102 uses a counter or other timing mechanism to ensure that the subset 154 of the second digital component 152 is transmitted to the client computing device 104 within the second time period. For example, upon receiving the request 120, the server computing system 102 can start a timer. The timer can be an increasing count timer or a decreasing count timer, and the server computing system 102 can be configured to transmit the subset 154 of the second digital component 152 when the timer reaches a specified value (e.g., when an increasing count timer is used, the specific value corresponds to the time when the first time period ends, or when a decreasing count timer is used, the specific value corresponds to zero).
[0050] For example, the client computing device 104 adjusts the digital component priority queue 150 based on the priority indicators 130 of the subset 154 of the second digital components 152 and further based on the priority indicators 130 of the subset 134 of the first digital components 126 .
[0051] Figure 3 1 is an illustration of an example digital component priority queue 150 after being updated to specify the presentation order of the first digital component 126 and the second digital component 152. Specifically, Figure 3As shown, the digital component priority queue 150 is updated to include the digital component D of the second digital component 152 located at the third position 206, wherein the digital component C is relocated to the fourth position 208. That is, the priority indicator 130 of the digital component D is greater than the priority indicator 130 of the digital component C;
[0052] In some examples, the digital component priority queue manager 116 updates the digital component priority queue 150 at the client computing device 104 based on the priority indicator 130 of the second digital component 152 rather than the time when the second digital component 152 was added to the digital component priority queue 150. For example, at a second time that is later than the first time when the first digital component 126 was identified and the digital component priority queue 128 was generated, the second digital component 152 was identified and added to the digital component priority queue 150. Therefore, the positioning of the first digital component 126 and the second digital component 152 in the digital component priority queue 150 is based on the priority indicator 130 of the first digital component 126 and the second digital component 152 rather than the time when the first digital component 126 and the second digital component 152 were identified and / or added to the digital component priority queue 150.
[0053] As a result, the later arriving digital component - the second digital component 152 - can be added to the digital priority component queue 150 without being penalized based on time (eg, being moved to a lower position in the digital priority component queue 150 based on receipt time).
[0054] Figure 4 2 is an illustration of an example digital component priority queue 150 after digital component A is removed from digital component priority queue 150. For example, digital component A is presented by client computing device 104 (e.g., presented with one of electronic documents 122). As a result, digital component B is relocated to first position 202, digital component D is relocated to second position 204, and digital component C is relocated to third position 206.
[0055] refer to Figure 1C, the server computing system 102, and in particular the digital component identification device 114, identifies a third digital component 170 during a third period occurring after the second period (operation 1). Specifically, in response to the request 124, the third-party computing system 108c accesses the digital component library 110c to identify the third digital component 170 proposed by the third-party computing system 108c for presentation when one or more electronic documents are presented at the client computing device 104. In some examples, the third-party computing system 108a may identify the third digital component 170 based on the content of the electronic document 122, the characteristics of the client computing device 104, or both. In some examples, the third digital component 170 may be determined based on the search query of the request 120 itself and / or one or more criteria of the electronic document 122 (including keywords, meta information, and other information indicating the content of the electronic document 122) in response to the search query. In some examples, the third digital component 170 includes text, images, and / or videos. The third party computing system 108 c transmits the third digital component 170 to the server computing system 102 during a third period occurring after the second period, such as in response to the request 124 .
[0056] Third digital component 170 may be presented by client computing device 104 in conjunction with presentation of electronic document 122, as further described herein. In some examples, third digital component 170 may be presented within one or more electronic documents 122 when electronic documents 122 are presented by client computing device 104.
[0057] The server computing system 102, in particular the digital component priority queue manager 116, updates the digital component priority queue 150 at the client computing device 104 (operation J). Specifically, the digital component priority queue manager 116 updates the digital component priority queue 150 based on the priority indicator 130 assigned to the third digital component 170, so that one or more third digital components 170 are inserted into the digital component priority queue 150.
[0058] The priority indicator 130 is assigned to each of the third digital components 170. In some examples, the digital component priority queue manager 116 assigns the priority indicator 130 to each of the third digital components 170 based on the corresponding resource allocation of the third digital components 170. In some examples, the third party computing system 108c assigns the priority indicator 130 to each of the third digital components 170.
[0059] In some examples, the priority indicator 130 of the third digital component 126 is based on a bid provided by the third party computing system 108 c, e.g., in response to a real-time bid for presenting the digital component within the electronic document 122. Thus, the priority indicator 130 may indicate a bid (e.g., a predicted performance of the bid) for the corresponding third digital component 170.
[0060] The digital component priority queue manager 116 updates the digital component priority queue 150 at the client computing device 104 by transmitting a subset 172 of the third digital component 170 and a priority indicator 130 of the subset 172 of the third digital component 170 to the client computing device 104. Specifically, by transmitting the priority indicator 130 of the subset 172 of the third digital component 170, the digital component priority queue manager 116 causes the third digital component 170 to be inserted into the digital component priority queue 150 based on the priority indicator 130 assigned to the third digital component 170. The subset 172 of the third digital component 170 may be any portion or each of the third digital components 170. The subset 172 of the third digital component 170 is transmitted to the client computing device 104 during the third time period.
[0061] In some implementations, the server computing system 102 uses a counter or other timing mechanism to ensure that the third digital component 170 is transmitted to the client computing device 104 within the third time period. For example, upon receiving the request 120, the server computing system 102 can start a timer. The timer can be an increasing count timer or a decreasing count timer, and the server computing system 102 can be configured to send the subset 172 of the third digital component 170 when the timer reaches a specified value (e.g., when an increasing count timer is used, the specific value corresponds to the time when the first time period ends, or when a decreasing count timer is used, the specific value corresponds to zero).
[0062] For example, client computing device 104 adjusts digital component priority queue 150 based on priority indicators 130 of subset 172 of third digital components 170 , and further based on priority indicators 130 of subset 134 of first digital components 126 and subset 154 of second digital components 152 .
[0063] Figure 5 is an illustration of an example digital component priority queue 150 after being updated to specify the presentation order of the first digital component 126, the second digital component 152, and the third digital component 170. Specifically, as Figure 5As shown, the digital component priority queue 150 is updated to include the digital component E of the third digital component 170 located at the second position 204, wherein the digital component D is relocated to the third position 206, and the digital component C is relocated to the fourth position 208. That is, the priority indicator 130 of the digital component E is greater than the priority indicator 130 of the digital component D; in addition, the priority indicator 130 of the digital component B is greater than the priority indicator 130 of the digital component E.
[0064] In some examples, subset 132 of electronic documents 122 may include a composite electronic document. That is, server computing system 102 may generate a composite electronic document that is i) hosted in a different domain than at least some of electronic documents 122 of subset 132 and ii) includes various electronic documents 122 from subset 132. The composite electronic document may be hosted in a different domain (e.g., example.com) than the domain of subset 132 of electronic documents 122. Furthermore, the initial version of the composite electronic document includes electronic documents 122 that provide for display of a portion (or fragment) of electronic documents 122 identified as being responsive to request 120. For example, the initial version of the composite electronic document may include search results that each include a fragment of a respective electronic document 122.
[0065] In some examples, the composite electronic document initially hides the presentation of at least some of the electronic document 122, e.g., when the composite electronic document is initially presented at the client computing device 104. However, for each displayed fragment of the electronic document 122 of the composite electronic document, the composite electronic document includes corresponding digital content of the electronic document 122 that is hidden from the initial presentation of the composite electronic document. That is, the initial version of the composite electronic document i) may display fragments of the electronic document 122 that are different from the complete electronic document 122, and ii) may include the complete electronic document 122 that is hidden from the initial version of the composite electronic document.
[0066] Figure 6An example of a composite page 602 is shown. The composite page 602 includes a user interface component in the form of search results 606 (displayed as search results 606a, 606b, 606c, 606d) in response to the request 120. In the example shown, the search results 606 are in response to the request 120 including the search query "famous singers" and are based on electronic documents 122. The search results 606 each include a modified version of the corresponding electronic document 122, the modified version including a fragment of the corresponding electronic document 122 (e.g., the title of the electronic document 122, the domain of the electronic document 122, and the corresponding first text portion of the electronic document 122). Moreover, in the example shown, the composite page 602 is hosted on a domain 612 (eg, example.com) that is different from the domain 614 (eg, digitalcontentsource1.com, digitalcontentsource2.com, digitalcontentsource3.com, digitalcontentsource4.com) hosting the electronic documents 122 (shown as domains 614a, 614b, 614c, 614d).
[0067] In some implementations, the client computing device 104 detects an interaction with one of the search results 606. For example, one of the fragments of the electronic document 122 provided within the composite page 602 is selected by a user of the client computing device 104. In response to the selection, the client computing device 104 updates the visualization of the composite page 602 to display the electronic document 122 of the selected fragment. Specifically, the composite page 602 is graphically animated (or changed) to transition from an initial version of the composite page 602 including the fragment of the electronic document 122 to an updated version of the composite page 602 including the complete electronic document 122 of the selected fragment. Note that the updated version of the composite page 602 can be presented without an additional network call or request for the electronic document 122 to be displayed through user interaction. Instead, the electronic document 122 already included in the composite page 602 is displayed to the user, which electronic document is stored in the client computing device 104.
[0068] In some examples, independent of additional requests for content of the electronic document 122 , the composite page 602 is updated to display the electronic document 122 for the selected segment. Figure 7 Shown with Figure 6 The example composite page 702 is similar to the composite page 602. Specifically, the composite page 702 is Figure 6 An updated version of the composite page 602 is presented after displaying the complete electronic document 122 of the selected segment. For example, the selected segment corresponds to the search result 606a, such as Figure 6 In response to selecting search result 606a, update Figure 6 The composite page 602 is selected to display the complete electronic document 122 of the search result 606a, thereby forming a composite page 702. In the illustrated example, the search result 606a corresponds to a news article identified by the search query "famous singer", and in response to selection of the search result 606a, the complete electronic document 122 of the search result 606a is displayed, shown as the complete digital content 704. In addition, the composite page 702 is hosted in a domain similar to the domain of the composite page 602 (e.g., example.com), which is different from the domain of the complete digital content 704 (e.g., digitalcontenstsource1.com).
[0069] In some embodiments, the composite page 602 is also updated to include a digital component 750, such as Figure 7 The composite page 702 is shown in FIG. Based on the presentation order of the digital component priority queue 150, the digital component 750 is one of the first digital component 126, the second digital component 152, and the third digital component 170. For example, based on Figure 5 , digital component B is selected by the client computing device 104 for presentation with the composite page 702 and includes the text “Download the new album of a famous singer” and an image of the new album.
[0070] Figure 8 An example process 800 for distributing digital content assets is shown. The process 800 may be performed, for example, by the server computing system 102 and / or the client computing device 104 or another data processing apparatus. The process 800 may also be implemented as instructions stored on a computer storage medium, and the instructions are executed by one or more data processing apparatuses so that the one or more data processing apparatuses perform some or all of the operations of the process 800.
[0071] The digital component inspection device 112 identifies electronic documents 122 for delivery to the client computing device 104 (802). For example, the server computing system 102, and in particular the electronic inspection device 112, identifies the electronic documents 122 in response to the request 124 (search query). The digital component identification device 114 identifies, during a first period of time, a set of first digital components 126 that have been proposed by the third party computing system 108a during the first period of time for presentation when the one or more electronic documents 122 are presented at the client computing device 104 (804). For example, in response to the request 124, the third party computing system 108a accesses the digital component library 110a to identify the first digital components 126. The third party computing system 108a may identify the first digital components 126 based on the content of the electronic documents 122, the characteristics of the client computing device 104, or both.
[0072] The digital component priority queue manager 116 generates a digital component priority queue 128 that specifies a presentation order of the first digital components 126 using the priority indicator 130 assigned to each first digital component 126 (806). For example, the digital component priority queue manager 116 compares the priority indicators 130 of the first digital components 126 and determines that the priority indicator 130 of the first digital component n1 of the first digital component 126 is greater than the priority indicator 130 of the first digital component n2 of the first digital component 126, and positions the first digital component n1 higher than the second digital component n2. The server computing system 102 transmits the electronic document 122, the first digital component 126, and the digital component priority queue 128 to the client computing device 104 (808). For example, the server computing system 102 transmits the electronic document 122, the first digital component 126, and the digital component priority queue 128 during a first time period.
[0073] The digital component identification device 114 identifies, during a second period occurring after the first period, a second digital component 152 that has been proposed by the third party computing system 108b during the second period for presentation when the electronic document 122 is presented at the client computing device 104 (810). For example, in response to the request 124, the third party computing system 108b accesses the digital component library 110b to identify the second digital component 152. The third party computing system 108b may identify the second digital component 152 based on the content of the electronic document 122, the characteristics of the client computing device 104, or both. The digital component priority queue manager 116 updates the digital component priority queue 150 at the client computing device 104, including inserting the second digital component 152 into the digital component priority queue 130 based on the priority indicator 130 assigned to the second digital component 152 (812). For example, the client computing device 104 compares the priority indicators 130 of the first digital component 126 and the second digital component 152, and determines that the priority indicator 130 of the third digital component n3 of the second digital component 126 is greater than the priority indicators 130 of the first digital components n1 and n2 of the first digital component 126, and positions the third digital component n3 higher than the first digital components n1 and n2.
[0074] Fig. 9Examples of a general purpose computer device 900 and a general purpose mobile computer device 950 that can be used with the techniques described herein are shown. Computing device 900 is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. Computing device 950 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular phones, smart phones, and other similar computing devices. The components shown here, their connections and relationships, and their functions are merely exemplary and are not meant to limit the embodiments of the inventions described and / or claimed herein.
[0075] The computing device 900 includes a processor 902, a memory 904, a storage device 906, a high-speed interface 908 connected to the memory 904 and a high-speed expansion port 910, and a low-speed interface 912 connected to a low-speed bus 914 and the storage device 906. Each of the components 902, 904, 906, 908, 910 and 912 is interconnected using various buses and can be installed on a common motherboard or in other appropriate ways. The processor 902 can process instructions for execution within the computing device 900 (including instructions stored in the memory 904 or the storage device 906) to display graphical information of a GUI on an external input / output device (such as a display 916 coupled to the high-speed interface 908). In other embodiments, multiple processors and / or multiple buses, as well as multiple memories and various types of memories, can be used appropriately. In addition, multiple computing devices 900 can be connected, each of which provides a portion of the necessary operations (for example, as a server group, a group of blade servers, or a multi-processor system).
[0076] The memory 904 stores information within the computing device 900. In one embodiment, the memory 904 is one or more volatile memory units. In another embodiment, the memory 904 is one or more non-volatile memory units. The memory 904 may also be another form of computer-readable medium, such as a magnetic disk or optical disk.
[0077] The storage device 906 can provide mass storage for the computing device 900. In one embodiment, the storage device 906 can be or include a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device or a tape device, a flash memory or other similar solid-state storage device, or an array of devices, including devices in a storage area network or other configurations. A computer program product can be tangibly included in an information carrier. The computer program product can also include instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer or machine-readable medium, such as a memory 904, a storage device 906, or a memory on a processor 902.
[0078] The high-speed controller 908 manages bandwidth-intensive operations of the computing device 900, while the low-speed controller 912 manages less bandwidth-intensive operations. This allocation of functions is exemplary only. In one embodiment, the high-speed controller 908 is coupled to the memory 904, the display 916 (e.g., through a graphics processor or accelerator), and to the high-speed expansion port 910 that can accept various expansion cards (not shown). In an embodiment, the low-speed controller 912 is coupled to the storage device 906 and the low-speed expansion port 914. The low-speed expansion port, which can include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet), can be coupled to one or more input / output devices, such as a keyboard, a pointing device, a scanner, or a network device, such as a switch or a router, for example, through a network adapter.
[0079] As shown, computing device 900 can be implemented in a variety of different forms. For example, it can be implemented as a standard server 920, or implemented multiple times in a group of such servers. It can also be implemented as a part of a rack server system 924. In addition, it can be implemented in a personal computer such as a laptop computer 922. Alternatively, components from computing device 900 can be combined with other components in a mobile device (not shown) (such as device 950). Each such device can contain one or more of computing devices 900, 950, and the entire system can be composed of multiple computing devices 900, 950 that communicate with each other.
[0080] The computing device 950 includes a processor 952, a memory 964, an input / output device such as a display 954, a communication interface 966, and a transceiver 968, among other components. The device 950 may also be provided with a storage device (such as a microdrive or other device) to provide additional storage. Each of the components 950, 952, 964, 954, 966, and 968 are interconnected using various buses, and several components may be mounted on a common motherboard or in other suitable ways.
[0081] Processor 952 can execute instructions within computing device 640, including instructions stored in memory 964. The processor can be implemented as a chipset of chips, which includes separate and multiple analog and digital processors. The processor can provide, for example, coordination of other components of device 950, such as control of a user interface, applications running on device 950, and wireless communications of device 950.
[0082] The processor 952 can communicate with the user through the control interface 648 and the display interface 956 coupled to the display 954. The display 954 can be, for example, a TFTLCD (Thin-Film-Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other suitable display technology. The display interface 956 may include appropriate circuits for driving the display 954 to present graphics and other information to the user. The control interface 958 can receive commands from the user and convert the commands to submit to the processor 952. In addition, an external interface 962 can be provided to communicate with the processor 952 to allow the device 950 to communicate with other devices in the near area. The external interface 962 can, for example, provide wired communication in some embodiments, or provide wireless communication in other embodiments, and multiple interfaces can also be used.
[0083] The memory 964 stores information within the computing device 950. The memory 964 can be implemented as one or more computer-readable media, one or more volatile storage units, or one or more non-volatile storage units. An expansion memory 954 can also be provided and connected to the device 950 via an expansion interface 952, which can include, for example, a SIMM (Single In Line Memory Module) card interface. This expansion memory 954 can provide additional storage space for the device 950, or can also store applications or other information for the device 950. Specifically, the expansion memory 954 can include instructions for executing or supplementing the above-mentioned process, and can also include security information. Therefore, for example, the expansion memory 954 can be provided as a device 950 security module and can be programmed with instructions that allow the safe use of the device 950. In addition, a secure application can be provided by a SIMM card and additional information (such as placing identification information on the SIMM card in an unbreakable manner).
[0084] As described below, the memory may include, for example, flash memory and / or NVRAM memory. In one embodiment, a computer program product is tangibly embodied in an information carrier. The computer program product includes instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer or machine readable medium, such as the memory 964, the expansion memory 954, the memory on the processor 952, or a propagated signal that can be received, for example, via the transceiver 968 or the external interface 962.
[0085] The device 950 can communicate wirelessly via a communication interface 966, which may include digital signal processing circuitry when necessary. The communication interface 966 may provide communications in various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS. Such communications may occur, for example, via a radio frequency transceiver 968. In addition, short-range communications may be performed, such as using Bluetooth, WiFi, or other such transceivers (not shown). In addition, a GPS (Global Positioning System) receiver module 950 may provide additional navigation and location-related wireless data to the device 950, which may be used appropriately by applications running on the device 950.
[0086] Device 950 may also communicate audibly using audio codec 960, which may receive verbal information from a user and convert it into usable digital information. Audio codec 960 may also generate audible sounds for the user, such as through a speaker, for example, in handheld device 950. Such sounds may include sounds from voice phone calls, may include recorded sounds (e.g., voice messages, music files, etc.), and may also include sounds generated by applications running on device 950.
[0087] As shown, computing device 950 can be implemented in many different forms. For example, it can be implemented as a cellular phone 980. It can also be implemented as a part of a smart phone 982, a personal digital assistant or other similar mobile device.
[0088] Various implementations of the systems and techniques described herein can be implemented in digital electronic circuit systems, integrated circuit systems, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations may include implementations in the form of one or more computer programs that can be executed and / or parsed on a programmable system including at least one programmable processor, which can be special-purpose or general-purpose, coupled to receive data and instructions from a storage system, at least one input device, and at least one output device, and to send data and instructions to the storage system, at least one input device, and at least one output device.
[0089] These computer programs (also referred to as programs, software, software applications, or code) include machine instructions for a programmable processor and may be implemented in high-level procedural and / or object-oriented programming languages and / or assembly / machine languages. As used herein, the terms "machine-readable medium," "computer-readable medium," refer to any computer program product, apparatus, and / or device (e.g., disk, optical disk, memory, programmable logic device (PLD)) for providing machine instructions and / or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal for providing machine instructions and / or data to a programmable processor.
[0090] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including sound, voice, or tactile input.
[0091] The systems and techniques described herein can be implemented in a computing system that includes a back-end component (e.g., as a data server), or includes a middleware component (e.g., an application server), or includes a front-end component (e.g., a client computer with a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described herein), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet.
[0092] A computing system may include clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship of client and server is created by computer programs running on respective computers and having a client-server relationship to each other.
[0093] Although the present disclosure includes some specific scenarios, these should not be interpreted as limitations on the scope of the present disclosure or what may be claimed, but rather as descriptions of features of example embodiments of the present disclosure. Certain features described in the present disclosure in the context of separate embodiments may also be provided in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be provided separately in multiple embodiments, or in any suitable sub-combination. In addition, although the above-mentioned features may be described as working in certain combinations, and even initially claimed for the above-mentioned features, in some cases, one or more features in the claimed combination may be deleted from the combination, and the claimed combination may be directed to a sub-combination or a variation of the sub-combination.
[0094] Similarly, although operations are depicted in a particular order in the accompanying drawings, this should not be understood as requiring that the operations be performed in the particular order shown or in the sequential order, or that all of the operations shown be performed, in order to obtain the desired results. In some cases, multitasking and parallel processing may be advantageous. In addition, the separation of various system components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated into a single software product or packaged into multiple software products.
[0095] Thus, specific embodiments of the present disclosure have been described. Other embodiments are also within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve the desired results. Many embodiments have been described. However, it should be understood that various modifications can be made without departing from the spirit and scope of the present disclosure. For example, the various forms of the processes shown above can be used, with steps reordered, added or removed. Therefore, other embodiments are also within the scope of the appended claims.
Claims
1. A method for providing a digital component, comprising: Receiving, by one or more computers, a request for a digital component to present one or more electronic documents at a client device; providing, by the one or more computers, to a client device a set of first digital components and a digital component priority queue indicating a presentation order of the first digital components, wherein the digital component priority queue is configured to be accessed by the client device when an electronic document of the one or more electronic documents is presented at the client device, so that when the electronic document is presented at the client device, a digital component to be presented with the electronic document is selected from the digital components specified in the digital component priority queue; After receiving the first digital component at the client device, providing, by the one or more computers, to the client device one or more second digital components received at the client device; and Updating, by the one or more computers, a digital component priority queue at the client device to include the one or more second digital components comprises causing the client device to insert the one or more second digital components into the digital component priority queue based on a priority indicator assigned to each second digital component.
2. The method according to claim 1, further comprising: selecting, during a first time period, a set of first digital components from a first plurality of digital components; and The one or more second digital components are selected from a second plurality of digital components during a second time period following the first time period.
3. The method according to claim 1, wherein: The one or more second digital components are received at a client device subsequent to the aggregation of the one or more digital components based on each of the one or more second digital components having a larger file size than each of the first digital components.
4. The method according to claim 1, further comprising: receiving, by the one or more computers, a set of first digital components from one or more first third-party computing systems during a first period of time; and The one or more second digital components are received by the one or more computers from one or more second third-party computing systems during a second time period after the second time period.
5. The method according to claim 1, wherein: Each first digital component includes an assigned priority indicator, and a presentation order indicated by the digital component priority queue based on the priority indicator assigned to each first digital component and the priority indicator assigned to each second digital component.
6. The method according to claim 1, wherein: Updating the digital component priority queue includes causing each second digital component to be inserted into the digital component priority queue based on a priority indicator assigned to the second digital component rather than a time when the second digital component was added to the digital component priority queue.
7. The method according to claim 1, wherein: The client device selects a given digital component from the digital component queue to be presented together with the given electronic document in response to a user selecting the given electronic document from the composite page, and presents the given digital component together with the given electronic document in response to the user selecting the given electronic document.
8. The method according to claim 1, wherein: The set of first digital components is received at the client device within a specified delay constrained time period, and the one or more second digital components are received at the client device after expiration of the specified delay constrained time period.
9. A system for providing a digital component, comprising: Data processing equipment; and A memory storage device in data communication with the data processing device, the memory storage device storing instructions executable by the data processing device and causing the data processing device to perform operations when the instructions are executed, including: receiving a request for a digital component to present one or more electronic documents at a client device; providing a set of first digital components and a digital component priority queue indicating a presentation order of the first digital components to a client device, wherein the digital component priority queue is configured to be accessed by the client device when an electronic document of the one or more electronic documents is presented at the client device, so that when the electronic document is presented at the client device, a digital component is selected from the digital components specified in the digital component priority queue to be presented with the electronic document; After receiving the first digital component at the client device, providing to the client device one or more second digital components received at the client device; and Updating the digital component priority queue at the client device to include the one or more second digital components includes causing the client device to insert the one or more second digital components into the digital component priority queue based on a priority indicator assigned to each second digital component.
10. The system according to claim 9, wherein: The operations include: selecting a set of first digital components from a first plurality of digital components during a first time period; and The one or more second digital components are selected from the second plurality of digital components during a second time period following the first time period.
11. The system according to claim 9, wherein: The one or more second digital components are received at a client device subsequent to the aggregation of the one or more digital components based on each of the one or more second digital components having a larger file size than each of the first digital components.
12. The system according to claim 9, wherein: The operations include: receiving, by the data processing apparatus, a set of first digital components from one or more first third-party computing systems during a first time period; and The one or more second digital components are received by the data processing apparatus from one or more second third party computing systems during a second time period following the second time period.
13. The system according to claim 9, wherein: Each first digital component includes an assigned priority indicator, and a presentation order indicated by the digital component priority queue based on the priority indicator assigned to each first digital component and the priority indicator assigned to each second digital component.
14. The system according to claim 9, wherein: Updating the digital component priority queue includes causing each second digital component to be inserted into the digital component priority queue based on a priority indicator assigned to the second digital component rather than a time when the second digital component was added to the digital component priority queue.
15. The system according to claim 9, wherein: The client device selects a given digital component from the digital component queue to be presented together with the given electronic document in response to a user selecting the given electronic document from the composite page, and presents the given digital component together with the given electronic document in response to the user selecting the given electronic document.
16. The system of claim 9, wherein: The set of first digital components is received at the client device within a specified delay constrained time period, and the one or more second digital components are received at the client device after expiration of the specified delay constrained time period.
17. A non-transitory computer storage medium encoded with a computer program, the program comprising instructions that, when executed by a data processing apparatus, cause the data processing apparatus to perform operations comprising: receiving a request for a digital component to present one or more electronic documents at a client device; providing a set of first digital components and a digital component priority queue indicating a presentation order of the first digital components to a client device, wherein the digital component priority queue is configured to be accessed by the client device when an electronic document of the one or more electronic documents is presented at the client device, so that when the electronic document is presented at the client device, a digital component is selected from the digital components specified in the digital component priority queue to be presented with the electronic document; After receiving the first digital component at the client device, providing to the client device one or more second digital components received at the client device; and Updating the digital component priority queue at the client device to include the one or more second digital components includes causing the client device to insert the one or more second digital components into the digital component priority queue based on a priority indicator assigned to each second digital component.
18. The non-transitory computer storage medium of claim 17, wherein: The operations include: During a first time period, selecting a set of first digital components from a first plurality of digital components; and The one or more second digital components are selected from the second plurality of digital components during a second time period following the first time period.
19. The non-transitory computer storage medium of claim 17, wherein: The one or more second digital components are received at a client device subsequent to the aggregation of the one or more digital components based on each of the one or more second digital components having a larger file size than each of the first digital components.
20. The non-transitory computer storage medium of claim 17, wherein: The operations include: receiving, by the data processing apparatus, a set of first digital components from one or more first third-party computing systems during a first time period; and The one or more second digital components are received by the data processing apparatus from one or more second third party computing systems during a second time period following the second time period.
Citation Information
Patent Citations
Predictive query suggestion caching
CN103221951A
Distance based search ranking demotion
CN105637511A