US2015161678A1PendingUtilityA1

Dynamic ordering of online advertisement software steps

Assignee: TURN INCPriority: Dec 5, 2013Filed: Dec 5, 2013Published: Jun 11, 2015
Est. expiryDec 5, 2033(~7.4 yrs left)· nominal 20-yr term from priority
G06Q 30/0277G06F 8/4434G06Q 30/0275G06F 8/4441
60
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

At a bid determination platform, an initial sequence having an initial order of software steps for filtering advertisements in response to receiving an advertisement bid request is selected. Until a trigger event occurs, the initial sequence of software steps is implemented in the initial order in response to receiving advertisement bid requests. Implementing the initial sequence comprises automatically tracking a failure (or success) metric and resource requirement metric for each of the software steps. After the trigger event occurs, a first optimum sequence of the software steps is automatically selected in a first optimum order so as to optimize a total resource usage for execution of the software steps. Selecting the first optimum sequence of the software steps in the first optimum order is based on the tracked failure (or success) metric and resource requirement metric for each of the software steps during implementation of the initial sequence.

Claims

exact text as granted — not AI-modified
1 . A method for bidding on placement of an advertisement within media content that is deliverable within a computer networking environment, the method comprising:
 at a bid determination platform, selecting an initial sequence having an initial order of a plurality of software steps for filtering advertisements in response to receiving an advertisement bid request, wherein the software steps include a plurality of different checks for filtering a plurality of advertisements based on a plurality of user characteristics and/or publisher site characteristics associated with the advertisement bid request meeting a plurality of advertisement campaign constraints associated with each advertisement;   until a trigger event occurs, at the bid determination platform, implementing the initial sequence of the software steps in the initial order in response to receiving a plurality of advertisement bid requests, wherein implementing the initial sequence comprises automatically tracking a failure metric and a resource requirement metric, which specifies a total resource usage by each of the software steps, wherein the failure metric for each software step specifies a total failure count for such software step's corresponding check failing for the plurality of advertisement bid requests meeting the advertisement campaign constraints of the advertisements; and   after the trigger event occurs, at the bid determination platform, automatically selecting and executing a first optimum sequence of the software steps in a first optimum order in replacement of executing the initial sequence of the software steps in the initial order so as to optimize the total resource usage for execution of the software steps, wherein selecting the first optimum sequence of the software steps in the first optimum order is based on the tracked failure metric and the tracked resource requirement metric for each of the software steps during implementation of the initial sequence.   
     
     
         2 . The method of  claim 1 , further comprising:
 until a second trigger event occurs, implementing the first optimum sequence of the software steps in the first optimum order in response to receiving a second plurality of advertisement bid requests, wherein implementing the first optimum sequence comprises automatically tracking the failure metric and the resource requirement metric for each of the software steps; and   after the second trigger event occurs, automatically selecting a second optimum sequence of the software steps in a second optimum order so as to optimize the total resource usage for execution of the software steps, wherein selecting the second optimum sequence of the software steps in the second optimum order is based on the tracked failure metric and the tracked resource requirement metric for each of the software steps during implementation of the first optimum sequence.   
     
     
         3 . The method of  claim 1 , wherein optimizing the total resource usage for execution of the software steps includes maximizing a speed at which the software steps filter the plurality of advertisement. 
     
     
         4 . The method of  claim 1 , wherein the resource requirement metric for each step is the total resource usage, and wherein automatically selecting the first optimum sequence of the software steps in the first optimum order comprises ordering the software steps from a lowest to highest value of a plurality of values that each equal R i /F i  for each software step i, wherein R i  is the total resource usage for each software step i and F i  is the total failure count for each software step i. 
     
     
         5 . The method of  claim 1 , wherein optimizing the total resource usage for execution of the software steps includes minimizing a total memory that is used for execution of the software steps. 
     
     
         6 . The method of  claim 1 , wherein the software steps include a first subset of software steps having a fixed order and a second subset of software steps having an alterable order, and wherein selecting the first optimum sequence of the software steps in the first optimum order includes maintaining the fixed order of the first subset of software steps while altering the second subset of software steps' order. 
     
     
         7 . The method of  claim 1 , wherein the trigger event comprises expiration of a predefined time period. 
     
     
         8 . The method of  claim 1 , wherein the trigger event comprises execution of a predefined number of implementations of the initial sequence or the software steps. 
     
     
         9 . The method of  claim 1 , wherein the trigger event comprises one of the software step's resource requirement metrics or failure metrics changes by more than a predefined amount or percentage. 
     
     
         10 . The method of  claim 1 , wherein the first optimum order includes a first suborder of a plurality of sub-steps of at least one of the software steps and a second suborder of the software steps. 
     
     
         11 . (canceled) 
     
     
         12 . The method of  claim 1 , wherein automatically tracking the failure metric and the resource requirement metric for each of the software steps comprises maintaining a resource counter for each software step's total resource usage and the total failure count for each software step's unsuccessful execution, and wherein automatically selecting the first optimum sequence of the software steps in the first optimum order comprises:
 determining a resource requirement for each software step by dividing such software step's resource counter by a number of executions of such software step;   determining a probability of failure of each software step by dividing the total failure count for such software step by the number of executions of each software step; and   ordering the software steps from a lowest to highest value of a plurality of values that each equal r i /p i  for each software step i, wherein r i  is the resource requirement and p i  is the probability of failure for each software step i.   
     
     
         13 . The method of  claim 1 , wherein automatically tracking the failure metric and the resource requirement metric for each of the software steps is performed for a sampling of the total of executions of each software step. 
     
     
         14 . A system for bidding on placement of an advertisement within media content that is deliverable within a computer networking environment, the system comprising at least a processor and a memory, wherein the processor and/or memory are configured to perform the following operations:
 selecting an initial sequence having an initial order of a plurality of software steps for filtering advertisements in response to receiving an advertisement bid request, wherein the software steps include a plurality of different checks for filtering a plurality of advertisements based on a plurality of user characteristics and/or publisher site characteristics associated with the advertisement bid request meeting a plurality of advertisement campaign constraints associated with each advertisement;   until a trigger event occurs, implementing the initial sequence of the software steps in the initial order in response to receiving a plurality of advertisement bid requests, wherein implementing the initial sequence comprises automatically tracking a failure metric, which specifies a total count for each of the software steps failing its check, and a resource requirement metric, which specifies a total resource use by each of the software steps, wherein the failure metric for each software step specifies a total failure count for such software step's corresponding check failing or succeeding for the plurality of advertisement bid requests meeting the advertisement campaign constraints of the advertisements; and   after the trigger event occurs, automatically selecting and executing a first optimum sequence of the software steps in a first optimum order in replacement of executing the initial sequence of the software steps in the initial order so as to optimize the total resource usage for execution of the software steps, wherein selecting the first optimum sequence of the software steps in the first optimum order is based on the tracked failure metric and the tracked resource requirement metric for each of the software steps during implementation of the initial sequence.   
     
     
         15 . The system of  claim 14 , wherein the processor and/or memory are configured for:
 until a second trigger event occurs, implementing the first optimum sequence of the software steps in the first optimum order in response to receiving a second plurality of advertisement bid requests, wherein implementing the first optimum sequence comprises automatically tracking the failure metric and the resource requirement metric for each of the software steps; and   after the second trigger event occurs, automatically selecting a second optimum sequence of the software steps in a second optimum order so as to optimize the total resource usage for execution of the software steps, wherein selecting the second optimum sequence of the software steps in the second optimum order is based on the tracked failure metric and the tracked resource requirement metric for each of the software steps during implementation of the first optimum sequence.   
     
     
         16 . The system of  claim 14 , wherein optimizing the total resource usage for execution of the software steps includes maximizing a speed at which the software steps filter the plurality of advertisement. 
     
     
         17 . The system of  claim 14 , wherein the resource requirement metric for each step is the total resource usage, and wherein automatically selecting the first optimum sequence of the software steps in the first optimum order comprises ordering the software steps from a lowest to highest value of a plurality of values that each equal R i /F i  for each software step i, wherein R i  is the total resource usage for each software step i and F i  is a total failure count for each software step i. 
     
     
         18 . The system of  claim 14 , wherein optimizing the total resource usage for execution of the software steps includes minimizing a total memory that is used for execution of the software steps. 
     
     
         19 . The system of  claim 14 , wherein the software steps include a first subset of software steps having a fixed order and a second subset of software steps having an alterable order, and wherein selecting the first optimum sequence of the software steps in the first optimum order includes maintaining the fixed order of the first subset of software steps while altering the second subset of software steps' order. 
     
     
         20 . The system of  claim 14 , wherein the trigger event comprises expiration of a predefined time period. 
     
     
         21 . The system of  claim 14 , wherein the trigger event comprises execution of a predefined number of implementations of the initial sequence or the software steps. 
     
     
         22 . The system of  claim 14 , wherein the trigger event comprises one of the software step's resource requirement metrics or failure metrics changes by more than a predefined amount or percentage. 
     
     
         23 . The system of  claim 14 , wherein the first optimum order includes a first suborder of a plurality of sub-steps of at least one of the software steps and a second suborder of the software steps. 
     
     
         24 . (canceled) 
     
     
         25 . The system of  claim 14 , wherein automatically tracking the failure metric and the resource requirement metric for each of the software steps comprises maintaining a resource counter for each software step's total resource usage and the total failure count for each software step's unsuccessful execution, and wherein automatically selecting the first optimum sequence of the software steps in the first optimum order comprises:
 determining a resource requirement for each software step by dividing the total failure count for such software step by the number of executions of such software step;   determining a probability of failure of each software step by dividing such software step's failure counter by a number of executions of such software step;   
       and
 ordering the software steps from a lowest to highest value of a plurality of values that each equal r i /p i  for each software step i, wherein r i  is the resource requirement and p i  is the probability of failure for each software step i. 
 
     
     
         26 . The system of  claim 14 , wherein automatically tracking the failure metric and the resource requirement metric for each of the software steps is performed for a sampling of the total of executions of each software step. 
     
     
         27 . At least one non-transitory computer readable storage medium having computer program instructions stored thereon that are arranged to perform the following operations:
 selecting an initial sequence having an initial order of a plurality of software steps for filtering advertisements in response to receiving an advertisement bid request, wherein the software steps include a plurality of different checks for filtering a plurality of advertisements based on a plurality of user characteristics and/or publisher site characteristics associated with the advertisement bid request meeting a plurality of advertisement campaign constraints associated with each advertisement;   until a trigger event occurs, implementing the initial sequence of the software steps in the initial order in response to receiving a plurality of advertisement bid requests, wherein implementing the initial sequence comprises automatically tracking a failure metric, which specifies a total count for each of the software steps failing its check, and a resource requirement metric, which specifies a total resource use by each of the software steps, wherein the failure metric for each software step specifies a total failure count for such software step's corresponding check failing or succeeding for the plurality of advertisement bid requests meeting the advertisement campaign constraints of the advertisements; and   after the trigger event occurs, automatically selecting a first optimum sequence of the software steps in a first optimum order in replacement of executing the initial sequence of the software steps in the initial order so as to optimize the total resource usage for execution of the software steps, wherein selecting the first optimum sequence of the software steps in the first optimum order is based on the tracked failure metric and the tracked resource requirement metric for each of the software steps during implementation of the initial sequence.

Join the waitlist — get patent alerts

Track US2015161678A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.