Selection and provision of digital components while viewing content
By generating scores for digital components based on duration, priority, and location, the method achieves a balanced selection and fair distribution of components during content presentation, addressing the imbalance in existing techniques.
Patent Information
- Application Number
- JP2024101978
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-01-07
- Filing Date
- 2024-06-25
- Publication Date
- 2025-12-23
- Estimated Expiration
- 2041-04-02
AI Technical Summary
Existing techniques for selecting and providing digital components during content presentation often result in an imbalance or bias towards digital components with shorter or longer durations, leading to an unfair distribution.
A method that generates scores for digital components based on duration, priority, location requirements, and availability to achieve a balanced selection, ensuring fair distribution by selecting the combination with the highest total score for presentation within content slots.
The method ensures an even distribution of digital components of varying durations, addressing the imbalance in existing selection strategies and promoting fairness in digital component delivery.
Smart Images

Figure 0007791253000004 
Figure 0007791253000005 
Figure 0007791253000006
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to U.S. Provisional Patent Application No. 63 / 134,921, filed January 7, 2021, entitled SELECTION AND PROVISION OF DIGITAL COMPONENTS DURING DISPLAY OF CONTENT, the disclosure of which is incorporated herein by reference.
[0002] TECHNICAL FIELD This specification relates to data processing, and in particular to the selection and presentation of one or more digital components for presentation during the display of content. [Background technology]
[0003] The Internet provides access to digital content, such as video, audio, or multimedia clips, provided by content delivery systems (e.g., search platforms, social media platforms, or other platforms that host digital content). Users can view such digital content using applications (e.g., web browsers, native applications) running on client devices such as smartphones, tablets, and personal computers.
[0004] The content delivery system may also provide digital components (e.g., digital content that is not part of or originally included in the digital content) for presentation on a client device during presentation of the digital content. For example, the digital content (e.g., a video clip) may be paused for one or more time intervals during its presentation, and during each of these time intervals (referred to as a slot), and one or more digital components provided by the digital component system may be presented on the client device. Presentation of the digital content may resume after the digital component has been completely presented or after the duration of the slot has elapsed. Summary of the Invention [Means for solving the problem]
[0005] In general, one inventive aspect of the subject matter described in this specification can be embodied in a method including operations of identifying a plurality of digital components; and for each digital component of the plurality of digital components, determining (i) a maximum number N of digital components that can be provided in a slot of particular content and (ii) a time T that specifies a total duration of the slot, where a slot is a location within the particular content at which one or more digital components can be provided; generating a score based on (i) the duration of the digital component, (ii) a location requirement for the digital component that specifies whether the digital component needs to be provided at a particular location out of M available locations within the slot, where each available location spans a particular duration of the particular content and at which a single digital component can be provided for presentation, and (iii) the number of times the digital component is available for provision within the slot; selecting, from the plurality of digital components, a first set of digital components having the highest set of scores for provision within the slot based on the scores of the plurality of digital components; and providing the first set of digital components for provision within the slot during display of the particular content on a client device.
[0006] Other embodiments of this aspect include corresponding methods, apparatus, and computer programs encoded on computer storage devices and configured to perform the actions of the methods. These and other embodiments may each optionally include one or more of the following features.
[0007] The method may further include generating a score based on (i) a priority value assigned to the digital component, the priority value representing the importance of providing the digital component to the client device, and (ii) a satisfaction ratio representing the number of digital components of the particular duration that have been previously provided for display to the client device relative to the total number of digital components of the particular duration that are available for provision to the client device.
[0008] The method can include determining the number of times a digital component is available for presentation within a slot based on (i) a maximum number N of digital components, (ii) a time T specifying a total duration of the slot, and (iii) a location requirement for the digital component. The method can include M consecutive locations.
[0009] The method may include generating a score based on (i) the duration of the digital components, (ii) a location requirement for the digital components, and (iii) the number of times the digital components can be provided within N available locations, where the generating step includes: grouping the digital components into a plurality of classes based on the duration of the digital components; determining a location requirement for each of the plurality of classes, where the location requirement for each class specifies a specific location of a slot in which digital components of the class will be provided for display; determining, for each class, the number of times digital components from each class can be provided for display within the slot based on (i) a maximum number N of digital components that can be provided within the slot, (ii) a time T that specifies the total duration of the slot, and (iii) the location requirement for the class; calculating a duration coefficient for each class as the reciprocal of the number of times digital components from the class can be included in the slot; and generating a score for each digital component of the plurality of digital components based on (i) a priority value, (ii) a satisfaction rate, and (iii) the calculated duration coefficient of the class to which the digital component belongs.
[0010] The method may include identifying a plurality of classes of digital components of different durations, each class representing a group of digital components of a particular duration; for each class, determining a target number of digital components to be provided to the client device; determining a number of digital components previously provided for display to the client device; calculating a ratio based on the target number and the number of digital components previously provided for display to the client device; and generating a satisfaction index based on the ratios calculated for the plurality of classes.
[0011] Particular embodiments of the subject matter described herein may be implemented to achieve one or more of the following advantages: As described above, a content delivery system selects and delivers digital components to a client device. Generally, the digital components provided to a client device may vary in their respective duration. Some existing techniques for selecting and providing digital components seek to maximize the total number of digital components selected for display within a slot and provided to a client device (as described further below), which generally results in a bias toward selecting and providing digital components with shorter durations (compared to other digital components), resulting in an imbalance in the selection and delivery of digital components. For example, when digital components are being provided over a 45-second slot, three 15-second digital components may be selected and provided instead of one 45-second digital component, or one 30-second digital component and one 15-second digital component. Other existing techniques for selecting and providing digital components for slots with longer durations tend to favor digital components with longer durations. As a result, such existing techniques disproportionately favor the selection of digital components of shorter or longer durations relative to other digital components. In contrast, the techniques and methods described herein enable an equal / balanced selection of digital components of different durations.
[0012] The details of one or more embodiments of the subject matter described herein are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, drawings, and claims. [Brief explanation of the drawings]
[0013] [Figure 1]FIG. 1 illustrates an exemplary environment in which digital content and digital components are delivered and presented to client devices. [Figure 2] 1 is a flow diagram of an example process for selecting a digital component. [Figure 3] 10 is a flow diagram of an example process for generating a duration coefficient. [Figure 4] FIG. 1 is a block diagram of an exemplary computer system that can be used to perform the described operations. DETAILED DESCRIPTION OF THE INVENTION
[0014] Client devices (e.g., smartphones, tablets, and personal computers) connected to the Internet can be provided with content by a content delivery system (e.g., a search platform, a social media platform, or another platform that hosts digital content). This content can include slots that pause or otherwise interrupt the presentation / display / streaming of content for a period of time so that digital content not originally included in the content can be presented to the user of the client device. As used throughout this specification, the phrase “digital component” refers to a distinct unit of digital content or digital information (e.g., a video clip, an audio clip, a multimedia clip, an image, text, or another unit of content). Generally, a digital component is distinct from the content and is selected for presentation based on the context in which the content is being displayed (e.g., day, time, user characteristics, and device characteristics). For example, a digital component can be selected and provided by a system (e.g., a digital component system) different from the system that provides the digital content. Furthermore, a digital component is generally created by an entity other than the entity that created the content and is therefore considered third-party content relative to the content.
[0015] To facilitate the presentation of digital components during the presentation of digital content, the content includes (or references) a series of slots generated for the content. A slot specifies a timestamp within the duration of the content at which the presentation of the content can be interrupted and a digital component can be provided. For example, assume that a client device is using a particular video provided by a content delivery system as a streaming service. Also assume that the particular video being presented on the client device has a duration of 10 minutes and includes a slot 5 minutes from the beginning of the particular video. In such an embodiment, an application presenting the particular video can determine that the slot is located at the 5-minute presentation point within the video. Based on this determination, the application can pause (or otherwise interrupt) the presentation of the particular video when playback reaches the 5-minute mark and present the digital component provided by the digital component system while playback of the particular video is interrupted. After presenting the digital component (or at the end of the slot duration), the application resumes the presentation of the particular video. A slot can further specify constraints, including a maximum number of digital components that can be provided within the slot and / or a maximum total duration, specifying the total time allotted to the digital components provided within the slot. For example, if a slot specifies that a maximum of three digital components can be provided in the slot, then no more than three digital components can be displayed consecutively by the slot. In another example, if a slot specifies that the maximum total duration of the slot is 45 seconds, then any number of digital components can be selected for display in the slot until and unless the total duration of all selected digital components is 45 seconds or less.As another example, if a slot specifies both constraints, such as that a maximum of three digital components can be provided within the slot and that the maximum total duration of the slot is 45 seconds, then no more than three digital components can be displayed consecutively by the slot, and the maximum three digital components can be selected such that the total duration of the three digital components is no more than 45 seconds.
[0016] Depending on the particular implementation, there may be one or more slots for presenting a digital component. In one exemplary implementation, a slot may accommodate a single digital component, while in other implementations, a slot may accommodate two or more digital components.
[0017] The durations of digital components can vary. As described above, existing techniques for selecting digital components for delivery to a client device generally maximize the total number of digital components that can be presented on the client device during a slot, resulting in a disproportionate selection of digital components with shorter durations (compared to other digital components with longer durations). Other existing techniques that attempt to select digital components with longer durations and do not attempt to maximize the total number of digital components result in a disproportionate selection of digital components with longer durations. In either case, existing selection strategies result in a bias toward the selection of digital components with particular durations. In contrast, the techniques and methods described herein enable an even / balanced selection of digital components of different durations for presentation within slots included in particular content. The techniques described herein achieve this by selecting digital components based not only on the duration of the digital components but also on other attributes related to constraints imposed by the digital components and constraints imposed by the slots in which the digital components will be provided.In some embodiments, and as described in more detail herein, the techniques described herein generate a score for each digital component in a set of digital components based on various factors related to the slot, such as (1) the maximum number of digital components that can be provided in a slot and (2) the total duration of the slot, as well as factors related to the digital component, such as (1) the duration of the digital component, (2) a location requirement for the digital component that specifies whether the digital component needs to be provided in a particular location among the available locations in the slot, (3) the number of times the digital component can be provided in the slot, (4) the type of digital component (e.g., a video or audio digital component), and (5) a priority of the digital component that indicates the importance of presenting the digital component on the client device. The resulting score for each digital component represents the likelihood that providing the digital component in the slot will maintain a balanced / fair distribution of digital components of different durations. For example, a higher score for a digital component indicates a higher likelihood that delivery of the digital component will result in a balanced / fair distribution of the digital component, while a lower score for the digital component indicates a lower likelihood that delivery of the digital component will result in a balanced / fair distribution of the digital component.
[0018] Based on the scores generated for the digital components in the set of digital components, one or more digital components (e.g., those with the highest scores) are selected and provided for display in a slot included in the content being presented on the client device. For example, a slot may accommodate different combinations (or sets) of digital components of various durations. Each of the different combinations of digital components may have a total score (e.g., the sum of the scores of the digital components) based on the scores of the digital components included in each combination. In some embodiments, the combination with the highest total score (also referred to as the global score) is selected for the slot.
[0019] These and additional features are further described below with reference to FIGS.
[0020] 1 illustrates an exemplary environment 100 in which digital content and digital components are delivered and presented to client devices. The exemplary environment 100 includes a network 110. The network 110 may include a local area network (LAN), a wide area network (WAN), the Internet, or a combination thereof. The network 110 may also include any type of wired and / or wireless network, a satellite network, a cable network, a Wi-Fi network, a mobile communication network (e.g., 3G, 4G, 5G, etc.), or any combination thereof. The network 110 may utilize communication protocols, including packet-based and / or datagram-based protocols, such as Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), or other types of protocols. The network 110 may further include several devices that facilitate network communication and / or form the hardware foundation for the network, such as switches, routers, gateways, access points, firewalls, base stations, repeaters, or a combination thereof. The network 110 connects client devices 150, a content database 160, and a content distribution system 140.
[0021] Client device 150 is an electronic device capable of requesting and receiving resources over network 110. Exemplary client devices 150 include personal computers, tablet devices, wearable devices, digital assistant devices (e.g., smart speakers), mobile communication devices, and other devices capable of sending and receiving data over network 110. Client device 150 typically includes a user application, such as a web browser, to facilitate sending and receiving data over network 110, although native applications executed by client device 150 may also facilitate sending and receiving data over network 110. For example, client device 150A is an exemplary smartphone device running video streaming application 152. In some embodiments, input accepted by client device 150 includes audio (e.g., voice) input received through a microphone of the client device. Similarly, output provided by client device 150 can be audio (e.g., synthesized speech) output presented using a speaker that is part of the client device.
[0022] Client device 150 generates a content request 112 that is sent over network 110 to content delivery system 140. For example, client device 150A may generate the content request 112 in the form of a packetized data request that includes header and payload data. The content request 112 may include event data that specifies features such as the name (or network location) of the server from which content is being requested, the name (or network location) of the requesting device (e.g., client device 150), and / or information that content delivery system 140 can use to select one or more pieces of content to provide in response to the request. The content request 112 is transmitted by client device 150 over network 110 (e.g., a telecommunications network) to a server of content delivery system 140.
[0023] The content request 112 may include event data related to other information, such as information provided by a user of a client device, geographic information indicating the state or region in which the content request 112 was submitted, or other information that provides context about the environment in which the requested content will be displayed (e.g., the time of the component request, the day of the week for the component request, the type of device on which the requested content will be displayed, such as a mobile device or tablet device). The content request 112 may be transmitted, for example, over a packetized network, and the content request 112 itself may be formatted as packetized data having a header and payload data. The header may specify the destination of the packet, and the payload data may include any of the information discussed above.
[0024] In response to receiving the content request 112 and / or using information included in the content request 112, the content delivery system 140 selects content (e.g., video or audio) from the content database 160 to be provided to the client device 150. In some embodiments, the content database 160 includes millions of available pieces of content that are indexed. Each index entry references corresponding content and may specify one or more slots defined for the corresponding content, each slot being a location within the content at which one or more digital components can be provided. In some embodiments, each index entry may also include data specifying attributes of each of one or more slots of a particular piece of content. For example, an index entry may specify one or more slots, a timestamp for each of the one or more slots (e.g., specifying the time the slot begins from the beginning of the presentation of the content and / or the time the slot ends from the beginning of the presentation of the content), and a duration (referred to as T) for each of the slots. In another example, each index entry may further include the number of digital components (referred to as N) that can be accommodated in each of the one or more slots, and one or more location requirements for the one or more slots.
[0025] For example, client device 150A generates content request 112 for specific content in content database 160, which includes slots for the provision of digital components. After receiving content request 112, content delivery system 140 generates response 114 including data needed to present the specific content from content database 160, along with data specifying attributes of the slots needed to present the digital components. In some embodiments, response 114 may include the URL (or another resource identifier) of the content in content database 160, as well as attributes of one or more slots, such as, for example, a timestamp for each slot, the maximum number (N) of digital components that can be provided consecutively in each of the one or more slots, and the duration (T) of each of the one or more slots, and, optionally, location requirements for the digital components to be presented in the slots. Response 114 is transmitted to client device 150A over network 110. Client device 150A uses the data received in response 114 to provide the specific content, for example, by rendering the content via video streaming application 152 running on client device 150A. Client device 150A also uses data specifying slot attributes to present the digital components. For example, the data specifying slot attributes included in response 114 defines the slot and a start (and / or end) timestamp for the slot. The data may further define that the number of digital components that can be provided in the slot is three, i.e., N=3. The data may further define that the duration T of the slot is 60 seconds, i.e., T=60 seconds.
[0026] In some embodiments, after receiving response 114, client device 150A generates requests for the digital components based on data specifying attributes of the slot for providing the digital components. Depending on the particular implementation, the client device may either generate a single request for N digital components or generate N requests for a single digital component. Continuing with the above example, client device 150A generates three separate requests 116a, 116b, and 116c for digital components to be provided during the slot. After receiving each of requests 116a, 116b, and 116c, content delivery system 140 selects digital components dc1, dc2, and dc3 and generates responses 118a, 118b, and 118c, respectively, such that each response includes digital components dc1, dc2, and dc3, respectively. Responses 118a, 118b, and 118c are transmitted to client device 150A. Client device 150A interrupts displaying the content at the slot's timestamp and sequentially displays digital components dc1, dc2, and dc3 that were included in responses 118a, 118b, and 118c. Alternatively, the N digital components or resource identifiers (e.g., URLs) for the N digital components can be provided along with response 114 so that separate requests 116 and responses 118 do not need to be generated. This has the advantage of reducing the bandwidth and resources required for the additional network communication required for request 116 and response 118.
[0027] In some implementations, digital components can be characterized by different attributes, such as the duration of the digital component, the priority of the digital component, etc. For example, digital component provider 130 can provide and / or generate digital components of different durations that can vary based on the context of the digital component or the digital component delivery strategy. For example, the duration of a digital component can be 15 seconds, 30 seconds, or 40 seconds.
[0028] In some embodiments, each digital component has an associated priority p that represents the importance of the delivery of the digital component and the presentation of the digital component on the client device. In some implementations, the priority of the digital component is set by the digital component provider 130. For example, the digital component provider 130 may launch a campaign to promote a particular product. To promote the campaign, the digital component provider 130 may provide multiple digital components that are contextually related to the particular product. To promote the campaign quickly, the digital component provider 130 may assign priorities to the digital components of the campaign. In another example, the digital component provider 130 may assign priorities to particular types of digital components. For example, the digital component provider 130 may assign a higher priority to video-based digital components compared to audio-based digital components. In some embodiments, the content delivery system 140, after receiving the priority associated with each digital component, selects the digital components for delivery to the client device based on the priority. In some embodiments, the content delivery system 140 may calculate a priority for each digital component. For example, content delivery system 140 may prioritize digital components based on the monetary value paid to content delivery system 140 by digital component providers 130. In another example, content delivery system 140 may prioritize the selection and delivery of digital components based on the context of the digital components. For example, digital components that are contextually related to the digital content being accessed by the user of the client device may be assigned a higher priority compared to other digital components.In such an embodiment, content delivery system 140 selects for delivery or provides a higher weighting (for selection purposes) to digital components having a higher priority. For example, assume there are two types of digital components, where a first type of digital component has a higher priority compared to a second type of digital component. Because content delivery system 140 selects (or weights its selection of) digital components based on priority, content delivery system 140 is more likely to select the first type of digital component for delivery compared to the second type of digital component.
[0029] While displaying digital components on a client device, the content delivery system 140 and the digital component provider 130 may desire that digital components be selected fairly for delivery and display on the client device. For example, assume that a slot has a duration of 45 seconds, i.e., T=45 seconds, and the total number of digital components that can be included in the slot is three, i.e., N=3. Assume further that the content delivery system 140 has an inventory of digital components with durations of 15 seconds, 30 seconds, and 40 seconds. Temporarily assuming that other factors, such as priority, are not considered in the selection of digital components, Table 1 below shows a possible selection configuration of digital components that will be offered for presentation within the slot.
[0030] [Table 1] Table 1 shows that a 45-second duration slot can accommodate digital components of different durations, with each row of the table representing a combination of digital components selected for the slot. For example, content delivery system 140 can select (1) a single digital component having a 40-second duration, (2) a single digital component having a 30-second duration, (3) three digital components having a 15-second duration, or (4) two digital components, the first of which has a 15-second duration and the second of which has a 30-second duration.
[0031] As mentioned above, existing techniques for selecting digital components either seek to maximize the number of digital components that can be presented during a slot, or seek to maximize the selection of digital components with longer durations. In either case, the selection strategy results in an imbalance / unfairness in the selection of digital components with shorter or longer durations, respectively. The techniques and methods further described herein with reference to Figures 2 and 3 help to alleviate the above-mentioned problems.
[0032] 2 is a flow diagram of an example process 200 for unbiased selection of digital components. The operations of process 200 may be performed by, for example, content distribution system 140 to select digital components for presentation on a client device. The operations of process 200 may also be implemented as instructions stored on a computer-readable medium, execution of the instructions may cause one or more data processing devices to perform the operations of process 200.
[0033] Although process 200 is described below with reference to providing digital components to be displayed consecutively within a particular slot, the techniques and methods presented herein may be implemented to provide digital components for presentation within multiple slots (which may or may not be consecutive).
[0034] A plurality of digital components are identified (210). A digital component provider 130 offers the plurality of digital components for delivery and display on a client device. A content delivery system 140, which delivers the digital components to a client device 150, can receive the plurality of digital components for delivery to the client device from multiple digital component providers 130 as deemed appropriate. In some implementations, the content delivery system 140 can have access to a catalog / inventory (or list) of digital components from different digital component providers 130 that can be provided to the client device. For example, the content delivery system 140 can maintain, for each digital component provider 130, a list of the digital components identified by the component provider 130 and the corresponding resource locations / URLs of those digital components.
[0035] The content delivery system 140 determines (220) the maximum number N of digital components that can be provided for presentation within a particular content slot, and a total time T that specifies the total duration of the N available slots. In some embodiments (and as described above with reference to FIG. 1 ), for particular content to be provided for presentation on the client device 150, the content delivery system 140 accesses an index entry corresponding to the particular content (described above with reference to FIG. 1 ), which provides one or more slot attributes / parameters defined for that particular content. Thus, based on accessing the index entry, the content delivery system 140 determines the attributes of the particular slot, including the maximum number N of digital components that can be provided for presentation within a particular content slot, the duration (T) of the slot, and one or more location requirements for the slot.
[0036] The content delivery system 140 generates a score for each of the plurality of digital components (230). In such an embodiment, the content delivery system 140 generates a score for each of the plurality of digital components that maintains a balanced and fair distribution of digital components with different characteristics, such as the duration of the digital component, the context of the digital component, or the type of digital component (e.g., audio-only or video-only digital components). The score is based on (i) the duration of the digital component, (ii) the priority of the digital component as determined by the content delivery system, (iii) the satisfaction rate of the digital component, (iv) the location requirements of the digital component, and (v) the number of times the digital component can be placed in the slot given the constraints. The score for each digital component represents the likelihood that the digital component will appear in the slot. A higher score relative to other available digital components indicates a higher likelihood that the digital component will appear in the slot. A lower score relative to other available digital components indicates a lower likelihood that the digital component will appear in the slot. The generation of the score for each digital component is further described below with reference to FIG. 3.
[0037] The content delivery system 140 selects (240) a first set of digital components based on the generated scores. In some embodiments, based on the generated scores for each of the plurality of digital components, the content delivery system 140 selects the first set of digital components having the highest scores relative to the remaining digital components. For example, assume that the digital component provider 130 has 100 digital components from which the content delivery system 140 selects and delivers to the client device. For each of the 100 digital components, the content delivery system 140 generates a score and selects one or more digital components (referred to as the first set of digital components) having the highest scores.
[0038] In some implementations, the content delivery system 140 selects the first set of digital components using a selection process that maximizes a global score calculated by summing the individual scores of each of the selected digital components in the first set. The selection process can include one or more constraints. For example, the selection process can select the digital components such that the total duration of the selected digital components is less than or equal to the duration of the slot, such that the duration required to consecutively display the selected digital components does not exceed the slot duration. In another example, the selection process can select the digital components to satisfy a location requirement for each selected digital component.
[0039] Another approach to selecting the first set of digital components for a slot is to select multiple sets of digital components based on constraints such as location requirements, maximum slot duration, and digital component duration. Given the existence of multiple sets of digital components, the content delivery system 140 can calculate a total score for each set of digital components based on the scores of the digital components that make up the set. Finally, the content delivery system 140 can select the set of digital components with the highest global score from the multiple sets of digital components as the first set. For example, the content delivery system 140 can perform a brute force approach to generate all possible combinations of digital components based on one or more constraints and location requirements. The content delivery system 140 can then generate a global score for each combination of digital components and select the combination with the highest global score as the first set.
[0040] In some embodiments, the cardinality of the first set of digital components is determined by the scores and the total duration of each digital component selected based on the duration of the slot in which the selected digital components are to be presented on the client device. For example, assume that the duration of a slot during which content is presented on a client device is 60 seconds. The content delivery system 140 selects the digital component (e.g., dc1) with the highest generated score, which has a duration of 40 seconds. While selecting another digital component, the content delivery system 140 can calculate the duration of the slot remaining after the presentation of digital component dc1, which in this case is 20 seconds. The content delivery system 140 can then select the digital component with the second highest score that can be accommodated within the remaining time of the slot, or generate a score for a new digital component and select digital components from the newly generated score and the scores of the previously generated scores until the maximum number of digital components has been selected for the slot.
[0041] The content delivery system 140 provides the first set of digital components to the client device (250). After selecting the first set of digital components based on the generated scores, the content delivery system generates responses to each of the client device's requests for digital components, each including the selected digital components for presentation on the client device. For example, after receiving each of requests 116a, 116b, and 116c, the content delivery system 140 selects digital components dc1, dc2, and dc3 and generates responses 118a, 118b, and 118c, each including digital components dc1, dc2, and dc3, respectively. The responses 118a, 118b, and 118c are sent to client device 150A, where they are displayed in slots during presentation of the particular content.
[0042] In some embodiments, content delivery system 140 may select fewer than N digital components after receiving N requests for digital components. For example, content delivery system 140 may select digital components dc1 and dc2 after receiving each of requests 116a, 116b, and 116c and generate two responses 118a and 118b that include digital components dc1 and dc2, respectively. Note that the maximum number of digital components (N) is considered an upper bound, and that no more than N digital components may be presented in a slot (and that fewer than N digital components may be presented in a slot).
[0043] Figure 3 is a flow diagram of an example process for generating a score for each of a plurality of digital components, as described with reference to operation 230 of Figure 2. The operations of process 300 may be performed by, for example, content distribution system 140 to select digital components for presentation on a client device. The operations of process 300 may also be implemented as instructions stored on a computer-readable medium, execution of the instructions may cause one or more data processing devices to perform the operations of process 300.
[0044] The content delivery system 140 groups the digital components into classes (310). In some embodiments, the content delivery system 140 groups the digital components into classes based on the duration of each of the digital components. As described with reference to FIGS. 1 and 2, the digital component provider 130 can create multiple digital components and make the digital components available to the content delivery system 140 for delivery / provision to client devices. For example, the digital components can be of three lengths, such as 15 seconds, 30 seconds, or 45 seconds. Thus, the content delivery system 140 can generate three groups / classes of digital components: one group / class of digital components having a duration of 15 seconds, another group / class of digital components having a duration of 30 seconds, and another group / class of digital components having a duration of 45 seconds.
[0045] In some embodiments, the content delivery system 140 can group digital components into classes based on specific criteria defined regarding the duration of the digital components. In some embodiments, the criteria can be based on a level of granularity set by a system designer and / or user. For example, finely tuned class eligibility criteria can define a class that can include all digital components having a duration between 20 and 25 seconds, i.e., greater than 20 seconds and less than 25 seconds. In comparison, a coarse-grained classification can define a class that can include all digital components having a duration between 15 and 30 seconds, i.e., greater than 15 seconds and less than 30 seconds.
[0046] The content delivery system 140 determines (320) location requirements for each of the multiple classes. In some implementations, the digital component provider 130 may desire to place a particular digital component in a particular location relative to other digital components within a slot. For example, assume that the digital component provider 130 provides digital components belonging to two classes: (i) a class of digital components having a duration of 15 seconds (referred to as Class A) and (ii) a class of digital components having a duration of 30 seconds (referred to as Class B). If the digital component provider 130 desires that a digital component belonging to Class B be presented on the client device 110 in a position that is neither the first nor the last of the digital components within the slot, the digital component provider 130 asserts a location requirement. In another example, the location requirement for a digital component can be generated by the content delivery system 140 based on characteristics of the digital component and the digital content accessed by the user of the client device. For example, content delivery system 140 selects four digital components for delivery and display on a client device based on the context of the digital content accessed by the user. Content delivery system 140 may further determine that two of the four digital components presented separately have greater importance to the user compared to two digital components presented consecutively, and thus generates location requirements for the digital components.
[0047] In yet another example, the position requirement for a digital component within a slot is based on how the content delivery system 140 acquires the digital component for the slot. For example, the content delivery system 140 may specify that the first digital component to be displayed in a slot having T=45 seconds and N=3 must be acquired through a real-time bidding process, such as an auction. Assume that the digital component selected through such a bidding process has a duration of 30 seconds. In such a situation, the position requirement for the 30-second digital component is that it must be displayed first.
[0048] In some embodiments, the digital component provider 130 may enable the content delivery system 140 to access a catalog / inventory that maintains digital components, the respective location requirements of each of the digital components, along with other attributes of each digital component. The content delivery system 140 may access the catalog / inventory to access the location requirements of each of the digital components while generating a score for the digital components. The content delivery system determines (330) the number of times that digital components from a particular class can be included in a slot. In some embodiments, the content delivery system 140 determines the number of times that digital components from a particular class can be included in a slot based on (i) the maximum number N of digital components that can be provided in a slot, (ii) a time T that specifies the total duration of the slot, and (iii) the location requirements for the class. This is illustrated using the following example.
[0049] For example, assume that a slot has a duration of 60 seconds (T=60 seconds) and can accommodate up to three digital components (N=3). Also assume that the digital components available for the slot belong to the following two classes of digital components: (i) a class of digital components having a duration of 15 seconds (referred to as Class A), and (ii) a class of digital components having a duration of 30 seconds (referred to as Class B). Further assume that digital component provider 130 has a position requirement for Class B that specifies that digital components from Class B cannot be placed as the first or last digital component in the slot. In such a situation, content delivery system 140 can select digital components in the following order: [Table 2]
[0050] In the above example, digital components are selected based on location requirements for class B. In this example, content distribution system 140 determines that one digital component from class B can be included in the slot (e.g., in the second location) and two digital components from class A can be included in the slot (e.g., in the first and third locations).
[0051] In another example, assume that a slot has a duration of 75 seconds (T=75 seconds) and can accommodate up to three digital components (N=3). Also assume that the digital components available for the slot belong to the following two classes of digital components: (i) a class of digital components having a duration of 15 seconds (referred to as Class A), and (ii) a class of digital components having a duration of 30 seconds (referred to as Class B). Further assume that digital component provider 130 has a position requirement of Class B that specifies that a digital component from Class B cannot be placed as the first digital component in the slot. In such a situation, content delivery system 140 can select digital components in the following order: [Table 3]
[0052] In this example, the digital components are selected based on location requirements for class B. In this example, content distribution system 140 determines that two digital components from class B can be included in the slot (e.g., in the second and third locations) and one digital component from class A can be included in the slot (e.g., in the first location).
[0053] The content distribution system 140 calculates (340) a duration factor. In some embodiments, the content distribution system 140 calculates the duration factor for each digital component as the inverse of the number of times a digital component from a particular class can be included in a slot (as determined in operation 140 above). Continuing with the example above, if a digital component from class B can be included in a slot in the second and third positions, thereby including a digital component from class B twice, then the duration factor for the digital component of class B is 1 / 2. Similarly, the duration factor for a digital component of class A is 1 (because a component from class A can only be selected once, and the inverse of 1 is 1).
[0054] The content delivery system 140 generates (350) a score for each digital component of the plurality of digital components based on the priority value of the class to which the digital component belongs, the satisfaction rate, and the calculated duration coefficient. In some embodiments, a priority value is determined by the content delivery system 140 for each digital component or each class of digital components (as described above with reference to FIGS. 1 and 2). In some embodiments, the satisfaction rate represents the number of digital components of a particular duration that have been previously provided to a client device relative to the total number of digital components of a particular duration that are available for provision to the client device. In some embodiments, the satisfaction rate is calculated for each class of digital components, as described further below.
[0055] For each class, content delivery system 140 determines a target number of digital components of the class that should be provided to client devices. For example, assume that content delivery system 140 has 100 digital components for delivery, resulting in 50 digital components belonging to class A of digital components having a duration of 15 seconds and another 50 digital components belonging to class B of digital components having a duration of 30 seconds. In this example, content delivery system 140 determines that the target number of digital components of class A that should be provided to client devices is 50 and the target number of digital components of class B that should be provided to client devices is 50.
[0056] For each class, content delivery system 140 determines the number of digital components that have been previously provided to the client device. In some embodiments, content delivery system 140 maintains a count of digital components of each class that have been previously provided to the client device (e.g., by incrementing a counter for each class each time a digital component of the class is provided). In such embodiments, the content delivery system determines the number of digital components that have been previously provided to the client device by accessing the value of the counter for a particular class. For example, assume that content delivery system 140 has already selected and delivered to client device 150 40 digital components from class A and 15 digital components from class B. In this example, content delivery system 140 determines that the number of digital components of class A that have been previously provided to the client device is 40 and the number of digital components of class B that have been previously provided to the client device is 15. In this example, the number of digital components that have not yet been provided is 10 for class A and 35 for class B. The content delivery system 140 calculates the satisfaction rate using (i) the number of digital components of the class that have already been delivered to and displayed on the client device, and (ii) the target number of digital components of the class, as described below.
[0057] Satisfaction rate クラス = (Number of digital components delivered) クラス / (target number of digital components) クラス Depending on the implementation, the satisfaction rate can be a fraction or percentage or any other expression based on the number of digital components in the class and the target number of digital components in the class. In some implementations, the satisfaction rate can be based on the number of digital components that have been delivered to the client device over a particular duration. In such implementations, the satisfaction rate can be based on (i) the number of digital components that have been delivered within a certain time period, regardless of the class of the digital components, and (ii) the expected number of digital components that should have been delivered within the same time period, regardless of the class of the digital components. For example, the number (X 送達済み ) digital components are delivered to the client device within a time period t, regardless of the class of the digital components, and the expected number of digital components that should have been delivered within the same time period t, regardless of the class of the digital components, is (X 期待 ), the satisfaction rate can be expressed as follows:
[0058] Satisfaction rate = (X 送達済み *t) / (X 予測 *t) The content delivery system generates a score for each digital component based on (i) the priority value of the class to which the digital component belongs, (ii) the satisfaction rate, and (iii) the calculated duration factor, which can be expressed using the following formula:
[0059] V(p,d,s)=F(p)G(d)H(s) where function V is parameterized by the digital component's priority p, duration factor d, and satisfaction rate r. Functions F, G, and H map their respective inputs, i.e., p, d, and s, and generate values for each of their respective inputs that can be used to generate a score. For example, function G can be a function that characterizes digital components based on their class to promote fair distribution of digital components across classes. As previously mentioned with reference to step 310 of process 300, the class of a digital component is based on the digital component's duration. However, depending on the particular implementation, the class may be based on one or more characteristics, such as the digital component's priority, location factor, satisfaction rate, and / or context. Functions F and H can be functions that linearly or nonlinearly manipulate the digital component's priority p and satisfaction rate s into a value space such that the generated values of functions F and H can promote fair distribution of digital components. For example, if function F is directly proportional to priority p, then the value generated by function F will be relatively higher for digital components with high priority compared to the value generated by function F for digital components with lower priority. As another example, function H may generate a value greater than 0.5 if delivery of digital components is below the expected number of digital components that should have been delivered according to satisfaction rate s. Similarly, function H may generate a value less than 0.5 if a number of digital components are delivered that is greater than the expected number of digital components according to satisfaction rate s. In some implementations, functions F, G, and H may consider constraints imposed by slot durations, digital component durations, and digital component location requirements while calculating their respective generated values.
[0060] In some embodiments, these functions can be further parameterized and / or defined using learnable parameters. For example, functions F, G, and H can be machine learning models that can learn the learnable parameters through training by adjusting the values of the learnable parameters. For example, function G can be a machine learning model that receives a duration coefficient d as an input and is configured to generate a predicted value that can be used to calculate a score for the digital component. These functions can be determined and modified by the system designer.
[0061] 4 is a block diagram of an exemplary computer system 400 that may be used to perform the operations described above. The system 400 includes a processor 410, a memory 420, a storage device 430, and an input / output device 440. Each of the components 410, 420, 430, and 440 may be interconnected using, for example, a system bus 450. The processor 410 is capable of processing instructions for execution within the system 400. In some implementations, the processor 410 is a single-threaded processor. In another implementation, the processor 410 is a multi-threaded processor. The processor 410 is capable of processing instructions stored in the memory 420 or on the storage device 430.
[0062] The memory 420 stores information within the system 400. In one implementation, the memory 420 is a computer-readable medium. In some implementations, the memory 420 is a volatile memory unit. In other implementations, the memory 420 is a non-volatile memory unit.
[0063] The storage device 430 is capable of providing mass storage for the system 400. In some implementations, the storage device 430 is a computer-readable medium. In various different implementations, the storage device 430 may include, for example, a hard disk device, an optical disk device, a storage device shared by multiple computing devices over a network (e.g., a cloud storage device), or some other mass storage device.
[0064] The input / output device(s) 440 provide input / output operations for the system 400. In some implementations, the input / output device(s) 440 may include one or more of a network interface device, e.g., an Ethernet card, a serial communication device, e.g., and an RS-232 port, and / or a wireless interface device, e.g., and an 802.11 card. In another implementation, the input / output device(s) may include a driver device configured to receive input data and send output data to the peripheral device(s) 460, e.g., a keyboard, a printer, and a display device. However, other implementations, such as a mobile computing device, a mobile communication device, a set-top box, a television client device, etc., may also be used.
[0065] Although an exemplary processing system is illustrated in FIG. 4, implementations of the subject matter and functional operations described herein may be implemented in other types of digital electronic circuitry, or in computer software, firmware, or hardware, or in combinations of one or more of them, including the structures disclosed herein and their structural equivalents.
[0066] Embodiments of the present subject matter and operations described herein may be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed herein and structural equivalents thereof, or in one or more combinations thereof. Embodiments of the subject matter described herein may be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on one or more computer storage media for execution by or to control the operation of a data processing apparatus. Alternatively or additionally, the program instructions may be encoded on an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, generated to encode information for transmission to a suitable receiver apparatus for execution by a data processing apparatus. The computer storage medium may be or be included in a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of these. Moreover, while a computer storage medium is not a propagating signal, a computer storage medium may be a source or destination of computer program instructions encoded in an artificially generated propagated signal. A computer storage medium may also be, or be included in, one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).
[0067] The operations described herein may be implemented as operations performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.
[0068] The term "data processing apparatus" encompasses all kinds of apparatuses, devices, and machines for processing data, including, by way of example, a programmable processor, a computer, a system-on-chip, or a plurality or combination of the above. An apparatus may include special-purpose logic circuitry, e.g., an FPGA (field-programmable gate array) or an ASIC (application-specific integrated circuit). In addition to hardware, an apparatus may also include code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or one or more combinations thereof. The apparatus and execution environment may implement a variety of different computing model infrastructures, such as web services, distributed computing infrastructures, and grid computing infrastructures.
[0069] A computer program (also known as a program, software, software application, script, or code) may be written in any form of programming language, including compiled or interpreted, declarative or procedural, and may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program may be stored within a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program, or in multiple cooperating files (e.g., files storing one or more modules, subprograms, or portions of code). A computer program may be deployed to be executed on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communications network.
[0070] The processes and logic flows described herein may be implemented by one or more programmable processors executing one or more computer programs to perform actions by operating on input data and generating output. The processes and logic flows may also be implemented by, and apparatus may be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
[0071] Processors suitable for executing computer programs include, by way of example, both general-purpose and special-purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory or a random-access memory, or both. The essential elements of a computer are a processor for performing actions in accordance with the instructions and one or more memory devices for storing instructions and data. Generally, a computer also includes one or more mass storage devices, e.g., magnetic, magneto-optical, or optical disks, for storing data, or is operatively coupled to a mass storage device to receive data from, transfer data to, or both. However, a computer need not have such devices. Moreover, a computer may be incorporated into another device, e.g., a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few examples. Suitable devices for storing computer program instructions and data include, by way of example, all forms of non-volatile memory, non-volatile media, and non-volatile memory devices, including semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices, magnetic disks, e.g., internal hard disks or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks. The processor and memory may be augmented by, or incorporated in, special purpose logic circuitry.
[0072] To provide for interaction with a user, embodiments of the subject matter described herein may be implemented on a computer having a display device, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user, as well as a keyboard and pointing device, such as a mouse or trackball, through which the user can provide input to the computer. Other types of devices may also be used to provide for interaction with a user. For example, feedback provided to the user may be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback, and input from the user may be received in any form, including acoustic input, voice input, or tactile input. Additionally, a computer may interact with a user by sending documents to and receiving documents from a device used by the user, e.g., by sending a web page to a web browser on the user's client device in response to a request received from the web browser.
[0073] Embodiments of the subject matter described herein may be implemented in a computing system that includes back-end components, e.g., data servers, or middleware components, e.g., application servers, or front-end components, e.g., client computers having graphical user interfaces or web browsers through which users can interact with an implementation of the subject matter described herein, or any combination of one or more such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication, such as, for example, a communications network. Examples of communications networks include local area networks (“LANs”) and wide area networks (“WANs”), internetworks (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
[0074] 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 arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server sends data (e.g., HTML pages) to client devices (e.g., to display data to and receive user input from a user interacting with the client device). Data generated at the client device (e.g., the result of user interaction) may be received at the server from the client device.
[0075] While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any invention or what may be claimed, but rather as descriptions of features specific to particular embodiments of a particular invention. Some features described herein in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as working in several combinations, and may even initially be claimed as such, one or more features from a claimed combination may, in some cases, be deleted from the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.
[0076] Similarly, while operations are shown in the figures in a particular order, this should not be understood as requiring such operations to be performed in the particular order shown or in a sequential order, or that all of the illustrated operations be performed, to achieve desirable results. In some situations, multitasking and parallel processing may be advantageous. Moreover, 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 may generally be incorporated together in a single software product or packaged in multiple software products.
[0077] Thus, specific embodiments of the present subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown or sequential order to achieve desirable results. In some implementations, multitasking and parallel processing may be advantageous. [Explanation of symbols]
[0078] 100 Example Environments 110 Network 112 Content Request 114 responses 116, 116a~c requests 118, 118a~c Responses 130 Digital Component Providers 140 Content Delivery System 150, 150A Client Device 152 Video Streaming Applications 160 content databases 300 processes 400 System 410 processor 420 memory 430 Storage Devices 440 Input / Output Devices 450 System Bus 460 Output data to peripheral devices dc1~3 digital component
Claims
1. 1. A computer-implemented method comprising: identifying a plurality of digital components; generating a score for each digital component of the plurality of digital components based on (i) a duration of the digital component and (ii) a location requirement for the digital component that specifies where the digital component may be provided in a particular content slot in which one or more digital components may be provided; selecting a first set of digital components for presentation in the slot based on the scores for the plurality of digital components; providing the first set of digital components within the slot during display of the particular content on a client device; 11. A computer-implemented method comprising:
2. 2. The computer-implemented method of claim 1, wherein identifying a slot within a particular piece of content in which one or more digital components can be provided includes determining (i) a maximum number N of digital components that can be provided in the slot, and (ii) a time T that specifies a total duration of the slot.
3. 3. The computer-implemented method of claim 2, wherein the location requirement specifies where the digital component can be provided among M available locations within the slot, each available location among the M available locations spanning a particular duration of the particular content, and within that location a single digital component can be provided.
4. The generation of the score includes: (i) the number of times the digital component is available for presentation within the slot; (ii) a priority value assigned to the digital component, the priority value representing the importance of providing the digital component to the client device; and (iii) a satisfaction ratio representing the number of digital components of said particular duration that have been previously provided for display on a client device relative to the total number of digital components that are available for provision to the client device; The computer-implemented method of claim 3, further based on at least one of:
5. selecting the first set of digital components selecting a first set of digital components from the plurality of digital components having a set of highest scores for presentation within the slot based on the scores for the plurality of digital components; 2. The computer-implemented method of claim 1, comprising:
6. 5. The computer-implemented method of claim 4, wherein the number of times the digital components are available for presentation within the slot is based on (i) the maximum number N of digital components, (ii) the time T specifying the total duration of the slot, and (iii) the location requirements for the digital components.
7. generating the score comprises: grouping the digital components into a plurality of classes based on the duration of the digital components; determining location requirements for each of the plurality of classes, the location requirements for each class specifying a particular location in the slot where digital components of that class will be provided for display; determining, for each class, the number of times that a digital component from each class may be provided for display within the slot based on (i) the maximum number N of digital components that may be provided within a slot, (ii) the time T specifying the total duration of the slot, and (iii) the positional requirements for the class; calculating a duration factor for each class as the inverse of the number of times a digital component from said class can be included in said slot; generating the score for each digital component of the plurality of digital components based on (i) the priority value, (ii) the satisfaction rate, and (iii) the calculated duration factor of the class to which the digital component belongs; 5. The computer-implemented method of claim 4, comprising:
8. the number M of available locations comprises M consecutive locations; generating the satisfaction rate, identifying a plurality of classes of digital components of different durations, each class representing a group of digital components of a particular duration; For each class, determining a target number of digital components to be provided to the client device; determining a number of digital components previously provided for display on the client device; calculating a ratio based on the target number and a number of digital components previously provided for display on the client device; generating the satisfaction rate based on the ratios calculated for the plurality of classes; 5. The computer-implemented method of claim 4, comprising:
9. 1. A system comprising: one or more data processing devices; at least one memory coupled to said one or more data processing devices; wherein said at least one memory records one or more programming instructions that, when executed by said one or more data processing devices, perform operations, said operations comprising: an act of identifying a plurality of digital components; generating a score for each digital component of the plurality of digital components based on (i) a duration of the digital component and (ii) a location requirement for the digital component that specifies where the digital component may be provided in a particular content slot in which one or more digital components may be provided; selecting a first set of digital components for presentation in the slot based on the scores for the plurality of digital components; providing the first set of digital components within the slot during display of the particular content on a client device; Including, the system.
10. 10. The system of claim 9, wherein the act of identifying a slot within a particular piece of content in which one or more digital components can be provided includes the acts of determining (i) a maximum number N of digital components that can be provided in the slot, and (ii) a time T that specifies the total duration of the slot.
11. 11. The system of claim 10, wherein the location requirement specifies where the digital component can be provided from among M available locations within the slot, each available location among the M available locations spanning a particular duration of the particular content, and within that location a single digital component can be provided.
12. The generation of the score includes: (i) the number of times the digital component is available for presentation within the slot; (ii) a priority value assigned to the digital component, the priority value representing the importance of providing the digital component to the client device; and (iii) a satisfaction ratio representing the number of digital components of said particular duration that have been previously provided for display on a client device relative to the total number of digital components that are available for provision to the client device; The system of claim 11 further based on at least one of:
13. the act of selecting the first set of digital components selecting, based on the scores for the plurality of digital components, a first set of digital components from the plurality of digital components having a set of highest scores for presentation within the slot; The system of claim 9, comprising:
14. 13. The system of claim 12, wherein the number of times the digital components are available for presentation within the slot is based on (i) the maximum number N of the digital components, (ii) the time T specifying the total duration of the slot, and (iii) the location requirement for the digital components.
15. the act of generating the score comprises: grouping the digital components into classes based on the duration of the digital components; determining location requirements for each of the plurality of classes, the location requirements for each class specifying a particular location in the slot where digital components of that class will be provided for display; determining, for each class, the number of times that a digital component from each class may be provided for display in the slot based on (i) a maximum number N of the digital components that may be provided in a slot, (ii) the time T specifying the total duration of the slot, and (iii) the positional requirements for the class; calculating a duration factor for each class as the inverse of the number of times a digital component from said class can be included in said slot; generating the score for each digital component of the plurality of digital components based on (i) the priority value, (ii) the satisfaction rate, and (iii) the calculated duration factor of the class to which the digital component belongs; 15. The system of claim 14, comprising:
16. the number M of available locations comprises M consecutive locations; The operation of generating the satisfaction rate includes: an operation of identifying a plurality of classes of digital components of different durations, each class representing a group of digital components of a particular duration; For each class, determining a target number of digital components to be provided to the client device; determining a number of digital components previously provided for display on the client device; calculating a ratio based on the target number and a number of digital components previously provided for display on the client device; generating the satisfaction rate based on the ratios calculated for the plurality of classes; 15. The system of claim 14, comprising:
17. A non-transitory computer readable medium storing instructions that, when executed by one or more data processing devices, cause the one or more data processing devices to perform operations, the operations including: an act of identifying a plurality of digital components; generating a score for each digital component of the plurality of digital components based on (i) a duration of the digital component and (ii) a location requirement for the digital component that specifies where the digital component may be provided in a particular content slot in which one or more digital components may be provided; selecting a first set of digital components for presentation in the slot based on the scores for the plurality of digital components; providing the first set of digital components within the slot during display of the particular content on a client device; 1. A non-transitory computer-readable medium comprising:
18. 20. The non-transitory computer-readable medium of claim 17, wherein the act of identifying a slot within a particular piece of content in which one or more digital components can be provided includes the acts of determining (i) a maximum number N of digital components that can be provided in the slot, and (ii) a time T that specifies a total duration of the slot.
19. 20. The non-transitory computer-readable medium of claim 18, wherein the location requirement specifies where the digital component can be provided from among M available locations within the slot, each available location among the M available locations spanning a particular duration of the particular content, and within that location a single digital component can be provided.
20. The generation of the score includes: (i) the number of times the digital component is available for presentation within the slot; (ii) a priority value assigned to the digital component, the priority value representing the importance of providing the digital component to the client device; and (iii) a satisfaction ratio representing the number of digital components of said particular duration that have been previously provided for display on a client device relative to the total number of digital components that are available for provision to the client device; 20. The non-transitory computer-readable medium of claim 19, further based on at least one of:
Citation Information
Patent Citations
Dynamic content allocation and optimization
JP2018088296A
Predicting interruptions in content streams
JP2020501396A
Digital video content modification
JP2020528680A
Dynamic Application Content Analysis
JP2021530758A