IP Library Granted Patent US 10,521,829
Granted Patent B2
US 10,521,829 · App. 15/299,350 · Granted Dec 31, 2019

Dynamic ordering of online advertisement software steps

Inventors: Ali Dasdan (San Jose, CA); Christos Koufogiannakis (Menlo Park, CA)
Assignee: Amobee, Inc.
G06Q30/0275G06F8/4434G06F8/4441G06Q30/0277
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,521,829
App. No.
15/299,350
Granted
Dec 31, 2019
Kind
B2
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 (49)

1. A method for bidding on placement of an advertisement within media content that is deliverable within a computer networking system, the method comprising:

receiving a plurality of bid requests at a bid determination platform;

for each received bid request, sequentially executing a plurality of software steps for each of a plurality of advertisements, wherein each software step checks whether specific one or more user characteristics and/or publisher site characteristics associated with the advertisement bid request pass or fail one or more advertisement campaign constraints associated with such advertisement until one of the software steps of such advertisement fails or all of the software steps of such advertisement pass;

for each advertisement that passes all of the software steps for a particular bid request, determining a bid and sending one or more bids that are determined for one or more advertisements towards a sender device that sent such particular bid request;

while sequentially executing the software steps for each of the advertisements, automatically maintaining a failure counter for a number of failures for each software step's check;

while sequentially executing the software steps for each of the advertisements, automatically maintaining a try counter for a number of tries for each software step's check;

while sequentially executing the software steps for each of the advertisements, automatically maintaining a resource counter for CPU usage time for each software step's check; and

after a trigger event occurs at the bid determination platform, automatically reordering the software steps for one or more of the advertisements, wherein the software steps for each of the one or more advertisements are reordered to minimize a total CPU usage time for execution of software steps that are likely to fail their checks based on the resource counter, failure counter, and try counter that have been maintained for each software step.

2. The method of claim 1 , wherein minimizing the total CPU usage time includes maximizing a speed at which the software steps filter the plurality of advertisement.

3. The method of claim 1 , wherein reordering the software steps 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, which includes a total CPU usage time, for each software step i and F i is the total failure count for each software step i.

4. The method of claim 1 , further comprising:

while sequentially executing the software steps for each of the advertisements, automatically maintaining a resource counter for memory used for execution of each software step being applied to the advertisements,

wherein reordering the software steps includes minimizing a total memory that is used for execution of the software steps.

5. 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 reordering the software steps includes maintaining the fixed order of the first subset of software steps while altering the second subset of software steps' order.

6. The method of claim 1 , wherein the trigger event comprises one of the software step's resource counter or failure counter changes by more than a predefined amount or percentage.

7. The method of claim 1 , wherein the software steps include 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.

8. The method of claim 1 , wherein reordering the software steps comprises:

determining a resource requirement for each software step by dividing such software step's resource counter value by the number of tries of such software step;

determining a probability of failure of each software step by dividing the number of failures for such software step by the number of tries for 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.

9. A system for bidding on placement of an advertisement within media content that is deliverable within a computer networking system, the system comprising at least a processor and a memory, wherein the at least one processor and/or memory are configured to perform the following operations:

receiving a plurality of bid requests;

for each received bid request, sequentially executing a plurality of software steps for each of a plurality of advertisements, wherein each software step checks whether specific one or more user characteristics and/or publisher site characteristics associated with the advertisement bid request pass or fail one or more advertisement campaign constraints associated with such advertisement until one of the software steps of such advertisement fails or all of the software steps of such advertisement pass;

for each advertisement that passes all of the software steps for a particular bid request, determining a bid and sending one or more bids that are determined for one or more advertisements towards a sender device that sent such particular bid request;

while sequentially executing the software steps for each of the advertisements, automatically maintaining a failure counter for a number of failures for each software step's check;

while sequentially executing the software steps for each of the advertisements, automatically maintaining a try counter for a number of tries for each software step's check;

while sequentially executing the software steps for each of the advertisements, automatically maintaining a resource counter for CPU usage time for each software step's check; and

after a trigger event occurs, automatically reordering the software steps for one or more of the advertisements, wherein the software steps for each of the one or more advertisements are reordered to minimize a total CPU usage time for execution of software steps that are likely to fail their checks based on the resource counter, failure counter, and try counter that have been maintained for each software step.

10. The system of claim 9 , wherein minimizing the total CPU usage time includes maximizing a speed at which the software steps filter the plurality of advertisement.

11. The system of claim 9 , wherein reordering the software steps 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, which includes a total CPU usage time, for each software step i and F i is the total failure count for each software step i.

12. The system of claim 9 , wherein the at least one processor and/or memory are configured for:

while sequentially executing the software steps for each of the advertisements, automatically maintaining a resource counter for memory used for execution of each software step being applied to the advertisements,

wherein reordering the software steps includes minimizing a total memory that is used for execution of the software steps.

13. The system of claim 9 , 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 reordering the software steps includes maintaining the fixed order of the first subset of software steps while altering the second subset of software steps' order.

14. The system of claim 9 , wherein the trigger event comprises one of the software step's resource counter or failure counter changes by more than a predefined amount or percentage.

15. The system of claim 9 , wherein the software steps include 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.

16. The system of claim 9 , wherein reordering the software steps comprises:

determining a resource requirement for each software step by dividing each software step's resource counter value by the number of tries of such software step;

determining a probability of failure of each software step by dividing the number of failures for such software step by the number of tries for 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.

17. The system of claim 9 , wherein automatically maintaining the resource counter, try counter, and failure counter for each of the software steps is performed for a sampling of the total of executions of each software step.

18. At least one non-transitory computer readable storage medium having computer program instructions stored thereon that are arranged to perform the following operations:

receiving a plurality of bid requests at a bid determination platform;

for each received bid request, sequentially executing a plurality of software steps for each of a plurality of advertisements, wherein each software step checks whether specific one or more user characteristics and/or publisher site characteristics associated with the advertisement bid request pass or fail one or more advertisement campaign constraints associated with such advertisement until one of the software steps of such advertisement fails or all of the software steps of such advertisement pass;

for each advertisement that passes all of the software steps for a particular bid request, determining a bid and sending one or more bids that are determined for one or more advertisements towards a sender device that sent such particular bid request;

while sequentially executing the software steps for each of the advertisements, automatically maintaining a failure counter for a number of failures for each software step's check;

while sequentially executing the software steps for each of the advertisements, automatically maintaining a try counter for a number of tries for each software step's check;

while sequentially executing the software steps for each of the advertisements, automatically maintaining a resource counter for CPU usage time for each software step's check; and

after a trigger event occurs at the bid determination platform, automatically reordering the software steps for one or more of the advertisements, wherein the software steps for each of the one or more advertisements are reordered to minimize a total CPU usage time for execution of software steps that are likely to fail their checks based on the resource counter, failure counter, and try counter that have been maintained for each software step.

Assignments (3)
SECURITY INTEREST Recorded Sep 12, 2022
From: AMOBEE, INC.; TREMOR INTERNATIONAL LTD.; YUME, INC.; R1DEMAND, LLC
To: ROYAL BANK OF CANADA, AS COLLATERAL AGENT
Reel/Frame 061409/0110 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2018
From: TURN INC.
To: AMOBEE, INC.
Reel/Frame 044886/0853 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2016
From: DASDAN, ALI; KOUFOGIANNAKIS, CHRISTOS
To: TURN INC.
Reel/Frame 040459/0105 →
Continuity (2)
Continuation 14097892 · Dec 5, 2013
Related Publication 20170039603A1 · Feb 9, 2017