Controlling resource allocation for exposure of application features
By monitoring and analyzing variable temporal intensity of application features using a statistical model, the method optimizes resource allocation to enhance user engagement and reduce costs, addressing the challenge of balancing performance and cost in application feature exposure.
Patent Information
- Application Number
- PCT/IL2025/050586
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-07-22
- Filing Date
- 2025-07-08
- Publication Date
- 2026-01-29
AI Technical Summary
Balancing resource allocation for application features to optimize performance and user experience while managing operational costs is challenging, as excessive allocation can increase costs and reduce performance, while insufficient allocation may lead to unavailability and lack of user engagement.
A computer-implemented method and system that monitors variable temporal intensity of application features, analyzes using a statistical model to determine a recommended target resource allocation, and generates instructions to modify resource allocation accordingly, optimizing engagement and cost through a bootstrap process and clustering into buckets.
This approach optimizes resource allocation to enhance user engagement and reduce operational costs by predicting the optimal resource levels for application features, improving user experience and system efficiency.
Smart Images

Figure IL2025050586_29012026_PF_FP_ABST
Abstract
Description
[0001] CONTROLLING RESOURCE ALLOCATION FOR EXPOSURE
[0002] OF APPLICATION FEATURES
[0003] RELATED APPLICATION
[0004] This application claims the benefit of priority of U.S. Provisional Patent Application No. 63 / 673,807, filed on July 22, 2024, the contents of which are incorporated herein by reference in their entirety.
[0005] FIELD AND BACKGROUND OF THE INVENTION
[0006] The present invention, in some embodiments thereof, relates to allocation of resources and, more specifically, but not exclusively, to systems and methods for allocation of resources for exposure of application features.
[0007] A tradeoff of resource allocation involves balancing performance and cost. Allocating more resources can enhance application performance and user experience but increases operational costs. Conversely, limiting resources can reduce costs but may lead to slower performance or unavailability during high demand. Finding the optimal balance requires careful analysis of usage patterns, performance requirements, and budget constraints to meet both operational efficiency and user satisfaction.
[0008] SUMMARY OF THE INVENTION
[0009] According to a first aspect, a computer-implemented method for controlling resources allocated for exposure of one or more application features, the method comprises: monitoring, by at least one processor of at least one server, at least one variable temporal intensity of at least one application feature of an application over a predetermined period, wherein each application feature is allocated a certain amount of resources over the predetermined period for exposure thereof, analyzing, by the at least one processor, each variable temporal intensity of each application feature using at least a statistical model for determining a recommended target amount of resources to allocate for exposure, the target amount is predicted to generate a target temporal intensity level for each application feature over a second period subsequent to the predetermined period by exposure thereof, and generating instructions, by the at least one processor, for modifying the resources allocated for exposure of each application feature to the recommended target amount during the second period predicted to generate the target temporal intensity level.
[0010] According to a second aspect, a system for controlling resources allocated for exposure of one or more application features, comprises: at least one processor executing a code for: monitoring, by at least one processor of at least one server, at least one variable temporal intensity of at least one application feature of an application over a predetermined period, wherein each application feature is allocated a certain amount of resources over the predetermined period for exposure thereof, analyzing, by the at least one processor, each variable temporal intensity of each application feature using at least a statistical model for determining a recommended target amount of resources to allocate for exposure, the target amount is predicted to generate a target temporal intensity level for each application feature over a second period subsequent to the predetermined period by exposure thereof, and generating instructions, by the at least one processor, for modifying the resources allocated for exposure of each application feature to the recommended target amount during the second period predicted to generate the target temporal intensity level.
[0011] According to a third aspect, a non-transitory medium storing program instructions for controlling resources allocated for exposure of one or more application features, which when executed by at least one processor of at least one server, cause the at least one processor to: monitor at least one variable temporal intensity of at least one application feature of an application over a predetermined period, wherein each application feature is allocated a certain amount of resources over the predetermined period for exposure thereof, analyze each variable temporal intensity of each application feature using at least a statistical model for determining a recommended target amount of resources to allocate for exposure, the target amount is predicted to generate a target temporal intensity level for each application feature over a second period subsequent to the predetermined period by exposure thereof, and generate instructions for modifying the resources allocated for exposure of each application feature to the recommended target amount during the second period predicted to generate the target temporal intensity level.
[0012] In a further implementation form of the first, second, and third aspects, the at least one application feature includes usage of the application as a whole.
[0013] In a further implementation form of the first, second, and third aspects, the recommended target amount of resources is for obtaining a recommended exposure level to each of the one or more application features.
[0014] In a further implementation form of the first, second, and third aspects, the variable temporal intensity includes identifying at least one of: a) changes in engagement of users of a plurality of client terminals with each of the one or more application features of the application over the predetermined period, and b) changes in exposure level to each of the one or more application features over the predetermined period.
[0015] In a further implementation form of the first, second, and third aspects, analyzing comprises inputting, by the at least one processor, the identified changes in engagement of users and the identified changes in exposure level into the statistical model for determining a recommended exposure level for one or more of the application features for the second period subsequent to the monitoring period, wherein the target amount of resources to allocate is for obtaining the recommended exposure level.
[0016] In a further implementation form of the first, second, and third aspects, generating instructions comprises generating instructions for one or more applications servers to adapt a future exposure level of the at least one application feature based on the respective recommended exposure level determined by the statistical model.
[0017] In a further implementation form of the first, second, and third aspects, the recommended temporary intensity level of a certain application feature represents a target exposure level predicted to maximize the engagement of users with a certain application feature.
[0018] In a further implementation form of the first, second, and third aspects, the recommended target amount of resources to allocate is selected according to prediction of maximizing the temporal intensity level of the certain application feature.
[0019] In a further implementation form of the first, second, and third aspects, the allocated resources are selected from: network bandwidth, memory utilization, processor utilization, exposure space taken up on a display by the application feature, and amount of time for exposure of the application feature.
[0020] In a further implementation form of the first, second, and third aspects, the changes in exposure is selected from: a number of times the application feature is presented on a display during a time interval, amount of space within a window presenting an underlying application in which the application feature is presented, and amount of time the application feature is presented on a display.
[0021] In a further implementation form of the first, second, and third aspects, the changes in engagement of users is selected from: amount of time a user interacted with the application feature, amount of time before a user closed a pop-up window presenting the application feature, interactions of a user with the application feature, and clicking a link associated with the application feature to access a remote application.
[0022] In a further implementation form of the first, second, and third aspects, further comprising providing, by the at least one processor, the application to a plurality of client terminals, wherein the application is configured to allow each of the plurality of client terminals to send data to one or more servers performing the analysis, wherein monitoring comprises monitoring the data sent by the plurality of client terminals. In a further implementation form of the first, second, and third aspects, the application features comprise game application features, and the application comprises a gaming application.
[0023] In a further implementation form of the first, second, and third aspects, the game application features comprises: requirement for achieving a milestone, ranking of players, parameters controlling earning of in-game currently, costs of benefit items purchasable by players using in-game currency, customizable avatars, tutorials, real-time notifications, interactions between players, and available narratives.
[0024] In a further implementation form of the first, second, and third aspects, monitoring comprises monitoring client terminals providing exposure of the one or more application features of the application on respective displays over the predetermined period, for determining the at least one variable temporal intensity.
[0025] In a further implementation form of the first, second, and third aspects, further comprising: wherein the exposure is of a certain type selected from a plurality of types of exposure, wherein at least one application feature is associated with two or more types of exposure, receiving, by the at least one processor, a predetermined budget including amount of resources for allocation for each type of exposure of a certain application feature, and allocating, by the at least one processor, portions of said resources of the budget to the different exposures of the certain application feature based on the determined recommended target amount predicted to generate the target temporal intensity levels.
[0026] In a further implementation form of the first, second, and third aspects, analyzing the variation of temporal intensity level of each application feature comprises: applying, by the at least one processor, a bootstrap process to augment allocated resources assigned to each predetermined period using random sampling with replacement, and clustering, by the at least one processor, the augmented predetermined period allocated resources into buckets, wherein each bucket represents a group of predetermined periods where the total allocated resources in each bucket is close to a target of allocated resources.
[0027] In a further implementation form of the first, second, and third aspects, determining the recommended target amount of resources to allocate for each application feature is based on the distribution of return on investment (ROI) of the allocated resources for each bucket.
[0028] In a further implementation form of the first, second, and third aspects, analyzing the distribution of ROI for each bucket provides insights into how ROI varies with different levels of allocation of resources for the at least one application feature.
[0029] In a further implementation form of the first, second, and third aspects, the statistical model used for determining the recommended target amount of resources to allocate is a trend extrapolation model that adaptively selects a percentile for each of at least one application feature based on a percentile path over time.
[0030] In a further implementation form of the first, second, and third aspects, further comprising: considering, by the at least one processor, multiple percentile paths for each of the at least one application feature, and allowing, by the at least one processor, for a trend direction change in each of the at least one application feature.
[0031] In a further implementation form of the first, second, and third aspects, further comprising allocating, by the one or more processors, a budget includes resources between the at least one application feature based on the stability of their respective percentile paths and their return on investment (ROI).
[0032] Unless otherwise defined, all technical and / or scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the invention pertains. Although methods and materials similar or equivalent to those described herein can be used in the practice or testing of embodiments of the invention, exemplary methods and / or materials are described below. In case of conflict, the patent specification, including definitions, will control. In addition, the materials, methods, and examples are illustrative only and are not intended to be necessarily limiting.
[0033] BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
[0034] Some embodiments of the invention are herein described, by way of example only, with reference to the accompanying drawings. With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of embodiments of the invention. In this regard, the description taken with the drawings makes apparent to those skilled in the art how embodiments of the invention may be practiced.
[0035] In the drawings:
[0036] FIG. 1 is a block diagram of components of a system for controlling allocation of resources for exposure of one or more application features, in accordance with some embodiments of the present invention; and
[0037] FIG. 2 is a flowchart of a method of controlling allocation of resources for exposure of one or more application features, in accordance with some embodiments of the present invention. DESCRIPTION OF SPECIFIC EMBODIMENTS OF THE INVENTION
[0038] The present invention, in some embodiments thereof, relates to allocation of resources and, more specifically, but not exclusively, to systems and methods for allocation of resources for exposure of application features.
[0039] An aspect of some embodiments of the present invention relates to systems, methods, computing devices, and / or code instructions, for finding an optimum amount of resources to allocate for exposure of a certain application feature of an application, and / or a combination of resources to allocate for multiple exposures of the certain application feature of the application. The exposure of the certain application feature is predicted to result in engagement of users with the application feature. The optimal amount of resources may be determined according to a prediction of the greatest amount of engagement of users with the application per unit of allocated resources. The more resources that are allocated, the greater the exposure, and predicted greater amount of engagement. However, the amount of engagement per unit of allocated resources may vary. Since resources are limited, it is desired to find the optimal amount of resources to allocate for exposure, which is predicted to optimize the engagement per unit of allocated resources.
[0040] An aspect of some embodiments of the present invention relates to systems, methods, computing devices, and / or code instructions, for controlling resources allocated for exposure of one or more application features of an application. A processor(s) of a server(s) monitors at least one variable temporal intensity of at least one of the application features over a predetermined period. Each application feature is allocated a certain amount of resources over the predetermined period for exposure of the application feature to users. The processor(s) analyze each variable temporal intensity of each application feature using at least a statistical model. The analyzing is performed for determining a recommended target amount of resources to allocate for exposure of the certain application feature. The analysis may be performed per application feature, i.e., determining a respective recommended target amount of resources to allocate per application feature. The analysis may be performed for multiple types of exposure of the certain application feature. The target amount of resources to allocate may represent a prediction for generating a target temporal intensity level for each application feature over a second period subsequent to the predetermined period. In other words - the target amount of resources are allocated to obtain a certain amount of exposure for a certain application feature. The certain amount of exposure is predicted to generate the target temporal intensity of the certain application feature. Instructions may be generated by the processor(s) for modifying the resources allocated for exposure of each application feature to the recommended target amount during the second period, where recommended target amount is predicted to generate the target temporal intensity level. Optionally, the variation of temporal intensity level of each application feature is analyzed by applying a bootstrap process to augment allocated resources assigned to each predetermined period, for example, using random sampling with replacement. The augmented allocated resources of different predetermined periods of a common length (e.g., day, 12 hour, 3 days, and a week) are clustered into buckets. Each bucket represents a group of predetermined periods where the total allocated resources in each bucket is close to a target of allocated resources. Each bucket represents a group of predetermined periods (e.g., day, 12 hours, 3 weeks, and a week) where the total amount of allocated resources, such as cost of the total amount of allocated resources, is similar within a tolerance range.
[0041] Optionally, the statistical model used for determining the recommended target amount of resources to allocate is a trend extrapolation model that adaptively selects a percentile for each of the application features based on a percentile path over time.
[0042] Optionally, multiple percentile paths are considered for each of the application features. A trend direction change is allowed in each of the application features.
[0043] The application features may be game application features, and the application may be a gaming application, optionally an online game which may be a multi-player game. Examples of game application features include: requirement for achieving a milestone, ranking of players, parameters controlling earning of in-game currently, costs of benefit items purchasable by players using in-game currency, customizable avatars, tutorials, real-time notifications, interactions between players, and available game narratives.
[0044] The application feature may include usage of the application as a whole. For example, users playing the game, without necessarily considering specific features of the game.
[0045] The application features may be advertisements for products and / or services. The products and / or services may be of the game, for example, in-game benefits available for purchase such as power-ups, swords, armor, and different avatars. The products and / or services may be the game itself, i.e., for playing a multi-player online game. The application may be a process running over which and / or within which the application features are presented. For example, the application may be a web browser, where the advertisements are presented as pop-up windows over a web page being accessed by the web browser, and / or within the web page. In another example, the application may be an online multi-player game, where the advertisements are presented within the game itself, for example, a character is walking in a virtual city street past a billboard presenting the advertisement.
[0046] Examples of allocated resources include technical resources such as computing resources and / or network resources and / or hardware resources and / or software resources. For example: • Network bandwidth. A higher amount of allocated bandwidth may be used for presenting more complex exposures of the application feature, for example, high resolution videos depicting the application feature. A higher amount of data that may be transferred over the network may be used for increased exposure time of the application feature.
[0047] • Exposure space taken up on a display by the application feature. The application feature may be exposed by being presented on a display of a client terminal, optionally within a window overlaid on a presentation of another online application being accessed, for example, a web site, a social network platform, and an online game. The size of the window may be varied. A larger window may be more noticeable, indicating a higher exposure, in comparison to a smaller window.
[0048] • Amount of time for exposure of the application feature. The application feature may be presented on the display of the client terminal for varying amounts of time. For example, a few seconds, a few minutes, as long as the underlying online application is being accessed and presented, and the like.
[0049] • Memory utilization, for example, of a server controlling exposure of the application feature on different client terminals. A higher memory utilization may enable more prolonged and / or more complex presentations of the application feature and / or a larger number of simultaneous presentations on client terminals.
[0050] • Processor utilization, for example, of a server controlling exposure of the application feature on different client terminals. A higher processor utilization may enable more prolonged and / or more complex presentations of the application feature and / or a larger number of simultaneous presentations on client terminals.
[0051] It is noted that the technical resources may be allocated based on financial resources, for example, in-game currency, virtual currency, and fiat currency. The allocated resources may be financial resources. Allocation of financial resources may imply allocation of technical resources, for example, financial resources are used to “buy” or “lease” a certain amount of technical resources. In other terms, allocation of technical resources is based on the amount of available financial resources.
[0052] Optionally, the variable temporal intensity level of each application feature includes identifying one or more of:
[0053] Changes in engagement of users of client terminals with each of the application features of the application over the predetermined period. • Changes in exposure level to each of the application features over the predetermined period.
[0054] Exposure of the application features may refer to presentation of an indication of the application feature on a display of a client terminal. For example, a window presenting an image, video, and / or animation representing the application feature. The window may be presented as an overlay and / or within an underlying presentation. The underlying presentation may be an online process being accessed by the client terminal, for example, a website, a social network platform, a blog, a chat session, an online application (e.g., email, text editor, image editor), and an online game. The indication of the application feature may be an advertisement for the application feature, and / or a link to directly access the application feature. The application feature may be simultaneously exposed on multiple client terminals. Allocated resources may define the amount and / or type and / or quality of exposure of the application features.
[0055] Examples of exposure and / or changes in exposure include, for example, one or more of: number of different client terminals exposed to the application feature, number of exposures for all client terminals, number of exposure per client terminal, total time of amount of time the application feature is presented on one or more displays (i.e., exposure), average time per exposure session (e.g., average amount of time during which the application feature is presented on the display of the client terminal) for all client terminals, average time per exposure of each client terminal, a number of times the application feature is presented on a display during a time interval (e.g., per day, per 3 days, per week), amount of space within a window presenting an underlying application in which the application feature is presented (e.g., 2%, 5%, 10%, 20%, and the like), channel of exposure (e.g., email, message sent to mobile device, telephone call, social network platform, presented when accessing a remotely hosted website).
[0056] Engagement with the application features may refer to users interacting with the exposed application feature, such as via their respective client terminals optionally accessing one or more servers. For example, a user clicking on a window presenting the application feature over a website. In response to the clicking, a website detailing the application feature is presented on the display of the client terminal. In another example, a user playing an online multi-player game is presented with an option to purchase new armor (i.e., the application feature). The engagement may be the user purchasing the new armor.
[0057] Engagement and / or changes in engagement may refer to, for example, percentage of engagements of exposures of application features (e.g., percentage of windows presenting the application features that were clicked over all presentations that were clicked and not clicked), total number of engagements for all client terminals, total number of engagements per client terminal, percentage of engagements that resulted in accessing of the underlying application feature (e.g., out of the number of clicks on the window presenting the application feature, the percentage that resulted in the user of the client terminal actually accessing the application feature), amount of time a user interacted with the application feature, amount of time before a user closed a pop-up window presenting the application feature, type of interaction of a user with the application feature (e.g., clicking, increasing size of the window presenting the application feature, manipulating an object presented in the window), and the like..
[0058] At least one embodiment described herein addresses the technical problem of determining an amount of resources to allocate for exposure of a certain application feature of an application, and / or a combination of resources to allocate for multiple exposures of the certain application feature of the application. The allocation may be an optimal amount of resources for exposure of the application predicted to result in maximal engagement of users with the application feature. For example, presenting a new game feature of a multi-player online game to users accessing different websites related to gaming, and / or while they are playing the multi-player online game and / or another game. The users viewing the presentation may decide to interact with the new game feature, for example, by clicking on a window presenting the new game feature to access the new game feature. At least one embodiment described herein improves the technical field of automated processes for determining allocation of resources. At least one embodiment described herein improves upon prior approaches of allocation of resources.
[0059] An optimal allocation of resources improves performance of a computing device exposing the application feature and / or of a network whose bandwidth is used to expose the application feature and / or of a server exposing the application feature. For example, allocating more processing resources (e.g., of a computing device, server, network router) for exposure of a certain application feature reduces the amount of resources available for executing other processes and / or reduces resources available for exposure of other application features. In another example, allocating more network bandwidth for exposure of a certain application feature reduces the amount of bandwidth available for other communication of other data and / or reduces bandwidth available for exposure of other application features.
[0060] At least one embodiment described herein addresses the technical problem of improving a user experience of a user by controlling exposure of the user to one or more application features of an application. Exposing the user too much to the application feature(s) may be at the expense of lowering user experience using other applications within which the exposure is taking place. For example, the user is viewing an online news site, and a pop-up for a new game feature is presented to the user. If too many exposures are presented to the user on too many applications (e.g., social media sites, other websites, in-game presentations) the user experience of using the applications may decrease. The user may get frustrated and not interact with the exposed application feature(s). On the other hand, if the user is insufficiently exposed to the application feature(s), the user may not be aware of the available application feature(s). The insufficient exposure may not trigger sufficient interest in the user to interact with the application feature(s). The user may not interact with the application feature(s) due to lack of awareness and / or lack of sufficient interest. The user may miss out on the new experience provided by the application feature(s).
[0061] At least one embodiment described herein addresses the aforementioned technical problem(s) and / or improves the aforementioned technical field(s) and / or improves upon the aforementioned technical field(s) by monitoring at least one variable temporal intensity of at least one of the application features over a predetermined period. Each application feature is allocated a certain amount of resources over the predetermined period for exposure of the application feature to users. Each variable temporal intensity of each application feature is analyzed using at least a statistical model. The analyzing is performed for determining a recommended target amount of resources to allocate for exposure of the certain application feature. The analysis may be performed per application feature, i.e., determining a respective recommended target amount of resources to allocate per application feature. The analysis may be performed for multiple types of exposure of the certain application feature.
[0062] At least one embodiment described herein addresses the aforementioned technical problem(s) and / or improves the aforementioned technical field(s) and / or improves upon the aforementioned technical field(s) by bootstrapping and / or clustering into buckets. After augmenting allocated resources (or costs of the allocated resources) per predetermined periods of a common length (e.g., day, 12 hour, 3 days, a week) using a bootstrapping approach, the amount of the allocated resources is clustered into buckets. Each bucket includes data points that have a total amount of allocated resources (e.g., cost) close to a target amount of allocated resources (e.g., target cost). Each bucket represents a group of predetermined periods having a common length where the total amount of allocated resources (e.g., cost) is statistically similar, such as within a tolerance range.
[0063] Potential benefits of clustering into buckets include one or more of:
[0064] 1. Simplification: By grouping similar data points together, the clustering into buckets may simplify the data, makes it easier to analyze and / or interpret.
[0065] 2. Precision: The clustering into buckets may allow for a more precise understanding of how ROI varies with different levels of amount of allocated resources, for example, expenditure on allocated resources. Each bucket may represent a different level of allocated resources (e.g., expenditure). Analyzing the ROI within each bucket may provide insights into how ROI changes with expenditure.
[0066] 3. Efficiency: The clustering into buckets may make computations more efficient. By reducing the number of data points (e.g., from individual amounts of allocated resources per predetermined periods (e.g., daily costs) to a smaller number of buckets, computations may be performed more quickly and with less computational resources.
[0067] 4. Robustness: The clustering into buckets may make the analysis more robust. By grouping similar data points together, the clustering into buckets may reduce the impact of outliers or anomalous data points.
[0068] Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not necessarily limited in its application to the details of construction and the arrangement of the components and / or methods set forth in the following description and / or illustrated in the drawings and / or the Examples. The invention is capable of other embodiments or of being practiced or carried out in various ways.
[0069] The present invention may be a system, a method, and / or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
[0070] The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire. Computer readable program instructions described herein can be downloaded to respective computing / processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers. A network adapter card or network interface in each computing / processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing / processing device.
[0071] Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
[0072] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.
[0073] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function / act specified in the flowchart and / or block diagram block or blocks.
[0074] The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0075] The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and / or flowchart illustration, and combinations of blocks in the block diagrams and / or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
[0076] Reference is now made to FIG. 1, which is a block diagram of components of a system for controlling allocation of resources for exposure of one or more application features, in accordance with some embodiments of the present invention. Reference is also made to FIG. 2, which is a flowchart of a method of controlling allocation of resources for exposure of one or more application features, in accordance with some embodiments of the present invention. System 100 may implement the acts of the method described with reference to FIG. 2 by processor(s) 102 of a computing environment 104 executing code instructions 106A stored in a memory 106 (also referred to as a program store).
[0077] Computing environment 104 may be implemented as, for example one or more and / or combination of: a computing cloud, a group of connected devices, a server, a virtual server, a client terminal, a virtual machine, a desktop computer, a thin client, a network node, and / or a mobile device (e.g., a Smartphone, a Tablet computer, a laptop computer, a wearable computer, glasses computer, and a watch computer).
[0078] Computing environment 104 may find an optimum amount of resources (e.g., stored and / or defined in a resource repository 114B) to allocate for exposure of a certain application feature (e.g., stored and / or defined in an application feature repository 114A) of an application, and / or a combination of resources to allocate for multiple exposures of the certain application feature of the application, as described herein.
[0079] The application feature(s) may be of a game, also referred to herein as a game engine 112A. Users of client terminal(s) 108 may be exposed to features of the game according to allocated resources, as described herein. For example, the users are exposed to different virtual items (for use in the game) being sold by different players of the game while the user is playing the game. The number of times and / or amount of time that each virtual item is exposed to the user may vary according to the amount of in-game currency paid by the other user trying to sell their virtual item.
[0080] In another example, users of client terminal(s) 108 may be exposed to application features of another application hosted by one or more servers 120 while accessing the application hosted by the server(s). For example, the application feature is presented within a window of a browser accessing a web-page hosted on the server(s).
[0081] Game engine 112A may be hosted by a computing platform 112, for example, a server and / or computing cloud. Computing platform 112 may be implemented as, and / or may include, and / or be in communication with, a service engine that manages game engine(s) 112A. Game engine 112A may be designed for interaction by a single player or multiple players (e.g., simultaneously), optionally using respective client terminals 120 via a network 110.
[0082] Multiple architectures of system 100 based on computing device 104 may be implemented. In a centralized architecture, computing device 104 may centrally provide services for controlling allocation of resources. For example, computing device 104 centrally monitors variable temporal intensities, centrally analyzes the variable temporal intensities for determining recommended target amounts of resources to allocate for exposure, and / or centrally generates instructions for modifying the allocated resources accordingly. The centralized processing may be based on multiple client terminals 108 and / or multiple servers 120 where the application feature is being expose. In a local architecture, computing device 104 locally monitors variable temporal intensities, locally analyzes the variable temporal intensities for determining recommended target amounts of resources to allocate for exposure, and / or locally generates instructions for modifying the allocated resources accordingly. The localized processing may be for a single client terminal and / or single server 120 where the application feature is being exposed.
[0083] Computing environment 104 may provide the service of optimum amount of resources to allocate for exposure of a certain application feature of an application, and / or a combination of resources to allocate for multiple exposures of the certain application feature of the application, to different client terminals 108 and / or servers 120, for example by: providing software as a service (SaaS), providing software services accessible using a software interface (e.g., application programming interface (API), software development kit (SDK)), providing an application for local download, providing an add-on to a web browser running on the client terminal(s) 108 and / or server(s) 120, and / or providing functions using a remote access session, such as through an executing web browser accessing a web site hosted by computing environment 104 such as remote access of computing environment 104.
[0084] Processor(s) 102 of computing environment 104 may be implemented, for example, as a central processing unit(s) (CPU), a graphics processing unit(s) (GPU), field programmable gate array(s) (FPGA), digital signal processor(s) (DSP), and application specific integrated circuit(s) (ASIC). Processor(s) 102 may include a single processor, or multiple processors (homogenous or heterogeneous) arranged for parallel processing, as clusters and / or as one or more multi core processing devices.
[0085] Memory 106 stores code instructions executable by processor(s) 102, for example, a random access memory (RAM), read-only memory (ROM), and / or a storage device, for example, non-volatile memory, magnetic media, semiconductor memory devices, hard drive, removable storage, and optical media (e.g., DVD, CD-ROM). Memory 106 stores code 106A that implements one or more features and / or acts of the method described with reference to FIG. 2 when executed by processor(s) 102.
[0086] Computing environment 104 may include a data storage device 114 for storing data, for example, application feature repository 114A set to store and / or define application features for exposure, resource repository 114B set to store and / or define resources for allocation, as described herein. Data storage device 114 may be implemented as, for example, a memory, a local harddrive, virtual storage, a removable storage unit, an optical disk, a storage device, and / or as a remote server and / or computing cloud (e.g., accessed using a network connection). It is noted that code stored on data storage device 114 may be loaded into memory 106 for execution by processor(s) 102.
[0087] Network 110 may be implemented as, for example, the internet, a local area network, a virtual network, a wireless network, a cellular network, a local bus, a point to point link (e.g., wired), and / or combinations of the aforementioned.
[0088] Computing environment 104 may include a network interface 116 for connecting to network 110, for example, one or more of, a network interface card, a wireless interface to connect to a wireless network, a physical interface for connecting to a cable for network connectivity, a virtual interface implemented in software, network communication software providing higher layers of network connectivity, and / or other implementations.
[0089] Computing environment 104 (and / or other components such as client terminals 108, and / or servers 120) includes and / or is in communication with one or more physical user interfaces 150 that include a mechanism for a user to enter data and / or view data. Exemplary user interfaces 150 include, for example, one or more of, a touchscreen, a display, a virtual reality display (e.g., headset), gesture activation devices, a keyboard, a mouse, and voice activated software using speakers and microphone.
[0090] Referring now back to FIG. 2, at 202, an application with one or more application features is provided. The application features may be exposed to users, optionally on client terminals used by users. The client terminal(s) may be accessing one or more servers.
[0091] The client terminals may be accessing the application running on the server(s), for example, a multi-player game, a website, a social network platform, and the like.
[0092] Alternatively or additionally the application may be provided by one or more processors, optionally of one or more servers, to the client terminal(s) used by the users. For example, client terminals may be running a local app version of the application, which may enable connecting the server(s). The provided application which may be executed by the client terminals may be, for example, a web browser for accessing web pages hosted by a server, and / or a game app for accessing game data of a multi-player game managed by a game server.
[0093] The application may be set to allow each of the client terminals to send data to one or more servers performing the analysis (e.g., as described with reference to 206). The monitoring (e.g., as described with reference to 204) may be performed by monitoring the data sent by the client terminals to the server(s), and / or by monitoring the data on the client terminals themselves.
[0094] At 204, variable temporal intensity (intensities) of at least one application feature of the application over a predetermined period, is / are monitored. Client terminals providing exposure of the application feature(s) of the application on respective displays over the predetermined period, may be monitored. The monitoring may be for determining the variable temporal intensity.
[0095] The monitoring is performed by one or more processors, optionally of the server(s). The server(s) may be hosting the application(s) associated with the application features, which are being accessed by client terminals. In another implementation, the monitoring may be by the server(s), based on data sent from the client terminals running the application associated with the application feature.
[0096] Each application feature may be allocated a certain amount of resources over the predetermined period for exposure of the application feature(s) to one or more users optionally via client terminals being used by the users, as described herein.
[0097] The variable temporal intensity includes identifying at least one of:
[0098] * Changes in engagement of users using the client terminals, with each of the application features of the application over the predetermined period. Examples of changes in engagement are described herein.
[0099] * Changes in exposure level to each of the application features over the predetermined period. For example, change in amount of time of each exposure session, change in sum of total exposure time of multiple exposure sessions, change in types of exposure (e.g., switch from web sites to social network platform) and / or change in distribution between different types of exposure (e.g., 20% websites, 30% social network platform, 40% in-game, 10% other).
[0100] The term exposure session may refer to a single exposure of the application feature. For example, a user is presented with a window for a new game feature for 5 seconds, after which the window disappears and / or the content of the window changes. In another example, the user is playing a game. The character controlled by the user is standing beside a sign indicating a new game feature of the game the user is playing. The user is able to control the amount of time that the sign is presented on their display, by maintain the character in proximity to the sign.
[0101] At 206, variable temporal intensity (intensities) of one or more application features are analyzed.
[0102] The analysis is performed by a processor(s), optionally of the server(s).
[0103] The analysis may be performed in different ways, for example, each variable temporal intensity of each application feature is analyzed. In another example, multiple variable temporal intensities of each application feature are analyzed as a whole, where resources are allocated to the multiple variable temporal intensities of a certain application feature. The analysis may be performed by using at least a statistical model for analyzing the variable temporal intensity (or intensities), for example, applying the statistical model to the variable temporal intensity (or intensities) and / or feeding the variable temporal intensity (or intensities) into the statistical model.
[0104] The statistical model may determine a recommended target amount of resources to allocate for exposure of the application feature(s). The target amount of resources may be the amount of resources which are predicted to generate a target temporal intensity level for each application feature over a second period subsequent to the predetermined period by exposure of the application feature(s).
[0105] The recommended target amount of resources generated by the statistical model may be for obtaining a recommended exposure level to each of the different application features. For example, there may be multiple application features of an application, such as new in-game features being introduced for a certain game. Users may be made aware of the different in-game features by different exposure levels. For example, a new avatar may be presented for 30 seconds during a game, and / or 10% of resources may be allocated to exposure of the new avatar. For a new game story, exposure may be for 5 minutes during the game, and / or 60% of resources may be allocated for exposure of the new game story.
[0106] The recommended temporary intensity level of a certain application feature may represent a target exposure level predicted to maximize the engagement of users with the certain application feature. For example, for a new game story of a game, exposing the new game story on a social media platform 5 times daily for a week may be the target exposure level predicted to maximize the number of users that will interact with the new game story. Increasing exposure further is not predicted to further increase the number of new users that will interact with the new game story.
[0107] For example, the statistical model may predict that increasing the number of exposure sessions of the application feature by 50% during the second period may be predicted to increase the interaction by users with the application (and / or application feature(s)) by 30%. In another example, the statistical model may predict that changing the type of exposure from a social network platform to in-game exposure will increase the interactions of users with the application (and / or application feature(s)) by 25%. It is noted that the change in exposure sessions may be associated with a change in financial costs, for example, spending (e.g., of real currency, in-game currency, virtual current) by 50% may be required for increasing the exposure sessions by 50%. In another example, changing the type of exposure may require an increase in spending by 20%.
[0108] The recommended target amount of resources to allocate may be selected according to a prediction of maximizing the temporal intensity level of the certain application feature by the statistical model. For example, the statistical model may predict that allocating sufficient bandwidth to simultaneously present the application feature on client terminals of 1000 users is expected to maximize interactions of users with the application.
[0109] The analysis may include inputting the identified changes in engagement of users and / or the identified changes in exposure level into the statistical model. The statistical model may determine a recommended exposure level for one or more of the application features for the second period subsequent to the monitoring period. The target amount of resources to allocate may be for obtaining the recommended exposure level.
[0110] Optionally, the analysis of the variation of temporal intensity level of each application feature may be done by applying a bootstrap process to augment allocated resources assigned to each predetermined period. The bootstrap process may be performed, for example, using random sampling with replacement. The augmented predetermined period allocated resources may be clustered into buckets. Each bucket represents a group of predetermined periods where the total allocated resources in each bucket is close to and / or equal to a target of allocated resources. The recommended target amount of resources to allocate for each application feature may be based on a distribution of return on investment (ROI) of the allocated resources for each bucket. The ROI may refer to interactions (e.g., of users with the application and / or application features) as a function of allocated resources. The analysis of the distribution of ROI for each bucket may provide insights into how ROI varies with different levels of allocation of resources for the application feature. For example, different levels of allocation of resources may lead to different levels of interactions. The amount of interaction per unit of allocated resource may vary. A maximal amount of interactions per unit of allocated resources may be found.
[0111] An example of the bootstrap and bucket approach in the context of allocation of resources, for example, for promoting a new in-game feature of an online multi-player game: Data on daily amounts of allocated resources (e.g., expenditure, presentation time while accessing online platforms, allocated bandwidth) and corresponding ROI for allocation of assets for promoting the new in-game feature over a period of 100 days, is obtained. The daily amount of allocated resources varies from $100 to $1000, or total exposure time when a client terminal of a user is accessing certain online platforms from 10 minutes - 100 minutes, or total amount of bandwidth of data to present on displays of the cline terminals from 1 Gigabyte - 100 Gigabytes. Initially, the bootstrap method described herein is applied. The bootstrapping, involves resampling this data with replacement to create a larger dataset. The larger dataset may provide a more robust estimate of the amount of allocated resources-ROI relationship. Next, the method for clustering into buckets is applied. The range of amounts of allocated resources is divided into a number (e.g., ten, five, twenty, or other number) of equal intervals also referred to as “buckets”. Each bucket represents a different level of allocation of resources ($100-$200, $200-$300, $900-$1000, or 10-20 minutes, 20-30 minutes, ... 90-100 minutes, or 1-10 Gigabytes, 10-20 Gigabytes,..., 90-100 Gigabytes). For each bucket, the average ROI of the days that fall into that bucket is compute. Now, instead of having 100 different data points, there are ten data points - each representing an average ROI for a certain level of allocated resources. This simplifies the data and makes it easier to analyze. From this analysis, it might be discovered that the average ROI is highest for the $500- $600 expenditure bucket or the 50-60 minute bucket, or the 50-60 Gigabyte bucket. This may provide a valuable insight: an expenditure level of around $500-$600 or 50-60 minutes or 50-60 Gigabytes per day is predicted to provide the best return on our investment for the specific case. By repeating this process for different cases, insights may be gained into the optimal level of allocation of resources for each case. This can guide budget allocation decisions and help maximize the overall ROI.
[0112] Alternatively or additionally, the statistical model used for determining the recommended target amount of resources to allocate may be implemented as a trend extrapolation model that adaptively selects a percentile for each of the application features based on a percentile path over time. Multiple percentile paths may be considered for each of the application features. The processor may be set for allowing for a trend direction change in each of the application features. A budget including resources may be allocated between the application feature(s) based on the stability of their respective percentile paths and their ROIs. The budget may be automatically allocated by the processor(s).
[0113] For example, given three cases of allocation of resources for different application features, denoted Case A, Case B, and Case C. Allocation of resources of the three cases is observed over a certain period of time, and performance data is collected.
[0114] The ROI is calculated for each case at different levels of allocation of resources. The following percentiles are obtained:
[0115] • For Case A, the 70th percentile of ROI corresponds to an expenditure of $1000 or total presentation time when accessing an online platform of 1000 minutes, or total bandwidth allocated for presenting data on client terminals of 1000 Gigabytes.
[0116] • For Case B, the 80th percentile of ROI corresponds to an expenditure of $2000 or total presentation time when accessing an online platform of 2000 minutes, or total bandwidth allocated for presenting data on client terminals of 2000 Gigabytes. • For Case C, the 90th percentile of ROI corresponds to an expenditure of $1500 or total presentation time when accessing an online platform of 1500 minutes, or total bandwidth allocated for presenting data on client terminals of 1500 Gigabytes.
[0117] These percentiles represent the level of allocated resources at which a certain percentage of ROI observations fall below. For example, for Case A, 70% of the ROI observations are below the level achieved with an expenditure of $1000.
[0118] These percentiles may change over time. For example, the 70th percentile for Case A might increase to $1200 or 1200 minutes or 1200 Gigabytes after a few months, indicating that the case is becoming more expensive to achieve the same level of ROI. This sequence of percentiles over time forms a “percentile path”.
[0119] Based on these percentile paths, a decision may be made about how to adjust the intensity of each case in the next time period. For example, if the percentile path for Case A is increasing rapidly, it might be recommended to decrease the intensity of this case and allocate more resources to Cases B or C, which have more stable percentile paths.
[0120] In a scenario where there is a finite budget (e.g., finite amount of resources), these percentile paths may be used to decide how to split the budget between the cases. For example, more budget of resources may be allocated to the cases with the most stable percentile paths and the highest ROI.
[0121] At 208, instructions may be generated for modifying the resources allocated for exposure of each application feature to the recommended target amount during the second period. The modifying is for obtaining the resources predicted to generate the target temporal intensity level.
[0122] The instructions may be generated by the processor(s), optionally of the server(s).
[0123] Optionally, the instructions are generated for instructing, and / or for execution by, one or more applications servers to adapt a future exposure level of the application feature(s) based on the respective recommended exposure level determined by the statistical model.
[0124] Alternatively, the processor(s) automatically performs the modification of the allocated resources. The processor may execute its own generated instructions.
[0125] Examples of modification include:
[0126] • From a current type of exposure to another type of exposure. Two or more types of exposure may be used for exposing the application feature(s).
[0127] • Change in amount of time that the application feature is exposed per client terminal. • Change in underlying type of application over which the application feature is exposed, for example, increased exposure within an online game, decreased exposure on websites.
[0128] • Change is size of window within which the application feature is exposed. For example, decrease size of window to about 2% of screen size, making it more likely that the user will not close the window but keep it open, such as in comparison to a large window in which case the user may be bothered and closes the window within a short amount of time.
[0129] • Change in amount of bandwidth allocated for simultaneous exposure on multiple client terminals.
[0130] • Change in other exposures and / or allocated resources described herein.
[0131] A predetermined budget including amount of resources for allocation for each type of exposure of a certain application feature may be obtained. The predetermined budget may be obtained by the processor, which may be of the server(s). For example, the processor is granted access to bandwidth, ability to present windows on displays of different client terminals, and access and / or permission to spend currency on resources (e.g., in-game currency, virtual currency, real current).
[0132] The processor may automatically allocate portions of the resources of the budget to the different exposures of the certain application feature based on the determined recommended target amount predicted to generate the target temporal intensity levels. For example, the processor may present an indication of a new game feature on websites, social media platforms, and / or in-game. In another example, the processor may automatically purchase space and / or time on websites and / or social media platforms using allocated currency for exposure of the new game feature.
[0133] At 210, features described with reference to 204-208 may be dynamically iterated. The iterations may be between subsequent time intervals, and / or within a current time interval. The iterations may be for dynamic adaptation of allocation of resources, according to the monitoring, as described herein.
[0134] Some examples of how exposure generated in response to allocation of resources for a new online game and / or new feature of an online game, may be determined, include:
[0135] Direct Measurement (may be tied to specific instances of allocation of resources):
[0136] • Website Traffic: Tracking visits to a game's website, particularly spikes coinciding with launches of allocation of resources, can indicate exposure. Analyzing referral sources to identify which sites sent those visitors helps measure effectiveness of the allocated resources. • Ad Clicks & Conversions: Monitoring not only clicks on paid advertisements but also how many of those clicks lead to desired actions (downloads, sign-ups, etc.) directly measures conversion rates for different instances of allocated resources.
[0137] • Social Media Engagement: Measuring likes, shares, comments, and brand mentions related to specific instances of allocation of resources provides quantifiable engagement data. Sentiment analysis (positive / negative) of these interactions helps gauge public perception.
[0138] • Demo Downloads: Offering a free demo and tracking downloads directly attributed to allocated resources via unique links or landing pages offers a clear measure of resource allocation-driven acquisition.
[0139] • Coupon / Code Redemptions: Providing unique codes in materials of allocated resources (e.g., influencer videos, ads) allows developers to track in-game item redemptions or discount usage linked directly to allocation of resources.
[0140] Indirect Indicators (e.g., may be more difficult to attribute to specific instances of allocated resources):
[0141] • App Store Rankings: Observing a game's ranking improvement in app stores (iOS, Google Play) during allocation of resources indicates increased visibility. Higher ranking often correlates with increased organic downloads.
[0142] • Brand Awareness Surveys: Conducting surveys or focus groups to measure changes in brand awareness and recall among a target audience can demonstrate impact of allocated resources, though attributing it specifically can be difficult.
[0143] • Community Growth: Tracking new members joining online forums, Discord servers, or following social media accounts associated with a game provides a sense of growing interest. While not all growth may be directly attributable to allocation of resources, a surge often signifies increased awareness.
[0144] Correlating Exposure to Game Downloads:
[0145] • Time-Based Analysis: Looking for correlations between periods of allocation of resources and download spikes helps establish connections between marketing efforts and results. For example, did downloads increase significantly after a major influencer was allocated resources?
[0146] • Channel Attribution Modeling: Using analytics tools to attribute downloads to different traffic sources clarifies which channels (e.g., paid ads, social media, and influencer referrals) are driving the most conversions. • Comparative Analysis: Comparing download numbers during periods of allocated resources to pre-allocated resources benchmarks or to similar periods without allocation of resources helps isolate the impact of marketing efforts on overall game downloads.
[0147] Some examples of allocation of resources are now described
[0148] 1. Paid Reach:
[0149] • Influencer Marketing: Allocated resources go directly to influencers for sponsored content (e.g., streams, videos, social posts). Higher follower count = higher cost for allocating resources.
[0150] • Paid Advertising: Budget allocated to platforms like YouTube, Twitch, Facebook, etc. to display ads. Costs vary based on audience targeting, ad placement, and competition.
[0151] • Sponsored Content: Pay gaming websites, blogs, or social media accounts to create and share content featuring the game. Pricing depends on audience reach and content complexity.
[0152] 2. Earned Reach (Budget Used Indirectly):
[0153] • Public Relations: Use a PR agency or dedicate internal staff to secure media coverage.
[0154] Budget covers agency fees, event attendance, press kit materials, etc. Success relies on securing free media attention.
[0155] • Community Building: Invest in community management tools, forum moderation, and create engaging content (developer diaries, Q&A sessions) to foster organic growth. Budget might also cover giveaways or contests to reward community members.
[0156] • Content Marketing: Use writers, editors, and potentially SEO specialists to craft high- quality articles, guides, and website content. Budget may also include content promotion through social media or paid channels to boost initial reach.
[0157] Exposure Trade-offs:
[0158] • Paid Reach: Offers immediate and scalable exposure, but can be expensive and less authentic.
[0159] • Earned Reach: More cost-effective in the long run, builds genuine interest and trust, but requires more time and effort to gain traction.
[0160] The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
[0161] It is expected that during the life of a patent maturing from this application many relevant application features will be developed and the scope of the term application feature is intended to include all such new technologies a priori.
[0162] As used herein the term “about” refers to ± 10 %.
[0163] The terms "comprises", "comprising", "includes", "including", “having” and their conjugates mean "including but not limited to". This term encompasses the terms "consisting of" and "consisting essentially of".
[0164] The phrase "consisting essentially of" means that the composition or method may include additional ingredients and / or steps, but only if the additional ingredients and / or steps do not materially alter the basic and novel characteristics of the claimed composition or method.
[0165] As used herein, the singular form "a", "an" and "the" include plural references unless the context clearly dictates otherwise. For example, the term "a compound" or "at least one compound" may include a plurality of compounds, including mixtures thereof.
[0166] The word “exemplary” is used herein to mean “serving as an example, instance or illustration”. Any embodiment described as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments and / or to exclude the incorporation of features from other embodiments.
[0167] The word “optionally” is used herein to mean “is provided in some embodiments and not provided in other embodiments”. Any particular embodiment of the invention may include a plurality of “optional” features unless such features conflict.
[0168] Throughout this application, various embodiments of this invention may be presented in a range format. It should be understood that the description in range format is merely for convenience and brevity and should not be construed as an inflexible limitation on the scope of the invention. Accordingly, the description of a range should be considered to have specifically disclosed all the possible subranges as well as individual numerical values within that range. For example, description of a range such as from 1 to 6 should be considered to have specifically disclosed subranges such as from 1 to 3, from 1 to 4, from 1 to 5, from 2 to 4, from 2 to 6, from 3 to 6 etc., as well as individual numbers within that range, for example, 1, 2, 3, 4, 5, and 6. This applies regardless of the breadth of the range.
[0169] Whenever a numerical range is indicated herein, it is meant to include any cited numeral (fractional or integral) within the indicated range. The phrases “ranging / ranges between” a first indicate number and a second indicate number and “ranging / ranges from” a first indicate number “to” a second indicate number are used herein interchangeably and are meant to include the first and second indicated numbers and all the fractional and integral numerals therebetween.
[0170] It is appreciated that certain features of the invention, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the invention, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable subcombination or as suitable in any other described embodiment of the invention. Certain features described in the context of various embodiments are not to be considered essential features of those embodiments, unless the embodiment is inoperative without those elements.
[0171] Although the invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, it is intended to embrace all such alternatives, modifications and variations that fall within the spirit and broad scope of the appended claims.
[0172] It is the intent of the applicant(s) that all publications, patents and patent applications referred to in this specification are to be incorporated in their entirety by reference into the specification, as if each individual publication, patent or patent application was specifically and individually noted when referenced that it is to be incorporated herein by reference. In addition, citation or identification of any reference in this application shall not be construed as an admission that such reference is available as prior art to the present invention. To the extent that section headings are used, they should not be construed as necessarily limiting. In addition, any priority document(s) of this application is / are hereby incorporated herein by reference in its / their entirety.
Claims
WHAT IS CLAIMED IS:
1. A computer-implemented method for controlling resources allocated for exposure of one or more application features, the method comprising: monitoring, by at least one processor of at least one server, at least one variable temporal intensity of at least one application feature of an application over a predetermined period, wherein each application feature is allocated a certain amount of resources over the predetermined period for exposure thereof; analyzing, by the at least one processor, each variable temporal intensity of each application feature using at least a statistical model for determining a recommended target amount of resources to allocate for exposure, the target amount is predicted to generate a target temporal intensity level for each application feature over a second period subsequent to the predetermined period by exposure thereof; and generating instructions, by the at least one processor, for modifying the resources allocated for exposure of each application feature to the recommended target amount during the second period predicted to generate the target temporal intensity level.
2. The computer- implemented method of claim 1, wherein the at least one application feature includes usage of the application as a whole.
3. The computer- implemented method of claim 1, wherein the recommended target amount of resources is for obtaining a recommended exposure level to each of the one or more application features.
4. The computer-implemented method of claim 1, wherein the variable temporal intensity includes identifying at least one of: a) changes in engagement of users of a plurality of client terminals with each of the one or more application features of the application over the predetermined period, and b) changes in exposure level to each of the one or more application features over the predetermined period.
5. The computer-implemented method of claim 4, wherein analyzing comprises inputting, by the at least one processor, the identified changes in engagement of users and the identified changes in exposure level into the statistical model for determining a recommendedexposure level for one or more of the application features for the second period subsequent to the monitoring period, wherein the target amount of resources to allocate is for obtaining the recommended exposure level.
6. The computer-implemented method of claim 4, wherein generating instructions comprises generating instructions for one or more applications servers to adapt a future exposure level of the at least one application feature based on the respective recommended exposure level determined by the statistical model.
7. The computer-implemented method of claim 4, wherein the recommended temporary intensity level of a certain application feature represents a target exposure level predicted to maximizes the engagement of users with a certain application feature.
8. The computer- implemented method of claim 1, wherein the recommended target amount of resources to allocate is selected according to prediction of maximizing the temporal intensity level of the certain application feature.
9. The computer-implemented method of claim 1, wherein the allocated resources are selected from: network bandwidth, memory utilization, processor utilization, exposure space taken up on a display by the application feature, and amount of time for exposure of the application feature.
10. The computer-implemented method of claim 4, wherein the changes in exposure is selected from: a number of times the application feature is presented on a display during a time interval, amount of space within a window presenting an underlying application in which the application feature is presented, and amount of time the application feature is presented on a display.
11. The computer- implemented method of claim 4, wherein the changes in engagement of users is selected from: amount of time a user interacted with the application feature, amount of time before a user closed a pop-up window presenting the application feature, interactions of a user with the application feature, and clicking a link associated with the application feature to access a remote application.
12. The computer-implemented method of claim 1, further comprising providing, by the at least one processor, the application to a plurality of client terminals, wherein the application is configured to allow each of the plurality of client terminals to send data to one or more servers performing the analysis, wherein monitoring comprises monitoring the data sent by the plurality of client terminals.
13. The computer- implemented method of claim 1, wherein the application features comprise game application features, and the application comprises a gaming application.
14. The computer-implemented method of claim 13, wherein the game application features comprises: requirement for achieving a milestone, ranking of players, parameters controlling earning of in-game currently, costs of benefit items purchasable by players using ingame currency, customizable avatars, tutorials, real-time notifications, interactions between players, and available narratives.
15. The computer-implemented method of claim 1, wherein monitoring comprises monitoring client terminals providing exposure of the one or more application features of the application on respective displays over the predetermined period, for determining the at least one variable temporal intensity.
16. The method of claim 1, further comprising: wherein the exposure is of a certain type selected from a plurality of types of exposure, wherein at least one application feature is associated with two or more types of exposure, receiving, by the at least one processor, a predetermined budget including amount of resources for allocation for each type of exposure of a certain application feature; and allocating, by the at least one processor, portions of said resources of the budget to the different exposures of the certain application feature based on the determined recommended target amount predicted to generate the target temporal intensity levels.
17. The method of claim 1, wherein analyzing the variation of temporal intensity level of each application feature comprises: applying, by the at least one processor, a bootstrap process to augment allocated resources assigned to each predetermined period using random sampling with replacement; andclustering, by the at least one processor, the augmented predetermined period allocated resources into buckets, wherein each bucket represents a group of predetermined periods where the total allocated resources in each bucket is close to a target of allocated resources.
18. The method of claim 17, wherein determining the recommended target amount of resources to allocate for each application feature is based on the distribution of return on investment (ROI) of the allocated resources for each bucket.
19. The method of claim 18, wherein analyzing the distribution of ROI for each bucket provides insights into how ROI varies with different levels of allocation of resources for the at least one application feature.
20. The method of claim 1, wherein the statistical model used for determining the recommended target amount of resources to allocate is a trend extrapolation model that adaptively selects a percentile for each of at least one application feature based on a percentile path over time.
21. The method of claim 1, further comprising: considering, by the at least one processor, multiple percentile paths for each of the at least one application feature; and allowing, by the at least one processor, for a trend direction change in each of the at least one application feature.
22. The method of claim 21, further comprising allocating, by the one or more processors, a budget includes resources between the at least one application feature based on the stability of their respective percentile paths and their return on investment (ROI).
23. A system for controlling resources allocated for exposure of one or more application features, comprising: at least one processor executing a code for: monitoring, by at least one processor of at least one server, at least one variable temporal intensity of at least one application feature of an application over a predetermined period, wherein each application feature is allocated a certain amount of resources over the predetermined period for exposure thereof;analyzing, by the at least one processor, each variable temporal intensity of each application feature using at least a statistical model for determining a recommended target amount of resources to allocate for exposure, the target amount is predicted to generate a target temporal intensity level for each application feature over a second period subsequent to the predetermined period by exposure thereof; and generating instructions, by the at least one processor, for modifying the resources allocated for exposure of each application feature to the recommended target amount during the second period predicted to generate the target temporal intensity level.
24. A non-transitory medium storing program instructions for controlling resources allocated for exposure of one or more application features, which when executed by at least one processor of at least one server, cause the at least one processor to: monitor at least one variable temporal intensity of at least one application feature of an application over a predetermined period, wherein each application feature is allocated a certain amount of resources over the predetermined period for exposure thereof; analyze each variable temporal intensity of each application feature using at least a statistical model for determining a recommended target amount of resources to allocate for exposure, the target amount is predicted to generate a target temporal intensity level for each application feature over a second period subsequent to the predetermined period by exposure thereof; and generate instructions for modifying the resources allocated for exposure of each application feature to the recommended target amount during the second period predicted to generate the target temporal intensity level.
Citation Information
Patent Citations
Workload aware dynamic CPU processor core allocation
US10140161B1
Monitoring computer process resource usage
US20160036722A1
Resource allocation to game titles in a remote gaming environment
US20170195251A1
Automated resource management for distributed computing
US20220197773A1