1. Field
The information disclosed relates to bidding for an impression opportunity in an online advertising exchange system. More particularly, the information disclosed relates to an online advertising exchange system that may determine a value of using probability estimation of a user-action in bidding for an impression opportunity over not using such probability estimation in bidding for that same impression opportunity.
2. Background Information
The marketing of products and services online over the Internet through advertisements is big business. In February 2008, the IAB Internet Advertising Revenue Report conducted by PricewaterhouseCoopers announced that PricewaterhouseCoopers anticipated the Internet advertising revenues for 2007 to exceed US$21 billion. With 2007 revenues increasing 25 percent over the previous 2006 revenue record of nearly US$16.9 billion, Internet advertising presently is experiencing unabated growth.
Unlike print and television advertisement that primarily seeks to reach a target audience, Internet advertising seeks to reach target individuals. The individuals need not be in a particular geographic location and Internet advertisers may elicit responses and receive instant responses from individuals. As a result, Internet advertising is a much more cost effective channel in which to advertise.
Buying and selling ads online requires a variety of market players, including advertisers, publishers, agencies, networks, partners, and developers. To simplify the process of buying and selling ads online, some companies provide mutual organization systems that connect advertisers and publishers in a unified platform that serves as exchange facilities for advertisers, publishers, and other market players to buy and sell ads online. While some of these systems are efficient and effective, it is desirable to provide additional digital advertising solutions that continue to streamline the process of planning, buying, and/or optimizing display advertising.
A system prices usage of a probability estimation system that provides bidding information to users participating in an advertising exchange system auction. In order to calculate the value in using the probability estimation program, bidders are grouped into a first group of bidders that utilize the probability estimation program and a second group of bidders that do not utilize the probability estimation program. Under the assumption that all other bidders stay in the group they belong, the bids are processed by determining a first equilibrium bid for a first bidder by assuming the first bidder is in the first group. The bids are further processed by determining a second equilibrium bid for the first bidder by assuming that the first bidder is in the second group. The system then utilizes the first equilibrium bid and the second equilibrium bid to determine a value of utilizing the probability estimation program.
The embodiments of the advertising system are described using a number of terms. In order to aid in clarity, some definitions of the terms used to describe these embodiments follow. However, these terms define general concepts, and thus are not to be construed narrowly. A publisher is generally defined as a Web site that has inventory for the delivery of advertisements. As such, advertisements are displayed on the Web pages of the publisher's Web site. Users are generally defined as those individuals that access Web pages through use of a browser. However, the term user may also be used to describe entities that use the advertising exchange system, such as users that access an application on the advertising exchange system to use a probabilistic estimation system. Various participants of the advertising exchange system are referred to as “entities.” Thus, the term entity is generally used to describe any number of participants of the advertising exchange system. Those participants include advertisers, publishers, advertising networks and integrator networks.
An advertising network typically integrates entities, such as advertisers and publishers. An advertising network typically operates in conjunction with advertisers and publishers in order to deliver ads, from one or more advertisers, to Web pages of one or more publishers. For example, Yahoo! Inc, the assignee of the present invention, operates such an advertising network.
An integrator network entity generally defines a participant of the advertising exchange system that represents or integrates one or more entities on the advertising exchange system (e.g., advertisers, publishers, advertising networks, etc.). For example, an integrator network may represent advertisers on the advertising exchange system in order to deliver advertisements to publishers, advertising networks and other integrator networks. In some embodiments, the integrator networks are referred to as the “users” of the advertising exchange system. The integrated networks may comprise third party agents that operate on behalf of or are part of the integrator network. The term “third party agent” is used to generally describe an agent or customer that participates in transactions on the advertising exchange system. Similarly, the term “third party recipient” may be used to describe a user or participant of the advertising exchange system that receives information from the system, such as information to aid in the auction process. However, the terms integrator networks, third party agents and third party recipients is intended to represent a broad class of entities, including publishers, advertisers and networks, as well as the agents that represent them, that operate on the advertising exchange system.
The user 103 accesses information and/or content provided by the publisher 104. One form of access may include a browser 105 that has inventory locations 107 for the presentation of advertising. In one embodiment, an ad call is generated that requests an advertisement, from advertisements 112, 120 and 121, for placement with the inventory location 107. The corresponding advertisement may be delivered to publisher 104 by one or more networks. For instance, in one example, the network 106 is coupled to the publisher 104, and the network 108 is coupled to the advertiser 110. For this example, the networks 106 and 108 are coupled to each other. The advertiser 110 generally has one or more ad campaigns each comprising one or more advertisements 112 that the advertiser 110 wishes to place with the inventory of publishers such as, for example, the inventory location 107 of the publisher 104 that is presented to the user 103 via the browser application 105.
For the example illustrated in
Alternatively, and/or in conjunction with the embodiments described above, some embodiments direct an ad call for the inventory 107 to an integrator network 118. In one example, the ad call is passed from the network 106 to the integrator network 118 with additional information such as, for example, information regarding a bid amounts for opportunities. In the illustration of
For this embodiment, the ad exchange module 332 includes several modules that provide a variety of functionalities such as, for example, an eligibility module 334, an integrator module 336, and auction module 338. The ad exchange system also includes a probabilistic estimation system 340. The eligibility module 334 determines which entities, including integrator networks and/or integrated entities, are eligible to respond to a particular ad call or to receive a request for an ad bid. The determination may be based on targeting information regarding, for instance, the user, the inventory, the browser, and/or the publisher that are the destination of the requested advertisement. The eligibility module 334 preferably receives targeting, bidding, and/or eligibility information from the ad call 330, and passes information to the entities eligible to bid for the placement of advertising in response to the ad call. Some additional criteria for eligibility that may be used by the eligibility module 334 includes knowledge regarding which entities (e.g., integrator networks) subscribe to a probabilistic estimation service.
Once eligible entities are determined for bidding, the integrator module 336 communicates the information to the integrator networks 318, 346 and 348. The ad exchange system 332 generates one or more ad bid requests for each eligible entity, such as the integrated entities 318, 346 and 348. In one embodiment, the integrator module 336 uses a client-server approach, such as a bid gateway client-server module, located on the ad exchange system 332 (not shown), to communicate with a bid gateway server computer. The bid gateway server computer communicates information, such as opportunities, bid request and estimation information to and from the integrator entities 318, 346 and 348 and the ad exchange system 332.
In practice, the bids are prepared by advertising exchange system 300 over a few milliseconds based on pre-coded instructions from each bidder, although it is acceptable to refer to the bidders themselves as preparing their bid. In preparing their bids, advertisers may choose to use (or not use) a probability estimation system that estimates a bid (i.e., a fair market value for a given impression opportunity).
The choice to use a probability estimation program may not be entirely within the hands of each bidder. In an example, only registered members of advertising exchange system 300 may have access to the probability estimation program. Advertising exchange system 300 may prevent non-members from having access to the probability estimation program without paying a fee or providing some other compensation. Non-members may utilize their own techniques to derive a probability estimation service or function, but their estimation may be lacking since it will not include the rich historic data from advertising exchange system 300.
For purposes of nomenclature, advertising exchange system 300 may designate those bidders who utilize the probability estimation program provided by system 100 as n-bidders. Advertising exchange system 100 may designate those bidders who do not utilize the probability estimation program as k-bidders. To determine the effective CPM bid price for payment methods other than CPM, advertising exchange system 100 may utilize equation (1):
b
i=(probability estimation)*(price)*1000 (1)
The probability estimation system 340 provides superior conversion rate estimations due to both the hard-to-replicate vast data available from advertising exchange system 300 and the specialized accurate estimation methods of the system. Advertising exchange system 100 generally would expect bidders to benefit from receiving conversion probability information from a probability estimation system since this would allow such bidders to bid in a more informed way to increase their winning probability on average when it is profitable to them. While advertising exchange system 300 generally would expect bidders to benefit from receiving conversion probability information from a probability estimation system, it is desirable to put a value to that benefit since advertising exchange system 300 may utilize this value in a variety of ways. For example, advertising exchange system 300 may utilize the derived value to place a price on the probability estimation service based on a percentage of the value. In addition, advertising exchange system 300 may utilize the derived value to market the probability estimation service to members and non-members of exchange 300.
Process 400 may begin, at processing block 402, by establishing the players/bidders, rules related to them, and compiling information about them. For example, an advertising exchange system 340 may make services provided by a probability estimation system available to some bidders (n-bidders) and not to others (k-bidders). For example, the advertising exchange system 300 may make the services provided by the probability estimation system available to members of advertising exchange system 100, whereas non-members may have general access to advertising exchange system 100 but lack access to the probability estimation system 340.
For purposes of explanation, “n” bidders are defined as a first group of bidders that utilizes the probability estimation system. In addition, “k” bidders, defined in a second group, are bidders that do not utilize the probability estimation system. The sum of n+k may represent the total number of bidders, TB, for any one impression opportunity such that
TB=n+k (2)
The advertising exchange system 300 may find it desirable to inform the k-bidders of the second group as to the value of the probability estimation system may have in their effort to advertise. Advertising exchange system 300 may utilize that information as part of a marketing campaign to acquire new members or as part of a feel-good campaign to show that the probability estimation system stands out as the clear choice in a sea of choices and to let non-member subscribers see the service in terms of its value to them. Alternatively, advertising exchange system 300 may find it desirable to sell usage of the probability estimation system to the k-bidders, and the sale price may be a function of the value of the probability estimation system to a particular k-bidder.
Process 400 employs auction theory. Auction theory is an applied branch of game theory that deals with how people act in auction markets and researches the game-theoretic properties of auction markets. Klemperer, P. (1999, July). Auction theory: A guide to the literature. Journal of Economic Surveys 13 (3), 227-286, is part of the broad literature in auction theory. There are traditionally four types of auctions that are used to allocate a single item: (i) first-price sealed-bid auctions (Sealed tender auctions), (ii) second-price sealed-bid auctions (Vickrey auctions), (iii) open ascending-bid auctions (English auctions), and (iv) open descending-bid auctions (Dutch auctions). In first-price sealed-bid auctions, bidders place their bid in a sealed envelope and simultaneously hand them to the auctioneer. The auctioneer opens the envelopes and the individual with the highest bid wins, usually paying a price equal to the exact amount that he or she bid. Although process 400 may preferably be applied a first-price sealed-bid auction, process 400 may be applied in other auction types.
In the bidding process, the bidders may bid in a single shot, first price sealed-bid equivalent auction for the advertising opportunity. Their bid reflects their personal, subjective valuation of the advertising opportunity based on the information available to them and each valuation reflects an amount that each bidder considers a fair equivalent for the advertising opportunity. The bidder who submits the highest bid wins the right to serve an advertisement to the advertisement opportunity.
In general, bidder i values the advertising opportunity at vi, which is private information to her. However, each bidder is aware that each valuation, vi, is independently drawn from the same continuous distribution F(v) on [v,
From equation (1) above, where bi=(probability estimation)*(price)*1000, it is clear that the probability estimation plays an important roll in the bid bi submitted by each bidder i. The n-bidders have access to the probability estimation system provided by advertising exchange system 100 and may use that service as their probability estimation. In this example, p may denote the estimated conversion rate probability for the advertising opportunity as derived by the probability estimation system of advertising exchange system 300. However, the k-bidders provide their own guesses about the conversion rates utilizing third party information (3PI), where the third party information may be information other than that utilized by advertising exchange system 300, to derive p.
The k-bidders are at a disadvantage to the n-bidders since the accuracy of each k-bidder guess at the probability estimation is inferior to that provided by the probability estimation system in most cases. There are several reasons for this, including the hard-to-replicate vast data availability of advertising exchange system 300 as well as the development of specialized accurate estimation methods that are part of advertising exchange system 300. Therefore, the n-bidders benefit from receiving the conversion probability information from the system 300, in most cases. Conversely, the k-bidders bid in a less informed way, and thus on-average decrease their winning probability. To reflect this disadvantage, process 400 may assign an offset to the estimated conversion rate probability of each k-bidder.
In this example, sj may denote the estimated conversion rate probability for the advertising opportunity as derived by a k-bidder. Here, the outside k-bidders each may have their own probability estimation, denoted by
s
j
=p+ε
j, (3)
At processing block 404, advertising exchange system 300 may generate the estimated conversion rate probability π (an estimate of p) for the first group n-bidders. At processing block 406, each k-bidder, as a member of a second group of bidders, may generate an estimated conversion rate probability signal sj (estimate). As noted, each second group k-bidder may utilize third party information to derive its own probability estimation.
Nash equilibrium is a solution concept of an auction involving two or more bidders i, in which the auction assumes that each bidder i knows the equilibrium strategies β of the other bidders, and no bidder has anything to gain by changing only his or her own strategy βi unilaterally. If each bidder i has chosen a strategy βi and no bidder can benefit by changing his or her strategy while the other bidders keep theirs unchanged, then the current set of strategy choices and the corresponding payoffs constitute a Nash equilibrium. An equilibrium bid is a bid that contributes to the Nash equilibrium and is contributed to advertising exchange system 100 in equilibrium.
At processing block 214, advertising exchange system 300 may determine a first equilibrium bid bi* for a first bidder as a member of the first group of n-bidders. Here, advertising exchange system 300 presumes that all other bidders stay in the group they belong and that the first bidder is a member of the first group of bidders. As noted, each first group of n-bidders utilized the probability estimation system 340 to derive a probability estimation that is common to each n-bidder. At processing block 410, advertising exchange system 300 may determine a second equilibrium bid bi* for the first bidder as a member of the second group of k-bidders. Here, advertising exchange system 300 presumes that all other bidders stay in the group they belong and that the first bidder is a member of the second group of bidders.
Once advertising exchange system 300 determines the equilibrium bids for the first bidder as a member of each group of bidders, advertising exchange system 300 may utilize the first equilibrium bid and the second equilibrium bid to determine at processing block 412 a value of using the probability estimation system in bidding for an impression opportunity within advertising exchange system 300 over not using that probability estimation system. In other words, advertising exchange system 300 may determine the expected return of using the probability estimation system 340 for any third party k-bidder.
Equilibrium Bid bi*
First-price sealed-bid auctions are auctions in which the highest bid wins and the highest bidder pays a price equal to her bid. If two or more bidders make the same highest bid, then system 300 may award the advertising opportunity to one of the high bidders at random. Alternatively, if the bidders are sellers vying for a single advertisement, a standard sealed-bid auction is one in which the low bidder wins and receives the corresponding price. A skilled person may adapt process 300 to apply to bidders that are sellers.
Symmetric equilibrium in an auction is a type of equilibrium where each bidder uses the same strategy (possibly mixed) in the equilibrium. Only symmetric equilibria can possess an evolutionarily stable state in single population models. Advertising exchange system 100 utilizes symmetric equilibrium in each auction, that is, a real number R in an equilibrium strategy β: [0,1]→{0}∪(R,∞) such that the symmetric strategy profile (β, . . . , β) is a Nash equilibrium.
To determine the equilibrium bid for each bidder at processing blocks 408-410, advertising exchange system 300 first may resolve the collective of the probability estimation signals sj into a vector s (bolded character s) such that:
s=(s1, . . . ,sk), j=1, . . . ,k (4)
Each bidder i will provide a bid bi that utilizes a real value R such that:
b*(p,s):R+k+1→R++k (5)
To determine the equilibrium bid bi for the ith second group k-bidder, advertising exchange system 300 may apply equation (6):
To determine the equilibrium bid δj for the jth first group n-bidder at processing block 216, advertising exchange system 100 may apply equation (7):
Advertising exchange system 300 may determine the vector equilibrium bids for all bidders b* by applying equation (8):
b*=(b1*,b2*, . . . , bn+k*) (8)
Value of Using a Probability Estimation System
The equilibrium can be obtained by solving equations (6)-(7) for all j=1, . . . , n and i=n+1, . . . , n+k:
b
i
*−b
j*=arg maxBE[(p·vi−b)|si]F(1)n(β1−1(b))F(1)k−1(β2−1(b)|si)−arg maxbE[(p·vi−b)|p]F(1)k−1(β1−1(b))F(1)k(β2−1(b)) (9)
After obtaining equilibrium bids bi* at processing block 408 and equilibrium bids bj* at processing block 410, advertising exchange system 300 may determine at processing block 412 a value of using the probability estimation system in bidding for an impression opportunity over not using that probability estimation system. In other words, advertising exchange system 300 may determine the expected return of using the probability estimation system for the ith third party bidder according to equation (10):
Δ(n,k)=Ev,p,π[(pv−bjn+1,k−1(π))|π]−Ev,p,s[(pv−bjn,k(s))|si] (10)
At processing block 602, advertising exchange system 300 may estimate a probability variance on a conversion probability estimator by using a probability variance estimator. An example probability variance estimator may include a logistic regression model. A logistic regression model may estimate the probability of occurrence of an event by fitting data to a logistic curve. As a generalized linear model used for binomial regression, logistic regression may utilize several estimator variables that may be either numerical or categorical. A conversion probability estimator may help a bidder determine a probability that a user will mouse over, click on, make a purchase, or engage in some other conversion through the advertisement. The probability variance may reflect a difference between an estimated probability and the actual probability experienced.
At processing block 604, advertising exchange system 100 may utilize the probability variance determined in processing block 602 to determine an amount by which a second group k-bidder might value usage of the probability estimation system 340. Advertising exchange system 300 may utilize equation (10) above—Ev,p,π[(pv−bjn+1,k−1(π))|π]−Ev,p,s[(pv−bjn,k(s))|si]—to make this determination for any given n, and k, assuming Var[ε]=∞. Advertising exchange system 300 may utilize this amount as an upper bound on the price that may be charged to a k-bidder for integration for the given n and k values.
At processing block 606, advertising exchange system 300 may obtain an empirical distribution of the number of bidders, n, utilizing the probability estimation system 340 and the number of bidders k lacking access to the probability estimation system 340 using exchange data. As noted, n reflects the number of bidders who are part of a first group of n-bidders utilizing the probability estimation system. Moreover, k reflects the number of bidders who are part of a second group of k-bidders lacking access to the probability estimation system. The empirical distribution may be a cumulative probability distribution that, in a draw of N samples, concentrates probability 1/N at each of the N numbers in a sample.
At processing block 608, advertising exchange system 300 may calculate an expected added value or benefit to usage of the probability estimation system 340 by a given k-bidder. The expected added value may be a value attributed to the probability estimation system 340 service in view of a particular bidding process. Advertising exchange system 300 may utilize the empirical distribution from processing block 606 and the amount determined from processing block 604 to calculate added value expected by advertising exchange system 300. Advertising exchange system 300 may utilize the expected added value as an upper bound to the amount charged to the third party k-bidder for integration by exchange 300.
Advertising exchange system may divide engine 700 into a data collection area 704 and a two-stage analysis area 706. Data collection area 704 may include a statistical data block 708 and an auction data block 710. Statistical data block 708 may generate statistical data on the estimator from the probability estimation system, such as estimator variance. Auction data block 710 may generate auction data from advertising exchange system, such as the number of bidders that use the probability estimation system, the number of bidders that do not use the probability estimation system, and information about their historical bids. Both statistical data block 708 and auction data block 710 may receive information about target impression types from block 702 and pass information into two-stage analysis area 706.
Two-stage analysis area 706 may include an estimation and calibration block 712 and a valuation block 714. Estimation and calibration block 712 may receive data from both statistical data block 708 and auction data block 710 and use that data to estimate model parameters. Estimation and calibration block 712 may use that estimation to calibrate the model. In the second stage of analysis area 706, valuation block 714 may receive an output of estimation and calibration block 712 and run simulations for the equilibrium. Engine 700 may run the simulations through valuation block 714 with and without the agent having the information from the price estimation program. Valuation block 714 then may generate an estimated distribution for the marginal value that the price estimation program information provides to the agent and output that estimate as a price recommendation 716. Here, price producing engine 700 may seamlessly integrate the three stages of (i) data collection, (ii) empirical estimation and model calibration, and (iii) valuation through numerical equilibrium simulations.
Advertising exchange system 300 may generate and retain a significant amount of data. For example, advertising exchange system 300 may have information on the number of bidders for each auction and the number of bidder utilizing a probability estimation system for a given auction. That information may be utilized to calibrate the valuation model of equation (10), namely Ev,p,π[(pv−bjn+1,k−1(π))|π]−Ev,p,s[(pv−bjn,k(s))|si], when that model is applied to a case of dCPM bidders.
The implemented auction can be an equivalent of a first-price or second-price auction. Within the class of first- or second-price, sealed-bid auctions, there are a number of possible variations in environment, information, and rules. For example, there may be no reservation price, so that the auction will definitely sell the item, or there may be a reservation price that is announced or unannounced in advance of the auction. In addition, the number of potential bidders is unknown with a distribution that is common knowledge. The below discussion first considers an analysis with fixed number of bidders of each type. Then, the discussion considers uncertainty on the number of bidders from the point of view of a dCPM bidder.
Pricing Usage a Probability Estimation System Given a Fixed Number of Bidders from Participant Types
Consider n members and k non-members participating in an auction by making dCPM bids with reduced pricing. For the discussion purposes, assume that members n of advertising exchange system 100 utilize a Probability estimation system provided by utilizing equation (10), namely Ev,p,π[(pv−bjn+1,k−1(π))|π]−Ev,p,s[(pv−bjn,k(s))|si], advertising exchange system 100 may denote a valuation vector v of the n+k bidders as
v=(v1, . . . , vn+k) (11)
In equation (11), vi is an independent and identically-distributed (i.i.d.) random variable with U[v,
π=p+ε, with ε distributed as U[ε,
Advertising exchange system 300 supplies each member bidder n with the probability estimate π. A Bayesian inference or update is statistical inference in which a system utilizes evidence or observations to update or to infer anew the probability that a hypothesis may be true. Accordingly, member bidder n has a Bayesian update on her expected valuation of the impression as vi·π. Correspondingly, the valuation estimate from each non-member bidder is vi·E[p]. Bidding takes place for the impression opportunity. The winner is the bidder with the highest bid and she pays a reduced price equal to a “tick” above the second highest bid. Advertising exchange system 300 may calculate an upper bound on the price for the probability estimation service by calculating an upper bound of the value of having the estimation ofp for a non-member bidder k, and being able to bid in an informed way, as described above using these distributional parameters.
Advertising exchange system 300 may determine a price to charge to the one k-bidder by applying a benchmark as a standard by which advertising exchange system 300 may measure or judge something. For example, advertising exchange system 300 may utilize a mean marginal valuation difference coming from the simulation outcome since it gives an unbiased estimate of the expected ex ante valuation, making it a “fair” price per auction that a risk-neutral non-member may be willing to pay. In histogram 800, the mean marginal valuation is 0.019. Alternatively, advertising exchange system 300 may utilize the maximum marginal value realization in the distribution from the simulation outcome since it serves as a looser but more conservative upper bound on the price per auction that may be charged.
This analysis considers an unknown or at least an uncertainty in the number of bidder participants of each type in an auction from the perspective of a non-member k-bidder making dCPM bids with reduced pricing. Here, the analysis supplies a full value distribution evaluation for a potential non-member bidder who may be considering purchase of the probability estimation system.
Advertising exchange system 300 may use data collected from exchange 100 on auctions to derive an empirical distribution of the number of each type of bidder for a given auction. Advertising exchange system 300 may use this ex-ante distribution of the number of bidders as the probability distribution of each type of competitor from the point of view of a non-member k-bidder. Here, advertising exchange system 100 may denote the probability of n and k to equal the particular values of {circumflex over (n)} and {circumflex over (k)} (from the corresponding discrete distributions) by φn({circumflex over (n)}), and φk({circumflex over (k)}), respectively.
In histogram 1200, p˜U[0.1,0.9],
A discrete uniform distribution is a discrete probability distribution characterized by saying that all values of a finite set of possible values are equally probable. A discrete space is a particularly simple example of a topological space or similar structure, one in which the points are “isolated” from each other in a certain sense. The truncated normal distribution is the probability distribution of a normally distributed random variable whose value is bounded either below or above (or both). Here, φn and φk are discrete uniform and truncated normal distributions. Advertising exchange system 100 may impute into the analysis any empirical distribution obtained from auction data provided by advertising exchange system 300. The particular price to be charged may be determined based on a preferred conservativeness of the estimate such as the empirical mean from the simulation outcome.
In histogram 1600, p˜U[0.1,0.9], μn=4, and μk=2. Also, v=4,
Expansion
Advertising exchange system 300 may utilize the above methodologies and tools to price the provision of information services, such as CPC and CPA conversion rate estimates from a probability estimation system. A skilled person may expand these methodologies and tools to apply and fine-tune them to a small number of highly liquid auctions without departing from the scope of the discussion as well extend them to all suitable auctions consequently. In general, the disclosed price engine is highly scalable and advertising exchange system 100 can apply the price engine to most, if not all, of the auction types in advertising exchange system 100.
Any node of the network 2000 may comprise a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof capable to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A system also may implement a processor as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration, etc).
In alternative embodiments, a node may comprise a machine in the form of any machine capable of executing a sequence of instructions that specify actions to be taken by that machine, including a virtual machine (VM), a virtual server, a virtual client, a virtual desktop, a virtual volume, a network router, a network switch, a network bridge, a personal digital assistant (PDA), a cellular telephone, and a web appliance. Any node of the network may communicate cooperatively with another node on the network. In some embodiments, any node of the network may communicate cooperatively with every other node of the network. Further, any node or group of nodes on the network may comprise one or more computer systems (e.g., a client computer system, a server computer system) and/or may comprise one or more embedded computer systems, a massively parallel computer system, and/or a cloud computer system.
The computer system 2050 includes a processor 2008 (e.g., a processor core, a microprocessor, a computing device, etc), a main memory 2010 and a static memory 2012, which communicate with each other via a bus 2014. The machine 2050 may further include a display unit 2016 that may comprise a touch-screen, or a liquid crystal display (LCD), or a light emitting diode (LED) display, or a cathode ray tube (CRT). As shown, the computer system 2050 also includes a human input/output (I/O) device 2018 (e.g., a keyboard, an alphanumeric keypad, etc), a pointing device 2020 (e.g., a mouse, a touch screen, etc), a drive unit 2022 (e.g., a disk drive unit, a CD/DVD drive, a tangible computer readable removable media drive, an SSD storage device, etc), a signal generation device 2028 (e.g., a speaker, an audio output, etc), and a network interface device 2030 (e.g., an Ethernet interface, a wired network interface, a wireless network interface, a propagated signal interface, etc).
The drive unit 2022 includes a machine-readable medium 2024 on which is stored a set of instructions (i.e., software, firmware, middleware, etc) 2026 embodying any one, or all, of the methodologies described above. The set of instructions 2026 also may reside, completely or at least partially, within the main memory 2010 and/or within the processor 2008. The network bus 2014 of the network interface device 2030 may provide a way to further transmit or receive the set of instructions 2026.
A computer may include a machine to perform calculations automatically. A computer may include a machine that manipulates data according to a set of instructions. In addition, a computer may include a programmable device that performs mathematical calculations and logical operations, especially one that can process, store and retrieve large amounts of data very quickly.
It is to be understood that embodiments of this invention may be used as, or to support, a set of instructions executed upon some form of processing core (such as the CPU of a computer) or otherwise implemented or realized upon or within a machine- or computer-readable medium. A machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes read-only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, electrical, optical, acoustical, or any other type of media suitable for storing information.
A computer program product on a storage medium having instructions stored thereon/in may implement part or all of system 100. The system may use these instructions to control, or cause, a computer to perform any of the processes. The storage medium may include without limitation any type of disk including floppy disks, mini disks (MD's), optical disks, DVDs, CD-ROMs, micro-drives, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices (including flash cards), magnetic or optical cards, nanosystems (including molecular memory ICs), RAID devices, remote data storage/archive/warehousing, or any type of media or device suitable for storing instructions and/or data.
Storing may involve putting or retaining data in a memory unit such as a storage medium. Retrieving may involve locating and reading data from storage. Delivering may involve carrying and turning over to the intended recipient. For example, information may be stored by putting data representing the information in a memory unit, for example. The system may store information by retaining data representing the information in a memory unit, for example. The system may retrieve the information and deliver the information downstream for processing. The system may retrieve a message such as an advertisement from an advertising exchange system, carried over a network, and turned over to a member of a target-group of members.
Stored on any one of the computer readable medium, system 100 may include software both to control the hardware of a general purpose/specialized computer or microprocessor and to enable the computer or microprocessor to interact with a human consumer or other mechanism utilizing the results of system 100. Such software may include without limitation device drivers, operating systems, and user applications. Ultimately, such computer readable medium further may include software to perform system 100.
Although the system may utilize the techniques in the online advertising context, the techniques also may be applicable in any number of different open exchanges where the open exchange offers products, commodities, or services for purchase or sale. Further, many of the features described herein may help data buyers and others to target users in audience segments more effectively. However, while data in the form of segment identifiers may be generally stored and/or retrieved, examples of the invention preferably do not require any specific personal identifier information (e.g., name or social security number) to operate.
The techniques described herein may be implemented in digital electronic circuitry, or in computer hardware, firmware, software recorded on a computer-readable medium, or in combinations of them. The system may implement the techniques as a computer program product, i.e., a computer program tangibly embodied in an information carrier, including a machine-readable storage device, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. Any form of programming language may convey a written computer program, including compiled or interpreted languages. A system may deploy the computer program in any form, including as a stand-alone program or as a module, component, subroutine, or other unit recorded on a computer-readable medium and otherwise suitable for use in a computing environment. A system may deploy a computer program for execution on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
A system may perform the methods described herein in programmable processors executing a computer program to perform functions disclosed herein by operating on input data and generating output. A system also may perform the methods by special purpose logic circuitry and implement apparatus as special purpose logic circuitry special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). Modules may refer to portions of the computer program and/or the processor/special circuitry that implements that functionality. An engine may be a continuation-based construct that may provide timed preemption through a clock that may measure real time or time simulated through language like scheme. Engines may refer to portions of the computer program and/or the processor/special circuitry that implements the functionality. A system may record modules, engines, and other purported software elements on a computer-readable medium. For example, a processing engine, a storing engine, a retrieving engine, and a delivering engine each may implement the functionality of its name and may be recorded on a computer-readable medium.
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any processors of any kind of digital computer. Generally, a processor may receive instructions and data from a read-only memory or a random access memory or both. Essential elements of a computer may be a processor for executing instructions and memory devices for storing instructions and data. Generally, a computer also includes, or may be operatively coupled to receive data from or transfer data to, or both, mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory-devices, e.g., EPROM, EEPROM, and flash memory devices, magnetic disks, e.g., internal hard disks or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks. A system may supplement a processor and the memory by special purpose logic circuitry and may incorporate the processor and the memory in special purpose logic circuitry.
To provide for interaction with a user, the techniques described herein may be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user provides input to the computer (e.g., interact with a user interface element, for example, by clicking a button on such a pointing device). Other kinds of devices may be used to provide for interaction with a user as well, for example, feedback provided to the user includes any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback, and input from the user may be received in any form, including acoustic, speech, or tactile input.
The techniques described herein may be implemented in a distributed computing system that includes a back-end component, e.g., as a data server, and/or a middleware component, e.g., an application server, and/or a front-end component, e.g., a client computer having a graphical user interface and/or a Web browser through which a user interacts with an implementation of the invention, or any combination of such back-end, middleware, or front-end components. A system may interconnect the components of the system by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet, and include both wired and wireless networks.
The computing system may include clients and servers. A client and server may be generally remote from each other and typically interact over a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. One of ordinary skill recognizes any or all of the foregoing implemented and described as computer readable media.
In the above description, numerous details have been set forth for purpose of explanation. However, one of ordinary skill in the art will realize that a skilled person may practice the invention without the use of these specific details. In other instances, the disclosure may present well-known structures and devices in block diagram form to avoid obscuring the description with unnecessary detail. In other words, the details provide the information disclosed herein merely to illustrate principles. A skilled person should not construe this as limiting the scope of the subject matter of the terms of the claims. On the other hand, a skilled person should not read the claims so broadly as to include statutory and nonstatutory subject matter since such a construction is not reasonable. Here, it would be unreasonable for a skilled person to give a scope to the claim that is so broad that it makes the claim non-statutory. Accordingly, a skilled person is to regard the written specification and figures in an illustrative rather than a restrictive sense. Moreover, a skilled person may apply the principles disclosed to achieve the advantages described herein and to achieve other advantages or to satisfy other objectives, as well.