U.S. patent application number 14/824819 was filed with the patent office on 2015-12-03 for methods and systems for ad placement planning.
This patent application is currently assigned to YAHOO! INC.. The applicant listed for this patent is Yahoo! Inc.. Invention is credited to Dongni Chen, Peiji Chen, Satyen Kale, Srinath Mandalapu, Chandrashekhar Nagarajan, Erik Vee.
Application Number | 20150348086 14/824819 |
Document ID | / |
Family ID | 48695677 |
Filed Date | 2015-12-03 |
United States Patent
Application |
20150348086 |
Kind Code |
A1 |
Vee; Erik ; et al. |
December 3, 2015 |
METHODS AND SYSTEMS FOR AD PLACEMENT PLANNING
Abstract
Methods and systems are disclosed which allow shifting inventory
to fulfill guaranteed delivery advertisement contracts. Inventory
may be allocated from a supply of unallocated inventory to one or
more advertisers in accordance with guaranteed delivery agreements.
Inventory may be reserved for the one or more advertisers from the
remaining supply of unallocated inventory. Inventory may then be
allocated to an additional advertiser by using unallocated
inventory or shifted inventory, or a combination of unallocated
inventory and shifted inventory. The shifted inventory is shifted
out of the allocation for the first advertiser and the shifted
inventory is replaced by the reserve inventory for the respective
advertiser.
Inventors: |
Vee; Erik; (San Mateo,
CA) ; Chen; Dongni; (Sunnyvale, CA) ; Chen;
Peiji; (San Jose, CA) ; Kale; Satyen; (New
York, NY) ; Mandalapu; Srinath; (Santa Clara, CA)
; Nagarajan; Chandrashekhar; (Santa Clara, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Yahoo! Inc. |
Sunnyvale |
CA |
US |
|
|
Assignee: |
YAHOO! INC.
Sunnyvale
CA
|
Family ID: |
48695677 |
Appl. No.: |
14/824819 |
Filed: |
August 12, 2015 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13339254 |
Dec 28, 2011 |
9135632 |
|
|
14824819 |
|
|
|
|
Current U.S.
Class: |
705/14.4 |
Current CPC
Class: |
G06Q 20/203 20130101;
G06Q 30/0244 20130101; G06Q 10/087 20130101; G06Q 30/02 20130101;
G06Q 30/0241 20130101 |
International
Class: |
G06Q 30/02 20060101
G06Q030/02 |
Claims
1. A computerized method comprising: allocating an inventory of
advertising impressions from a plurality of supply nodes to satisfy
a demand for advertising impressions received from a plurality of
demand nodes, wherein each demand node receives an allocation from
at least some of the plurality of supply nodes, and wherein the
inventory is allocated in accordance with advertiser targeting
criteria associated with each demand node, respectively;
determining a reserve inventory of unallocated advertising
impressions for each demand node such that, for each supply node,
unallocated advertising impressions are partitioned for allocation
among the demand nodes receiving an allocation from a supply node
proportionally to the supply node's allocated inventory; and
allocating, for each new demand node, an additional inventory of
advertising impressions, wherein the additional inventory satisfies
advertiser targeting criteria associated with a new demand node and
also satisfies advertiser targeting criteria associated with at
least one other demand node, by shifting supply to accommodate the
new demand node using a combination of unallocated inventory and
shifted inventory, wherein the shifted inventory is shifted out of
at least one other demand node's allocation, and wherein the
shifted inventory is replaced by the reserve inventory partitioned
for allocation to the at least one other demand node.
2. The method of claim 1, further comprising modeling inventory
allocation as a bipartite graph such that eligibility edges between
the plurality of supply nodes and the plurality of demand nodes
depict how much inventory is available for each demand node.
3. The method of claim 2, wherein each demand node is connected via
an eligibility edge to one or more eligible supply nodes based at
least on advertiser targeting criteria associated with each demand
node, respectively.
4. The method of claim 2, wherein, for each eligibility edge, an
allocation is represented by a fraction which specifies that an
amount of inventory is reserved for a demand node.
5. The method of claim 1, wherein each demand node has an
associated demand which is a number of requested advertising
impressions.
6. The method of claim 5, wherein, the inventory of advertising
impressions is divided among the plurality of demand nodes such
that all demands for requested advertising impressions are met.
7. The method of claim 1, wherein each supply node includes an
associated weight that is a forecast for a number of impressions of
a particular type.
8. The method of claim 1, wherein, for a query demand node, a set
of eligible impressions inside a query region are considered to be
inside impressions, and other impressions outside the query region
are considered to be outside impressions, and wherein for each
demand node there is at least some reserved inventory, R.sub.j,
available for shifting, such that up to R.sub.j inventory currently
allocated to a demand node may be shifted from inside impressions
to outside impressions.
9. The method of claim 8, wherein, for each demand node, if an
amount of outside impressions, R'.sub.j, is greater than an amount
of currently allocated inside impressions, then all of the
allocation is shifted outside the query region, and wherein if
R'.sub.j is less than the amount of currently allocated inside
impressions, then R'.sub.j is shifted outside the query region.
10. The method of claim 1, further comprising: determining an
amount of supply that must be shifted to accommodate a demand that
cannot be accommodated without changing a previous allocation; and
splitting the amount of supply that must be shifted among allocated
inventory proportional to a total amount of allocated inventory
that each demand node is able to shift.
11. A system comprising: one or more databases; one or more server
computers in communication with the one or more databases, the one
or more server computers configured to: allocate an inventory of
advertising impressions from a plurality of supply nodes to satisfy
a demand for advertising impressions received from a plurality of
demand nodes, wherein each demand node receives an allocation from
at least some of the plurality of supply nodes, and wherein the
inventory is allocated in accordance with advertiser targeting
criteria associated with each demand node, respectively; determine
a reserve inventory of unallocated advertising impressions for each
demand node such that, for each supply node, unallocated
advertising impressions are partitioned for allocation among the
demand nodes receiving an allocation from a supply node
proportionally to the supply node's allocated inventory; and
allocate, for each new demand node, an additional inventory of
advertising impressions, wherein the additional inventory satisfies
advertiser targeting criteria associated with a new demand node and
also satisfies advertiser targeting criteria associated with at
least one other demand node, by shifting supply to accommodate the
new demand node using a combination of unallocated inventory and
shifted inventory, wherein the shifted inventory is shifted out of
at least one other demand node's allocation, and wherein the
shifted inventory is replaced by the reserve inventory partitioned
for allocation to the at least one other demand node.
12. The system of claim 11, further comprising modeling inventory
allocation as a bipartite graph such that eligibility edges between
the plurality of supply nodes and the plurality of demand nodes
depict how much inventory is available for each demand node.
13. The system of claim 12, wherein each demand node is connected
via an eligibility edge to one or more eligible supply nodes based
at least on advertiser targeting criteria associated with each
demand node, respectively.
14. The system of claim 12, wherein, for each eligibility edge, an
allocation is represented by a fraction which specifies that an
amount of inventory is reserved for a demand node.
15. The system of claim 11, wherein each demand node has an
associated demand which is a number of requested advertising
impressions.
16. The system of claim 15, wherein, the inventory of advertising
impressions is divided among the plurality of demand nodes such
that all demands for requested advertising impressions are met.
17. The system of claim 11, wherein each supply node includes an
associated weight that is a forecast for a number of impressions of
a particular type.
18. The system of claim 11, wherein, for a query demand node, a set
of eligible impressions inside a query region are considered to be
inside impressions, and other impressions outside the query region
are considered to be outside impressions, and wherein for each
demand node there is at least some reserved inventory, R.sub.j,
available for shifting, such that up to R.sub.j inventory currently
allocated to a demand node may be shifted from inside impressions
to outside impressions.
19. The system of claim 18, wherein, for each demand node, if an
amount of outside impressions, R'.sub.j, is greater than an amount
of currently allocated inside impressions, then all of the
allocation is shifted outside the query region, and wherein if
R'.sub.j is less than the amount of currently allocated inside
impressions, then R'.sub.j is shifted outside the query region.
20. The system of claim 11, further comprising: determining an
amount of supply that must be shifted to accommodate a demand that
cannot be accommodated without changing a previous allocation; and
splitting the amount of supply that must be shifted among allocated
inventory proportional to a total amount of allocated inventory
that each demand node is able to shift.
21. A computer program product embedded in a non-transitory
computer readable medium comprising instructions executable by a
computer processor for ad placement planning, the instructions
being executable by a computer processor to execute processing
comprising: allocating an inventory of advertising impressions from
a plurality of supply nodes to satisfy a demand for advertising
impressions received from a plurality of demand nodes, wherein each
demand node receives an allocation from at least some of the
plurality of supply nodes, and wherein the inventory is allocated
in accordance with advertiser targeting criteria associated with
each demand node, respectively; determining a reserve inventory of
unallocated advertising impressions for each demand node such that,
for each supply node, unallocated advertising impressions are
partitioned for allocation among the demand nodes receiving an
allocation from a supply node proportionally to the supply node's
allocated inventory; and allocating, for each new demand node, an
additional inventory of advertising impressions, wherein the
additional inventory satisfies advertiser targeting criteria
associated with a new demand node and also satisfies advertiser
targeting criteria associated with at least one other demand node,
by shifting supply to accommodate the new demand node using a
combination of unallocated inventory and shifted inventory, wherein
the shifted inventory is shifted out of at least one other demand
node's allocation, and wherein the shifted inventory is replaced by
the reserve inventory partitioned for allocation to the at least
one other demand node.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. application Ser.
No. 13/339,254 filed Dec. 28, 2011, the entire content of which is
hereby incorporated herein by reference.
BACKGROUND
[0002] Online advertising marketplaces and exchanges may involve,
for example, entities or parties including advertisers, publishers
and data providers, as well as a marketplace or online advertising
operations facilitator, or market-maker. Data providers may supply
information, such as information regarding users, user behavior or
user interests, which may enhance value to advertisers in
connection with purchasing of advertising inventory. However, in
marketplaces and exchanges, significant difficulty and
transactional friction may exist in selectivity, arrangements and
cooperation between parties. This can lead to suboptimal
interactions, reducing efficiency and disincentivizing maximum
engagement and spending. Furthermore, friction as well as
inequities or unfairness may exist in connection with pricing
arrangement, actual pricing, and allocation of spend between
parties including advertisers and data providers, and such as in
connection with sold advertising inventory.
[0003] There is a need for improved techniques in online
advertising, including in online advertising marketplaces and
exchanges, to increase transactional efficiency.
SUMMARY
[0004] Some embodiments of the invention provide systems and
methods for inventory reservation to fulfill guaranteed delivery
advertisement contracts. In accordance with some embodiments, a
first inventory may be allocated from a supply of unallocated
inventory to a first advertiser, wherein the first inventory
satisfies the first advertiser's targeting criteria, and wherein
the supply includes advertising opportunity inventory. For example,
an advertiser may request 5000 impressions from a supply of 10,000
impressions. In some embodiments, the relationship between demand
(e.g., contracts) and supply (e.g., impressions) may be modeled as
a bipartite graph. A second inventory is then allocated from the
remaining supply of unallocated inventory to a second advertiser,
wherein the second inventory satisfies the second advertiser's
targeting criteria.
[0005] A third inventory is reserved from the remaining supply of
unallocated inventory to the first advertiser. The third inventory
may be reserved for the first advertiser proportionally. In other
words, the amount of the reserve inventory allocated to the first
advertiser may be proportional to the amount of percentage of
matching inventory that was allocated to the first advertiser. For
example, out of a 10,000 impression supply, if 5000 was allocated
to the first advertiser, and all of the remaining 5000 impressions
meet the first advertiser's targeting criteria, then 2500
impressions (50% of 5000) will be reserved for the first
advertiser. A fourth inventory is then reserved from the remaining
supply of unallocated inventory to the second advertiser, wherein
the fourth inventory satisfies the second advertiser's targeting
criteria. As explained above, the fourth inventory may be reserved
for the second advertiser proportionally.
[0006] A fifth inventory is allocated to a third advertiser,
wherein the fifth inventory satisfies the third advertiser's
targeting criteria and also satisfies the first advertiser's
targeting criteria or the second advertiser's targeting criteria,
by using unallocated inventory or shifted inventory, or a
combination of unallocated inventory and shifted inventory. The
shifted inventory is shifted out of the allocation for the first
advertiser or the allocation for the second advertiser, and wherein
the shifted inventory is replaced by the reserve inventory for the
respective advertiser. Using the above example, assume that 5000
impressions from the supply of 10,000 impressions are allocated to
the first advertiser, and 3000 impressions from the remaining 5000
impressions are allocated to the second advertiser. Now, if the
third advertiser requests 2000 impressions, and the remaining 2000
impressions meet the third advertiser's criteria, then those 2000
impressions will be allocated to the third advertiser. However, if
the 2000 impressions don't meet the third advertiser's criteria,
then the third advertiser's demand may be filled with inventory
which is shifted from the impressions allocated to the first and/or
second advertisers. Thus, if part of the impressions which are
allocated to the first and/or second advertisers meet the third
advertiser's criteria, those impressions will be allocated to the
third advertiser and the impressions which were shifted out from
the first and/or second advertisers will be replaced by the
impressions which were reserved for the first and/or second
inventory.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] FIG. 1 is a distributed computer system according to one
embodiment of the invention;
[0008] FIG. 2 is a flow diagram illustrating a method according to
one embodiment of the invention;
[0009] FIG. 3 is a flow diagram illustrating a method according to
one embodiment of the invention;
[0010] FIG. 4 is a flow diagram illustrating a method according to
one embodiment of the invention; and
[0011] FIG. 5 is an exemplary bipartite graph according to one
embodiment of the invention.
DETAILED DESCRIPTION
[0012] FIG. 1 is a distributed computer system 100 according to one
embodiment of the invention. The system 100 includes user computers
104, advertiser computers 106 and server computers 108, all coupled
or able to be coupled to the Internet 102. Although the Internet
102 is depicted, the invention contemplates other embodiments in
which the Internet is not included, as well as embodiments in which
other networks are included in addition to the Internet, including
one more wireless networks, WANs, LANs, telephone, cell phone, or
other data networks, etc. The invention further contemplates
embodiments in which user computers 104 may be or include desktop
or laptop PCs, as well as, wireless, mobile, or handheld devices
such as cell phones, PDAs, tablets, etc.
[0013] Each of the one or more computers 104, 106 and 108 may be
distributed, and can include various hardware, software,
applications, algorithms, programs and tools. Depicted computers
may also include a hard drive, monitor, keyboard, pointing or
selecting device, etc. The computers may operate using an operating
system such as Windows by Microsoft, etc. Each computer may include
a central processing unit (CPU), data storage device, and various
amounts of memory including RAM and ROM. Depicted computers may
also include various programming, applications, algorithms and
software to enable searching, search results, and advertising, such
as graphical or banner advertising as well as keyword searching and
advertising in a sponsored search context. Many types of
advertisements are contemplated, including textual advertisements,
rich advertisements, video advertisements, etc.
[0014] As depicted, each of the server computers 108 includes one
or more CPUs 110 and a data storage device 112. The data storage
device 112 includes a database 116 and an Ad Placement Planning
Program 114.
[0015] The Program 114 is intended to broadly include all
programming, applications, algorithms, software and other and tools
necessary to implement or facilitate methods and systems according
to embodiments of the invention. The elements of the Program 114
may exist on a single server computer or be distributed among
multiple computers or devices.
[0016] As will be understood by one of ordinary skill in the art,
in a guaranteed delivery advertising model, advertisers may enter
into an agreement (e.g., a contract) with a publisher (e.g., a
search engine, online newspaper, etc.) which guarantees or provides
some measure of assurance that the advertiser will receive a
certain agreed upon amount of suitable advertising. For example,
the agreement may provide that the advertisement will have one
million impressions (e.g., page views). By contrast, non-guaranteed
delivery advertising models may be based on individual serving
opportunities or may be spot market-based. In various models,
advertisers may pay based on any of various metrics associated with
advertisement delivery or performance, or associated with
measurement or approximation of a particular advertiser goal. For
example, models can include, among other things, payment based on
cost per impression or number of impressions, cost per click or
number of clicks, cost per action for some specified action, cost
per conversion or purchase, or cost based on some combination of
metrics, which can include online or offline metrics. The
guaranteed delivery contracts may define targeting criteria such
as, for example, user location, age, demographic, user profile
information, search history, browse history, etc. For example, an
advertiser may request that their advertisement be displayed when a
page is visited by young females in CA.
[0017] However, the "supply" of impressions is substantially
uncertain and may change over time. For example, unpredictable
events such as natural disasters or acts of terrorism may result in
large increases in traffic. Thus, since the supply is based on the
impressions, the publisher can only attempt to estimate the future
supply. In addition, the capacity is non-storable over time; as the
supply is generated from the number of impressions, the publisher
has to decide how to allocate the supply within a few seconds
before it perishes. Selling the impressions to potential
advertisers is further complicated by the issue of contention
between different advertisers for the same impression. Advertisers
may seek to reach a specific audience, e.g., females from
California before sunset and when the stock market is up (e.g., Dow
Jones Industrial Average has risen). Others may accept more loosely
defined, less targeted impressions (e.g., females).
[0018] Embodiments of the invention improve the efficiency of
booking and allocating maximum demand and checking for availability
for new guaranteed delivery contracts while managing contention
between different contracts. FIG. 2 is a flow diagram illustrating
a method 200 according to one embodiment of the invention. At step
202, using one or more computers, a first inventory from a supply
of unallocated inventory is allocated to a first advertiser,
wherein the first inventory satisfies the first advertiser's
targeting criteria, and wherein the supply includes advertising
opportunity inventory. For example, an advertiser may request 5000
impressions from a supply of 10,000 impressions. In some
embodiments, the relationship between demand (e.g., contracts) and
supply (e.g., impressions) may be modeled as a bipartite graph
(explained in more detail in relation with FIG. 5).
[0019] At step 204, using one or more computers, a second inventory
is allocated from the remaining supply of unallocated inventory to
a second advertiser, wherein the second inventory satisfies the
second advertiser's targeting criteria.
[0020] At step 206, using one or more computers, a third inventory
is reserved from the remaining supply of unallocated inventory to
the first advertiser, wherein the third inventory satisfies the
first advertiser's targeting criteria. The third inventory may be
reserved for the first advertiser proportionally. In other words,
the amount of the reserve inventory allocated to the first
advertiser may be proportional to the amount of inventory that was
allocated to the first advertiser in step 202. For example, out of
a 10,000 impression supply, if 5000 was allocated to the first
advertiser, and all of the remaining 5000 impressions meet the
first advertiser's targeting criteria, then 2500 impressions (50%
of 5000) will be reserved for the first advertiser.
[0021] At step 208, using one or more computers, a fourth inventory
is reserved from the remaining supply of unallocated inventory to
the second advertiser, wherein the fourth inventory satisfies the
second advertiser's targeting criteria. As explained above, the
fourth inventory may be reserved for the second advertiser
proportionally.
[0022] At step 210, using one or more computers, a fifth inventory
is allocated to a third advertiser, wherein the fifth inventory
satisfies the third advertiser's targeting criteria and also
satisfies the first advertiser's targeting criteria or the second
advertiser's targeting criteria, by using unallocated inventory or
shifted inventory, or a combination of unallocated inventory and
shifted inventory, wherein the shifted inventory is shifted out of
the allocation for the first advertiser or the allocation for the
second advertiser, and wherein the shifted inventory is replaced by
the reserve inventory for the respective advertiser. Using the
above example, assume that 5000 impressions from the supply of
10,000 impressions are allocated to the first advertiser, and 3000
impressions from the remaining 5000 impressions are allocated to
the second advertiser. Now, if the third advertiser requests 2000
impressions, and the remaining 2000 impressions meet the third
advertiser's criteria, then those 2000 impressions will be
allocated to the third advertiser. However, if the 2000 impressions
don't meet the third advertiser's criteria, then the third
advertiser's demand may be filled with inventory which is shifted
from the impressions allocated to the first and/or second
advertisers. Thus, if part of the impressions which are allocated
to the first and/or second advertisers meet the third advertiser's
criteria, those impressions will be allocated to the third
advertiser and the impressions which were shifted out from the
first and/or second advertisers will be replaced by the impressions
which were reserved for the first and/or second inventory. It
should be noted that the above steps 206-210 may be repeated each
time a new contract is to be filled (i.e., have inventory allocated
to it).
[0023] FIG. 3 is a flow diagram illustrating a method 300 according
to one embodiment of the invention. At step 302, using one or more
computers, a first inventory from a supply of unallocated inventory
is allocated to a first advertiser, wherein the first inventory
satisfies the first advertiser's targeting criteria, and wherein
the supply includes advertising opportunity inventory. For example,
an advertiser may request 5000 impressions from a supply of 10,000
impressions. In some embodiments, the relationship between demand
(e.g., contracts) and supply (e.g., impressions) may be modeled as
a bipartite graph (explained in more detail in relation with FIG.
5).
[0024] At step 304, using one or more computers, a second inventory
is allocated from the remaining supply of unallocated inventory to
a second advertiser, wherein the second inventory satisfies the
second advertiser's targeting criteria.
[0025] At step 306, using one or more computers, a third inventory
is reserved from the remaining supply of unallocated inventory to
the first advertiser, wherein the third inventory satisfies the
first advertiser's targeting criteria.
[0026] At step 308, using one or more computers, a fourth inventory
is reserved from the remaining supply of unallocated inventory to
the second advertiser, wherein the fourth inventory satisfies the
second advertiser's targeting criteria.
[0027] At step 310, using one or more computers, a fifth inventory
is allocated to a third advertiser, wherein the fifth inventory
satisfies the third advertiser's targeting criteria and also
satisfies the first advertiser's targeting criteria or the second
advertiser's targeting criteria, by using unallocated inventory or
shifted inventory, or a combination of unallocated inventory and
shifted inventory, wherein the shifted inventory is shifted out of
the allocation for the first advertiser or the allocation for the
second advertiser, and wherein the shifted inventory is replaced by
the reserve inventory for the respective advertiser. At step 312,
using one or more computers, one or more advertisements may be
served to users (e.g., visitors to websites) based at least in part
on the allocations. It should be noted that the above steps 306-310
may be repeated each time a new contract is to be filled (i.e.,
have inventory allocated to it).
[0028] FIG. 4 is a flow diagram illustrating a method 400 according
to one embodiment of the invention. At step 402, using one or more
computers, a first inventory from a supply of unallocated inventory
is allocated to a first advertiser, wherein the first inventory
satisfies the first advertiser's targeting criteria, and wherein
the supply includes advertising opportunity inventory. For example,
an advertiser may request 5000 impressions from a supply of 10,000
impressions. In some embodiments, the relationship between demand
(e.g., contracts) and supply (e.g., impressions) may be modeled as
a bipartite graph (explained in more detail in relation with FIG.
5).
[0029] At step 404, using one or more computers, a second inventory
is allocated from the remaining supply of unallocated inventory to
a second advertiser, wherein the second inventory satisfies the
second advertiser's targeting criteria.
[0030] At step 406, using one or more computers, a third inventory
is reserved from the remaining supply of unallocated inventory to
the first advertiser, wherein the third inventory satisfies the
first advertiser's targeting criteria. The third inventory is
reserved for the first advertiser proportionally. As discussed
above, the amount of the reserve inventory allocated to the first
advertiser is proportional to the amount of inventory that was
allocated to the first advertiser in step 402. For example, out of
a 10,000 impression supply, if 5000 was allocated to the first
advertiser, and all of the remaining 5000 impressions meet the
first advertiser's targeting criteria, then 2500 impressions (50%
of 5000) will be reserved for the first advertiser.
[0031] At step 408, using one or more computers, a fourth inventory
is reserved from the remaining supply of unallocated inventory to
the second advertiser, wherein the fourth inventory satisfies the
second advertiser's targeting criteria. As explained above, the
fourth inventory may be reserved for the second advertiser
proportionally.
[0032] At step 410, using one or more computers, a fifth inventory
is allocated to a third advertiser, wherein the fifth inventory
satisfies the third advertiser's targeting criteria and also
satisfies the first advertiser's targeting criteria or the second
advertiser's targeting criteria, by using unallocated inventory or
shifted inventory, or a combination of unallocated inventory and
shifted inventory, wherein the shifted inventory is shifted out of
the allocation for the first advertiser or the allocation for the
second advertiser, and wherein the shifted inventory is replaced by
the reserve inventory for the respective advertiser. It should be
noted that the above steps 406-410 may be repeated each time a new
contract is to be filled (i.e., have inventory allocated to
it).
[0033] FIG. 5 illustrates an exemplary bipartite graph according to
one embodiment of the invention. Bipartite graph 500 shows the
eligibility edges between demand and supply nodes. In other words,
bipartite graph 500 depicts how much of the available supply is
eligible for each demand node (contract). The table below
summarizes the demand and eligible supply for the demand and supply
nodes shown in FIG. 5.
TABLE-US-00001 Node Demand Eligible Supply D1 200 1000 D2 100 1200
D3 400 1400
[0034] The bipartite graph may be mathematically represented as
G=(C, S, E) with C representing contracts (e.g., demand nodes) and
S representing the supply nodes (e.g., different types of users
visiting a website). A demand node j is connected (via edges E) to
all supply nodes that are eligible for it. Each supply node i has
an associated weight Si that is the forecast for the number of
impressions of that type and each demand node j has an associated
demand d.sub.j which is the number of requested impressions. A
feasible allocation for the demands is a way of dividing up the
supply among the contracts so that all demands are met. Formally,
an allocation is represented by a fraction x.sub.ij.epsilon.[0, 1]
for every edge (i,j).epsilon.E, which specifies that
s.sub.ix.sub.ij amount of supply i is booked for demand node j. The
requirement that the supply node is not overallocated corresponds
to the condition that for all supply nodes i,
.SIGMA..sub.j:j.about.ix.sub.ij.ltoreq.1, where j.about.i is
notation for "j is connected to i" (and vice-versa). The
requirement that all demands are met corresponds to the condition
that for all demand nodes j,
.SIGMA..sub.i:i.about.js.sub.ix.sub.ij=d.sub.j. Suppose an existing
graph has an allocation meeting the current demands. We now want to
add a new contract to the graph. The new demand node may be
represented as j*, with its associated edges (i,j*) for the supply
nodes i that are eligible for it.
[0035] Embodiments of the present invention allow for the
possibility of shifting supply to allow more demand to be booked.
The main impediment to shifting is that access is only available to
a two neighborhood graph G.sub.j*, and any shifted inventory must
necessarily be moved outside the G.sub.j*. Embodiments of the
present invention rely on reserve inventories to allow shifting. In
accordance with one embodiment, unallocated inventory within every
supply node is divided up among the contracts (demand nodes) that
are connected to it as reserved inventory. For example, suppose
that impression i has two eligible contracts, 1 and 2, and that
x.sub.i1=0.1 and x.sub.i2=0.2. Then supply node i has 70% of its
inventory unallocated, and this 70% will be divided between
contracts 1 and 2 proportionally. This process is repeated for
every impression. In more detail, suppose we start with a graph
G=(C, S, E) with some initial allocation, x.sub.ij for every edge
(i,j).epsilon.E. Reserve inventories for every contract j in the
graph are computed as follows. For every supply node i, the
unallocated space among the contracts connected to it is divided up
proportional to their allocated amounts. For example, contract j
gets
x ij j ' .about. i x ij ' ##EQU00001##
fraction of the unallocated space in i reserved to it, which works
out to a reserved supply of size:
Res ij = s i x ij j ' .about. i x ij ' - s i x ij ( 1 )
##EQU00002##
[0036] For every contract j, the total reserved inventory to it
is:
R.sub.j:=.SIGMA..sub.i:i.about.jRes.sub.ij (2)
[0037] As mentioned above, for a query node j*, a two neighborhood
graph G.sub.j* (which shows a set of eligible impressions for j*,
as well as all the contracts that match at least one of those
eligible impressions) is determined. Impressions i.about.j* are
referred to as being inside the query region (and other impressions
as outside). The allocation x.sub.ij is computed for every
impression i and contract j in G.sub.j*. From this it is determined
how much of the "inside" inventory is currently booked. In
particular, there is .SIGMA..sub.i:i.about.j*s.sub.i eligible
supply, but .SIGMA..sub.j(.SIGMA..sub.i:i.about.j s.sub.ix.sub.ij)
of it is booked. However, for each contract j, there is R.sub.j
reserved inventory available for shifting. That is, up to R.sub.j
inventory currently allocated to j may be shifted from "inside"
impressions to "outside" impressions. However, some of this
reserved inventory actually comes from inside impressions, so it
cannot be used for shifting. Thus, the amount of "inside" reserved
inventory is calculated for j, and R'.sub.j is set to be the amount
"outside." Thus, for each j, if R'.sub.j is greater than the amount
currently allocated to inside impressions, then all of the
allocation may be shifted outside the query region (recall that
reserved inventory is partitioned, so that no two contracts share
any reserved inventory). Otherwise, if R'.sub.j is less than the
amount currently allocated inside, R'.sub.j may be shifted outside.
Thus, the total amount booked, after shifting as much as possible,
becomes:
.SIGMA..sub.j
max{0,.SIGMA..sub.i:i.about.js.sub.ix.sub.ij-R'.sub.j} (3)
[0038] Now suppose we are required to book some demand D for the
contract j*. If D can be accommodated without changing any previous
allocation, then D will be accommodated.
[0039] On the other hand, if contracts must be shifted to
accommodate D, then the total amount that must be shifted to
"outside" inventory is computed. This amount is then split among
allocated contracts, proportional to the total amount that each
contract is able to shift (this is
min{.SIGMA..sub.i:i.about.js.sub.ix.sub.ij, R'.sub.j}, where
R'.sub.j is the reserved inventory "outside.").
[0040] Suppose contract j must shift Sh.sub.j inventory, and it has
X allocated inside. Then, the allocation x.sub.ij is uniformly
changed for every inside impression to be 1-Sh.sub.hj/X.sub.j.
Likewise, since Sh.sub.hj inventory was shifted outside, the value
R'.sub.j must be decreased accordingly.
[0041] While the invention is described with reference to the above
drawings, the drawings are intended to be illustrative, and the
invention contemplates other embodiments within the spirit of the
invention.
* * * * *