The Internet has emerged as a powerful advertising tool. It is commonplace to see advertisements on many web sites. For example, advertisements may be displayed on search web sites and may be targeted to individuals based upon search terms provided by the individuals. Other web sites, such as news and sports web sites, may provide space for advertisements. The owners of these web sites may sell advertising space to advertisers to offset the costs associated with operating the web sites as well as to turn a profit.
In some cases, advertisers may wish to show their respective advertisements on a particular web site. Other advertisers may be less interested in specific web sites and more interested in displaying advertisements across several web sites that cater to a specified target audience. For example, an automobile advertiser may want an automobile advertisement displayed on web sites that relate to automobiles and racing.
To facilitate advertisement placement, web site operators may provide systems that allow the advertiser to book a number of impressions across web sites that target the specified audience, where each impression corresponds to the display of an advertisement to an Internet user. Booking impressions means agreeing with an advertiser to provide impressions at predetermined terms such as quantity, time period and rate. An impression is the display of an advertiser ad on a web page, which is displayed on a device of a web user. For example, the system may enable an advertiser to book 1 million impressions that target males in California. These impressions may then be allocated across several web sites that target males in California.
The number of impressions available for booking may be related to the number of impressions that were available in the past. A web site operator may use information from the past to forecast or make predictions about the number of impressions that may be available for future booking. The number of past impressions may be determined by tracking activity on the respective web sites. For example, the web site operator may track the number of visits a given web site receives. The web site operator may also keep track of the actual users that visit the web site by requiring users to register and log into the web site before utilizing the services of the web site. The data collected may be arranged within various pools of impression inventory where each pool represents a number of impressions that target a specific audience. For example, a given pool may represent 1 million impressions that target males in California, who are sports enthusiasts with a common zip code, and who viewed advertisements via a specific web site. When forecasting future impression inventory it may be necessary for a web site operator to search through various pools so as to determine whether there is enough inventory to satisfy an advertiser's order.
However, as the number of web sites available for advertising have increased, so too have the number of pools that have to be searched. The increase in the number of pools requires increased resources, such as additional storage and data processing time and power to keep track of all the pools. In addition, the time needed to search for inventory has increased as it takes more time to search through all the pools. This increase in time leads to frustration on the part of the advertiser and possible loss of revenue to the web site operator if the advertiser chooses to book impressions through a different web site operator.
The embodiments below describe systems whereby a subset of available impression inventory is generated from all available impression inventory via a sampling technique. The embodiments below also describe systems whereby a contract request for booking a certain amount of inventory is received, and impressions to satisfy the contract request are allocated from the subset of available impression inventory. The following is a list of definitions of key terms used in this application:
Cookie—A cookie is information stored on a user terminal and communicated to an ad server that enables identifying a particular user terminal to the ad server. In one embodiment, all cookies are unique.
Frequency cap constraint—Corresponds to a constraint on the maximum number of times a given advertisement may be shown to an individual user during each time period (e.g., a frequency cap of 3 impressions per day per user).
Impressions—Corresponds to the display of an advertisement to an Internet user.
Property—Refers to the web site or web page through which an impression was delivered. For example, Yahoo! Finance®, operated by Yahoo! Inc. and available on the internet at finance.yahoo.com, is a property.
Position—Refers to the relative location on a web page where an advertisement may be displayed. For example, a top position may indicate that an advertisement is displayed on the top portion of a web page.
Referring now to the drawings,
The processor 105 may correspond to an Intel®, AMD®, or PowerPC® based processor operating a Microsoft Windows®, Linux, or other Unix® based operating system. Other types of data processing circuitry may be substituted as well. The processor 105 may be adapted to communicate with other computers via an interface, such as a network interface. The processor 105 may be adapted to communicate data to and from the impression inventory database 115, the user sample database 120, and the ad server 125.
The processor 105 may also be adapted to generate data defining user samples based on information in the impression inventory database 115, and to store the generated user sample data to the user sample database 120.
The impression inventory database 115 and user sample database 120 may correspond to data storage devices suitable for storing large amounts of information, such as RAM, ROM, or hard disk drives. The impression inventory database 115 may be utilized to store information related to all impressions that were delivered in the past. In one embodiment, information in the impression inventory database 115 may be updated each time an advertisement is served to a user terminal 135 via the ad server 125. For example, the ad server 125 may notify the processor 105 that an advertisement was served to a particular user terminal 135 associated with a specific cookie 140. The property through which the advertisement was delivered along with the cookie 140 may be communicated to the processor 105. The processor 105 may then store the information to the impression inventory database 115 and may also generate and store statistical information related to the user terminal 135 associated with the cookie 140. This information may enable determining characteristics associated with a user operating the user terminal 135. For example, shopping habits as well as demographic and geographic information associated with the user may be determined. In some instances, a user associated with a user terminal 135 may have provided registration information that may enable determining even more information about the user. For example, the user may have registered for a mail program, such as Yahoo! Mail®, and provided his age and address. All the determined information may be associated with the cookie 140 and stored to the impression inventory database 115.
The user sample database 120 may be utilized to store samples of users that represent all of the users represented in the impression inventory database 115. The methodologies for storing information in the user sample database 120 are described in more detail below. Information stored in user sample database 120 may be utilized by the admission control subsystem 110 to make allocation decisions.
The admission control subsystem 110 may include logic, circuitry, and/or code that enables booking orders from available impression inventory. To facilitate booking, the admission control subsystem 110 may be adapted to communicate a web page to advertisers that allows advertisers to specify targeting parameters associated with the order. For example, the web page may enable specifying the quantity of impressions sought along with information that defines the target audience to whom the impressions are to be delivered. In addition, the web page may enable uploading an advertisement and specifying the desired property or properties and position on the properties where the advertiser desires to place the advertisement.
The web page may also enable specifying a frequency cap constraint. For example, an advertiser may specify a frequency constraint of 2 in a contract order indicating that the advertisement in the contract order cannot be shown to the same user more than twice.
The admission control subsystem 110 determines the availability of impressions based on information stored in the user sample database 120, described below. After determining the quantity of available impressions, the admission control subsystem 110 may book the impression from the user sample database 120 and/or provide the available quantity of impressions back to the advertiser along with a cost associated with booking the impressions. The cost may be related to the scarcity of the impression inventory. For example, the cost per impression may decrease as the availability of the inventory of impressions increases.
Upon receiving the quantity of available impressions, along with the cost per impression, the advertiser may elect to book the impressions. Once booked, the admission control subsystem 110 allocates the impressions from the user sample database 120.
The ad sever 125 may correspond to an Intel®, AMD®, or PowerPC® based processor operating a Microsoft Windows®, Linux, or other Unix® based operating system, adapted to communicate an advertisement to a user terminal 135 in response to receiving a request to serve an advertisement from the user terminal 135. Other data processing equipment and systems may be substituted. The ad server 125 may receive the request and communicate the advertisement via a computer network, such as the Internet. In some instances, the request occurs when the user terminal 135 is navigated to a web page that was configured to display an advertisement. The web page may include browser code operative to cause the user terminal 135 to request an advertisement from the ad server 125. The request may include information about the web page navigated to along with the cookie 140 associated with the user terminal 135.
After the ad server 125 receives the request, the ad server 125 may search through the advertisement database 130 for advertisements that should be served to the user terminal 135. Information related to the served advertisement may be communicated to the processor so that the processor may record details related to the served impression, such as the cookie, property, and position associated with the served impression.
Allocating impressions based on information stored in the user sample database 120 may be significantly faster than allocating impressions directly from the impression inventory database 115, because of the size of the impression inventory database 115. In some embodiments, allocation decisions made based on the user sample database 120 may eventually be translated to the impression inventory database 115. This may occur at a time different than when the impressions are booked. For example, this may occur during periods of time when the system 100 is lightly loaded, such as 1 AM on Sunday.
The number of impressions available within a pool may be based on the number of impressions delivered to users with known characteristics. In some embodiments, this number may be determined by tracking activity on the web sites that host advertising. For example, web site operators may track the number of visits a given web site receives. The web site operator may also keep track of the actual users that visit the web site by requiring the users to register and log into the web site before utilizing the services of the web site. This information may also be determined via information gathered by an ad server, such as the ad server ad server 125 of
The size of a pool varies with the number of impressions it represents. For example, a pool that represents the number of impression delivered to individuals that live in a very small city may be smaller than a pool that represents the number of impressions available to users that live in a large city. The larger the pool, the more forecastable the size of the pool. That is, the larger the pool the more easy it may be to forecast or predict the size of the pool on a future date.
Generally, the more fine grained or specified a pool, the fewer the number of delivered impressions the pool represents. For example, the size of a pool that represents the number of impressions delivered to males will most likely be larger than the size of a pool that represents the number of impressions viewed by males from a particular state, who have a given hobby, because the first pool also represents impression delivered to males in different states and/or who have a different hobby.
The position information 310 corresponds to the location of the advertisements on the web pages above. For example, the position information 310 may indicate that the impressions are to be delivered via a region at the top, bottom or side of a web page.
The total inventory information 315 corresponds to the number of impressions that the pool represents before booking and the available inventory information 320 corresponds to the number of impressions available for booking. The types and content of information illustrated in
The impression inventory table 400 includes target parameter columns 460, a number of impressions column 455, and a cookie list pointer column 415. Each entry in the impression inventory table 400 represents impressions that share common attributes. For example, the first entry in the impression inventory table 400 represents impressions that were delivered via a finance website to females between the ages of 25 and 29. The second entry in the impression inventory table 400 represents impressions that were delivered via a sport website to females between the ages of 25 and 29. Other attributes may be utilized to characterize delivered impressions, such as the geographic location, IP address, browser type, operating system type, and property position associated with the delivered impression. Each entry in the impression inventory table 400 also includes a cookie list column 415 for specifying a cookie list pointer. The cookie list pointer corresponds to a location in the cookie list 420 where individual impressions associated with a given entry in the impression inventory table 400 are represented.
The cookie list 420 corresponds to a list of cookies associated with delivered impressions. The cookies in the cookie list 420 are organized according to the entry in the impression inventory table 400 that they are referenced to. For example, the six cookies beginning at address 0x01 430 are associated with the first entry in the impression inventory table 400 and correspond to finance impressions. The two cookies beginning at address 0x07 435 are associated with the second entry in the impression inventory table 400 and correspond to sports impressions.
Each cookie in the cookie list 420 is associated with a specific user terminal through which an impression was delivered. In addition, each cookie in the cookie list 420 is also a pointer into an opportunity list 410 that groups impressions according to the cookie associated with the opportunity.
The opportunity list 410 includes a list of pointers to entries in the impression inventory table 400. Each instance of a pointer represents an impression delivered to a user terminal or user based on a given cookie. Impressions delivered to the same user terminal, are grouped into a null terminated list. For example, impressions associated with user A 440 begin at address 0x01. In the case of user A 440, two impressions were delivered because there are two pointers. The first impression delivered was characterized by the information in the first entry of the impression inventory table 400. For example, the first impression was viewed via a finance web page. The second impression viewed by user A 440 occurred via the sports web page. The list of impressions delivered to user A 440 end with a null or zero entry below the last impression.
Similarly, impressions associated with user B 445 begin at address 0x04. In the case of user B 445, two impressions were delivered and both impressions were delivered via the finance property as indicated by the presence of two pointers to address 0x01 of the impression inventory table 400. Finally, four impressions were delivered to user C 450. Three of the impressions were delivered via the finance property as indicated by the presence of three references to the address associated with the finance property. The fourth impression was delivered via the sports property as indicated by the presence of the pointer associated with the sports property in the impression inventory table 400.
The tables described above enable quickly locating users to whom impressions were delivered. For example, suppose a list of users matching the targeting characteristics specified in the target parameter columns 460 of the first entry of the impression inventory table 400 is needed. In this case, the users may be located by simply jumping to the address in the cookie list 420 corresponding to the cookie list pointer. The cookies associated with the users are sequentially listed in the cookie list. Because the users are stored sequentially as opposed to randomly throughout the cookie list 420, the users associated with a given entry of the impression inventory table 400 may be determined more quickly. For example, in many cache based computer systems, when accessing data at a given address, the memory controller may read in several bytes of adjacent data along with the data needed. The data is read from a RAM and stored to a cache memory. Data stored in the adjacent addresses may be subsequently accessed directly from the cache, which is typically much faster to access than a RAM.
The same applies when the actual impressions associated with a specific user are required. In this case, each cookie in the cookie list 420 points to the address in the opportunity list 410 where all the impressions for a given user are stored sequentially. Because the impressions are stored sequentially, the data associated with the impressions may be determined more quickly as described above.
After the table entries have been identified, users associated with the tables entries may be randomly sampled at block 505. Referring again to
In order to represent the users correctly, in the ideal case each user with the same probability is sampled. However, some users are more likely to be sampled than others, because they may have more targeted impressions in them, or impressions that are more likely to be selected. This problems is addressed by associating a weight with each user at block 515, which is described below.
At block 510, the impressions associated with the randomly sampled user may be determined. Referring again to
At block 515, the weight associated with each user sample is determined. In one embodiment, the weight is determined by the following equation:
The first factor is the course weight. For example, when 100 samples are drawn from 1000 users, the course weight corresponds to 10. The second factor is derived from importance sampling. In this case, Pr[user sampled uniformly]=1/(# users). Therefore, the second factor can be rewritten as:
Pr[user sampled]=(Pr[first impression of user sampled]+Pr[second impression of user sampled]+ . . . +Pr[last impression of user sampled])
For instance, suppose that 200 impressions are sampled. 100 impressions are sampled uniformly from those matching finance contract 2 (and the users who created those impressions), and 100 impressions are sampled uniformly from those matching sports or finance contract 1 (and the users who created those impressions). Then, each sample has a probability of (½) to be from contract 2 (6 impressions), and a probability of (½) of being from contract 1 (8 impressions).
So, looking at user A, the first impression matches contract 1 and 2 (Pr[first impression of user A]=(½)×(⅙)+(½)×(⅛)=( 7/48)) and the second impression matches contract 2 (selected with probability Pr[second visit of user A]=(½)×(⅛)=( 1/16)).
Therefore, Pr[user A sampled]=( 7/48)+( 1/16)= 5/24
Weight of A (if sampled once)=1/(( 5/24)×200)=0.024
The reason that this weight is so low is that there are 200 sampled users, but only 3 real users.
Pr[user B sampled]=( 7/48)+( 7/48)= 7/24
Weight of B (if sampled once)=1/( 7/24)×200)= 24/1400 or approx. 0.017.
B has a smaller weight than A because both impressions of B match both contracts.
Pr[user C sampled]=( 7/48)+( 7/48)+( 7/48)+( 1/16)=½=0.5
Weight of C (if sampled once =1/((½)×200)= 1/400=0.0025
Since C is the most likely to be sampled, it has the smallest weight.
Note that ( 5/24)+( 7/24)+(½)=1, as would be expected.
At block 520, information that defines a user sample may be stored in a user sample list as described below. The user sample list may reside in a database, such as the user sample database 120. The number of users represented by each user sample may correspond to the weight of the user sample. The information stored may include the weight of the user sample as well as targeting information associated with users represented by the user sample, such as the gender and age of the users the sample represents. In addition, the properties through which impressions were delivered to users represented by the sample may also be stored. During booking, the user sample list may be utilized to predict the number of impressions available for booking a given contract as described below.
Each sample has a weight 630, property nodes 640, and contract nodes 635. As described above, the weight 630 corresponds to the number of actual users the sample represents. The property nodes 640 represent properties through which impressions were delivered to users represented by the sample. For example, sample 1605 has a weight 630 of 1500, meaning that sample 1605 represents 1500 users. Each user represented was delivered one impression via a finance property and one impression via a sports property, as indicated by the two property nodes 640 labeled “F” and “S,” respectively. Thus, the total number of impressions actually delivered to users represented by sample 1605 corresponds to 3000 impressions, 1500 impressions delivered via the finance property and 1500 impressions delivered via the sports property. Stated differently, two impressions were delivered to each user represented by sample 1605.
The contract nodes 635 represent conduits through which impressions flow to individual contracts. For example, the contract node 635 labeled 1 links the “F” and “S” property nodes 640 to contract 1620, because contract 1620 allows both sports and finance impressions. The contract node 635 labeled 2 links only the “F” property node to contract 2625 because contract 2625 allows only finance impressions.
The maximum number of impressions that may flow from a given sample to a particular contract depends in part on the weight 630 of the sample, the source of the impressions in the sample, and the targeting requirements 645 of the destination contract. For example, a maximum of 3000 impressions may be delivered from sample 1605 to a contract that specifies both sports and finance properties. But only 1500 impressions may be delivered from sample 1605 to a contract that specifies either sports or finance, but not both.
The maximum number of impressions that may flow from a given sample to a particular contract may also depend on a frequency capping constraint 650 in the contract. For example, suppose a contract requires both sports and finance impressions, but specifies a frequency capping constraint of 1. In this case, only 1500 impression may flow from sample 1605 to that contract, because to allow any more than 1500 impressions to flow would necessarily require delivering impressions to one or more users more than one time. For example, in order to deliver 1501 impressions, all the impression associated with the “F” property node 640 and one impression associated with the “S” property node 640, or visa versa, must be delivered. This means that one person would see the advertisement associated with contract 1620 twice, once when he visits a sports property and once when he visits a finance property.
At block 705, previously generated user samples may be analyzed so as to determine whether the contract can be satisfied. For example, referring to
After the samples are identified, the number of available impressions each sample has available is determined. For example, referring to
At block 710, a determination is made as to whether the impressions associated with the selected samples are enough to satisfy the contract request. In making this determination, the properties through which the impressions were delivered for each sample as well as the frequency capping constraints are taken into consideration, as described with reference to
At block 720, if enough inventory is available, an appropriate number of impressions may be allocated from one or more of the samples to the contract. For example, if the targeting parameters of the contract specified only sports impressions, then only sports impressions may be allocated from the various samples. So, in the case of sample 1605 of
The impressions may be allocated across the various samples so as to improve the representativeness of the impressions. For instance, impressions may be allocated from samples that represent females, and also samples that represent males, so long as these samples otherwise match the targeting parameters of the contract. Allocating to only one group or the other may not provide the representativeness that the advertiser is seeking. For example, it may be the case that all the impressions may be allocated from a sample that represents only females. However, the advertiser may prefer that the impression be delivered to people of both gender. Allocating the impressions across multiple samples may provide better results for the advertiser.
After the impressions are allocated, a value corresponding to the number of impressions allocated from each sample is deducted from the appropriate sample. For example, if 500 finance impressions are allocated from sample 1, then the number of impressions available from the finance property node 640 of sample 1 may be reduced by 500.
Returning to block 710, if the number of impressions available cannot satisfy the contract request, the number of impressions available may be communicated back to the advertiser. For example, the admission control subsystem may communicate the number of impressions available to the advertiser via a web page.
At block 725, if the allocation is successful, allocation information is communicated to an ad server, such as the ad server 125 of
Cost of Accepting=Cost if Accepted−Cost if Not Accepted
In terms of the remaining inventory:
Cost of Accepting=Value of Remaining if Not Accepted−Value of Remaining if Accepted
This provides a baseline to charge for the contract. Although this may be the price, the distribution may also be calculated over values to the advertiser. If the probability the advertiser would pay p dollars was known, the following could be calculated:
argmaxp Pr[Customer Would Pay p](p−Cost of Accepting)
A simple model of the price of selling a particular opportunity may be used. For instance, suppose that the remaining finance opportunities are estimated to be worth $10 CPM (cost per thousand), whereas the remaining sports opportunities are worth $5 CPM. Assume that there are 1000 finance opportunities and 1000 sports opportunities.
If some advertiser asks for 750 opportunities of either finance or sports (or a mixture of both), the value of the remaining opportunities is $15 if the contract is refused. Since this contract can be served with all sports opportunities, then there are 1000 finance and 250 sports opportunities remaining, and the remaining value is $11.25: thus, the difference is $3.75. Note that this is exactly the cost of the impressions that the contract received.
On the other hand, if a new advertiser came and asked for a second contract of 750 opportunities of finance or sports, then the cost would be higher. The value of the remaining impressions if the second contract is not taken is $11.25.
On the other hand, only 500 finance impressions will remain, so the remaining value if the contract is accepted is $5, so the second contract would cost $6.25.
If there was a third contract for 500 sports impressions, it would cost $5, because accepting it would involve rearranging the first two contracts and using up all the valuable finance impressions.
In terms of a more complex analysis, the value of possible future contracts may be considered. For instance, one might expect that there may be advertisers, and therefore contracts, that will be interested in a number of impressions from any property, implying that as the number of remaining opportunities grows smaller, all impressions become more expensive. Also, one might consider possible future contracts that are frequency capped. This may result in opportunities of users who visit less frequently to be more valuable, due to the fact that they will reduce the number of contracts with maximum possible reach (number of users that have seen the contract).
A more precise methodology for optimizing the price of a contract may also be utilized. To begin with, a set ∪ user samples are drawn. The following are defined:
Finally, there are a set of ad groups Gr where each G ∈ Gr is a set of contracts. Ad groups may have a frequency cap, which is denoted cG. Define Tl,u=Tl∩Ou, T*l,u=Tl,u×{l}. For each G ∈ Gr, define T*G,u=∪l∈G,uT*l,u. Define T* ⊂Gr×U to be the set of all G; u such that T*G,u is nonempty.
These are then input to the pricing optimization problem. The output are the variables {so,l: (o,l)∈ L*}. The following equations represent how impressions are to be served to the various contracts from the various contracts.
In addition to the particulars of each existing contract, there may be an expected value of remaining inventory. In particular, suppose that vo is the value of each opportunity. The remainder r0=(wu−Σl∈L
is maximized subject to constraints 1-4 above. This formula is an online linear programming problem that may be solved via programs such as CPLEX and Ipsolve.
At block 805, the value of each remaining piece of impression inventory may be calculated. Each piece of impression inventory may correspond to an opportunity as defined above and may be associated with a user sample. For example, a sample based on a user that on a given day visited a sports web page once and a finance web page once may represent two opportunities, or two pieces of impression inventory. The weight of the sample may also be considered. So, for example, if the user sample above represented 1000 individuals, then the sample actually represents 2000 pieces of impression inventory.
At block 810, the value associated with all of the available inventory before booking a contract may be determined by maximizing the formula
subject to constraints (1)-(4) above. This is an online linear programming problem and may be solved via programs, such as CPLEX and Ipsolve.
At block 815, the value associated with all of the available inventory after booking a contract may be determined. The value may also be determined via the formula of block 810.
At block 820, the base price for the contract is computed. The base price corresponds to the difference between the value of the remaining inventory computed at blocks 815 and 810.
The difference in base price of the contracts derived via the operations of
Consider the earlier example regarding finance and sports. However, in this example the following additional pieces of information are specified
1) 250 sports visitors visited once.
2) 250 sports visitors visited three times.
3) 250 finance visitors visited once.
4) 250 finance visitors visited three times.
So, if a contract with a frequency cap of 1 requests 750 opportunities, then that contract can only be allocated 500 sports impressions. Therefore, the cost to book the contract would be $15−$10=$5. If the second contract did not have a frequency cap, that contract would be allocated 500 sports impressions and 250 finance impressions, and amount of remaining inventory left would be 500 finance impressions, with a value of $5. Therefore, the second contract would cost $5. As shown, frequency capping can in fact influence the price of a contract.
The procedures above may be modified by adding hypothetical contract Lh. First, Lr is defined to be the real contract, with L=Lr ∪ Lh. The distinction in this case is that the hypothetical contracts are optional. These l ∈ Lh have a hypothetical price per opportunity pl. Maximizing
subject to the constraints above yields an optimal contract price based on hypothetical contracts. For instance, suppose a hypothetical contract with a frequency cap of 1 and a demand of 1000 (sports or finance) is added, and the advertiser is willing to spend $20 CPM. In this cases, the initial value of the remaining items is $27.50. Consider then several different first contracts:
Thus, this measure of pricing allows one to calculate all the consequences of accepting a contract at a given point in time.
In a networked deployment, the computer system may operate in the capacity of a server or as a client user computer in a server-client user network environment, or as a peer computer system in a peer-to-peer (or distributed) network environment. The computer system 900 may also be implemented as or incorporated into various devices, such as a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile device, a palmtop computer, a laptop computer, a desktop computer, a communications device, a wireless telephone, a land-line telephone, a control system, a camera, a scanner, a facsimile machine, a printer, a pager, a personal trusted device, a web appliance, a network router, switch or bridge, or any other machine capable of executing a set of instructions 945 (sequential or otherwise) that specify actions to be taken by that machine. In one embodiment, the computer system 900 may be implemented using electronic devices that provide voice, video or data communication. Further, while a single computer system 900 may be illustrated, the term “system” shall also be taken to include any collection of systems or sub-systems that individually or jointly execute a set, or multiple sets, of instructions to perform one or more computer functions.
As illustrated in
The computer system 900 may include a memory 910 that can communicate via a bus 920. For example, the impression inventory database 115, user sample database 120, and/or the advertisement database 130 of
The computer system 900 may further include a display 930, such as a liquid crystal display (LCD), an organic light emitting diode (OLED), a flat panel display, a solid state display, a cathode ray tube (CRT), a projector, a printer or other now known or later-developed display device for outputting determined information. The display 930 may act as an interface for the user to see the functioning of the processor 905, or specifically as an interface with the software stored in the memory 910 or in the drive unit 915.
Additionally, the computer system 900 may include an input device 925 configured to allow a user to interact with any of the components of system 900. The input device 925 may be a number pad, a keyboard, or a cursor control device, such as a mouse, or a joystick, touch screen display, remote control or any other device operative to interact with the system 900.
The computer system 900 may also include a disk or optical drive unit 915. The disk drive unit 915 may include a computer-readable medium 940 in which one or more sets of instructions 945, e.g. software, can be embedded. Further, the instructions 945 may perform one or more of the methods or logic as described herein. The instructions 945 may reside completely, or at least partially, within the memory 910 and/or within the processor 905 during execution by the computer system 900. The memory 910 and the processor 905 also may include computer-readable media as discussed above.
The present disclosure contemplates a computer-readable medium 940 that includes instructions 945 or receives and executes instructions 945 responsive to a propagated signal, so that a device connected to a network 950 may communicate voice, video, audio, images or any other data over the network 950. The instructions 945 may be implemented with hardware, software and/or firmware, or any combination thereof. Further, the instructions 945 may be transmitted or received over the network 950 via a communication interface 935. The communication interface 935 may be a part of the processor 905 or may be a separate component. The communication interface 935 may be created in software or may be a physical connection in hardware. The communication interface 935 may be configured to connect with a network 950, external media, the display 930, or any other components in system 900, or combinations thereof. The connection with the network 950 may be a physical connection, such as a wired Ethernet connection or may be established wirelessly as discussed below. Likewise, the additional connections with other components of the system 900 may be physical connections or may be established wirelessly.
The network 950 may include wired networks, wireless networks, or combinations thereof. The wireless network may be a cellular telephone network, an 802.11, 802.16, 802.20, or WiMax network. Further, the network 950 may be a public network, such as the Internet, a private network, such as an intranet, or combinations thereof, and may utilize a variety of networking protocols now available or later developed including, but not limited to, TCP/IP based networking protocols.
The computer-readable medium 940 may be a single medium, or the computer-readable medium 940 may be a single medium or multiple media, such as a centralized or distributed database, and/or associated caches and servers that store one or more sets of instructions. The term “computer-readable medium” may also include any medium that may be capable of storing, encoding or carrying a set of instructions for execution by a processor or that may cause a computer system to perform any one or more of the methods or operations disclosed herein.
The computer-readable medium 940 may include a solid-state memory such as a memory card or other package that houses one or more non-volatile read-only memories. The computer-readable medium 940 also may be a random access memory or other volatile re-writable memory. Additionally, the computer-readable medium 940 may include a magneto-optical or optical medium, such as a disk or tapes or other storage device to capture carrier wave signals such as a signal communicated over a transmission medium. A digital file attachment to an e-mail or other self-contained information archive or set of archives may be considered a distribution medium that may be a tangible storage medium. Accordingly, the disclosure may be considered to include any one or more of a computer-readable medium or a distribution medium and other equivalents and successor media, in which data or instructions may be stored.
Alternatively or in addition, dedicated hardware implementations, such as application specific integrated circuits, programmable logic arrays and other hardware devices, may be constructed to implement one or more of the methods described herein. Applications that may include the apparatus and systems of various embodiments may broadly include a variety of electronic and computer systems. One or more embodiments described herein may implement functions using two or more specific interconnected hardware modules or devices with related control and data signals that may be communicated between and through the modules, or as portions of an application-specific integrated circuit. Accordingly, the present system may encompass software, firmware, and hardware implementations.
Accordingly, the method and system may be realized in hardware, software, or a combination of hardware and software. The method and system may be realized in a centralized fashion in at least one computer system or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
The method and system may also be embedded in a computer program product, which includes all the features enabling the implementation of the methods described herein and which, when loaded in a computer system, is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
From the foregoing, it may be seen that the embodiments disclosed herein provide an approach for allocating impression inventory to contracts for booking internet advertising space, and also for determining a price associated with the contract.
While the method and system has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope. In addition, many modifications may be made to adapt a particular situation or material to the teachings without departing from its scope. Therefore, it is intended that the present method and system not be limited to the particular embodiment disclosed, but that the method and system include all embodiments falling within the scope of the appended claims.