WO2003029917A2 - Non-deterministic method and system for the optimization of targeted content delivery - Google Patents

Non-deterministic method and system for the optimization of targeted content delivery Download PDF

Info

Publication number
WO2003029917A2
WO2003029917A2 PCT/US2002/030714 US0230714W WO03029917A2 WO 2003029917 A2 WO2003029917 A2 WO 2003029917A2 US 0230714 W US0230714 W US 0230714W WO 03029917 A2 WO03029917 A2 WO 03029917A2
Authority
WO
WIPO (PCT)
Prior art keywords
content
items
priority
weight
item
Prior art date
Application number
PCT/US2002/030714
Other languages
French (fr)
Other versions
WO2003029917A3 (en
Inventor
Nathaniel Thurston
Original Assignee
Predictive Media Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Predictive Media Corporation filed Critical Predictive Media Corporation
Priority to AU2002330114A priority Critical patent/AU2002330114A1/en
Priority to AT02766375T priority patent/ATE551672T1/en
Priority to EP02766375A priority patent/EP1433104B1/en
Priority to ES02766375T priority patent/ES2382372T3/en
Publication of WO2003029917A2 publication Critical patent/WO2003029917A2/en
Publication of WO2003029917A3 publication Critical patent/WO2003029917A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0277Online advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25891Management of end-user data being end-user preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26216Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/165Centralised control of user terminal ; Registering at central

Definitions

  • the present invention relates to a system and method for scheduling the delivery of targeted content to network devices in an optimal fashion using a non-deterministic algorithm.
  • Advertising directed to iTV users is expected to grow rapidly along with the growth of iTV, the Internet, and E-commerce activity.
  • Traditional methods of advertising have been found to be generally ineffective in drawing responses from users.
  • television advertisements and web advertisements have not been targeted to users but are targeted based on the audience associated with the television show or Internet content site on which the advertisement will be appearing.
  • a more effective method of advertising is advertising targeted to particular users.
  • One embodiment of the invention is a method for scheduling delivery of items of content to a plurality of network devices.
  • the method features generating an individual list of one or more items of content to be delivered to each network device based on profiles of the network devices and specifications for the items of content, and determining a priority and a weight for each of the items of content, the priority and weight for each item of content determining the probability of delivery at each network device in relation to other items of content, wherein determining the priority and the weight for each of the items of content optimizes a delivery schedule for the items of content.
  • the network devices can be iTV set-top boxes or computers with Internet access, and the items of content can be advertisements.
  • the item of content with the highest priority is delivered before other items of content and, if two or more items of content have the same highest priority, the weight for the items of content is used to determine the percentage of time each item of content will be delivered.
  • the method of the invention can use a number of pieces of data, including the number of deliveries requested for each item of content and the number of impression available for each network device to set the weight and priority for each item of content.
  • Another embodiment of the invention is a computer system for scheduling delivery of items of content to a plurality of network devices.
  • the computer system features a memory for storing a program and a processor operative with the program to: (1) generate an individual list of one or more items of content to be delivered to each network device based on profiles of the network devices and specifications for the items of content, and (2) determine a priority and a weight for each of the items of content, the priority and weight for each item of content determining the probability of delivery at each network device in relation to other items of content, wherein determining the priority and the weight for each of the items of content optimizes a delivery schedule for the items of content.
  • FIGURE 1 is a schematic diagram illustrating a representative network in which the inventive system is preferably implemented
  • FIGURE 2 is a schematic diagram illustrating in greater detail the preferred architecture of the inventive system.
  • FIGURE 3 is a flow chart illustrating in general the process for scheduling content delivery in accordance with the invention.
  • FIGURE 4 is a flow chart illustrating in general one process of the invention for adjusting priorities and weights for items of content.
  • U.S. patent application Serial No. 09/767,793 filed January 23, 2001 and entitled “Method and System for Scheduling Online Targeted Content Delivery” is expressly incorporated by reference herein. That application discloses a method and a system for scheduling targeted content delivery to network users that allocates inventory on demand as users come online.
  • U.S. patent application Serial No. 09/558,755 filed April 21, 2000 and entitled “Method And System For Web User Profiling And Selective Content Delivery” and U.S. patent application Serial No. 09/877,974 filed June 7, 2001 and entitled “Method And System For iTV User Profiling And Selective Content Delivery” are expressly incorporated by reference herein.
  • Those applications disclose methods and systems for profiling online users and iTV users (who are also referred to herein as clients or subscribers) based on their observed surfing or viewing habits and for selectively delivering content, e.g., advertising, to the users based on their individual profiles.
  • the present invention is directed to optimizing content delivery to network devices.
  • Embodiments of the invention can be implemented in content delivery systems that delivery content based on the profiles of users of the network devices such as, e.g., those disclosed in the above-identified application Serial Nos. 09/767,793; 09/877,974; and 09/558,755.
  • operations research and yield management techniques are utilized to forecast the availability of user screen real estate (i.e., inventory) and a non-deterministic mathematical algorithm is used to optimize the use of surplus real estate and generate on-demand selective content delivery schedules to transmit content to the users.
  • FIGURE 1 illustrates a representative network in which the inventive system can be implemented in one embodiment.
  • the network includes one or more client machines 10 operated by various individual users.
  • the client machines 10 connect to an iTV/ISP server 15 via a communication channel 5, which may be a broadcast that is relayed to the clients 10 via a cable connection, satellite dish, or the like.
  • the communication channel 5, in some embodiments, includes a back channel of communication for data going upstream from a client 10 to the iTV/ISP server 15.
  • Such a back channel of communication can be a telephone line or cable modem, and such a back channel of communication allows two-way communication between the clients 10 and the iTV/ISP server 15.
  • the iTV/ISP server 15 broadcasts information to the clients 10, but the clients 10 have no way of accessing or providing information back to the iTV/ISP server 15.
  • the iTV/ISP server 15 can be an iTV server 12, an ISP server 16, or a combination of the iTV server 12 and the ISP server 16.
  • the iTV server 12 provides iTV content that can include programs, advertisements, and interactive content including the Internet.
  • Such an iTV server can be provided by a cable operator, such as RCN.
  • FIGURE 1 also illustrates an ISP "point-of-presence" (POP), which includes an ISP POP Server 16, which can be linked to the client 10 for providing access to the Internet.
  • POP point-of-presence
  • the ISP server 16 can be operated by the same entity as the iTV server 12, by separate entities, or by a joint effort between entities.
  • the iTV server 12 can also function as the ISP server 16.
  • the combined iTV/ISP server 15 depicted in FIGURE 1 represents the possibility that these two servers can be linked in some manner so that the client 10 has access to interactive television programming and the Internet. It should be noted, however, that in some embodiments a client 10 might not have Internet access, and in such cases the iTV server 12 can be used without an ISP server 16.
  • the Internet service provided through the ISP server 16 can be provided through a cable modem or over telephone lines.
  • advertising is hosted by an ad server 17 that is separate from the iTV server 12 that hosts the programming content.
  • the iTV server 12 is connected to the ad server 17 by a communication channel 14, which can be an Internet connection.
  • a master server 18 is used to remotely manage the ad server 17.
  • the master server 18 is connected to the ad server 14 through communication channel 14, which can be an Internet connection.
  • the master server 18 can be used by advertisers in an embodiment of the invention to determine which ads should be sent to which clients 10.
  • the master server 18 communicates this information to the ad server 17 through the communication channel 14, and the information is then forwarded to the iTV server 12 and ultimately the client 10.
  • the master server 18 communicates this advertising information to the ISP server 16, which then communicates this information to the client 10.
  • the master server 18 can also generate content recommendations for clients 10 that are relayed to the iTV server 12 via the ad server 17.
  • the client machine 10 can be an interactive television set with a set top box or, in other embodiments, a computer. Generally, these client machines 10 can be any type of network device existing for a subscriber.
  • the set top box can be made by Motorola and the operating system may be the OpenTV operating system, although set top boxes made by other entities and other operating systems can also be used.
  • the television itself can be made by any manufacturer, including but not limited to Magnavox, Sony, and Toshiba.
  • a representative interactive television set includes a set top box with a computer processing unit and memory, a remote control or keyboard, and a display unit (television set). The screen of the display unit is used to present programs, advertising, and other content to the user.
  • a graphical user interface (GUI) on the display unit can also be available for the user to make programming selections, interact with programs, and access the Internet.
  • the GUI is supported by the operating system and allows the user to use a point and click method of input, e.g., by moving a highlighted area on the display screen to a section representing a program at a particular time and pressing on the remote control buttons to perform a selection. Also, one or more "windows" can be opened up on the screen independently or concurrently as desired.
  • One predominant GUI is the interactive television guide that allows a user to select a program to watch through the use of a remote control unit.
  • Client machines 10 usually access web servers through the connection provided by a cable company, such as RCN.
  • the client machine 10 typically includes a browser, which is a known software tool used for accessing the Internet. Representative browsers include Netscape Navigator and Microsoft Internet Explorer, although other browsers can be used within the scope of the invention.
  • the client 10 can communicate with the ISP server 16.
  • the World Wide Web is the Internet's multimedia information retrieval system. In particular, it is a collection of servers of the Internet that use the Hypertext Transfer Protocol (HTTP), which provides users access to files (which can be in different formats such as text, graphics, images, sound, video, etc.) using, e.g., a standard page description language known as Hypertext Markup Language (HTML). HTML provides basic document formatting and allows developers to specify links to other servers and files. These links include "hyperlinks," which are text phrases or graphic objects that conceal the address of a site on the Web.
  • HTML Hypertext Markup Language
  • a user of a client machine 10 having an HTML-compatible browser can retrieve a Web page (namely, an HTML formatted document) of a Web site by specifying a link via the URL (e.g., www.yahoo.com/photography).
  • a Web page namely, an HTML formatted document
  • the client machine makes a transmission control protocol/Internet protocol (TCP/IP) request to the server identified in the link and receives the Web page in return.
  • TCP/IP transmission control protocol/Internet protocol
  • FIGURE 2 illustrates in greater detail one preferred scheduler system architecture.
  • the master server system 18 includes various software components for managing content delivery including a Dynamic Campaign Manager 50, a Capacity Forecaster 52, a Delivery Manager 54, an Inventory Manager 51, system configuration information 53, and a matcher 56.
  • the master server system 18 also includes a master database 60 storing advertisements and user profiles.
  • On-Demand Scheduler 70, local matcher 72 and content delivery system (cds) server 74 components reside at the iTV server 16.
  • the iTV server 16 also includes a remote local database 76 storing individual user profile data and advertisements.
  • the Dynamic Campaign Manager component 50 provides a portal to the system for advertisers (or Ad buyers or media buyers who act on behalf of advertisers) to initiate and manage their advertising campaigns.
  • the terms Ad buyer, media buyer, and advertiser are used interchangeably for purposes of this application.
  • the advertiser can, e.g., monitor the number of times content has been delivered to a client 10 (i.e., the number of impressions) and the number of click-throughs (in the case of banner ads delivered over an interactive television system or via the Internet) on that content during the course of a campaign.
  • the network that do not have a back-channel (i.e.
  • the server can send messages to the client device, but the client device cannot send messages back to the server) the data on impressions and click-throughs will be estimated based on survey data (e.g. Nielsen Media Research) and zip code based census data (e.g. Claritas Prizm codes).
  • survey data e.g. Nielsen Media Research
  • zip code based census data e.g. Claritas Prizm codes
  • the Capacity Forecaster 52 reviews new campaigns proposed by advertisers and predicts whether their campaign objectives are achievable in view of forecasted inventory of user screen real estate.
  • the Capacity Forecaster 52 thereby assists in forming contracts having an expected high degree of success.
  • a 'contract' as used herein is generally an agreement for content delivery typically between the scheduler system operator or owner and an advertiser or media buyer. This agreement specifies various terms including, e.g., the content to be delivered, delivery quantity (i.e., number of impressions), target subscriber group, and start and end dates.
  • the Inventory Manager 51 generates a candidate plan to fulfill new and existing advertiser contracts and to optimize usage of surplus user screen real estate.
  • the Inventory Manager 51 modifies the plan as needed based on delivery feedback information received from the On-Demand Scheduler 70.
  • the On-Demand Scheduler and Inventory Manager would have to use outside sources (such as Nielsen Media Research and Claritas Prizm Codes) to estimate how many users of each demographic group actually viewed the ads.
  • the Delivery Manager 54 generates the best plan for the current day's scheduled deliveries.
  • the Delivery Manger 54 is also responsible for balancing deliveries within a day and processing the results of the On-Demand Scheduler.
  • the On-Demand Scheduler 70 dynamically constructs delivery schedules for individual users as they become active on the system (i.e. when they login or turn on the television). This dynamic process, which seeks to optimize delivery of advertisements, is described in more detail below in the sections on the On-Demand Scheduler and Delivery Parameter Optimizer (DPO).
  • DPO Delivery Parameter Optimizer
  • the Capacity Forecaster 52 and Delivery Manager 54 are also described in greater detail below.
  • FIGURE 3 is a flowchart generally illustrating the process of scheduling and delivering content in accordance with the invention.
  • the Dynamic Campaign Manager 50 receives a proposed new advertising campaign from an advertiser.
  • the Capacity Forecaster reviews the proposed campaign to determine whether the campaign goals are achievable. If the inventory projections are less then the campaign goals, then at Step 104, the scheduler system identifies and suggests which constraints could be relaxed in order to achieve campaign goals as will be described below. If the campaign is determined to be achievable, it is approved at Step 106.
  • the Inventory Manager 51 then constructs a delivery plan for all approved campaigns at Step 108.
  • the On-Demand scheduler 70 constructs an individual delivery schedule, and ads are matched with individual subscribers based on the profiles of the subscribers, which can be generated in any manner, including sampling or demographic analysis.
  • advertisements are transmitted to users based on their individual delivery schedules.
  • the system reports advertisement delivery feedback to the Delivery Manager at Step 114, which is used to update the master delivery plan as will be discussed below.
  • the On-Demand Scheduler 70 which resides at each iTV server 16 in the system, dynamically constructs an individual ordered list of advertisements to be delivered for each given user upon user login. If there is no back channel of communication at the client 10, the set-top box at the client 10 (in an iTV embodiment) performs this function. Each individual list includes advertisements matched to the user and prioritized according to the master list received from the Delivery Manager 54. The list of advertisements that the client 10 receives is therefore matched to the client's profile.
  • the Content Delivery System (CDS) Server 74 loads this plan from the database and generates a matrix of ads which are compatible with subscribers that are eligible to view these ads.
  • the CDS Server 74 will then order the matching ads based on an algorithm driven by the priorities and weights that have been assigned to the ads. As will be described in greater detail below, the priorities and weights of these ads will be calculated to optimize the delivery plan for all of the ads and all of the users.
  • the ads to be delivered to a subscriber are not simply compiled in a simple linear list of ads that should be displayed to a subscriber when the subscriber is available.
  • the Scheduler component of the present invention is capable of generating a plan that is interpreted by the CDS Server 74 of the present invention to deliver ads to subscribers.
  • These plans can be referred to as Delivery Specs, or delivery specifications.
  • a Delivery Spec spans some time interval (typically a day, but it can vary) and has a collection of entries in it for each ad active during that time interval.
  • each ad is defined by: 1. An unique ad identifier (AD ID);
  • the Deliveries Requested can be, in other words, the number of times an advertiser requests that the ad be viewed by all of the viewers combined in a given time period.
  • the Deliveries Expected can be the number of times that the ad is expected to be viewed over the given time period.
  • the values that dictate the delivery of the ads to a client 10 are the priority and weight pairs. These values, in conjunction with a randomly generated number described below, determine the ordering of the delivery of ads to a client 10.
  • the ordering is as follows. Generally, all ads will be placed in the delivery queue in order of priority with ads with the highest priority getting delivered first. If two or more ads have the same priority level, then a random number is used in conjunction with the weights of these ads to determine delivery. The sum of the weights for all the ads in the same priority level is then calculated. Based on this value and the random number the CDS Server 74 will select the next ad to place in the queue.
  • AD ID 127 has priority 5 and weight 0.3 and AD ID 17 also has priority 5 and weight 0.2.
  • the probability of delivery for each ad is then calculated as being the weight of the ad divided by the sum of the weights for the ads with the same priority.
  • Table 2 illustrates the probability of delivery for the ads of Table 1.
  • the probability of delivery for an ad is the probability that the ad will be delivered to the user for each ad slot, which is a time period in which an ad can be delivered to the user. This also corresponds to the percentage of available time slots over the time period in which the ad will be displayed. In the embodiment of Table 2, therefore, the ad having AD ID 127 would be displayed 60 percent of the time to the user, the ad having AD ID 17 would be displayed 40 percent of the time to the user, and the ad having AD ID 223 would not be displayed to the user.
  • Each ad should generally be displayed the number of times set in the ad campaign for the Deliveries Requested. This number of displays is the total number of impressions to be delivered for the ad over all users.
  • the method and system of the invention would lower the priorities for these ads, and AD ID 223 would eventually be delivered instead.
  • the values of the priorities and weights for ads therefore, is dynamically altered so that an optimal (or close to optimal) delivery plan can be achieved.
  • the Delivery Parameter Optimizer which can reside in the On-Demand Scheduler 70, is the scheduler's mathematical engine responsible for adjusting the priorities and weights of the ads to produce an optimal delivery plan.
  • Determining the optimal priority/weight pair of ads so that delivery over all of the subscribers in the system is optimal can be a difficult problem.
  • a matrix of subscribers and advertisements that is, a matrix such as Table 3, which is explained below.
  • the scheduler can, in one embodiment, deal with only a subset of the subscribers in the system. In such an embodiment, the subset of subscribers can be chosen randomly.
  • the DPO of the present invention can therefore attempt to optimize the delivery plan for all of the ads by considering only this smaller subset of sampled subscribers. After the delivery plan is optimized for this subset of sampled subscribers, the results can be projected out for all of the subscribers.
  • the DPO attempts to find a delivery plan for the ads so that a "Delivery Ratio" for all ads having the same priority is approximately the same.
  • the Delivery Ratio for an ad Ai is defined to be:
  • DelEx(A is the Deliveries Expected for ad Ai
  • DelRat(Aj) is the Delivery Ratio for ad Ai
  • DelRq(A is the Deliveries Requested for ad Ai.
  • each ad is defined by a set of entries, including an AD ID, a priority, a weight, a number of Deliveries Requested, and a number of Deliveries Expected.
  • the Deliveries Requested is the number of ad impressions that an advertiser wishes to be achieved for a given ad over a time period, and this number is typically set by the advertiser.
  • the Deliveries Expected is the number of impressions that can be expected to be delivered for the ad at the current delivery schedule.
  • the Delivery Ratio is used to assess the performance of an individual content delivery in proportion to the master list of ads.
  • the analysis of Delivery Ratios provides a basis for evaluating the efficiency of the delivery plan in delivering advertisements. Different delivery plans are evaluated according to the Deliveries Expected that they yield compared to the Deliveries Requested.
  • the DPO can attempt to achieve an optimal constant value of DeliveriesExpected / DeliveriesRequested, or as close to this optimum as is possible.
  • the ads are segregated into groups of ads with different levels of priorities, each ad within the same group having approximately the same Delivery Ratio.
  • the priorities of the groups of ads can be altered to achieve an optimal delivery plan, as is discussed in greater detail below.
  • This "energy equation" can be used to evaluate the priorities and weights for ads to determine if the priorities and weights help to attain an optimal overall delivery plan in a manner that will be described in more detail below.
  • a preliminary step in the method and system of the invention is to determine the Deliveries Requested for each ad as a function of the priorities and weights for ads.
  • the following example illustrates the determination of the Deliveries Requested as a function of the weights for the ads.
  • Table 3 lists information about five different ads (Adl, Ad2, Ad3, Ad4, Ad5). Each of these ads has a priority and a weight listed in priority and weight columns of Table 3.
  • Table 3 also lists three different subscribers (Subl, Sub2, Sub3) along with an indication of whether each ad is compatible for delivery to each of the subscribers. An ad is compatible for delivery to a subscriber if the profile of the subscriber matches the profile sought by the advertiser for the ad.
  • each subscriber will have a value (VI, V2, V3) that is the inventory of ads that the user will typically view over a given time period.
  • VIP value
  • V2, V3 value that is the inventory of ads that the user will typically view over a given time period.
  • a subscriber for instance, might typically view 40 advertisements per day.
  • the value of the inventory V for each user is typically a constant.
  • a matrix of the eligibility of each ad for delivery to each subscriber is determined.
  • the priorities for ads that match the profile of subscribers are examined.
  • An ad is eligible for delivery to a subscriber only if the priority of the ad is the highest for the subscriber or tied for the highest for the subscriber.
  • Table 4 shows the eligibility for delivery for each of the ads to each of the subscribers for the example of Table 3. Note that ad Adl is not eligible for delivery to subscriber Sub2 because ads Ad2, Ad3, and Ad4 each have a higher priority than ad Adl and are also compatible for delivery to subscriber Sub2.
  • Table 5 below is a table showing the weight for each ad that is eligible for delivery to a subscriber (using the example of Table 3). In order to calculate the probability of delivery to a subscriber for ads that have the same priority, the sum of all of the weights for the eligible ads for each subscriber is determined. Table 5, therefore, also shows the sum of the weights for eligible ads for each subscriber.
  • Table 6 below shows the Deliveries Expected for each ad as a function of the inventories and weights of the ads.
  • the weight for the ad is multiplied by the inventory V for the user, and then this number is divided by the sum of the weights of the eligible ads for the user. The result is an indication of the expected impressions that each of the subscribers will contribute for each ad.
  • the Total Deliveries Expected is then the sum of the Deliveries Expected by each subscriber for each ad.
  • Each subset of ads having the same priority can be grouped together in determining the Deliveries Expected, as noted above and depicted in Table 6.
  • the total number of Deliveries Requested for this subset of ads will be a constant as determined by the delivery specifications for the ads (that is, based on the wishes of advertisers).
  • the total number of Deliveries Expected for this group of ads will be a constant equaling the total inventory of all of the subscribers who are eligible for delivery of one or more ads during the given time period. For this reason, the Overall Delivery Ratio for this subset of ads will be constant. This Overall Delivery Ratio can be expressed as:
  • DelEx(Ai) is the Deliveries Expected for ad Ai as a function of the weights for all of the ads in the subset (as in Table 6 above), and where DelRq(Ai) is the Deliveries Requested for ad Aj.
  • the result therefore, is a number of equations for the Deliveries Expected, with the number of equations equaling the number of ads, and with the number of unknown weights W(A,) also equaling the number of ads.
  • the equations for n ads are:
  • W is the vector of n weights for all of the ads
  • DelRq is the vector of n Deliveries Requested for all of the ads
  • DelEx is the Deliveries Expected, an n- dimensional rational function of the vector of weights.
  • the energy function described above can be used to determine the weight for each ad. Once again, this method is performed for each subset of ads having the same priority. In addition, it should be noted that a subset of the total number of subscribers can be used, and then the results can be projected out for the other subscribers of the system.
  • the method for finding the weights in equation (6) above involves using Newton's Method combined with an approximation of Newton's Method to solve for the weights.
  • a step from Newton's Method is ignored if it increases the energy function of equation (2).
  • Newton's Method is a general procedure that can be applied to solve many types of equations. When specialized to the problem of finding a zero value of a real-valued function for a real variable, it is often called the Newton-Raphson iteration.
  • Newton's Method is one method that can be used to solve such equations, although other methods could also be used.
  • Newton's Method is faster than some other methods, such as the bisection and the secant methods, because the convergence for Newton's Method is quadric rather than linear or superlinear, as may be the case for the bisection and the secant methods.
  • One approach to this problem is to plot a bunch of points and connect the dots until it looks like the function will hit zero. However, there are cases where this will not lead to the actual value because the function is too noisy.
  • Newton's Method is a way of iteratively calculating the next value to test for a zero value of f(x). It relies on using the first derivative of the function, or f (x).
  • a multi-dimensional Newton's Method can be used to solve equation (6).
  • the following pseudo-code of Table 8 can be used, where DelEx'(W) is the Jacobian of DelEx at W, and Inverse(DelEx'(W)) is the matrix inverse of the Jacobian of DelEx at W:
  • Newton's Method works well in many cases, although in some cases equation (6) is not solvable for the weights W(A ⁇ and Newton's Method does not converge.
  • equation (6) is not solvable for the weights W(A ⁇ and Newton's Method does not converge.
  • input information about ads is input at block 400.
  • This input information can include information on the Deliveries Requested for ads, the inventory of ad slots available at each network device, and other information about the ads.
  • each set of ads having the same priority level is grouped.
  • an iteration of Newton's Method is used with equation (6) to determine a new weight W(Ai)' for each ad Ai at that priority level.
  • Block 402 of FIGURE 4 depicts this act.
  • One iteration can be performed in one embodiment, although it is also possible to perform multiple iterations of Newton's Method in this step.
  • the energy is evaluated using the present set of weights W(A and compared to the energy with the new set of weights W(Ai)' from the iteration of Newton's Method.
  • the DelEx(Ai) in equation (7) can be determined using the respective sets of weights W(A , W(Aj)'. If the energy of the system has decreased with the new set of weights W(A ', the weights W(A are reset to equal the new set of weights W(Aj)' .
  • Block 406 depicts the resetting of the weights depending on whether the energy has increased or decreased.
  • the next part of the method for solving for the weights for the ads is to divide the weight of each ad by the delivery ratio for the ad, as depicted in block 408.
  • the weight W(A for each ad Ai is reset to be:
  • the Delivery Ratio for each ad for equation (8) can be determined by dividing Deliveries Expected for the ad by the Deliveries Requested as in equation (1).
  • the step of resetting the weights W(Aj) of equation (8) can be performed an arbitrary number N of times for each iteration of Newton's Method.
  • the number N can, in one embodiment, be 10, although in other embodiments it could be 1, 30, or any other number.
  • Block 408 of the method for solving for the weights acts as a complement to Newton's Method, and it improves the performance of Newton's Method in determining weights W(A ⁇ .
  • This iterative method is slower than using Newton's Method in isolation, but it works for all cases, including the example above where Newton's Method fails. It has generally been found through experimentation that this method has converged in a complete solution for the weights using equation (6) in about 12 iterations or less.
  • Block 410 of FIGURE 4 depicts the repetition of blocks 402, 404, 406, and 408 for each set of ads having the same priority. In this manner, the weights for all of the ads at each priority level can be adjusted.
  • the priorities can be checked and, if necessary, recomputed to optimize the performance of the system.
  • the Delivery Ratio for each set of ads is therefore determined using the weights derived from the modified Newton's Method discussed above. If the Delivery Ratios are approximately the same, then all of the priorities can be set to 1 (or some other value). In such an embodiment, the energy equation (2, 7) above is solvable for a constant Delivery Ratio. If this is the case, the Delivery Spec is defined for each subscriber, and the probability of delivery for each ad for a subscriber will be the weight for the ad divided by the summation of the weights for all of the ads matched to that subscriber.
  • the Delivery Ratio is not the same or approximately the same for all of the ads. This situation arises when one or more groups of subscribers is more highly desired than other groups of subscribers. This results in a low number for the Deliveries Expected for the ad because some of the subscribers who will receive the ad are highly desired by other ads (based on the subscriber's profile). In this case, these ads having the lower Delivery Ratio can be assigned a higher priority so that they will be delivered whenever possible before ads having lower priorities over all of the subscribers.
  • the ads in subset T should have a higher priority than the ads in the ad set S if, and only if, the following equation is true:
  • NoSub(S) is the number of subscribers eligible to receive any ad in ad set S
  • NoSub(T) is the number of subscribers eligible to receive any ad in subset T
  • Req(S) is the total requested number of impressions for all ads in ad set S
  • Req(T) is the total requested number of impressions for all ads in subset T.
  • equation (9) is evaluated for each set of ads with adjacent priority levels.
  • a set of ads with priority level 1 is, for instance, adjacent to a set of ads with priority level 2.
  • Block 414 depicts this act of setting the priorities for these two sets of ads equal to one another if equation (9) is not satisfied.
  • the priorities p and q can each be set to equal either priority p or q. Generally, in practice, p and q are both set to equal the lower of these two priorities p or q, although the priorities could also be set to the higher priority.
  • This first scenario is the scenario where the priorities for the two ad sets are the same.
  • Blocks 412 and 414 are repeated for each set of ads with adjacent priority levels, as indicated by block 416.
  • equation (9) can be evaluated for subsets of ads within each set of ads having the same priority.
  • equation (9) can be evaluated on certain subsets of the set of ads with priority p, and if equation (9) is satisfied, the priority of the subset can be set to equal p+1.
  • the subsets of ads for which equation (9) is evaluated are detailed in the following paragraph below.
  • Block 418 depicts the determination of whether equation (9) is satisfied for the subsets
  • block 420 depicts the increasing of priorities if equation (9) is satisfied.
  • TJ the priority of a subset of ads within a set of ads originally having the same priority is increased in block 420, then the relation to other sets of ads at different priority levels should be altered so that the relation of priority levels is kept the same. Therefore, all priorities of ads outside of the set of ads being evaluated in blocks 418 and 420 are changed accordingly to preserve the original relationships of priorities.
  • Block 422 depicts this adjustment of priority levels. Setting the priority of the subset of ads being evaluated equal to p+1 therefore sets off a chain reaction of priority readjustments for all of the ads outside of the group in question.
  • all of the ads outside of the group that had a priority of p+1 can be set to a priority of p+2 because, originally, they had a higher priority than all of the ads in the set of ads being evaluated.
  • all of the ads that previously had a priority of p+2 can be changed to a priority of p+3, and so on for all of the groups of ads with the same priority until all of the priorities have been adjusted so that the original relationships between the priorities outside of the set of ads being evaluated in blocks 418 and 420 are maintained.
  • the subset of ads A with Weight(A) > w is evaluated in block 418.
  • the first collection evaluated at block 418 is, therefore, the subset of ads with Weight(A) > w.
  • the subset of ads with Weight(A) > w is increased in priority if equation (9) is not satisfied. Because the subset with Weight(A) > w needs to be serviced more urgently than the ads with lower weights in the same priority level, block 420 increases the priority of this subset of ads if equation (9) is satisfied.
  • the subset of ads A with DeliveryRatio(A) ⁇ d is evaluated.
  • the second collection evaluated at block 418 is, therefore, the subset of ads A with DeliveryRatio(A) ⁇ d.
  • the priority of this subset is increased at block 420. Because the subset with DeliveryRatio(A) ⁇ d needs to be serviced more urgently than the ads with higher Delivery Ratios in the same priority level, block 420 increases the priority of this subset of ads if equation (9) is satisfied.
  • Block 424 depicts that the evaluation of these two collections of subsets of ads and readjustment of priorities (if necessary) is carried out for each set of ads with the same priority level.
  • Block 426 depicts the repetition of the priority adjustment of blocks 412, 414, 418, 420, and 422 until the priorities are steady. These priority adjustment steps essentially amount to a search for an efficient portioning of the group of ads with respect to levels of service.
  • the results are output, as depicted in block 428.
  • the weights and priorities of the output in block 428 are then used by the Delivery Parameter Optimizer (DPO) within the On-Demand Scheduler 70 to determine the Delivery Spec for each subscriber.
  • DPO Delivery Parameter Optimizer
  • the ads delivered to each subscriber can be determined after priorities and weights have been set in the manner discussed above.
  • the DPO and On-Demand Scheduler 70 can constantly readjust priorities and weights in the manner discussed above, and the updated priorities and weights can be used in the Delivery Specs for each subscriber.
  • the ads input to the system (block 400 of FIGURE 4) will change, as will the number of Deliveries Requested for certain ads, and the priorities and weights for ads will be modified.
  • Ad Adl has priority 1, weight 1, and 900 Deliveries Requested.
  • Ad Ad2 has priority 1, weight 1, and 600 Deliveries Requested.
  • Ad Ad3 has priority 1, weight 2, and 500 Deliveries Requested.
  • Two subscribers, Subl and Sub2 exist in the system, and each of these subscribers has an available inventory of 1000 ads to view.
  • the profiles of subscribers Subl and Sub2 match ad Adl, and subscriber Sub2 also has a profile that matches ad Ad2 and Ad3.
  • Ads Ad2 and Ad3 are therefore not compatible with subscriber Subl.
  • a first iteration of Newton's Method is performed to solve equation (6).
  • the energy before the calculation of the new weights is 2340, and the energy after the iteration of Newton's Method with the new weights is 2191.
  • the new weights are therefore accepted as the weights for the system at block 406.
  • the weight for each ad is divided by the delivery ratio for the ad, and this step is repeated ten times.
  • Ads with priority 1 and weight > 0.137609: Ad2, Ad3.
  • Ads with priority 1 and weight > 6.82824: none.
  • Ads with priority 1 and weight > 8.19389: Ad2.
  • Ads with priority 1 and Delivery Ratio ⁇ 1.1212: Ad2, Ad3.
  • Ads with priority 1 and Delivery Ratio ⁇ 0.900839: none.
  • Equation (9) is therefore evaluated for two subsets of ads: (1) the subset of ad Ad2; and (2) the subset of ad Ad2 and Ad3.
  • the evaluation of equation (9) for ad Ad2 becomes:
  • equation (9) is not satisfied for the subset of ad Ad2, the priorities are not modified based on that subset.
  • the evaluation of equation (9) for the second subset of ads, Ad2 and Ad3, becomes:
  • the Capacity Forecaster component 52 assists in predicting the success of a campaign proposed by an advertiser. For example, it predicts whether the system will be able to deliver a proposed number of impressions to users of some given profile within a desired period of time.
  • the Capacity Forecaster 52 calculates the probable or expected supply (i.e., surplus) of screen real estate on user client devices and approves the contract if an adequate supply is expected for the proposed campaign. If the supply is not sufficiently large, the Capacity Forecaster 52 assists the advertiser in modifying the campaign requirements or constraints set by the Ad buyer by determining which constraints could be modified and how in order to successfully schedule a potential contract.
  • the Capacity Forecaster 52 determines campaign achievability by examining the number of qualified subscribers who match the campaign's profile using the Matcher and then creating a new valid schedule with the new ad in it. If a sufficient number of available subscribers is not available, the Capacity Forecaster 52 identifies and suggests constraints to relax so that the campaign goals can be met such as, e.g., increasing the campaign length, reducing the number of requested impressions, or relaxing the profile constraints.
  • the Capacity Forecaster 52 can periodically re-evaluate campaigns currently under execution, and determine their probability of success, e.g., whether the system will be able to schedule the contracted number of content deliveries based on delivery data feedback that has been received. Again, the Forecaster 52 can determine whether constraints set by the advertiser should be relaxed in order to increase the likelihood of success of the campaign.
  • the Inventory Manager 51 generates a master delivery plan expected to fulfill delivery contracts with advertisers. It uses delivery feedback information received from the On-Demand Scheduler 70 of each ITN server 16 in the system to adaptively modify the master plan on a periodic basis.
  • the Inventory Manager 51 calculates a daily goal number of impressions to meet contract requirements. Advertisers typically desire to distribute the total number of desired impressions equally over each day of the campaign. (Alternatively, other distribution patterns can be used as desired.) The goals are periodically updated, e.g., each day, by comparing the number actually delivered to the desired total number of impressions.
  • the Inventory Manager constructs the master delivery plan on a periodic basis, e.g., once a day, based on the calculated goals of each of the active advertising campaigns.
  • the plan specifies a prioritized master list of advertisements, which is sent to the On-Demand Scheduler 70 at each iTV server 16.
  • the order is based preferably both upon priority and some weighting mechanism that indicates how many impressions are needed by each campaign.
  • the Delivery Manager 54 can reorder or reprioritize the master list of scheduled advertisements based upon delivery feedback data and queuing logic/algorithms. For example, if the goal for a given campaign is to evenly distribute an advertisement over the course of the campaign length, the advertisement can be moved down in the queue of advertisements to be displayed if it gets ahead of its daily goals. Similarly, if an advertisement gets behind in meeting its goals, it may be automatically promoted in priority. If an advertisement exceeds its daily goal it can be effectively shut off by being placed at the very end of the queue.
  • the scheduler system ensures that subscribers always have content to display even if they are not eligible for any active campaigns. Accordingly, the system preferably provides a set of default or filler impressions to be displayed when there is no content available for a given user.
  • the scheduler system is capable of delivering 'instant' advertisements (or other content) to subscribers. These are advertisements that are delivered to users if they perform some given action.
  • the system can preferably preempt the normal queue of ordered advertisements in an individual schedule with an instant advertisement when needed.
  • the system preferably allows the percentage of time that instant advertisements can preempt the normal queue to be configurable in order to reduce errors in calculations made by the Capacity Forecaster.
  • the system improves use of excess inventory. It can also increase the likelihood of over-delivery (i.e., delivering a greater number of impressions than requested by an advertiser), which is typically favorable to advertisers. It provides a generally even distribution of impressions over the length of the campaign (if so desired). The system provides greater diversification of impressions (i.e., the advertisements are distributed to different users in a target group).

Abstract

A method for scheduling delivery of items of content to a plurality of network devices. The method features generating an individual list of one or more items of content to be delivered to each network device based on profiles of the network devices and specifications for the items of content (400, 402), and determining a priority and a weight for each of the items of content, the priority and weight for each item of content determining the probability of delivery at each network device in relation to other items of content (404), wherein determining the priority and the weight for each of the items of content optimizes a delivery schedule for the items of content (408).

Description

NON-DETERMINISTIC METHOD AND SYSTEM FOR THE OPTIMIZATION OF TARGETED CONTENT DELIVERY
Background of the Invention
Field of the Invention
The present invention relates to a system and method for scheduling the delivery of targeted content to network devices in an optimal fashion using a non-deterministic algorithm.
Description of Related Art Advertising directed to iTV users (typically video advertisements and banner advertisements) is expected to grow rapidly along with the growth of iTV, the Internet, and E-commerce activity. Traditional methods of advertising have been found to be generally ineffective in drawing responses from users. Traditionally, television advertisements and web advertisements have not been targeted to users but are targeted based on the audience associated with the television show or Internet content site on which the advertisement will be appearing. A more effective method of advertising is advertising targeted to particular users.
The ability to target advertising and content delivery directly to users creates the problem of how to optimally schedule the delivery of the advertising and content. The complexity of the problem arises from having multiple sources of targeted content competing for delivery to end users with non-uniform overlapping periods of eligibility. Most schedulers are focused on problems dealing with the scheduling of resources for the task of an operation. These schedulers typically generate schedules in advance and contain a schedule for the entire operation. Such plans are not flexible and are not optimally tuned on the fly for performance enhancement.
A need exists for a method and system for scheduling delivery of targeted content to network devices in an optimal manner that is flexible and can be fine-tuned on the fly. Brief Summary of the Invention
One embodiment of the invention is a method for scheduling delivery of items of content to a plurality of network devices. In this embodiment, the method features generating an individual list of one or more items of content to be delivered to each network device based on profiles of the network devices and specifications for the items of content, and determining a priority and a weight for each of the items of content, the priority and weight for each item of content determining the probability of delivery at each network device in relation to other items of content, wherein determining the priority and the weight for each of the items of content optimizes a delivery schedule for the items of content. The network devices can be iTV set-top boxes or computers with Internet access, and the items of content can be advertisements. Generally, for each individual network device, the item of content with the highest priority is delivered before other items of content and, if two or more items of content have the same highest priority, the weight for the items of content is used to determine the percentage of time each item of content will be delivered. The method of the invention can use a number of pieces of data, including the number of deliveries requested for each item of content and the number of impression available for each network device to set the weight and priority for each item of content.
Another embodiment of the invention is a computer system for scheduling delivery of items of content to a plurality of network devices. In this embodiment, the computer system features a memory for storing a program and a processor operative with the program to: (1) generate an individual list of one or more items of content to be delivered to each network device based on profiles of the network devices and specifications for the items of content, and (2) determine a priority and a weight for each of the items of content, the priority and weight for each item of content determining the probability of delivery at each network device in relation to other items of content, wherein determining the priority and the weight for each of the items of content optimizes a delivery schedule for the items of content.
These and other features and advantages of the present invention will become readily apparent from the following detailed description wherein embodiments of the invention are shown and described by way of illustration of the best mode of the invention. As will be realized, the invention is capable of other and different embodiments and its several details may be capable of modifications in various respects, all without departing from the invention. Accordingly, the drawings and description are to be regarded as illustrative in nature and not in a restrictive or limiting sense with the scope of the application being indicated in the claims.
Brief Description of the Drawings
For a fuller understanding of the nature and objects of the present invention, reference should be made to the following detailed description taken in connection with the accompanying drawings wherein:
FIGURE 1 is a schematic diagram illustrating a representative network in which the inventive system is preferably implemented;
FIGURE 2 is a schematic diagram illustrating in greater detail the preferred architecture of the inventive system; and
FIGURE 3 is a flow chart illustrating in general the process for scheduling content delivery in accordance with the invention.
FIGURE 4 is a flow chart illustrating in general one process of the invention for adjusting priorities and weights for items of content.
Detailed Description of Preferred Embodiments
U.S. patent application Serial No. 09/767,793 filed January 23, 2001 and entitled "Method and System for Scheduling Online Targeted Content Delivery" is expressly incorporated by reference herein. That application discloses a method and a system for scheduling targeted content delivery to network users that allocates inventory on demand as users come online. In addition, U.S. patent application Serial No. 09/558,755 filed April 21, 2000 and entitled "Method And System For Web User Profiling And Selective Content Delivery" and U.S. patent application Serial No. 09/877,974 filed June 7, 2001 and entitled "Method And System For iTV User Profiling And Selective Content Delivery" are expressly incorporated by reference herein. Those applications disclose methods and systems for profiling online users and iTV users (who are also referred to herein as clients or subscribers) based on their observed surfing or viewing habits and for selectively delivering content, e.g., advertising, to the users based on their individual profiles.
The present invention is directed to optimizing content delivery to network devices. Embodiments of the invention can be implemented in content delivery systems that delivery content based on the profiles of users of the network devices such as, e.g., those disclosed in the above-identified application Serial Nos. 09/767,793; 09/877,974; and 09/558,755. Very briefly, in accordance with one embodiment of the invention, operations research and yield management techniques are utilized to forecast the availability of user screen real estate (i.e., inventory) and a non-deterministic mathematical algorithm is used to optimize the use of surplus real estate and generate on-demand selective content delivery schedules to transmit content to the users. The content is displayed on a user's television or computer monitor, and can comprise advertising, e.g., in the form of video commercial, banner advertisements, or pop-up advertisements. FIGURE 1 illustrates a representative network in which the inventive system can be implemented in one embodiment. The network includes one or more client machines 10 operated by various individual users. The client machines 10 connect to an iTV/ISP server 15 via a communication channel 5, which may be a broadcast that is relayed to the clients 10 via a cable connection, satellite dish, or the like. The communication channel 5, in some embodiments, includes a back channel of communication for data going upstream from a client 10 to the iTV/ISP server 15. Such a back channel of communication, also represented by communication channel 5 in FIGURE 1, can be a telephone line or cable modem, and such a back channel of communication allows two-way communication between the clients 10 and the iTV/ISP server 15. In another embodiment, which is a one-way communication embodiment, the iTV/ISP server 15 broadcasts information to the clients 10, but the clients 10 have no way of accessing or providing information back to the iTV/ISP server 15.
The iTV/ISP server 15 can be an iTV server 12, an ISP server 16, or a combination of the iTV server 12 and the ISP server 16. The iTV server 12 provides iTV content that can include programs, advertisements, and interactive content including the Internet. Such an iTV server can be provided by a cable operator, such as RCN. FIGURE 1 also illustrates an ISP "point-of-presence" (POP), which includes an ISP POP Server 16, which can be linked to the client 10 for providing access to the Internet. The ISP server 16 can be operated by the same entity as the iTV server 12, by separate entities, or by a joint effort between entities. In addition, the iTV server 12 can also function as the ISP server 16. In any event, the combined iTV/ISP server 15 depicted in FIGURE 1 represents the possibility that these two servers can be linked in some manner so that the client 10 has access to interactive television programming and the Internet. It should be noted, however, that in some embodiments a client 10 might not have Internet access, and in such cases the iTV server 12 can be used without an ISP server 16. The Internet service provided through the ISP server 16 can be provided through a cable modem or over telephone lines.
In some embodiments, advertising is hosted by an ad server 17 that is separate from the iTV server 12 that hosts the programming content. In such an embodiment, the iTV server 12 is connected to the ad server 17 by a communication channel 14, which can be an Internet connection. The ad server 17, which can exist in typical iTV or television networks, allows advertisers to interact with the iTV server 12 to manage advertising over the television. In one embodiment of the invention, a master server 18 is used to remotely manage the ad server 17. The master server 18 is connected to the ad server 14 through communication channel 14, which can be an Internet connection. The master server 18 can be used by advertisers in an embodiment of the invention to determine which ads should be sent to which clients 10. In addition, in a television embodiment, the master server 18 communicates this information to the ad server 17 through the communication channel 14, and the information is then forwarded to the iTV server 12 and ultimately the client 10. In an Internet embodiment, the master server 18 communicates this advertising information to the ISP server 16, which then communicates this information to the client 10. The master server 18 can also generate content recommendations for clients 10 that are relayed to the iTV server 12 via the ad server 17.
The client machine 10 can be an interactive television set with a set top box or, in other embodiments, a computer. Generally, these client machines 10 can be any type of network device existing for a subscriber. The set top box can be made by Motorola and the operating system may be the OpenTV operating system, although set top boxes made by other entities and other operating systems can also be used. The television itself can be made by any manufacturer, including but not limited to Magnavox, Sony, and Toshiba. A representative interactive television set includes a set top box with a computer processing unit and memory, a remote control or keyboard, and a display unit (television set). The screen of the display unit is used to present programs, advertising, and other content to the user. A graphical user interface (GUI) on the display unit can also be available for the user to make programming selections, interact with programs, and access the Internet. The GUI is supported by the operating system and allows the user to use a point and click method of input, e.g., by moving a highlighted area on the display screen to a section representing a program at a particular time and pressing on the remote control buttons to perform a selection. Also, one or more "windows" can be opened up on the screen independently or concurrently as desired. One predominant GUI is the interactive television guide that allows a user to select a program to watch through the use of a remote control unit. Client machines 10 usually access web servers through the connection provided by a cable company, such as RCN.
If the interactive television includes Internet access, the client machine 10 typically includes a browser, which is a known software tool used for accessing the Internet. Representative browsers include Netscape Navigator and Microsoft Internet Explorer, although other browsers can be used within the scope of the invention. In such an embodiment, the client 10 can communicate with the ISP server 16. As is well known, the World Wide Web is the Internet's multimedia information retrieval system. In particular, it is a collection of servers of the Internet that use the Hypertext Transfer Protocol (HTTP), which provides users access to files (which can be in different formats such as text, graphics, images, sound, video, etc.) using, e.g., a standard page description language known as Hypertext Markup Language (HTML). HTML provides basic document formatting and allows developers to specify links to other servers and files. These links include "hyperlinks," which are text phrases or graphic objects that conceal the address of a site on the Web.
A user of a client machine 10 having an HTML-compatible browser (e.g., Netscape Navigator) can retrieve a Web page (namely, an HTML formatted document) of a Web site by specifying a link via the URL (e.g., www.yahoo.com/photography). Upon such specification, the client machine makes a transmission control protocol/Internet protocol (TCP/IP) request to the server identified in the link and receives the Web page in return.
FIGURE 2 illustrates in greater detail one preferred scheduler system architecture. (For simplicity, only a single iTV server 16 and a single client 10 are shown.) As illustrated, the master server system 18 includes various software components for managing content delivery including a Dynamic Campaign Manager 50, a Capacity Forecaster 52, a Delivery Manager 54, an Inventory Manager 51, system configuration information 53, and a matcher 56. The master server system 18 also includes a master database 60 storing advertisements and user profiles. Also, On-Demand Scheduler 70, local matcher 72 and content delivery system (cds) server 74 components reside at the iTV server 16. The iTV server 16 also includes a remote local database 76 storing individual user profile data and advertisements. The Dynamic Campaign Manager component 50 provides a portal to the system for advertisers (or Ad buyers or media buyers who act on behalf of advertisers) to initiate and manage their advertising campaigns. (The terms Ad buyer, media buyer, and advertiser are used interchangeably for purposes of this application.) The advertiser can, e.g., monitor the number of times content has been delivered to a client 10 (i.e., the number of impressions) and the number of click-throughs (in the case of banner ads delivered over an interactive television system or via the Internet) on that content during the course of a campaign. In alternative implementations of the network that do not have a back-channel (i.e. the server can send messages to the client device, but the client device cannot send messages back to the server) the data on impressions and click-throughs will be estimated based on survey data (e.g. Nielsen Media Research) and zip code based census data (e.g. Claritas Prizm codes).
The Capacity Forecaster 52 reviews new campaigns proposed by advertisers and predicts whether their campaign objectives are achievable in view of forecasted inventory of user screen real estate. The Capacity Forecaster 52 thereby assists in forming contracts having an expected high degree of success. A 'contract' as used herein is generally an agreement for content delivery typically between the scheduler system operator or owner and an advertiser or media buyer. This agreement specifies various terms including, e.g., the content to be delivered, delivery quantity (i.e., number of impressions), target subscriber group, and start and end dates.
The Inventory Manager 51 generates a candidate plan to fulfill new and existing advertiser contracts and to optimize usage of surplus user screen real estate. The Inventory Manager 51 modifies the plan as needed based on delivery feedback information received from the On-Demand Scheduler 70. In alternate implementations of the present invention for networks that do not have a back channel between the CDS Client and the CDS Server, there is no direct feedback that can be used to update the schedule. For such an implementation, the On-Demand Scheduler and Inventory Manager would have to use outside sources (such as Nielsen Media Research and Claritas Prizm Codes) to estimate how many users of each demographic group actually viewed the ads.
The Delivery Manager 54 generates the best plan for the current day's scheduled deliveries. The Delivery Manger 54 is also responsible for balancing deliveries within a day and processing the results of the On-Demand Scheduler. The On-Demand Scheduler 70 dynamically constructs delivery schedules for individual users as they become active on the system (i.e. when they login or turn on the television). This dynamic process, which seeks to optimize delivery of advertisements, is described in more detail below in the sections on the On-Demand Scheduler and Delivery Parameter Optimizer (DPO). The Capacity Forecaster 52 and Delivery Manager 54 are also described in greater detail below. FIGURE 3 is a flowchart generally illustrating the process of scheduling and delivering content in accordance with the invention. At Step 100, the Dynamic Campaign Manager 50 receives a proposed new advertising campaign from an advertiser. At Step 102, the Capacity Forecaster reviews the proposed campaign to determine whether the campaign goals are achievable. If the inventory projections are less then the campaign goals, then at Step 104, the scheduler system identifies and suggests which constraints could be relaxed in order to achieve campaign goals as will be described below. If the campaign is determined to be achievable, it is approved at Step 106.
The Inventory Manager 51 then constructs a delivery plan for all approved campaigns at Step 108. At Step 110, for each subscriber, the On-Demand scheduler 70 constructs an individual delivery schedule, and ads are matched with individual subscribers based on the profiles of the subscribers, which can be generated in any manner, including sampling or demographic analysis. At Step 112 advertisements are transmitted to users based on their individual delivery schedules. The system reports advertisement delivery feedback to the Delivery Manager at Step 114, which is used to update the master delivery plan as will be discussed below. Finally, it should be noted that the embodiments of the invention described herein can be used to deliver not only advertisements ("ads"), but also other items of content as well, such as program content.
On-Demand Scheduler
The On-Demand Scheduler 70, which resides at each iTV server 16 in the system, dynamically constructs an individual ordered list of advertisements to be delivered for each given user upon user login. If there is no back channel of communication at the client 10, the set-top box at the client 10 (in an iTV embodiment) performs this function. Each individual list includes advertisements matched to the user and prioritized according to the master list received from the Delivery Manager 54. The list of advertisements that the client 10 receives is therefore matched to the client's profile.
After the Delivery Manager 54 has produced a plan for a set of ads, the Content Delivery System (CDS) Server 74 loads this plan from the database and generates a matrix of ads which are compatible with subscribers that are eligible to view these ads. The CDS Server 74 will then order the matching ads based on an algorithm driven by the priorities and weights that have been assigned to the ads. As will be described in greater detail below, the priorities and weights of these ads will be calculated to optimize the delivery plan for all of the ads and all of the users.
There are numerous factors to consider, including the maximization of revenue per delivery and minimization of cost per delivery, in scheduling deliveries for a system. Most contracts with advertisers and other content providers contain clauses that require a minimum number of deliveries to be made before any revenue is generated. There are also benefits to long term business prospects by meeting or exceeding the advertiser's desired maximum number of deliveries even if exceeding the advertiser's desired maximum may not increase the revenue generated for that contract. Current content delivery services typically pre-schedule all content deliveries for all users using conservative estimates of schedule deliveries in order to fulfill advertising contracts. Known content delivery systems can therefore be inefficient in utilizing inventory and fulfilling advertiser contracts.
In the method and system of the invention, the ads to be delivered to a subscriber are not simply compiled in a simple linear list of ads that should be displayed to a subscriber when the subscriber is available. Instead, the Scheduler component of the present invention is capable of generating a plan that is interpreted by the CDS Server 74 of the present invention to deliver ads to subscribers. These plans can be referred to as Delivery Specs, or delivery specifications. A Delivery Spec spans some time interval (typically a day, but it can vary) and has a collection of entries in it for each ad active during that time interval. In one embodiment, each ad is defined by: 1. An unique ad identifier (AD ID);
2. An integer for priority (priority);
3. An number for weight (weight);
4. An integer for the target number of impressions to deliver to this ad for the associated time period (Deliveries Requested); and 5. An integer for the expected number of impressions which will be delivered to this ad over the associated time period (Deliveries Expected).
The Deliveries Requested can be, in other words, the number of times an advertiser requests that the ad be viewed by all of the viewers combined in a given time period. The Deliveries Expected, on the other hand, can be the number of times that the ad is expected to be viewed over the given time period.
The values that dictate the delivery of the ads to a client 10 are the priority and weight pairs. These values, in conjunction with a randomly generated number described below, determine the ordering of the delivery of ads to a client 10. The ordering is as follows. Generally, all ads will be placed in the delivery queue in order of priority with ads with the highest priority getting delivered first. If two or more ads have the same priority level, then a random number is used in conjunction with the weights of these ads to determine delivery. The sum of the weights for all the ads in the same priority level is then calculated. Based on this value and the random number the CDS Server 74 will select the next ad to place in the queue. As an example to illustrate the use of priorities and weights in delivering advertisements to a given subscriber, assume a user comes on-line (via either iTV or the Internet) and the following ads in Table 1 are eligible to be delivered to the user. Each ad, which is defined by an AD ID, has a priority and a weight. Table 1 is a short list of ads, but it should be noted that such a list could contain a large number of ads. Table 1
Figure imgf000014_0001
If one ad has the highest priority and no other ads are tied in priority with this ad, then it would be delivered with a probability of 1. In other words, the ad with the highest priority would be delivered all of the time for this client 10. In the embodiment of Table 1, however, two ads have the highest priority of 5. Generally, it should be noted that a number of ads might have the same priority, and Table 1 simply illustrates this point with two out of three ads having the same, highest priority. Because no one ad has the highest priority, the weights are used to determine the probability of delivery of these ads. To determine the probability of delivery for each ad of priority 5, the weight for each ad is divided by the sum of all weights for all ads with priority 5. In this case, therefore, AD ID 127 has priority 5 and weight 0.3 and AD ID 17 also has priority 5 and weight 0.2. The sum of the weights for the ads with priority 5 is therefore 0.3 + 0.2 = 0.5. The probability of delivery for each ad is then calculated as being the weight of the ad divided by the sum of the weights for the ads with the same priority. For AD ID 127, therefore, the probability of delivery is 0.3/0.5 = 0.6, and for AD ID 17 the probability of delivery is 0.2/0.5 = 0.4. Because an ad that does not have the highest priority will not be delivered, the probability of delivery for such ads is zero. Table 2 below illustrates the probability of delivery for the ads of Table 1. Table 2
Figure imgf000015_0001
The probability of delivery for an ad is the probability that the ad will be delivered to the user for each ad slot, which is a time period in which an ad can be delivered to the user. This also corresponds to the percentage of available time slots over the time period in which the ad will be displayed. In the embodiment of Table 2, therefore, the ad having AD ID 127 would be displayed 60 percent of the time to the user, the ad having AD ID 17 would be displayed 40 percent of the time to the user, and the ad having AD ID 223 would not be displayed to the user. Each ad should generally be displayed the number of times set in the ad campaign for the Deliveries Requested. This number of displays is the total number of impressions to be delivered for the ad over all users. Eventually, as the ad campaigns for the ads having AD IDs 127 and 17 come close to completion, the method and system of the invention would lower the priorities for these ads, and AD ID 223 would eventually be delivered instead. The values of the priorities and weights for ads, therefore, is dynamically altered so that an optimal (or close to optimal) delivery plan can be achieved.
Delivery Parameter Optimizer
The Delivery Parameter Optimizer (DPO), which can reside in the On-Demand Scheduler 70, is the scheduler's mathematical engine responsible for adjusting the priorities and weights of the ads to produce an optimal delivery plan.
Determining the optimal priority/weight pair of ads so that delivery over all of the subscribers in the system is optimal can be a difficult problem. In the case where there are, for example, one million unique subscribers in the system, and one thousand ads, there would need to be one billion entries in a matrix of subscribers and advertisements (that is, a matrix such as Table 3, which is explained below). Include adjusting weights for all of these ads, and the computational resources required to generate a solution setting weights for all ads can be very large. In order to overcome these problems, the scheduler can, in one embodiment, deal with only a subset of the subscribers in the system. In such an embodiment, the subset of subscribers can be chosen randomly. The DPO of the present invention can therefore attempt to optimize the delivery plan for all of the ads by considering only this smaller subset of sampled subscribers. After the delivery plan is optimized for this subset of sampled subscribers, the results can be projected out for all of the subscribers. The DPO attempts to find a delivery plan for the ads so that a "Delivery Ratio" for all ads having the same priority is approximately the same. The Delivery Ratio for an ad Ai is defined to be:
DelRat(Ai) = DelEx(Ai) ÷ DelRq(Ai); (1)
where DelEx(A is the Deliveries Expected for ad Ai, DelRat(Aj) is the Delivery Ratio for ad Ai, and DelRq(A is the Deliveries Requested for ad Ai.
As indicated earlier, each ad is defined by a set of entries, including an AD ID, a priority, a weight, a number of Deliveries Requested, and a number of Deliveries Expected. Once again, the Deliveries Requested is the number of ad impressions that an advertiser wishes to be achieved for a given ad over a time period, and this number is typically set by the advertiser. The Deliveries Expected is the number of impressions that can be expected to be delivered for the ad at the current delivery schedule.
The Delivery Ratio is used to assess the performance of an individual content delivery in proportion to the master list of ads. The analysis of Delivery Ratios provides a basis for evaluating the efficiency of the delivery plan in delivering advertisements. Different delivery plans are evaluated according to the Deliveries Expected that they yield compared to the Deliveries Requested. The DPO can attempt to achieve an optimal constant value of DeliveriesExpected / DeliveriesRequested, or as close to this optimum as is possible. Generally, it can be desired that the Delivery Ratio for all ads be the same because this indicates that each of those ads is receiving about the same level of service (normalized for the Deliveries Requested). In some cases, it is possible to achieve this optimal Delivery Ratio for all ads. If this is not possible, the ads are segregated into groups of ads with different levels of priorities, each ad within the same group having approximately the same Delivery Ratio. The priorities of the groups of ads can be altered to achieve an optimal delivery plan, as is discussed in greater detail below.
It has been found that, in order to find a desirable delivery plan, the following "energy" equation can be used:
Energy = £ [DeZEx(Ai) x eZR t(Ai)] ; (2) i:Ads
This "energy equation" can be used to evaluate the priorities and weights for ads to determine if the priorities and weights help to attain an optimal overall delivery plan in a manner that will be described in more detail below.
A preliminary step in the method and system of the invention is to determine the Deliveries Requested for each ad as a function of the priorities and weights for ads. The following example illustrates the determination of the Deliveries Requested as a function of the weights for the ads. First, Table 3 lists information about five different ads (Adl, Ad2, Ad3, Ad4, Ad5). Each of these ads has a priority and a weight listed in priority and weight columns of Table 3. Table 3 also lists three different subscribers (Subl, Sub2, Sub3) along with an indication of whether each ad is compatible for delivery to each of the subscribers. An ad is compatible for delivery to a subscriber if the profile of the subscriber matches the profile sought by the advertiser for the ad. In other words, ads are matched to the profiles of subscribers. Finally, each subscriber will have a value (VI, V2, V3) that is the inventory of ads that the user will typically view over a given time period. A subscriber, for instance, might typically view 40 advertisements per day. The value of the inventory V for each user is typically a constant. Table 3 Ad and Subscriber Information
Figure imgf000018_0001
Next, a matrix of the eligibility of each ad for delivery to each subscriber is determined. In order to determine if an ad is eligible for delivery to a subscriber, the priorities for ads that match the profile of subscribers are examined. An ad is eligible for delivery to a subscriber only if the priority of the ad is the highest for the subscriber or tied for the highest for the subscriber. Table 4 below shows the eligibility for delivery for each of the ads to each of the subscribers for the example of Table 3. Note that ad Adl is not eligible for delivery to subscriber Sub2 because ads Ad2, Ad3, and Ad4 each have a higher priority than ad Adl and are also compatible for delivery to subscriber Sub2.
Table 4 Delivery Eligibility
Figure imgf000018_0002
Table 5 below is a table showing the weight for each ad that is eligible for delivery to a subscriber (using the example of Table 3). In order to calculate the probability of delivery to a subscriber for ads that have the same priority, the sum of all of the weights for the eligible ads for each subscriber is determined. Table 5, therefore, also shows the sum of the weights for eligible ads for each subscriber.
Table 5 Weight values
Figure imgf000019_0001
Table 6 below shows the Deliveries Expected for each ad as a function of the inventories and weights of the ads. In order to determine the Deliveries Expected for each ad for each subscriber, the weight for the ad is multiplied by the inventory V for the user, and then this number is divided by the sum of the weights of the eligible ads for the user. The result is an indication of the expected impressions that each of the subscribers will contribute for each ad. The Total Deliveries Expected is then the sum of the Deliveries Expected by each subscriber for each ad.
Table 6 Deliveries Expected
Figure imgf000020_0001
It should be noted that, in a typical system, the number of ads and the number of subscribers is markedly larger than in the example above, where only five ads and three subscribers were used for illustrative purposes.
Each subset of ads having the same priority can be grouped together in determining the Deliveries Expected, as noted above and depicted in Table 6. The total number of Deliveries Requested for this subset of ads will be a constant as determined by the delivery specifications for the ads (that is, based on the wishes of advertisers). In addition, the total number of Deliveries Expected for this group of ads will be a constant equaling the total inventory of all of the subscribers who are eligible for delivery of one or more ads during the given time period. For this reason, the Overall Delivery Ratio for this subset of ads will be constant. This Overall Delivery Ratio can be expressed as:
Q = ∑[DelEx(AΪ)] ÷ ∑[DelRq(AΪ)] ; (3) ϊ.Ads v.Ads
where Q is the Overall Delivery Ratio, DelEx(A is the Deliveries Expected for ad Ai, and DelRq(Ai) is the Deliveries Requested for ad Ai. The system and method of the invention attempts to find weights that cause each ad within a given priority level to have the same delivery ratio. This is possible when each delivery ratio is equal to the Overall Delivery Ratio Q for the priority level. The system, therefore, attempts to solve equation (4) below for each ad Aj:
DelEx(Ai) = Qx DelRq(Ai)\ (4)
where DelEx(Ai) is the Deliveries Expected for ad Ai as a function of the weights for all of the ads in the subset (as in Table 6 above), and where DelRq(Ai) is the Deliveries Requested for ad Aj. The result, therefore, is a number of equations for the Deliveries Expected, with the number of equations equaling the number of ads, and with the number of unknown weights W(A,) also equaling the number of ads. The equations for n ads are:
DelEx(AΪ) = Qx DelRq(A\); (5)
DelEx(A2) = Qx DelRq(A2); DelEx(A3) = Qx DelRq(A3);
DelEx(A ) = Qx DelRq(An).
This system of equations can also be written:
DelEx(W) = QX DelRq; (6)
where W is the vector of n weights for all of the ads, DelRq is the vector of n Deliveries Requested for all of the ads, and DelEx is the Deliveries Expected, an n- dimensional rational function of the vector of weights. Solving for the Weights and Priorities
After the Deliveries Expected for each subscriber for each ad is determined, the energy function described above can be used to determine the weight for each ad. Once again, this method is performed for each subset of ads having the same priority. In addition, it should be noted that a subset of the total number of subscribers can be used, and then the results can be projected out for the other subscribers of the system.
In one embodiment, the method for finding the weights in equation (6) above involves using Newton's Method combined with an approximation of Newton's Method to solve for the weights. In this embodiment, a step from Newton's Method is ignored if it increases the energy function of equation (2). By way of background, Newton's Method is a general procedure that can be applied to solve many types of equations. When specialized to the problem of finding a zero value of a real-valued function for a real variable, it is often called the Newton-Raphson iteration. In general, Newton's Method is one method that can be used to solve such equations, although other methods could also be used. Generally, Newton's Method is faster than some other methods, such as the bisection and the secant methods, because the convergence for Newton's Method is quadric rather than linear or superlinear, as may be the case for the bisection and the secant methods.
Generally, Newton's Method can be used to find the values "x" in a function f(x) that will result in f(x) = 0. One approach to this problem is to plot a bunch of points and connect the dots until it looks like the function will hit zero. However, there are cases where this will not lead to the actual value because the function is too noisy. Newton's Method is a way of iteratively calculating the next value to test for a zero value of f(x). It relies on using the first derivative of the function, or f (x). Pseudo-code explaining Newton's Method, which is taken from "Numerical Analysis by David Kincaid," ρg.86, ISBN# 0-534-33892-5, follows below as Table 7: Table 7 input x, M; y :=f(χ); output 0, x, y; for k = 1 toM do; x ;= {xj - (y/f(x)}; y :=f(χ); output k, x, y; end do.
A multi-dimensional Newton's Method can be used to solve equation (6). Specifically, the following pseudo-code of Table 8 can be used, where DelEx'(W) is the Jacobian of DelEx at W, and Inverse(DelEx'(W)) is the matrix inverse of the Jacobian of DelEx at W:
Table 8 for k = 1 toM do;
W . - W + Inverse(DelEx'(W) (Q * DelRq - DelEx(W)); end do.
Newton's Method works well in many cases, although in some cases equation (6) is not solvable for the weights W(Aø and Newton's Method does not converge. As an example of a situation where Newton's Method does not converge, consider the following example. Suppose there is an available inventory of 2,000 possible impressions over a given time period and there are three ads with the following number of Deliveries
Requested (DelRq): Adl = 600, Ad2 = 900, and Ad3 = 500. Assume the initial weight for each ad is 1. The first step of Newton's Method will result in weights that produce the following number of deliveries (DelEx[W(Ai)]) for each ad: Adl = 1333, Ad2 = 333, and Ad3 = 333. Such a schedule would deliver far too many impressions for Adl and would deliver too few impressions for ads Ad2 and Ad3. The weight for each ad resulting from this first step would be: Adl = -3.2, Ad2 = 0.1, and Ad3 = 1.0. It should be noted that the negative weight for ad Adl makes no practical sense in terms of delivering ads. The next step of Newton's Method would result in the following number of deliveries for each ad: Adl = 2524, Ad2 = -48, and Ad3 = -476. Such a schedule would deliver far too many impressions for ad AI and would not only deliver too few impressions for ads Ad2 and Ad3, but it suggests a negative number of deliveries for ads Ad2 and Ad3, which is not possible. In this example, therefore, Newton's Method does not effectively solve the equation to optimize the delivery schedule.
Because, in some instances, Newton's Method does not converge and equation (6) is not solvable for unique weights, a revised method can be used to solve equation (6) for the weights W(Ai). After the weights W(A have been adjusted, the priorities for the ads can be adjusted. One embodiment of a method for adjusting weights and priorities is depicted in flow chart form in FIGURE 4 and also in pseudo-code in Table 9 below:
Table 9 repeat indefinitely; input new ads, and/or updated data on subscribers; for each set of ads with priority level p; using one Newton's Method iteration, determine new weights W(Aι)' for each ad at priority level p based on previous weights W(Aι) and equation (6); ifenergy[W(Ai)'] < energy [W(A,)]t set W(At) := Wfa)'; repeat N times; for each ad Ai at priority level p; set weight[W(Ai)] := weight[W(A{)] / DeliveιyRatio(A, ; repeat until no changes to priority are made; for each pair of adjacent priority levels p and q; reset priority p=q if equation (9) is not satisfied; if equation (9) is satisfied; increase priority of all ads in subset or with higher priority than p; output results.
Referring to FIGURE 4, input information about ads is input at block 400. This input information can include information on the Deliveries Requested for ads, the inventory of ad slots available at each network device, and other information about the ads. Initially, each set of ads having the same priority level is grouped. For each of these sets of ads, an iteration of Newton's Method is used with equation (6) to determine a new weight W(Ai)' for each ad Ai at that priority level. Block 402 of FIGURE 4 depicts this act. One iteration can be performed in one embodiment, although it is also possible to perform multiple iterations of Newton's Method in this step. Next, a determination is made as to whether the energy of the system has been increased with the new weights W(A ' determined from the iteration of Newton's Method. In other words, the energy equation is evaluated for the new set of weights for the group of ads, and block 404 depicts this determination. The energy equation of equation (2) is repeated below as equation (7):
Energy = ∑ [DelEx(Aϊ) x DelRat(Aϊ)] ; (7) .Ads
In order to evaluate the energy with the weights, the energy is evaluated using the present set of weights W(A and compared to the energy with the new set of weights W(Ai)' from the iteration of Newton's Method. The DelEx(Ai) in equation (7) can be determined using the respective sets of weights W(A , W(Aj)'. If the energy of the system has decreased with the new set of weights W(A ', the weights W(A are reset to equal the new set of weights W(Aj)' . Block 406 depicts the resetting of the weights depending on whether the energy has increased or decreased.
The next part of the method for solving for the weights for the ads is to divide the weight of each ad by the delivery ratio for the ad, as depicted in block 408. In other words, the weight W(A for each ad Ai is reset to be:
W(Ai) = W(Ai) ÷ DelRat(Ai); (8)
The Delivery Ratio for each ad for equation (8) can be determined by dividing Deliveries Expected for the ad by the Deliveries Requested as in equation (1). In one embodiment, the step of resetting the weights W(Aj) of equation (8) can be performed an arbitrary number N of times for each iteration of Newton's Method. The number N can, in one embodiment, be 10, although in other embodiments it could be 1, 30, or any other number. Although the performance of this step of dividing the weight of each ad by the delivery ratio for the ad does not converge as quickly as using only Newton's Method, it does work for each set of inputs, even if Newton's Method itself does not converge in a solution, as in the example above. In other words, it works well to solve for weights that decrease the output of the energy equation (7), and it therefore produces closer solutions for the weights. However, since the computation required for this step of the method is much faster than a step of Newton's Method, it is, in some embodiments, run several times for each step of Newton's Method, somewhat compensating for the slower convergence.
Block 408 of the method for solving for the weights (that is, dividing the weight of each ad by the delivery ratio for the ad) acts as a complement to Newton's Method, and it improves the performance of Newton's Method in determining weights W(Aø. This iterative method is slower than using Newton's Method in isolation, but it works for all cases, including the example above where Newton's Method fails. It has generally been found through experimentation that this method has converged in a complete solution for the weights using equation (6) in about 12 iterations or less. Block 410 of FIGURE 4 depicts the repetition of blocks 402, 404, 406, and 408 for each set of ads having the same priority. In this manner, the weights for all of the ads at each priority level can be adjusted.
After the computation of a set of weights for each group of ads having the same priority using the steps discussed above, the priorities can be checked and, if necessary, recomputed to optimize the performance of the system.
If there exists a set of weights for all of the ads such that the Delivery Ratio is the same or approximately the same for all of the ads, then there is no need for the use of different priorities in the system, and all of the priorities can be set to the same level, such as 1. The Delivery Ratio for each set of ads is therefore determined using the weights derived from the modified Newton's Method discussed above. If the Delivery Ratios are approximately the same, then all of the priorities can be set to 1 (or some other value). In such an embodiment, the energy equation (2, 7) above is solvable for a constant Delivery Ratio. If this is the case, the Delivery Spec is defined for each subscriber, and the probability of delivery for each ad for a subscriber will be the weight for the ad divided by the summation of the weights for all of the ads matched to that subscriber.
It often happens, however, that there is a collection of ads that always have a lower Delivery Ratio than the other ads. In such a case, the Delivery Ratio is not the same or approximately the same for all of the ads. This situation arises when one or more groups of subscribers is more highly desired than other groups of subscribers. This results in a low number for the Deliveries Expected for the ad because some of the subscribers who will receive the ad are highly desired by other ads (based on the subscriber's profile). In this case, these ads having the lower Delivery Ratio can be assigned a higher priority so that they will be delivered whenever possible before ads having lower priorities over all of the subscribers. In mathematical terms, for any set of ads S, and any subset T of the ad set S, the ads in subset T should have a higher priority than the ads in the ad set S if, and only if, the following equation is true:
[NoSub(S) ÷Rcq(S)] ≤ [NoSub(T) ÷Req(T)]; (9)
where NoSub(S) is the number of subscribers eligible to receive any ad in ad set S, NoSub(T) is the number of subscribers eligible to receive any ad in subset T, Req(S) is the total requested number of impressions for all ads in ad set S, and Req(T) is the total requested number of impressions for all ads in subset T. The method and system of the invention can use equation (9) above to determine whether the priorities for ads should be adjusted in two ways. First, in block 412 of FIGURE 4, equation (9) is evaluated for each set of ads with adjacent priority levels. A set of ads with priority level 1 is, for instance, adjacent to a set of ads with priority level 2. If there exists sets of ads with priorities p and q (priority p can be for subset T and priority q can be for ad set S), such that the subset T of ads with priority p and the set of ads S with priority q do not satisfy this equation (9), then the priority of all ads with priority p is set to equal q. Block 414 depicts this act of setting the priorities for these two sets of ads equal to one another if equation (9) is not satisfied. The priorities p and q can each be set to equal either priority p or q. Generally, in practice, p and q are both set to equal the lower of these two priorities p or q, although the priorities could also be set to the higher priority. This first scenario, therefore, is the scenario where the priorities for the two ad sets are the same. Blocks 412 and 414 are repeated for each set of ads with adjacent priority levels, as indicated by block 416. Second, equation (9) can be evaluated for subsets of ads within each set of ads having the same priority. For each set of ads with priority p, equation (9) can be evaluated on certain subsets of the set of ads with priority p, and if equation (9) is satisfied, the priority of the subset can be set to equal p+1. The subsets of ads for which equation (9) is evaluated are detailed in the following paragraph below. Block 418 depicts the determination of whether equation (9) is satisfied for the subsets, and block 420 depicts the increasing of priorities if equation (9) is satisfied. TJ the priority of a subset of ads within a set of ads originally having the same priority is increased in block 420, then the relation to other sets of ads at different priority levels should be altered so that the relation of priority levels is kept the same. Therefore, all priorities of ads outside of the set of ads being evaluated in blocks 418 and 420 are changed accordingly to preserve the original relationships of priorities. Block 422 depicts this adjustment of priority levels. Setting the priority of the subset of ads being evaluated equal to p+1 therefore sets off a chain reaction of priority readjustments for all of the ads outside of the group in question. To perform this readjustment, all of the ads outside of the group that had a priority of p+1 can be set to a priority of p+2 because, originally, they had a higher priority than all of the ads in the set of ads being evaluated. Similarly, all of the ads that previously had a priority of p+2 can be changed to a priority of p+3, and so on for all of the groups of ads with the same priority until all of the priorities have been adjusted so that the original relationships between the priorities outside of the set of ads being evaluated in blocks 418 and 420 are maintained. There are two collections of subsets of ads evaluated in blocks 418 and 420 above for sets of ads with the same priority level. First, for every weight w, the subset of ads A with Weight(A) > w is evaluated in block 418. The first collection evaluated at block 418 is, therefore, the subset of ads with Weight(A) > w. The subset of ads with Weight(A) > w is increased in priority if equation (9) is not satisfied. Because the subset with Weight(A) > w needs to be serviced more urgently than the ads with lower weights in the same priority level, block 420 increases the priority of this subset of ads if equation (9) is satisfied.
Second, for every Delivery Ratio d, the subset of ads A with DeliveryRatio(A) < d is evaluated. The second collection evaluated at block 418 is, therefore, the subset of ads A with DeliveryRatio(A) < d. Again, if equation (9) is satisfied for this subset of ads, the priority of this subset is increased at block 420. Because the subset with DeliveryRatio(A) < d needs to be serviced more urgently than the ads with higher Delivery Ratios in the same priority level, block 420 increases the priority of this subset of ads if equation (9) is satisfied. Block 424 depicts that the evaluation of these two collections of subsets of ads and readjustment of priorities (if necessary) is carried out for each set of ads with the same priority level. Block 426 then depicts the repetition of the priority adjustment of blocks 412, 414, 418, 420, and 422 until the priorities are steady. These priority adjustment steps essentially amount to a search for an efficient portioning of the group of ads with respect to levels of service. After the weight and priority adjustments of one iteration of the procedure depicted in FIGURE 4 has been completed, the results are output, as depicted in block 428. The weights and priorities of the output in block 428 are then used by the Delivery Parameter Optimizer (DPO) within the On-Demand Scheduler 70 to determine the Delivery Spec for each subscriber. The ads delivered to each subscriber can be determined after priorities and weights have been set in the manner discussed above. In one embodiment, the DPO and On-Demand Scheduler 70 can constantly readjust priorities and weights in the manner discussed above, and the updated priorities and weights can be used in the Delivery Specs for each subscriber. Eventually, the ads input to the system (block 400 of FIGURE 4) will change, as will the number of Deliveries Requested for certain ads, and the priorities and weights for ads will be modified.
The embodiment of the invention discussed above and shown in FIGURE 4 can be applied to situations where Newton's Method does not converge for a solution of equation (6). The following example illustrates how the priorities and weights would be set in one simple case. In this example, suppose that three ads exist. Ad Adl has priority 1, weight 1, and 900 Deliveries Requested. Ad Ad2 has priority 1, weight 1, and 600 Deliveries Requested. Ad Ad3 has priority 1, weight 2, and 500 Deliveries Requested. Two subscribers, Subl and Sub2, exist in the system, and each of these subscribers has an available inventory of 1000 ads to view. The profiles of subscribers Subl and Sub2 match ad Adl, and subscriber Sub2 also has a profile that matches ad Ad2 and Ad3. Ads Ad2 and Ad3 are therefore not compatible with subscriber Subl.
To recalculate the weights and priorities in this example, at block 402 of FIGURE 4 a first iteration of Newton's Method is performed to solve equation (6). The weights after this iteration of Newton's Method are: Wl = 0.65, W2 = 1.35, and W3 = 1.00. The Deliveries Expected for ad Adl = 1250, for ad Ad2 = 250, and for ad Ad3 = 500. In block 404 of FIGURE 4, the energy before the calculation of the new weights is 2340, and the energy after the iteration of Newton's Method with the new weights is 2191. The new weights are therefore accepted as the weights for the system at block 406. At block 408 of FIGURE 4, the weight for each ad is divided by the delivery ratio for the ad, and this step is repeated ten times. The following information results for the ads:
Table 10
Figure imgf000030_0001
Because all of the ads in this example originally had the same priority, there are no subsets of ads with adjacent priorities and blocks 412, 414, and 416 of FIGURE 4 are not performed. Priorities are therefore not adjusted between adjacent priority levels. At block 418 of FIGURE 4, the sets of ads for which equation (9) should be evaluated within a set of ads having the same priority (1) are determined. These sets of ads are: 1. Ads with priority = 1 and weight > 0.137609: Ad2, Ad3. 2. Ads with priority = 1 and weight > 6.82824: none. 3. Ads with priority = 1 and weight > 8.19389: Ad2.
4. Ads with priority = 1 and Delivery Ratio < 1.1212: Ad2, Ad3.
5. Ads with priority = 1 and Delivery Ratio < 0.900839: none.
Equation (9) is therefore evaluated for two subsets of ads: (1) the subset of ad Ad2; and (2) the subset of ad Ad2 and Ad3. The evaluation of equation (9) for ad Ad2 becomes:
1000 / 600 <= (1000 + 1000) / (900 + 600 +500) or 1.6667 <= 1.0; which is not satisfied. Because equation (9) is not satisfied for the subset of ad Ad2, the priorities are not modified based on that subset. The evaluation of equation (9) for the second subset of ads, Ad2 and Ad3, becomes:
1000 / (600 + 900) <= (1000 + 1000) / (900 + 600 +500) or 0.6667 <= 1.0; which is satisfied. Because equation (9) is satisfied for this subset of ads, the priority of each of these ads is increased to 2. At this point, the weights and priorities for the ads are output as in the following Table 11, and the steps of FIGURE 4 can then be repeated:
Table 11
Figure imgf000031_0001
Capacity Forecaster
The Capacity Forecaster component 52 assists in predicting the success of a campaign proposed by an advertiser. For example, it predicts whether the system will be able to deliver a proposed number of impressions to users of some given profile within a desired period of time. When a new contract with an advertiser is under consideration (i.e., the advertiser proposes a new campaign), the Capacity Forecaster 52 calculates the probable or expected supply (i.e., surplus) of screen real estate on user client devices and approves the contract if an adequate supply is expected for the proposed campaign. If the supply is not sufficiently large, the Capacity Forecaster 52 assists the advertiser in modifying the campaign requirements or constraints set by the Ad buyer by determining which constraints could be modified and how in order to successfully schedule a potential contract.
The Capacity Forecaster 52 determines campaign achievability by examining the number of qualified subscribers who match the campaign's profile using the Matcher and then creating a new valid schedule with the new ad in it. If a sufficient number of available subscribers is not available, the Capacity Forecaster 52 identifies and suggests constraints to relax so that the campaign goals can be met such as, e.g., increasing the campaign length, reducing the number of requested impressions, or relaxing the profile constraints.
Additionally, the Capacity Forecaster 52 can periodically re-evaluate campaigns currently under execution, and determine their probability of success, e.g., whether the system will be able to schedule the contracted number of content deliveries based on delivery data feedback that has been received. Again, the Forecaster 52 can determine whether constraints set by the advertiser should be relaxed in order to increase the likelihood of success of the campaign.
Inventory Manager
The Inventory Manager 51 generates a master delivery plan expected to fulfill delivery contracts with advertisers. It uses delivery feedback information received from the On-Demand Scheduler 70 of each ITN server 16 in the system to adaptively modify the master plan on a periodic basis.
For each accepted advertising campaign, the Inventory Manager 51 calculates a daily goal number of impressions to meet contract requirements. Advertisers typically desire to distribute the total number of desired impressions equally over each day of the campaign. (Alternatively, other distribution patterns can be used as desired.) The goals are periodically updated, e.g., each day, by comparing the number actually delivered to the desired total number of impressions.
The Inventory Manager constructs the master delivery plan on a periodic basis, e.g., once a day, based on the calculated goals of each of the active advertising campaigns. The plan specifies a prioritized master list of advertisements, which is sent to the On-Demand Scheduler 70 at each iTV server 16. The order is based preferably both upon priority and some weighting mechanism that indicates how many impressions are needed by each campaign.
The Delivery Manager 54 can reorder or reprioritize the master list of scheduled advertisements based upon delivery feedback data and queuing logic/algorithms. For example, if the goal for a given campaign is to evenly distribute an advertisement over the course of the campaign length, the advertisement can be moved down in the queue of advertisements to be displayed if it gets ahead of its daily goals. Similarly, if an advertisement gets behind in meeting its goals, it may be automatically promoted in priority. If an advertisement exceeds its daily goal it can be effectively shut off by being placed at the very end of the queue.
Delivery Qualities
In accordance with a further embodiment of the invention, the scheduler system ensures that subscribers always have content to display even if they are not eligible for any active campaigns. Accordingly, the system preferably provides a set of default or filler impressions to be displayed when there is no content available for a given user.
In accordance with a further embodiment of the invention, the scheduler system is capable of delivering 'instant' advertisements (or other content) to subscribers. These are advertisements that are delivered to users if they perform some given action. The system can preferably preempt the normal queue of ordered advertisements in an individual schedule with an instant advertisement when needed. The system preferably allows the percentage of time that instant advertisements can preempt the normal queue to be configurable in order to reduce errors in calculations made by the Capacity Forecaster.
The system improves use of excess inventory. It can also increase the likelihood of over-delivery (i.e., delivering a greater number of impressions than requested by an advertiser), which is typically favorable to advertisers. It provides a generally even distribution of impressions over the length of the campaign (if so desired). The system provides greater diversification of impressions (i.e., the advertisements are distributed to different users in a target group).
Having described preferred embodiments of the present invention, it should be apparent that modifications can be made without departing from the spirit and scope of the invention.

Claims

ClaimsWhat is claimed is:
1. A method for scheduling delivery of items of content to a plurality of network devices, comprising: generating an individual list of one or more items of content to be delivered to each network device based on profiles of the network devices and specifications for the items of content; and determining a priority and a weight for each of the items of content, the priority and weight for each item of content determining the probability of delivery at each network device in relation to other items of content, wherein determining the priority and the weight for each of the items of content optimizes a delivery schedule for the items of content.
2. The method of claim 1, wherein the network devices are iTV set-top boxes.
3. The method of claim 1, wherein the network devices are selected from the group consisting of iTV set-top boxes and computers with Internet access.
4. The method of claim 1, wherein, for a given network device, the item of content having the priority with the highest value is delivered before other items of content.
5. The method of claim 4, wherein two of more items of content with the same priority having the highest value are each delivered a certain percentage of available delivery slots, the certain percentage being defined by the weight for each item of content.
6. The method of claim 5, wherein the certain percentage being defined by the weight of each item of content is equal to the weight of that item of content divided by the summation of the weights of all items of content for the given network device.
7. The method of claim 1, further comprising using a number of deliveries requested for each item of content to optimize the delivery schedule.
8. The method of claim 7, further comprising using a number of deliveries expected for each item of content to optimize the delivery schedule.
9. The method of claim 8, further comprising using a number of impressions available for each item of content to optimize the delivery schedule.
10. The method of claim 9, wherein the number of deliveries expected for each item of content is expressed as a function of the weights for the items of content and the number of impressions available.
11. The method of claim 10, wherein the function for the deliveries expected for each of the items of content is:
DelEx(Ai) = Qx DelRq(Ai); where DelEx(A is the deliveries expected for item of content Ai as a function of the weights for the items of content, DelRq(Ai) is a constant equaling the deliveries requested for item of content A;, and where β = ∑ [DelEx(Aϊ)] ÷ [DelRq(Ai)] , where i is the number of
;' i items of content.
12. The method of claim 11, wherein Q is a constant for the items of content evaluated.
13. The method of claim 12, wherein determining the weight for each item of content includes using Newton's Method to iteratively solve the function for the deliveries expected for the weight, wherein new weights from an iteration of Newton's Method are accepted as the weights if an energy function decreases with the new weights.
14. The method of claim 13, wherein the energy function is:
Energy = [DelEx(Aϊ)xDelRat(M)] ; where DelRat(Aø is the delivery ratio for item of i content Ai and is equal to DelEx(Ai)/DelRq(A;).
15. The method of claim 14, wherein determining the priority for each of the items of content includes: evaluating subsets of each group of items of content with the same priority; and resetting the priority for a particular subset of the group of items of content to a higher priority if the particular subset will be underdelivered at the same priority.
16. The method of claim 1, wherein the items of content comprise advertisements to be displayed on a display device operated by each network device.
17. The method of claim 1, wherein the specifications specify the number of times an item of content is to be delivered to the network devices.
18. The method of claim 1, wherein the specifications specify a time period during which a given number of deliveries of an item of content is to be delivered to the network devices.
19. An apparatus for scheduling delivery of items of content to a plurality of network devices, comprising: means for generating an individual list of one or more items of content to be delivered to each network device based on profiles of the network devices and specifications for the items of content; and means for determining a priority and a weight for each of the items of content, the priority and weight for each item of content determining the probability of delivery at each network device in relation to other items of content, wherein determining the priority and the weight for each of the items of content optimizes a delivery schedule for the items of content.
20. A computer system for scheduling delivery of items of content to a plurality of network devices, comprising: a memory for storing a program; and a processor operative with the program to: generate an individual list of one or more items of content to be delivered to each network device based on profiles of the network devices and specifications for the items of content; and determine a priority and a weight for each of the items of content, the priority and weight for each item of content determining the probabihty of delivery at each network device in relation to other items of content, wherein determining the priority and the weight for each of the items of content optimizes a delivery schedule for the items of content.
21. A method for scheduling delivery of items of content to a plurality of network devices, comprising: generating an individual list of one or more items of content to be delivered to each network device based on profiles of the network devices and specifications for the items of content, wherein the specification for each item of content includes a number of deliveries requested over all of the network devices; and controlling a number of deliveries made for each item of content using a priority and a weight for each of the items of content, the priority and weight for each item of content determining the probabihty of delivery at each network device in relation to other items of content, wherein the number of deliveries requested for each item of content and a number of deliveries available for a set of network devices is used to adjust the priority and weight for at least one subset of the items of content.
22. The method of claim 21, wherein the network devices are iTV set-top boxes.
23. The method of claim 21, wherein the network devices are selected from the group consisting of iTV set-top boxes and computers with Internet access.
24. The method of claim 21, wherein, for a given network device, the item of content having the priority with the highest value is delivered before other items of content.
25. The method of claim 24, wherein two of more items of content with the same priority having the highest value are each delivered a certain percentage of available delivery slots, the certain percentage being defined by the weight for each item of content.
26. The method of claim 25, wherein the certain percentage being defined by the weight of each item of content is defined to be the weight of one particular item of content divided by the summation of the weights of all items of content in the hst for the given network device.
27. A method for scheduling delivery of items of content to a plurality of network devices, comprising: generating an individual list of one or more items of content to be delivered to each network device based on profiles of the network devices and specifications for the items of content; and determining a priority and a weight for each of the items of content, the priority and weight for each item of content determining the probabihty of deUvery at each network device in relation to other items of content, wherein determining the weight for each of the items of content includes: (a) performing an iteration of Newton's Method to compute a new weight for each item of content using an equation for the deliveries expected for each of the items of content, wherein the weight for each item of content is set to be the new weight if an energy function decreases with the new weights, and (b) resetting the weight for each item of content to be equal to the weight divided by a delivery ratio for the item of content.
28. The method of claim 27, wherein the equation for the deliveries expected for each of the items of content is:
DelEx(Ai) = QxDelRq(Ai); where DelEx(Ai) is the deliveries expected for item of content Ai as a function of the weights for the items of content, DelRq(Ai) is a constant equaling the deliveries requested for item of content Ai, and where β = [ eZEx(Ai)] ÷ ^ [DelRq(Aϊ)] , where i is the number of i i items of content.
29. The method of claim 28, wherein the energy function is:
Energy = ^T [DeZEx(Ai) x DelRat( Ai)] ; where DelRat(Ai) is the delivery ratio for item of
content Ai and is equal to DelΕx(Ai)/DelRq(Ai).
30. The method of claim 29, wherein determining the priority for each of the items of content includes: evaluating subsets of each group of items of content with the same priority; and resetting the priority for a subset of the group of items of content to a higher priority if the subset will be underdelivered at the same priority.
31. The method of claim 30, wherein the subset is the items of content with weight(Aj) > w, where w is every weight in the group of items of content.
32. The method of claim 30, wherein the subset is the items of content with DelRat(Ai) < d, where d is every delivery ratio in the group of items of content.
33. The method of claim 30, wherein determining the priority for each of the items of content further includes adjusting priority relationships for other groups of items of content having different priorities.
34. A computer system for scheduling delivery of items of content to a plurality of network devices, comprising: a memory for storing a program; and a processor operative with the program to: generate an individual list of one or more items of content to be delivered to each network device based on profiles of the network devices and specifications for the items of content; and determine a priority and a weight for each of the items of consent, the priority and weight for each item of content determining the probability of delivery at each network device in relation to other items of content, wherein determining the weight for each of the items of content includes: (a) performing an iteration of Newton's Method to compute a new weight for each item of content using an equation for the deliveries expected for each of the items of content, wherein the weight for each item of content is set to be the new weight if an energy function decreases with the new weights, and (b) resetting the weight for each item of content to be equal to the weight divided by a delivery ratio for the item of content.
PCT/US2002/030714 2001-10-03 2002-09-27 Non-deterministic method and system for the optimization of targeted content delivery WO2003029917A2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
AU2002330114A AU2002330114A1 (en) 2001-10-03 2002-09-27 Non-deterministic method and system for the optimization of targeted content delivery
AT02766375T ATE551672T1 (en) 2001-10-03 2002-09-27 NON-DETERMINISTIC METHOD AND SYSTEM FOR OPTIMIZING TARGETED CONTENT DELIVERY
EP02766375A EP1433104B1 (en) 2001-10-03 2002-09-27 Non-deterministic method and system for the optimization of targeted content delivery
ES02766375T ES2382372T3 (en) 2001-10-03 2002-09-27 Nondeterministic method and system for optimization of meta content delivery

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/969,911 US20030130887A1 (en) 2001-10-03 2001-10-03 Non-deterministic method and system for the optimization of a targeted content delivery
US09/969,911 2001-10-03

Publications (2)

Publication Number Publication Date
WO2003029917A2 true WO2003029917A2 (en) 2003-04-10
WO2003029917A3 WO2003029917A3 (en) 2004-03-25

Family

ID=25516160

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2002/030714 WO2003029917A2 (en) 2001-10-03 2002-09-27 Non-deterministic method and system for the optimization of targeted content delivery

Country Status (6)

Country Link
US (1) US20030130887A1 (en)
EP (1) EP1433104B1 (en)
AT (1) ATE551672T1 (en)
AU (1) AU2002330114A1 (en)
ES (1) ES2382372T3 (en)
WO (1) WO2003029917A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111144954A (en) * 2019-12-31 2020-05-12 聚好看科技股份有限公司 Display resource releasing method and device

Families Citing this family (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7136871B2 (en) 2001-11-21 2006-11-14 Microsoft Corporation Methods and systems for selectively displaying advertisements
US20030101454A1 (en) * 2001-11-21 2003-05-29 Stuart Ozer Methods and systems for planning advertising campaigns
US10706428B2 (en) * 2001-12-11 2020-07-07 International Business Machines Corporation Method for contact stream optimization
US8590013B2 (en) 2002-02-25 2013-11-19 C. S. Lee Crawford Method of managing and communicating data pertaining to software applications for processor-based devices comprising wireless communication circuitry
EP1497756A4 (en) * 2002-04-01 2006-07-12 Overture Services Inc Displaying paid search listings in proportion to advertiser spending
US7813957B1 (en) * 2003-02-18 2010-10-12 Microsoft Corporation System and method for delivering payloads such as ads
ATE378759T1 (en) 2003-05-06 2007-11-15 Cvon Innovations Ltd MESSAGE TRANSMISSION SYSTEM AND INFORMATION SERVICE
US7359905B2 (en) * 2003-06-24 2008-04-15 Microsoft Corporation Resource classification and prioritization system
US7792828B2 (en) * 2003-06-25 2010-09-07 Jericho Systems Corporation Method and system for selecting content items to be presented to a viewer
US8380572B2 (en) * 2003-08-25 2013-02-19 Yahoo! Inc. Selecting among advertisements competing for a slot associated with electronic content delivered over a network
US8214256B2 (en) * 2003-09-15 2012-07-03 Time Warner Cable Inc. System and method for advertisement delivery within a video time shifting architecture
US7895077B2 (en) * 2004-03-11 2011-02-22 Yahoo! Inc. Predicting inventory availability and prioritizing the serving of competing advertisements based on contract value
US10373173B2 (en) * 2004-06-14 2019-08-06 Facebook, Inc. Online content delivery based on information from social networks
FI20041702A0 (en) * 2004-12-31 2004-12-31 Nokia Corp Smart cache for control of procedure
WO2006122042A2 (en) * 2005-05-06 2006-11-16 Rhythm Newmedia Inc. Targeted advertising
US10911894B2 (en) 2005-09-14 2021-02-02 Verizon Media Inc. Use of dynamic content generation parameters based on previous performance of those parameters
US8229914B2 (en) 2005-09-14 2012-07-24 Jumptap, Inc. Mobile content spidering and compatibility determination
US8156128B2 (en) 2005-09-14 2012-04-10 Jumptap, Inc. Contextual mobile content placement on a mobile communication facility
US8290810B2 (en) 2005-09-14 2012-10-16 Jumptap, Inc. Realtime surveying within mobile sponsored content
US8302030B2 (en) 2005-09-14 2012-10-30 Jumptap, Inc. Management of multiple advertising inventories using a monetization platform
US9201979B2 (en) 2005-09-14 2015-12-01 Millennial Media, Inc. Syndication of a behavioral profile associated with an availability condition using a monetization platform
US8688671B2 (en) 2005-09-14 2014-04-01 Millennial Media Managing sponsored content based on geographic region
US8819659B2 (en) 2005-09-14 2014-08-26 Millennial Media, Inc. Mobile search service instant activation
US7860871B2 (en) 2005-09-14 2010-12-28 Jumptap, Inc. User history influenced search results
US7769764B2 (en) 2005-09-14 2010-08-03 Jumptap, Inc. Mobile advertisement syndication
US7676394B2 (en) 2005-09-14 2010-03-09 Jumptap, Inc. Dynamic bidding and expected value
US7577665B2 (en) 2005-09-14 2009-08-18 Jumptap, Inc. User characteristic influenced search results
US7660581B2 (en) 2005-09-14 2010-02-09 Jumptap, Inc. Managing sponsored content based on usage history
US8989718B2 (en) 2005-09-14 2015-03-24 Millennial Media, Inc. Idle screen advertising
US9703892B2 (en) 2005-09-14 2017-07-11 Millennial Media Llc Predictive text completion for a mobile communication facility
US8660891B2 (en) 2005-11-01 2014-02-25 Millennial Media Interactive mobile advertisement banners
US8503995B2 (en) 2005-09-14 2013-08-06 Jumptap, Inc. Mobile dynamic advertisement creation and placement
US8532633B2 (en) 2005-09-14 2013-09-10 Jumptap, Inc. System for targeting advertising content to a plurality of mobile communication facilities
US8364540B2 (en) 2005-09-14 2013-01-29 Jumptap, Inc. Contextual targeting of content using a monetization platform
US8238888B2 (en) 2006-09-13 2012-08-07 Jumptap, Inc. Methods and systems for mobile coupon placement
US8027879B2 (en) 2005-11-05 2011-09-27 Jumptap, Inc. Exclusivity bidding for mobile sponsored content
US8209344B2 (en) 2005-09-14 2012-06-26 Jumptap, Inc. Embedding sponsored content in mobile applications
US8311888B2 (en) 2005-09-14 2012-11-13 Jumptap, Inc. Revenue models associated with syndication of a behavioral profile using a monetization platform
US7702318B2 (en) 2005-09-14 2010-04-20 Jumptap, Inc. Presentation of sponsored content based on mobile transaction event
US8832100B2 (en) 2005-09-14 2014-09-09 Millennial Media, Inc. User transaction history influenced search results
US7752209B2 (en) 2005-09-14 2010-07-06 Jumptap, Inc. Presenting sponsored content on a mobile communication facility
US8195133B2 (en) 2005-09-14 2012-06-05 Jumptap, Inc. Mobile dynamic advertisement creation and placement
US9471925B2 (en) 2005-09-14 2016-10-18 Millennial Media Llc Increasing mobile interactivity
US9076175B2 (en) 2005-09-14 2015-07-07 Millennial Media, Inc. Mobile comparison shopping
US9058406B2 (en) 2005-09-14 2015-06-16 Millennial Media, Inc. Management of multiple advertising inventories using a monetization platform
US8666376B2 (en) 2005-09-14 2014-03-04 Millennial Media Location based mobile shopping affinity program
US8805339B2 (en) 2005-09-14 2014-08-12 Millennial Media, Inc. Categorization of a mobile user profile based on browse and viewing behavior
US7912458B2 (en) 2005-09-14 2011-03-22 Jumptap, Inc. Interaction analysis and prioritization of mobile content
US20110313853A1 (en) 2005-09-14 2011-12-22 Jorey Ramer System for targeting advertising content to a plurality of mobile communication facilities
US8812526B2 (en) 2005-09-14 2014-08-19 Millennial Media, Inc. Mobile content cross-inventory yield optimization
US8131271B2 (en) 2005-11-05 2012-03-06 Jumptap, Inc. Categorization of a mobile user profile based on browse behavior
US10038756B2 (en) 2005-09-14 2018-07-31 Millenial Media LLC Managing sponsored content based on device characteristics
US8364521B2 (en) 2005-09-14 2013-01-29 Jumptap, Inc. Rendering targeted advertisement on mobile communication facilities
US8615719B2 (en) 2005-09-14 2013-12-24 Jumptap, Inc. Managing sponsored content for delivery to mobile communication facilities
US10592930B2 (en) 2005-09-14 2020-03-17 Millenial Media, LLC Syndication of a behavioral profile using a monetization platform
US8103545B2 (en) 2005-09-14 2012-01-24 Jumptap, Inc. Managing payment for sponsored content presented to mobile communication facilities
US20120010969A1 (en) * 2005-09-14 2012-01-12 Jorey Ramer System for targeting advertising content to a plurality of mobile communication facilities
US8175585B2 (en) 2005-11-05 2012-05-08 Jumptap, Inc. System for targeting advertising content to a plurality of mobile communication facilities
US8571999B2 (en) 2005-11-14 2013-10-29 C. S. Lee Crawford Method of conducting operations for a social network application including activity list generation
US7848951B2 (en) * 2006-04-04 2010-12-07 Wowio, Inc. Method and apparatus for providing specifically targeted advertising and preventing various forms of advertising fraud in electronic books
US8712973B2 (en) * 2006-04-11 2014-04-29 International Business Machines Corporation Weighted determination in configuration management systems
CN100540047C (en) * 2006-04-17 2009-09-16 中国人民解放军军事医学科学院基础医学研究所 The application of TRAP albumen in the medicine of preparation treatment infection of staphylococcus aureus
US20080033725A1 (en) * 2006-07-24 2008-02-07 Liquidtalk, Inc. Methods and a system for providing digital media content
WO2008049955A1 (en) * 2006-10-27 2008-05-02 Cvon Innovations Ltd Method and device for managing subscriber connection
WO2008053062A2 (en) * 2006-11-01 2008-05-08 Cvon Innovations Ltd Optimization of advertising campaigns on mobile networks
US20080147728A1 (en) * 2006-12-15 2008-06-19 Tal Reichert Exposure-based scheduling
GB2440990B (en) 2007-01-09 2008-08-06 Cvon Innovations Ltd Message scheduling system
US20080183690A1 (en) * 2007-01-26 2008-07-31 Ramachandran Puthukode G Method for providing assistance in making change decisions in a configurable managed environment
GB2438475A (en) * 2007-03-07 2007-11-28 Cvon Innovations Ltd A method for ranking search results
GB2441399B (en) * 2007-04-03 2009-02-18 Cvon Innovations Ltd Network invitation arrangement and method
US20080255927A1 (en) * 2007-04-12 2008-10-16 Peter Sispoidis Forecasting
US8671000B2 (en) 2007-04-24 2014-03-11 Apple Inc. Method and arrangement for providing content to multimedia devices
US8935718B2 (en) 2007-05-22 2015-01-13 Apple Inc. Advertising management method and system
US8799249B2 (en) * 2007-06-08 2014-08-05 Yahoo! Inc. Method and system for rendering a collection of media items
US10958781B2 (en) 2007-06-13 2021-03-23 First Orion Corp. Providing audio content to a device
US20080310408A1 (en) * 2007-06-13 2008-12-18 Phil Thompson Internet Protocol Television
US9392074B2 (en) 2007-07-07 2016-07-12 Qualcomm Incorporated User profile generation architecture for mobile content-message targeting
US9497286B2 (en) 2007-07-07 2016-11-15 Qualcomm Incorporated Method and system for providing targeted information based on a user profile in a mobile environment
GB2452789A (en) 2007-09-05 2009-03-18 Cvon Innovations Ltd Selecting information content for transmission by identifying a keyword in a previous message
US8181173B2 (en) * 2007-10-12 2012-05-15 International Business Machines Corporation Determining priority for installing a patch into multiple patch recipients of a network
GB2453810A (en) 2007-10-15 2009-04-22 Cvon Innovations Ltd System, Method and Computer Program for Modifying Communications by Insertion of a Targeted Media Content or Advertisement
US9203911B2 (en) 2007-11-14 2015-12-01 Qualcomm Incorporated Method and system for using a cache miss state match indicator to determine user suitability of targeted content messages in a mobile environment
US9391789B2 (en) * 2007-12-14 2016-07-12 Qualcomm Incorporated Method and system for multi-level distribution information cache management in a mobile environment
US9538141B2 (en) 2007-12-31 2017-01-03 Alcatel Lucent Method and apparatus for controlling presentation of content at a user terminal
US20090168752A1 (en) 2007-12-31 2009-07-02 Jonathan Segel Method and apparatus for distributing content
DE102008004774A1 (en) * 2008-01-16 2009-07-23 Krones Ag Apparatus and method for drying articles, in particular liquid containers
US20100095324A1 (en) * 2008-08-01 2010-04-15 Clear Channel Mangement Services, Inc. Providing Conditional Advertising
WO2010015070A1 (en) * 2008-08-07 2010-02-11 Research In Motion Limited System and method for providing content on a mobile device by controlling an application independent of user action
US20110029376A1 (en) * 2009-07-29 2011-02-03 Google Inc. Impression forecasting and reservation analysis
US20110035387A1 (en) * 2009-08-10 2011-02-10 Telcordia Technologies, Inc. System and method for the controlled introduction of noise to information filtering
US20110082727A1 (en) * 2009-10-05 2011-04-07 Ricardo Macias System and methods for advertising
US8898217B2 (en) 2010-05-06 2014-11-25 Apple Inc. Content delivery based on user terminal events
US8504419B2 (en) * 2010-05-28 2013-08-06 Apple Inc. Network-based targeted content delivery based on queue adjustment factors calculated using the weighted combination of overall rank, context, and covariance scores for an invitational content item
US8370330B2 (en) 2010-05-28 2013-02-05 Apple Inc. Predicting content and context performance based on performance history of users
US9367847B2 (en) * 2010-05-28 2016-06-14 Apple Inc. Presenting content packages based on audience retargeting
US8452779B1 (en) * 2010-07-09 2013-05-28 Collective Labs, Llc Methods and system for targeted content delivery
US8640032B2 (en) 2010-08-31 2014-01-28 Apple Inc. Selection and delivery of invitational content based on prediction of user intent
US8510309B2 (en) 2010-08-31 2013-08-13 Apple Inc. Selection and delivery of invitational content based on prediction of user interest
US8843956B2 (en) * 2012-04-12 2014-09-23 Comcast Cable Communications, Llc System and method for advertising
US9141504B2 (en) 2012-06-28 2015-09-22 Apple Inc. Presenting status data received from multiple devices
JP5718386B2 (en) * 2013-02-05 2015-05-13 ヤフー株式会社 Advertisement distribution management device and advertisement distribution management method
US9681199B2 (en) * 2013-10-30 2017-06-13 Adobe Systems Incorporated Forecasting-based management of advertisement delivery and inventory
US9292616B2 (en) * 2014-01-13 2016-03-22 International Business Machines Corporation Social balancer for indicating the relative priorities of linked objects
US10339543B2 (en) 2015-09-25 2019-07-02 The Nielsen Company (Us), Llc Methods and apparatus to determine weights for panelists in large scale problems
US9936255B2 (en) 2015-10-23 2018-04-03 The Nielsen Company (Us), Llc Methods and apparatus to determine characteristics of media audiences
US11810158B2 (en) * 2015-12-22 2023-11-07 Yahoo Ad Tech Llc Weighted pseudo—random digital content selection
US11349584B2 (en) * 2019-11-21 2022-05-31 Westwood One, Llc System and method of providing content to a broadcast network
US11792457B1 (en) * 2019-12-12 2023-10-17 Amazon Technologies, Inc. Automated predictive content availability strategy provisioning

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724521A (en) 1994-11-03 1998-03-03 Intel Corporation Method and apparatus for providing electronic advertisements to end users in a consumer best-fit pricing manner
US6026368A (en) 1995-07-17 2000-02-15 24/7 Media, Inc. On-line interactive system and method for providing content and advertising information to a targeted set of viewers
US6144944A (en) 1997-04-24 2000-11-07 Imgis, Inc. Computer system for efficiently selecting and providing information

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5321833A (en) * 1990-08-29 1994-06-14 Gte Laboratories Incorporated Adaptive ranking system for information retrieval
US5623404A (en) * 1994-03-18 1997-04-22 Minnesota Mining And Manufacturing Company System and method for producing schedules of resource requests having uncertain durations
US6029195A (en) * 1994-11-29 2000-02-22 Herz; Frederick S. M. System for customized electronic identification of desirable objects
US5926800A (en) * 1995-04-24 1999-07-20 Minerva, L.P. System and method for providing a line of credit secured by an assignment of a life insurance policy
WO1997026729A2 (en) * 1995-12-27 1997-07-24 Robinson Gary B Automated collaborative filtering in world wide web advertising
US5848396A (en) * 1996-04-26 1998-12-08 Freedom Of Information, Inc. Method and apparatus for determining behavioral profile of a computer user
US6327574B1 (en) * 1998-07-07 2001-12-04 Encirq Corporation Hierarchical models of consumer attributes for targeting content in a privacy-preserving manner
US6532449B1 (en) * 1998-09-14 2003-03-11 Ben Goertzel Method of numerical times series prediction based on non-numerical time series
JP3344953B2 (en) * 1998-11-02 2002-11-18 松下電器産業株式会社 Information filtering apparatus and information filtering method
US6714992B1 (en) * 2000-02-25 2004-03-30 Navic Systems, Inc. Method and system for embedded network device installation
US20020029384A1 (en) * 2000-07-20 2002-03-07 Griggs Theodore L. Mechanism for distributing content data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724521A (en) 1994-11-03 1998-03-03 Intel Corporation Method and apparatus for providing electronic advertisements to end users in a consumer best-fit pricing manner
US6026368A (en) 1995-07-17 2000-02-15 24/7 Media, Inc. On-line interactive system and method for providing content and advertising information to a targeted set of viewers
US6144944A (en) 1997-04-24 2000-11-07 Imgis, Inc. Computer system for efficiently selecting and providing information

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111144954A (en) * 2019-12-31 2020-05-12 聚好看科技股份有限公司 Display resource releasing method and device

Also Published As

Publication number Publication date
AU2002330114A1 (en) 2003-04-14
WO2003029917A3 (en) 2004-03-25
ES2382372T3 (en) 2012-06-07
US20030130887A1 (en) 2003-07-10
EP1433104B1 (en) 2012-03-28
EP1433104A2 (en) 2004-06-30
ATE551672T1 (en) 2012-04-15
EP1433104A4 (en) 2009-12-30

Similar Documents

Publication Publication Date Title
EP1433104B1 (en) Non-deterministic method and system for the optimization of targeted content delivery
US8332268B2 (en) Method and system for scheduling online content delivery
JP4744079B2 (en) Advertisement selection device, advertisement selection method, and storage medium
JP4229094B2 (en) Advertisement selection device, advertisement selection method, and storage medium
JP4880962B2 (en) Advertisement content distribution ratio calculation program, advertisement content distribution ratio calculation method, advertisement content distribution ratio calculation system, content distribution control system, advertisement content distribution control system, advertisement content distribution control method, and advertisement content distribution control program
JP5153814B2 (en) Method and system for facilitating management of advertising campaigns
KR100797707B1 (en) System and method for managing an advertising campaign on a network
JP4370910B2 (en) Advertisement insertion device, advertisement insertion method, and storage medium
US9779413B2 (en) Method and system for optimum placement of advertisements on a webpage
US20130166698A1 (en) System and method for effectively providing content to client devices in an electronic network
MXPA05004787A (en) Selecting advertisement on a set top box in a television network.
US20100293218A1 (en) Distributing Content
US10275793B2 (en) Content delivery system using natural query events
US20200219145A1 (en) Bidding Agent with Optimized Reach Limitation by Segment
US20070005420A1 (en) Adjustment of inventory estimates
US20120330752A1 (en) Search word link advertisement system, method for optimizing matching period therof and computer readable recording medium thereof
US20220343366A1 (en) Artificially intelligent campaign creation and deployment system
US9117218B2 (en) System and method for effectively performing a distribution procedure using an electronic backbone
CN113763010A (en) Information pushing method and device
CA2323166A1 (en) Method and system for targeted advertising
US20220284320A1 (en) Using machine-learned models to throttle content
WO2001001318A2 (en) Media planning and scheduling over a computer network

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BY BZ CA CH CN CO CR CU CZ DE DM DZ EC EE ES FI GB GD GE GH HR HU ID IL IN IS JP KE KG KP KR LC LK LR LS LT LU LV MA MD MG MN MW MX MZ NO NZ OM PH PL PT RU SD SE SG SI SK SL TJ TM TN TR TZ UA UG UZ VN YU ZA ZM

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ UG ZM ZW AM AZ BY KG KZ RU TJ TM AT BE BG CH CY CZ DK EE ES FI FR GB GR IE IT LU MC PT SE SK TR BF BJ CF CG CI GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2002766375

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2002766375

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP