U.S. patent application number 12/912726 was filed with the patent office on 2011-02-17 for system and method for preparing data used to determine advertisements displayed to communications node visitors.
Invention is credited to Roy Shkedi.
Application Number | 20110040620 12/912726 |
Document ID | / |
Family ID | 11072331 |
Filed Date | 2011-02-17 |
United States Patent
Application |
20110040620 |
Kind Code |
A1 |
Shkedi; Roy |
February 17, 2011 |
System and method for preparing data used to determine
advertisements displayed to communications node visitors
Abstract
A method for transacting an advertisement transfer is disclosed
which facilitates expressing the rate structure for the individual
advertisement as a function of a profile of the individual
potential customer; and which is directed to the creation of a
mechanism from the vantage of an Internet site that is being
visited. It should be appreciated that this must include the
participation of other entities in the Internet (such as
distributors, clients, intermediary agencies, etc.). The method is
for transacting an advertisement transfer, from an advertisement
distributor to a visitor, the method including, upon the occurrence
of a visitor visitation at a communications node, the communication
node performing the steps of: constructing a visitor profile;
broadcasting the profile to at least one distributor; collecting
responses from the at least one distributor; selecting a response
from the at least one responding distributor; contracting, between
the node and the at least one distributor of the selected response,
a transference of an advertisement from the distributor to the
visitor; and effecting a transfer of the advertisement to the
visitor.
Inventors: |
Shkedi; Roy; (New York,
NY) |
Correspondence
Address: |
LOUIS J. HOFFMAN, P.C.
11811 North Tatum Boulevard, Suite 2100
Phoenix
AZ
85028
US
|
Family ID: |
11072331 |
Appl. No.: |
12/912726 |
Filed: |
October 26, 2010 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
12273478 |
Nov 18, 2008 |
7822637 |
|
|
12912726 |
|
|
|
|
11479832 |
Jun 30, 2006 |
7454364 |
|
|
12273478 |
|
|
|
|
11177184 |
Jul 8, 2005 |
7072853 |
|
|
11479832 |
|
|
|
|
09473078 |
Dec 28, 1999 |
6973436 |
|
|
11177184 |
|
|
|
|
Current U.S.
Class: |
705/14.48 ;
705/14.66; 705/14.71 |
Current CPC
Class: |
G06Q 30/0275 20130101;
G06Q 30/02 20130101; G06Q 30/0277 20130101; G06Q 30/0283 20130101;
G06Q 30/0241 20130101; G06Q 30/0601 20130101; G06Q 40/04 20130101;
G06Q 30/0251 20130101; G06Q 30/0245 20130101; G06Q 30/0256
20130101; G06Q 30/0249 20130101; G06Q 30/0269 20130101; G06Q
30/0633 20130101 |
Class at
Publication: |
705/14.48 ;
705/14.71; 705/14.66 |
International
Class: |
G06Q 30/00 20060101
G06Q030/00 |
Foreign Application Data
Date |
Code |
Application Number |
Dec 31, 1998 |
IL |
127889 |
Claims
1-37. (canceled)
38. A method for preparing data used in transacting an
advertisement transfer from an advertisement distributor to a
visitor, the method performed prior to the occurrence of a visitor
visitation at a communications node, the method comprising: (a)
receiving over the Internet from at least one advertisement
distributor an electronic bid that includes: (i) a first offer
price where a visitor to the communications node has a subset of
attributes; and (ii) one or more supplemental offer prices, each
for where the visitor has an individual attribute in addition to
the subset of attributes; and (b) in response to receipt of the
electronic bid, automatically with a computer: (i) spreading the
electronic bid to form a number of combinations of various
attributes; (ii) determining an overall bid price of each of the
combinations of attributes based on logically and arithmetically
aggregating the offer prices of the bid; and (iii) electronically
saving, in an electronic storage accessible to the computer, data
identifying each attribute combination with its respective overall
bid price and the distributor.
39. The method according to claim 38 further comprising, upon the
occurrence of a visitor visitation at a communications node, with a
computer connected to the communication node, automatically
electronically: (i) accessing a profile associated with the visitor
containing various attributes; (ii) selecting from the data an
attribute combination that contains only attributes matching the
profile; and (iii) effecting a transfer of an advertisement to the
visitor from a distributor associated with the selected attribute
combination.
40. The method according to claim 39 wherein the attribute
combination selected from the data is an attribute combination that
yields the highest overall bid price from among all of the
attribute combinations in the data that contain only attributes
matching the profile.
41. The method according to claim 39 wherein the selecting from the
data is of multiple attribute combinations.
42. The method according to claim 39 further comprising
electronically storing a record of the advertisement transferred to
the visitor for intentional subsequent transfer to the same visitor
or for intentional avoidance of subsequent transfer to the same
visitor.
43. The method according to claim 39 further comprising, upon the
occurrence of the visitor visitation at the communication node,
automatically electronically enhancing the visitor profile using at
least one profile database connected to the computer connected to
the communication node.
44. The method of claim 39 wherein the overall bid price identifies
the payment that the distributor is offering if the visitor clicks
the advertisement.
45. The method of claim 39 wherein the overall bid price identifies
the payment that the distributor is offering if the visitor is
shown the advertisement.
46. The method of claim 39 wherein the overall bid price identifies
the payment that the distributor is offering if the visitor buys
merchandise after viewing the advertisement.
47. The method of claim 38 wherein the subset of attributes in part
(a)(i) is a subset of attributes consisting of a single
attribute.
48. The method of claim 38 wherein spreading the electronic bid to
form a number of combinations of various attributes comprises
creating all possible combinations of the subset of attributes and
the additional individual attributes.
49. The method of claim 38 wherein the received electronic bid
further includes a maximum offer price capping the overall price
for delivery of the associated advertisement, regardless of how
many matching attributes a visitor has, and the number of
combinations of various attributes in part (b) are constrained by
the maximum offer price.
50. The method of claim 49 wherein at least one of the supplemental
offer prices is expressed as a fraction of the associated first
offer price.
51. The method of claim 38 wherein at least some attributes
comprise the fact that the visitor lacks a certain
characteristic.
52. The method of claim 38 wherein at least one of the supplemental
offer prices is expressed as a fraction of the associated first
offer price.
53. A system for preparing data used in transacting an
advertisement transfer from an advertisement distributor to a
visitor, the system comprising an electronic storage, and a
computer system coupled to the electronic storage and structured,
configured, and programmed to: (a) receive over the Internet from
at least one advertisement distributor an electronic bid that
includes: (i) a first offer price where a visitor to the
communications node has a subset of attributes; and (ii) one or
more supplemental offer prices, each for where the visitor has an
individual attribute in addition to the subset of attributes; and
(b) in response to receipt of the electronic bid, automatically:
(i) spread the electronic bid to form a number of combinations of
various attributes; (ii) determine an overall bid price of each of
the combinations of attributes based on logically and
arithmetically aggregating the offer prices of the bid; and (iii)
electronically save in the electronic storage data identifying each
attribute combination with its respective overall bid price and the
distributor.
54. The system according to claim 53 further comprising a computer
connected to the communication node that is structured, configured,
and programmed to, upon the occurrence of a visitor visitation at
the communications node, automatically electronically: (i) access a
profile associated with the visitor containing various attributes;
(ii) select from the data an attribute combination that contains
only attributes matching the profile; and (iii) effect a transfer
of an advertisement to the visitor from a distributor associated
with the selected attribute combination.
55. The system according to claim 54 wherein the computer connected
to the communications node is further structured, configured, and
programmed to select from the data multiple attribute
combinations.
56. The system according to claim 54 wherein the computer connected
to the communications node is further structured, configured, and
programmed to electronically store a record of the advertisement
transferred to the visitor for intentional subsequent transfer to
the same visitor or for intentional avoidance of subsequent
transfer to the same visitor.
57. The system according to claim 54 wherein the computer connected
to the communications node is further structured, configured, and
programmed to, upon the occurrence of the visitor visitation at the
communication node, automatically electronically enhance the
visitor profile using at least one profile database connected to
the computer connected to the communications node.
58. A tangible, computer-readable storage medium storing a set of
computer-readable instructions in one or more modules that, when
executed by one or more processors, perform a method for preparing
data used in transacting an advertisement transfer from an
advertisement distributor to a visitor, the method performed prior
to the occurrence of a visitor visitation at a communications node,
the method comprising: (a) receiving over the Internet from at
least one advertisement distributor an electronic bid that
includes: (i) a first offer price where a visitor to the
communications node has a subset of attributes; and (ii) one or
more supplemental offer prices, each for where the visitor has an
individual attribute in addition to the subset of attributes; and
(b) in response to receipt of the electronic bid, automatically:
(i) spreading the electronic bid to form a number of combinations
of various attributes; (ii) determining an overall bid price of
each of the combinations of attributes based on logically and
arithmetically aggregating the offer prices of the bid; and (iii)
electronically saving in an electronic storage data identifying
each attribute combination with its respective overall bid price
and the distributor.
59. The storage medium according to claim 58 further comprising a
tangible, computer-readable storage medium storing a set of
computer-readable instructions in one or more modules accessible by
a computer connected to the communication node that, when executed
by one or more processors, perform the method of, upon the
occurrence of a visitor visitation at a communications node,
automatically electronically: (i) accessing a profile associated
with the visitor containing various attributes; (ii) selecting from
the data an attribute combination that contains only attributes
matching the profile; and (iii) effecting a transfer of an
advertisement to the visitor from a distributor associated with the
selected attribute combination.
60. The storage medium according to claim 59 wherein the set of
computer-readable instructions accessible by the computer connected
to the communication node performs the method wherein the selecting
from the data is of multiple attribute combinations.
61. The storage medium according to claim 59 wherein the set of
computer-readable instructions accessible by the computer connected
to the communication node performs the method further comprising
electronically storing a record of the advertisement transferred to
the visitor for intentional subsequent transfer to the same visitor
or for intentional avoidance of subsequent transfer to the same
visitor.
62. The storage medium according to claim 59 wherein the set of
computer-readable instructions accessible by the computer connected
to the communication node performs the method further comprising,
upon the occurrence of the visitor visitation at the communication
node, automatically electronically enhancing the visitor profile
using at least one profile database connected to the computer
connected to the communication node.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of application Ser. No.
09/473,078, filed Dec. 28, 1999 and also entitled A METHOD FOR
TRANSACTING AN ADVERTISEMENT TRANSFER, which itself claims priority
from Israel Application No. 127889 filed on Dec. 31, 1998. The
disclosures of said application and its entire file wrapper
(including all prior art references cited therewith) are hereby
specifically incorporated herein by reference in their entirety as
if set forth fully herein. Furthermore, a portion of the disclosure
of this to patent document contains material, which is subject to
copyright protection. The copyright owner has no objection to the
facsimile reproduction by anyone of the patent document or the
patent disclosure, as it appears in the Patent and Trademark Office
patent file or records, but otherwise reserves all copyright rights
whatsoever.
FIELD OF THE INVENTION
[0002] This invention relates to a method for transacting an
advertisement transfer. More specifically, this invention relates
to advertisement transferring in data-communications networks, such
as the Internet.
BACKGROUND OF THE INVENTION
[0003] Simple advertising involves placing a notice describing an
availability of goods or services. To be an effective
advertisement, the notice should be placed where a party,
interested in the goods or services, will give attention to the
notice. The advertising industry actively competes, according to
the nature of the notice, to optimize the placing of the notice and
to optimize the attention that the notice will receive.
[0004] Until recently, the advertisement industry placed notices as
billboards, signs, inclusion in newspapers, direct mailing, and
using broadcast media. Today the Internet and other interactive
electronic data-communications systems provide new ground for
effective advertising.
[0005] In this respect, numerous developments in the advertising
industry are noteworthy: [0006] U.S. Pat. No. 5,774,170 System and
method for delivering targeted advertisements to consumers; [0007]
U.S. Pat. No. 5,752,238 Consumer-driven electronic information
pricing mechanism; [0008] U.S. Pat. No. 5,740,549 Information and
advertising distribution system and method; [0009] U.S. Pat. No.
5,664,948 Delivery of data including preloaded advertising data;
[0010] U.S. Pat. No. 5,802,299: Interactive system for authoring
hypertext document collections; [0011] U.S. Pat. No. 5,761,683:
Techniques for changing the behavior of a link in a hypertext; and
[0012] U.S. Pat. No. 5,794,210 Attention brokerage.
[0013] These technologies (and the like) are being exploited by
many types of "advertising distributors" such as: [0014] Ad reach
Networks (e.g. Doubleclick, 24/7 Media, Flycast); [0015] Local
Networks (e.g. digital cities); [0016] Broadcast Networks (e.g.
Pointcast, Marimba); [0017] Content Networks, (e.g. CNET, Disney,
AOL, etc.); and [0018] Navigation Hubs (e.g. Yahoo, Excite,
Netscape, etc.).
[0019] What is nevertheless lacking in today's advertising industry
is a mechanism which actively matches an individual potential
customer with individual advertisements and then which expresses
the rate structure for the individual advertisement as a function
of a profile of the individual potential customer. Expressing the
rate structure for the individual advertisement, as a function of a
profile of the individual potential customer, is not a described
nor a delivered product of any of the aforesaid service
agencies.
SUMMARY OF THE INVENTION
[0020] The method of the present invention facilitates expressing
the rate structure for the individual advertisement as a function
of a profile of the individual potential customer.
[0021] The present invention is directed to the creation of a
mechanism from the vantage of an Internet site that is being
visited. It should be appreciated that this must include the
participation of other entities in the Internet (such as
distributors, clients, intermediary agencies, etc.).
[0022] The present invention relates to a method for transacting an
advertisement transfer, from an advertisement distributor to a
visitor, the method comprising, upon the occurrence of a visitor
visitation at a communications node, the communication node
performing the steps of: [0023] (One) constructing a visitor
profile; [0024] (Two) broadcasting the profile to at least one
distributor; [0025] (Three) collecting responses from the at least
one distributor; [0026] (Four) selecting a response from the at
least one responding distributor, [0027] (Five) contracting,
between the node and the at least one distributor of the selected
response, a transference of an advertisement from the distributor
to the visitor, and [0028] (Six) effecting a transfer of the
advertisement to the visitor.
[0029] There are three basic embodiment types according to the
present invention. Each type relates to a different mercantile
perspective on contracting (step "e"): Auction; Tender; and Future
inventory purchase.
Auction:
[0030] The communication node broadcasts a visitor's profile to
distributors. [0031] The interested distributors reply to the node
with a price offer for that profile. [0032] The highest offer for
that profile wins the auction, which the node conducted for that
profile. The node sends the distributor a message of his winning
the auction and also sends a predetermined protocol or
transactional authorization to pass to the visitor the auctioned
advertisement. [0033] The distributor sends the advertisement to
the visitor and also sends a confirmation to the node.
Alternatively, the visitor collects the advertisement from the
distributor, and a confirmation is sent to the node.
Tender:
[0033] [0034] The communication node receives price offers for
predetermined profile classes from at least one distributors.
[0035] When a visitor arrives, the node constructs a profile for
him. [0036] There may be among the price offers that the node has
already received from the distributors, at least one price offer
for a profile or a partial profile like that of the current
visitor. The highest bidder, among the at least one price offers,
wins the tender. The node sends the winning distributor a message
of his winning the tender and also sends a predetermined protocol
or transactional authorization to pass to the visitor the tendered
advertisement [0037] The distributor sends the advertisement to the
visitor and also sends a confirmation to the node. Alternatively,
the visitor collects the advertisement from the distributor, and a
confirmation is sent to the node.
Future Inventory Purchase:
[0038] Note: here the term "site" is used to relate to the
communication node having a visitor visitation. If an
"intermediary" is visited, then it too will represent a site.
[0039] The distributor sends a query to at least one site, in order
to find out the price they to charge for a specific profile that
the distributor is looking for. [0040] The sites return to the
distributor the price they charge for the purchase of future
inventory of the profile the distributor is looking for. According
to the preferred embodiment of the present invention in this
variation, the returned price is given as a function of quantity of
profiles, and of planned time of advertisement campaign. The site
might insert inherent discounts in the price quotes as a function
of the scale of the distributor or for a preferred customer of the
node. [0041] The distributor runs an optimization program that
builds a purchase plan of how many profiles to buy, from which
sites, and for what price. The optimized purchase plan makes sure
that for a given budget, the plan will include the highest quantity
of profiles possible. The mentioned plan considers predetermined
priorities and restrictions. For example, a specific percentage of
the purchased inventory must come from a specific site that in the
past proved itself as a good source for buyers for that advertiser.
[0042] The purchase plan is executed by sending requests to the
sites in the plan having quotes of the amount of profiles that the
distributor wants to purchase, the scheduled time of campaign, and
the price that will be paid. The price is just for clarity purpose
since it was the outcome of the offer sent by the site. [0043] The
sites send confirmation to the distributor.
[0044] Furthermore, the present invention relates to a device for
transacting an advertisement transfer, from an advertisement
distributor to a visitor, upon the occurrence of a visitor
visitation at a communications node, comprising a sequentially
linked series of modules: [0045] (One) a first module for
constructing a visitor profile; [0046] (Two) a second module for
broadcasting the profile to at least one distributor, [0047]
(Three) a third module for collecting responses from the at least
one distributor, [0048] (Four) a fourth module for selecting a
response from the at least one responding distributors; [0049]
(Five) a fifth module for contracting, between the node and the at
least one distributor of the selected response, a transference of
an advertisement from the distributor to the visitor, and [0050]
(Six) a sixth module for effecting a transfer of the advertisement
to the visitor.
BRIEF DESCRIPTION OF THE DRAWINGS
[0051] In order to understand the invention and to see how it may
be carried out in practice, a preferred embodiment will now be
described, by way of non-limiting example only, with reference to
the accompanying drawings, in which:
[0052] FIG. 1 illustrates an organizational chart for basic
advertisement transfer transacting;
[0053] FIG. 2 illustrates an organizational chart for centralized
servicing of advertisement transfer transacting;
[0054] FIG. 3 illustrates equivalent-level parallel-structuring
between an advertiser sector and a distributor sector,
[0055] FIG. 4 illustrates a typical hierarchical regional
stratification organization;
[0056] FIG. 5 illustrates a schematic diagram of bid
attributes;
[0057] FIG. 6 illustrates a hierarchical structuring for a new
offer,
[0058] FIG. 7 illustrates a listing of bids following the
organization presented in FIG. 6;
[0059] FIG. 8 illustrates a typical matching tree;
[0060] FIG. 9 a schematic diagram of the device of the present
invention; and
[0061] FIG. 10 is a schematic drawing of a device for transacting
an advertising transfer.
DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
[0062] In the context of the present invention, a "communications
node" is the server of an Internet site or is a theoretical pairing
of the server of the Internet site with the server of an
"intermediary" site, or the like. Equivalently, according to the
present invention, a "communication node" may be an apparatus in a
data-communications transfer architecture wherein is located
automatic data processing or like computer related task processes,
or may be a wired or wireless communications network routing
juncture. Furthermore, in the context of other applicable
communications architectures, a communications node is a web-TV
content provider, a multi-media contents provider, or any
intermediary purveyor transferring these contents.
[0063] In the context of the present invention, a "distributor" is
a contracting agent responsible for assigning at least one
advertisement to a specific medium: for example, placing a banner
on a web page, placing a notice for sale on an accessible index
entry, a content referral or an advertisement. In the context of
the present invention, the payment could be for showing an ad to
the visitor with the profile looked after by the distributor, or
for that visitor clicking the distributor's ad and visiting the
distributor's site; or for that visitor giving information about
himself to the distributor whether through the ad or on the
distributor's site after reaching the site by clicking the ad; or
for that visitor downloading a software from the distributor, or
for that visitor buying a merchandise from the distributor; and so
forth.
[0064] The present invention relates to a method for transacting an
advertisement transfer, from an advertisement distributor to a
visitor, the method comprising, upon the occurrence of a visitor
visitation at a communications node, the communication node
performing the steps of: [0065] (One) constructing a visitor
profile; [0066] (Two) broadcasting the profile to at least one
distributor; [0067] (Three) collecting responses from the at least
one distributor, [0068] (Four) selecting a response from the at
least one responding distributors; [0069] (Five) contracting,
between the node and the at least one distributor of the selected
response, a transference of an advertisement from the distributor
to the visitor, and [0070] (Six) effecting a transfer of the
advertisement to the visitor.
[0071] In general, the transactional universe of the Internet may
be described as including visitors, sites that they visit, and
distributors who provide network advertisements for viewing by the
visitors. The transferring, per se, is not an essential feature of
the present method wherein selecting is in order to facilitate such
an eventual transfer.
[0072] Visitors are normally individuals who elect to view an
Internet page. In most circumstances, this election is facilitated
by following a hyperlink from some other Internet page, which has
redirected the present elected viewing. Sometimes, this election is
done with the aid of a search engine, while other times the user
elects an Internet page to view by choosing from a personal list of
hyperlinks. Of somewhat lesser importance, a visitor may be a
"robotic Internet tourist" such as an agent, a search engine, an
auditing or monitoring program, etc.
[0073] Sites which are visited are Internet HTML pages (or VRML
"pages" or the like) which generally reside in server accessible
data storage archives. These sites often include hyperlink
references for allowing a visitor to simultaneously view external
content items from other Internet addresses. Presently, the most
widely used reference inclusion is for advertisement banners. The
content of these banners is not included at the site. Rather the
site includes an Internet address for the banner, and the visitor's
software visits the banner to bring a copy of it for inclusion into
the overall site viewing.
[0074] Often, banners are grouped into cyclically repeating
aggregations by an advertisement distributor. The distributor
establishes an Internet site for downloading banners. Furthermore,
the distributor effects a substitution of the content of this
Internet site on a frequent basis. The result is that the visitor
will view a different banner (inserted into a site) virtually each
time he accesses that site. Clearly, the reference inclusion of the
site is to a dynamic advertisement management distributor.
[0075] FIG. 1 is an organizational chart for basic advertisement
transfer transacting. For schematic clarity, the topologically
complex Internet has been represented as having three strata. The
lower stratum is for visitors, the central stratum is for sites,
and the upper stratum is for distributors. Actually, the visitors,
sites, and distributors are clients or servers or memory storage
locations accessible therein.
[0076] Here the "Visitor" 11 visits "Site 3" 12; site 3 builds the
visitor profile and broadcasts it to advertisement Network 1-n
(distributors) 13-15; advertisement "Network 2" 14 wins the
contract; and provides the visitor with the "Ad" 16.
[0077] FIG. 2 is an organizational chart for centralized servicing
of advertisement transfer transacting. Here the "Visitor" 21 visits
"Site 3" 22; "site 3" builds the visitor profile and transfers it
to the intermediary 23. The intermediary enhances the profile and
broadcasts it to advertisement Network 1-n (distributors) 24-26;
advertisement "Network 1" 24 wins the contract and provides the
visitor with the "Ad" 27.
[0078] According to an embodiment of the present invention, the
communications node collects generalized response descriptors from
the at least one distributor, and the broadcasting (step b) is done
internally using the collected descriptors as proxy for the at
least one distributor.
[0079] For example, any entity that owns an advertisement
distributing mechanism, such as advertisement management software,
can become a distributor. Nevertheless, the typical distributor
will probably be one of the following: [0080] An advertiser wishing
to integrate the vertical chain between him and the visitor; [0081]
An advertising agency wishing to cut down advertisement
distribution' costs; [0082] An interactive advertising agency
wishing to cut down the advertisement distribution costs; [0083]
Advertisement Network; or [0084] Content Providers wishing to
expand the reach they offer their advertisers by becoming
distributors to other content providers.
[0085] Economically, creating value has been described as a
logistics composite model called the value chain, which is a series
of value-adding activities that connect a company's supply-side
with its demand-side. The model treats information as a support
element and not as a source of value itself. An integrated suite of
value chain management solutions is designed to synchronize demand
opportunities with supply constraints and logistics operations. In
the context of information commerce, the value chain model is
facile for structuring the electronic advertisement transaction
processes of the present invention.
[0086] Turning to FIG. 3, there is a vertical value chain from the
advertiser 31 to an advertising agency 32 to an interactive
advertising agency 33 to an advertising network 34 to a virtual
matching center (not shown) to a content provider 35 to a visitor
36. In parallel there is a value chain having a distributor 37 at
the top and a communications node 38 below. In the context of the
understanding of the present invention, the distributor has
transaction interaction with the advertising network, and the
communications node has transaction interaction with the virtual
matching center (according to the preferred embodiment) or to the
content provider. Sometimes there is a media buyer 39 who can be
between 33 and 34; which may alternatively be included in other
segments of the vertical chain 31-33.
[0087] According to an embodiment of the present invention, the
visitor profile includes at least one item selected from: content's
categories of the content the visitor requested or is watching; key
words, which classify the content the visitor requested or is
watching; Time of day relative to server, Derivatives of the
visitor's IP address, e.g., Domain; Geographic location of the
visitor's ISP (Internet Service Provider) or OSP (On line Service
Provider), Geographic location of the visitor's company or
organization if connected through a permanent point to point
connection, Time of day relative to user as a derivative of his
geographic location, Internet Service Provider (ISP), On-line
Service Provider (OSP); Browser type; Operating system; or SIC
code.
[0088] For example, Geographic location of the visitor's ISP
(Internet Service Provider) or OSP (On line Service Provider) if
connected through dial modem or cable modem; or Geographic location
of the visitor's company or organization if connected through a
permanent point to point connection. In that case additional
information from some databases might be given on the visitor's
organization such as: company's revenues and number of
employees.
[0089] There are also the possibilities of enhancing the visitor
profile using databases connected to the system to provide
additional information about the visitor, which might be available.
This information is divided into non-volunteered information and
volunteered information.
[0090] Non-volunteered information is information about the
visitor's history in the site or other sites connected to the same
network or sites that are connected to the same global database.
Such history may include all the immediate information available on
the user at the time of these visits, products he was interested in
or bought, advertisements he clicked on.
[0091] Volunteered information is any information the visitor might
have given out of his own free-will, such as demographic (or
psycho-graphic) information, including: gender; age; annual
household income; number, gender, age and status of household
members; occupation; Hobbies and tendencies; or Name and
address.
[0092] According to the preferred embodiment of the present
invention, the node or the distributor or the intermediary is
audited. In the context of the present invention, "Auditing"
relates to: measurement of web traffic; analysis of online
advertisement campaign results; analysis of transaction data; or
analysis of customer profiles. Furthermore, auditing may include:
verification of any combination of the above; analysis of any
combination of the above; or analysis of any bills that are
derivatives of the above.
[0093] The analysis of the above is done in off line mode or real
time mode; and is made through the perspective of one of the
following: Site, advertisements distributor, online campaign
manager, or e-commerce merchant. Examples of companies that perform
some or all of the above are: I/PRO, MediaMetrix and
Andromedia.
[0094] According to the preferred embodiment of the present
invention, the broadcasting, contracting, or transferring is
encrypted.
[0095] According to the present invention, the advertisements are
selected from the list: banners, text, HTML page address pointers,
text, hypertext, audio content, visual content, or any combination
thereof. Equivalently, the advertisement may be of any kind and
size: static, animated, DHTML, multimedia--video and/or audio,
three dimensional, VRML, interstitial, interactive banner,
"transitional" interstitial (a multimedia advertisement in a pop up
window between page views), InfoAd, Active Ad, expanding banners,
nano site or mini site in a banner.
[0096] According to the preferred embodiment of the present
invention, the method further includes the construction of at least
one of the following: an e-mail list, or a database. Equivalently,
the construction is of at least one of the following: an e-mail
list, traffic analysis of the site which is enhanced by the
additional information about the visitors' profiles, databases of
potential customers to different products according to their
profiles.
[0097] According to one embodiment of the present invention, the
selecting (step "d") is of multiple responses.
[0098] According to one embodiment of the present invention, the
contracting (step "e") is with any responding distributor bidding
above a predetermined threshold price, and the threshold price is
not broadcast.
[0099] According to one embodiment of the present invention, the
visitor submits a self-disclosure profile to the node. According to
one embodiment of the present invention, the visitor profile is
constructed from header information in the visitor's transmission.
According to one embodiment of the present invention, a rate
structure for the contracting is determined according to a matching
between the visitor's profile and an advertisement specification in
the response.
[0100] According to one embodiment of the present invention, the
contracting includes at least one transaction segment describing
the visitor, describing the node, describing the advertisement, and
describing the distributor. For example, the at least one segment
includes a Boolean logic section, a rate structure logic,
disclosure information, or disclosure logic information.
[0101] According to one embodiment of the present invention, the
method further includes a follow-up visit by the visitor to an
address associated with the transacted advertisement. Furthermore,
the follow-up visit may be audited; the audit may include an item
selected from the list: a purchase by the visitor of a service or
commodity at a "site" specified in the transferred advertisement,
or pointed to therefrom. According to another enhanced variation of
the present invention, the node or his authorized agent receives a
payment resulting from the visitor's purchase at a site specified
in the transferred advertisement, or pointed to therefrom.
[0102] According to one embodiment of the present invention, the
method further includes an intermediary between the node having a
visitation and the at least one distributor, and the intermediary
is for effecting additions to the visitor profile constructed by
the node in step "a" or is for effecting any of steps "b" through
"f".
[0103] Both using and in the absence of the intermediary, according
to an enhanced embodiment of the present invention, the visitor
discloses his node-appropriate cookie and said cookie is analyzed
by the node, the intermediary, the distributor, or an address
associated with the transacted advertisement. Another enhanced
embodiment of the present invention may include: the visitor
specifies a self imposed censorship restriction in order to void
acceptance of certain classes of advertising, or in order to
designate a class of advertising preferences; or constructing a
visitor profile includes correlating known visitor identification
parameters with a database.
[0104] Further enhanced embodiments of the present invention
include: the logic protocol of the selecting is according to a
relational database query semantic; the visitor is associated with
a commercial enterprise, a search engine, an automaton, a corporate
person, or a human; effecting, contracting, or constructing
includes recording or storing advertisements transferred to the
visitor for intentional subsequent transfer to the same visitor or
for intentional avoidance of subsequent transfer to the same
visitor.
[0105] The present invention also relates to a device for
transacting an advertisement transfer, from an advertisement
distributor to a visitor, upon the occurrence of a visitor
visitation at a communications node, comprising a sequentially
linked series of modules: [0106] (One) a first module for
constructing a visitor profile; [0107] (Two) a second module for
broadcasting the profile to at least one distributor; [0108]
(Three) a third module for collecting responses from the at least
one distributor, [0109] (Four) a fourth module for selecting a
response from the at least one responding distributors; [0110]
(Five) a fifth module for contracting, between the node and the at
least one distributor of the selected response, a transference of
an advertisement from the distributor to the visitor, and [0111]
(Six) a sixth module for effecting a transfer of the advertisement
to the visitor.
[0112] According to the preferred embodiment, the modules are
distributed or fragmented between more than one computer processor
or network communications server or network communications
router.
[0113] According to the preferred embodiment, there is further
provided at least one memory media containing data collected or
data constructed in at least one of the modules.
[0114] According to the preferred embodiment, there is further
included a distributor response module for optimizing a selection
from a plurality of broadcast profiles.
[0115] Furthermore, according to the preferred embodiment, the
optimizing is according to a fixed budget, or according to an
advertisement campaign model, or according to subsequent
modifications thereto.
[0116] The preferred embodiment of the present invention may be
briefly described as allowing: [0117] The distributor can choose
the number of advertisement exposures for a visitor with a specific
profile. [0118] The system will make sure it will be done for any
one person with such a profile. [0119] There is no need to store or
record the advertisement since a distributor gives a price offer
for a specific profile and intends to show a specific advertisement
for that profile. After a given number of advertisement exposures
to a specific person, the distributor will no longer bid for that
person although suited for the required profile. [0120] The person
is identified by a cookie that differentiates two people with the
same profile but different number of exposures to the same ad.
[0121] A distributor is constantly updated in real time by the
node/nodes (node in the intermediary architecture and nodes in the
distributed architecture) that are members of its network, of the
winning bids for different profiles in the sites. [0122] The
distributor can choose to change its price offers for different
profiles in different sites in order to change its odds for
winning. [0123] The distributor can run an optimization program
that will change the price offers in real time. The optimization
factors are the campaign progression and the budget spending (in
general the factors are based on the advertising model). [0124] A
visitor can limit his profile by approaching the site he visits and
specifying restrictions to his profile, by his own choice or
demands. The visitor can point out whether he wants the
restrictions to be for the communication node use only or for the
intermediary or for the distributor or any combination thereof. If
the restrictions are for the intermediary or for the distributor
the communication node will point it out to the intermediary.
[0125] Furthermore, there is an opportunity to pay for the
visitor's name and address, without need to refer to this specific
since the name and address are among the volunteered information
and therefore a price can be set for them as for any other
component composing the profile. [0126] A real time updated bidding
system among unlimited number of Suppliers and Mediators\Buyers for
electronic or tangible assets\commodities (hereafter will be
referred as the `system`). [0127] The system makes the market for
those assets economically efficient as follows: [0128] Enabling
"Many-to-Many" business relations among all the participating
sites; [0129] Each Mediator\Buyer can compete for every asset
offered by a Supplier, [0130] Each Mediator\Buyer can update its
bid in real time according to information about the winning bids in
the system.
[0131] For example: A Mediator conveys to the system a bid of a
Buyer that includes a price list for the asset he is looking for
according to the potential characteristics of the asset. When a
Supplier has an asset or commodity to sell, he conveys its
characteristics to the system (hereafter we will refer to the
asset's characteristics as the asset's profile). The system
performs a semi-real time tender over the asset's profile between
the pre given bids (it is semi real time since the tender is
performed over already existing bids in the system). The highest
bidder is notified of his winning and the whereabouts of the asset.
The rest of the bidders and Mediators connected to the system are
notified of the asset's profile that just been sold and its winning
bidding price. The Mediators\Buyers, in return to the information
can update their bids in real time using manually intervention or
automatic optimization software.
[0132] Equivalently, the preferred embodiment of the present
invention may be briefly described as allowing Internet advertising
where the: [0133] Buyers are Advertisers or Advertising agencies or
media buyers (entities in the value chain may integrate forward or
backward); [0134] Mediators are advertisement Networks; (The
advertiser's may accordingly be further provided with ability to
enter a price limit for a desired profile in order to enhance his
winning probability or strategically there may be provided
facilities for expressing a priority given to bigger budgets in the
case of similar price offers.). [0135] Suppliers are Publishers or
Content Providers sites, or a server of an ISP, etc.; [0136] The
assets are Visitors' profiles of visitors to the Publishers' sites;
or even [0137] Commodities selling (electronic commodities or
tangible commodities).
[0138] Furthermore, implementations may include: a Central system
with a star configuration which connects all participating sites:
Suppliers; Mediators\Buyers; or a distributed system where the
tenders are taking place at the Suppliers locations according to
pre given bids by Mediators\Buyers.
A Description of Algorithmic Procedures Used to Implement the
Preferred Embodiment of the Method of the Present Invention
[0139] This description presents an efficient method of creating a
profile-matching tree. This matching tree is a memory-cached
structure used for efficiently matching an incoming user profile to
the highest bidder using an online tender or to a buyer who bought
such a profile in advance (referred as `Future Inventory Purchase`
or `FIP`). For example, an implementation of a real time tender
over a visitor's profile may be according to predefined price
offers (bids) which are supplied by advertisers through their
representatives. The system allows a price limit to be set (in
accordance with a fixed or a dynamic advertising budget), such that
the advertiser specifies a maximum price it is willing to pay to
the visitor's ad space owner. Likewise, in the event that two or
more distributors are equally well suited to convey the
advertisement, provision may be made to give preference to the
distributor having the largest campaign budget or turnover or the
like.
[0140] There are three stages in this process: [0141] Creating a
price offer (bid) by the advertiser. The price offer is represented
by a collection of attributes and attribute values. Each such
collection represents a number of profile combinations according to
the logic defined in this collection. Using a tree of attribute
values makes the process of defining the price offer very easy and
intuitive for the user. [0142] Building a matching tree in a batch
process. This matching tree contains all possible profiles for
which an advertiser is willing to pay. Every node in the to
matching tree contains a list of all relevant bids sorted in
descending order by their prices. [0143] In real time, for every
incoming visitor's profile, the highest bid for the visitor is
found by searching the matching tree. The highest bidder has the
right to present his advertisement to that visitor.
[0144] As part of the above described process of a real-time
matching between an incoming visitor's profile to a profile
required by an advertiser, the advertiser has the alternative of
buying in advance the visitor's profile he is looking for, without
participating in a tender.
Introduction
[0145] A software engine, according to the present invention,
supplies a method for efficient allocation of a visitor's
advertisement space according to its profile by conducting an
online tender among all advertisers that are connected to the
system via their representatives, the advertisement networks,
outsourcing services or privately owned advertisement management
software. Each advertiser presents a collection of advertisement
campaigns intended for the visitors. There are certain criteria for
each advertisement campaign that are based on the required
visitor's profile. These criteria determine which visitor will get
an advertisement of this campaign. For every advertisement
campaign, the advertiser's price offer includes a set of required
profiles that needs to be matched with any visitor's profile. The
advertiser places price tags and logic tags on every requested
characteristic, thus creating a combination of user profiles.
[0146] The collection of all price offers, sent or otherwise
established by the advertisers, creates a profile pool. For every
visitor which is directed to the system there is a three-stage
process: [0147] Finding the price offers that matches the incoming
visitor's profile. [0148] Of all matching price offers finding the
one with the highest price. [0149] Allocating the visitor's
advertisement space to the matched advertiser from those found
having the highest price.
[0150] As part of the above process, the method of the present
invention allows advertisers to receive required profiles without
participating in a tender. The advertiser purchases a future
inventory of visitors' profiles from sites using the method of the
present invention. In the "finding the one with the highest price"
stage, in front of the price offers participating in the tender, a
priority will be given to an advertiser who bought such a profile
in advance. If such a profile was bought in advance by an
advertiser, first, the visitor's advertisement space will be
allocated to him in the allocating stage.
[0151] The load is produced by the visitors' traffic to Internet
sites, thus creating a potentially enormous number of hits. The
matching process must take a minimal time to calculate (see use of
constraints and optimizations below).
[0152] In order to minimize the search, match and allocation time,
a matching tree is built, which serves as a structure for the
search and match operation. The tree is modified for every addition
or extraction of a price offer. Using matching tree, the operation
of finding the best match is merely a question of searching the
matching tree.
More specifically, the process will be described in the following
sections: [0153] Creating and spreading the price offer, [0154]
Constructing and managing a matching tree; [0155] Searching the
matching tree for the Profile; and [0156] Allocating the visitor's
advertisement space.
Nomenclature Examples
[0156] [0157] Price Offer/Bid--A collection of attributes or
attributes' values which form a combination of visitors' profiles:
[0158] Attribute--An attribute is used for describing a user
characteristic using a value from the attribute's set of values.
Each attribute has a tree of its own unique values. For example,
the Gender attribute has the values: such as Male, Female (one
level tree). The Location attribute has a tree of value, where
Europe can be a value in the tree, England and France can be sub
values of Europe (its children in the value tree), and London can
be a sub value of England. [0159] Attribute Order--All attributes
are organized in a predefined ordered vector. Each attribute has
its own unique order, which is determined by the position of the
attribute in the vector. The order is used for the process of
building and searching the matching tree. Any collection of
attributes is usually sorted according to their unique order.
[0160] Category Attribute--An attribute whose values can be
represented by a final set of known elements (e.g. Gender,
Location). [0161] Numeric Attribute--An attribute whose values can
be represented by two numbers which form a range (e.g. Age,
Income). [0162] Value--An element that is assigned to an
attribute's value tree. [0163] Logic tag--Any attribute or value
can have a logic tag that can be one of the following: [0164]
Must--The visitor must have the attribute or value. [0165] Must
not--The visitor must not have this value (for values only). [0166]
Note: Must "logic" cannot be set on multiple values that shares the
same attribute. [0167] Price--can be set for each value (that does
not have a "Must Not" tag). Values that have a price and do not
have any logic tags, are optional values that may or may not exist
in a matching profile (the value is not a requirement set by the
advertiser, but the advertiser is willing to pay more for a
visitor's profile that contains this value).
[0168] The price offer can have a maximum price that represents an
upper bound that the advertiser is willing to pay for any given
profile (note that a single price offer can over different prices
for different profiles according to the attributes in the incoming
profile). If the sum of prices for profile attributes results in a
price higher than the maximum price, then the price for this
combination of attribute values will be set to the maximum price.
[0169] Visitor's Profile--This is the collection of pairs
Attribute=Value for a current visitor. The Attributes in this
collection are sorted by the attribute's predefined order. This
collection represents the information known about the incoming
visitor. [0170] Matching Tree Branch--Each branch in the matching
tree represents a possible collection of values that were extracted
from price offer(s), and have a price in the system (zero can be
also a price for profiles which include a value with a Must Not
logic). This collection forms a possible visitor's profile. [0171]
Value trees and Inheritance--the values of an attribute are
presented and to managed as a hierarchical structure.
[0172] Descendant values inherit their ancestor's value (in the
hierarchical structure) price and logic tags. For example, the
Location attribute can have the values: Asia, Europe, Africa etc.
Each of these continents have descendants country values that
inherit the continents prices and logic tags and so on (states,
cities etc.). If an advertiser places a price Px on Europe, then
all the sub values of Europe will have the same price Px. If a
visitor's profile contains the location London, then the advertiser
will be willing to pay a Px price for this attribute. Similarly, a
Must tag set on the Sports value of the Content attribute
determines that the visitor has to have a content value that is
Sports or a descendant of Sports (Basketball will be accepted as
well).
Overview of the Price Offer Phase
[0173] Creating a price offer--The advertiser/media buyer/sales
person uses a GUI (graphical user interface) to enter a valid price
offer. There are two types of attributes allowed in the system.
[0174] Category attributes--The attribute is a category with
predefined values. The values are all named. For example: attribute
Gender with the values Male, Female.
[0175] Numeric Attributes--These are also category attributes with
predefined numeric ranges. For example, Income is such an
attribute, Age is another.
[0176] All attributes have predefined values. The values are
determined according to well known conventions that make it easier
to measure them. Also, all hierarchies are predefined and known in
advance. The advertiser may set the prices and logic tags for these
predefined attributes/values, and may not be able to define other
attributes of values.
[0177] The available attributes are presented in a tree-like view.
This means that there is a predefined hierarchy between the values.
The hierarchy is always defined for a specific attribute. For
example under the attribute Location we can define the following
values:
[0178] Turning to FIG. 4, a root node "location" 41 is divided into
continents 42, therein into countries 43, and therein into cities
44. All these values will be declared "under" the Location
attribute, as a hierarchy.
[0179] An important attribute, which has a complex value tree, is
the content attribute.
[0180] For every attribute and value, a logic tag can be
attached:
[0181] `Must`--This logic indicates that the attribute or value
must exist in the visitor's profile or else the visitor will be of
no interest to this price offer. If the `Must` is put on a value
(for example `Sports`) it means that the specific value must exist
in the visitor's profile, or a descendant value of this value (for
example, `Basketball`). If the `Must` is put on the attribute
itself then it means that "one" of the tagged values of this
attribute must appear in any visitor's profile. The tagged values
are any of the values which belong to the attribute and have a
price tag attached.
[0182] `Must Not`--The logic means that the "value" must not exist
in the incoming profile. This logic is only acceptable when put
over values and not attributes.
[0183] The user should provide a price tag for all values of
interest. It is important to note that if a value was set to
`Must`, a price tag on other values which belongs to the same
attribute can be placed only if these values are value-tree
descendants of the Must value.
[0184] The user can select the price offer to be valid in certain
sites, or exclude the offer from certain sites. In addition certain
sites can be attached with a special price tag which indicates that
the profile's price should be increased or decreased by a certain
percentage. Forcing or excluding sites is effected by adding the
specific site as an attribute with a Must/Must Not logic.
[0185] A maximum price can be set for the profile. In this case, no
matter how much was the total price of the attribute combination,
it will not exceed the maximum price.
[0186] The result is a collection of bids B1 . . . Bn, described as
following:
[0187] Every Bi has a collection of attributes with Must tags, and
a collection of values with price tags, Must tags, and Must Not
tags. Also, every Bi has a max price Max-Bi.
Spreading the Price Offer
[0188] This is the first phase in the construction of the search
tree. Each bid Bi, is spread into a collection of "profiles" that
match the bid. These "profiles" are actually a series of attribute
values that form a branch in the matching tree. The visitor's
profile itself may contain other attributes' values that are of no
interest to this bid, but may still match the bid. The bid
spreading is done in the following way: [0189] Create a Vector "A"
of Bid Attributes that is sorted by an attribute predefined order
(the "unique" order described above). A Bid Attribute holds an
attribute, an optional Must tag, and a vector of values. Bid
Attributes in vector "A" are built for each one of the attributes
with a Must tag in the bid, and for any additional attributes whose
values appear in the bid Bi with price tags, Must tags or Must Not
tags. This results in a vector of bid attributes Al . . . Am.
[0190] For each bid attribute Aj (1<=j<==m) create a vector
of values. Each Aj will include all the values in the bid Bi that
correspond to the attribute Aj. Note that every attribute must have
at least one value that corresponds to it. [0191] Attach Must tag
to each bid attribute Aj if the corresponding attribute was marked
with Must tag in the bid, or if one of its values was marked with
Must tag (there can be only one Must value to that bid
attribute).
[0192] FIG. 5 is a diagram of bid attributes, where each bid
attribute 51 (e.g. A.sub.1, A.sub.j, . . . A.sub.m) holds its
corresponding attribute, an optional Must tag, and a vector of
values, e.g. 52, 53, 54.
[0193] This structure is used in order to create all combinations
of attribute values that actually, define the profiles.
[0194] To construct all the profile combinations follow these two
steps:
[0195] Step one: find which bid attributes will be part of the next
attribute combination. This is done in the following way:
[0196] Suppose there are p free (non Must) bid attributes in the
vector "A"; Then the total number of subsets of these free
attributes (sorted in their predefined order) is 2.sup.P. [0197]
Run a counter from 0 to 2.sup.P-1. We will use the binary
representation of this counter to determine which bid attributes
will take part in the next attribute combination. For each
iteration of the counter, select the bid attributes that will take
part in the next combination vector in the following way:
[0198] For each attribute Aj in the vector "A":
[0199] If Aj has a Must tag, select it to the next combination.
[0200] Otherwise, Aj is a free bid attribute. Let k be its index
among the free bid attributes (0<=k<p). Select the attribute
Aj if and only if the k-bit in the binary representation of the
counter is set to 1.
[0201] Note that each attribute combination contains all the bid
attributes that were marked with Must tag, and a subset of "free"
attributes that were selected according to the binary
representation of the counter.
[0202] Step two: For each attribute combination that was selected
in step one, generate all the profile combinations of the selected
attributes (each profile is represented by a vector of values).
[0203] It should be recalled that every bid attribute holds a
vector of values that correspond to their attribute. If a value V
has a Must tag in the bid, its bid attribute Aj will also be marked
with a Must tag, and V will be its only must value in the values
vector. If an attribute Aj was marked with a Must tag in the bid,
it will be marked with a Must tag in its bid attribute, and it may
hold several values, none of them are Must values.
[0204] Each profile combination contains one value from each
attribute that was selected (and always one value of any Must
attribute).
[0205] This is done by cycling between the values of each selected
bid attribute (note that for a Must value V, its bid attribute is
also marked as Must in the vector A. If there are additional values
to the same attribute, then V will not take part in all the
combinations).
[0206] The cycling is done using a NextValueIndex for each bid
attribute, that points to the next value of the bid attribute that
will be selected for the next profile combination (all indexes are
initialized to 0--the index of the first value).
[0207] Increasing the NextValueIndex will set the index to point to
the next value in the bid attribute. If the NextValueIndex is set
to the last value, increasing it will set the index to the first
value and a cycle is completed.
[0208] To generate all profile combinations for the selected bid
attributes, perform the following steps for each selected bid
attribute until the last bid attribute (of the selected bid
attributes) has finished a cycle (then select a new attribute
combinations):
[0209] Creating a Single Profile Combination:
[0210] For each selected bid attribute in the current attribute
combination:
[0211] Add the next value that the attribute's NextValueIndex
points to for the next profile combination.
[0212] If the previous bid attribute completed a cycle, or this is
the first bid attribute in the selected attribute combination, move
the NextValueIndex to the next value.
[0213] If the last attribute in the attribute combination completed
a cycle then return to step one--and choose another attribute
combination (subset of attributes).
[0214] Determining the Price of Each Profile Combination:
[0215] A given bid is spread into a large number of profile
combinations. Each of these combinations may have a different
price. The price of a profile combination is the sum of prices for
all the values in the combination. The sum of prices of values with
Must tags is a fixed price for every combination and can be
referred to as a base price of the bid.
[0216] The base price of a bid is the price that the advertiser is
willing to pay for every visitor whose profile has all the required
values of the bid (the Must values of the bid). Any additional
(optional) values in a combination can increase the price for a
specific profile.
[0217] If a bid has a Must value and additional values of the same
attribute (any such additional values must be a value-tree
descendant of the Must value), then some combinations may not
contain the Must value itself, but rather its descendant value
instead. Nevertheless, the base price will include the Must value,
even if it is not in the combination. For example, if a bid offers
3 for `Sports` with a Must tag, and 2 for `Basketball` as optional
(both of the `Content` attribute), then some combinations will
include `Sports` with a price of 3 and others will include
`Basketball` with a price of 5 .
[0218] In addition, every bid can have a maximum price for which
any profile combination may not exceed. If the price for a profile
combination exceeds the maximal price, then the price will be set
to the maximal price.
[0219] While creating the combination of values, if one of the
values in the combination is a Must Not value, then the price Px
will be set to 0, and no other values will be entered to the
combination after the Must Not value.
[0220] If one of the attributes is the Site attribute, the price
may vary according to the site by a predefined factor q (Site is a
special attribute): Px=(1+q)Px. The factor q can be negative,
meaning that for this site the advertiser is willing to pay
less!
[0221] The result of the spreading phase is a collection of profile
combination vectors, with a price for each profile combination.
[0222] It should be noted that dealing this way with the Must Not
values may result in some identical vectors. These vectors will be
overwritten while inserting them into the matching tree.
[0223] Each combination that was created is actually a branch in
the Matching Tree, which corresponds to the bid Bi. The process
should be repeated for every bid.
[0224] Here is a simple example of spreading a bid:
[0225] Suppose a bid contains the following:
TABLE-US-00001 Male-Must-3 Age (18-35)-5 Location-Must. England-5
France-3 Basketball-1 Football-2 Tennis-3
[0226] The vector "A" of bid attributes will contain the
following:
TABLE-US-00002 Gender (Must) Age Location(Must) Content Male (Must,
3 ) 18-35 (5 ) England(5 ) Basketball (1 ) France (3 ) Football (2
) Tennis (3 )
[0227] The attribute combinations will be: [0228] (Gender,
Location); or (Gender, Age, Location); or (Gender, Location,
Content); or (Gender, Age, Location, Content).
[0229] (Note that there are total of 4 attribute combinations: 2
brought to the power of the number of "free" attributes).
[0230] Now, for each of the attribute combination, we need to
generate all the combinations of values (which make a "profile
combination").
[0231] In this example we will do so only with the (Gender,
Location, Content) combination.
[0232] The values for this attribute combination are:
[0233] Male, England, Basketball (9 )
[0234] Male, France, Basketball (7 )
[0235] Male, England, Football (10 )
[0236] Male, France, Football (8 )
[0237] Male, England, Tennis (11 )
[0238] Male, France, Tennis (9 )
[0239] Constructing and Managing the Matching Tree
[0240] Adding a New Bid
Adding a new bid to the matching tree is a process that is done by:
[0241] creating a branch for each one of the bid's profile
combinations, and [0242] adding the bid's number and the
combination's price to a list that is sorted in descending order by
price, and resides at the last node of the branch. [0243] (a branch
may already exist for a given combination, in this case follow the
branch to the combination's last value, and insert the bid's code
and the combination's price in the last node that was reached).
[0244] While inserting the bid's combination, the bid may be
inserted into other branches as well, and sub tree may be copied
under newly created nodes. In addition, each bid keeps a list
called Bid's Nodes that contains all the nodes that the bid resides
in, and used for fast removal of bids from the tree.
[0245] The process of adding a new bid to the tree starts by
spreading the bid into a set of profile combinations. Each profile
combination is then inserted into the tree, by reading all its
values (in a predefined order) while moving down the tree and
performing several operations on the tree.
[0246] The following description uses current node and current
value to define the current state of the insertion process. For
each profile combination, the process of insertion starts with the
tree root as the current node and the first value of the profile
combination as the current value. When adding the current value
(e.g. England) as a child to the current node, check if other
children of the current node are "value tree ancestors" of the
current value (e.g. Europe), or "value tree descendants" of the
current value (e.g. London). Also check the predefined attribute
order of all the other children (in comparison with the order of
the current value) and update the matching tree accordingly.
[0247] Here is a schematic description of the process:
[0248] 1. For each of the bid's profile combination:
[0249] 1.2. Current node=matching tree root.
[0250] 1.3. For each value in the combination vector sorted by the
predefined order of the value's attribute (referred to as Current
Value):
[0251] 1.3.1 If current node has a child that equals the profile's
current value, then set next child to this child. Go to 1.3.3.
[0252] 1.3.2 Else (No child equals the current value):
[0253] Create a new child with the current value, to the current
node. And mark it as the next child.
[0254] Climb the value-tree of the current value, find the first
value of the value's ancestors (by order of climbing) that matches
one of the current node's children. If such value exists, then copy
the matching child's sub tree under the newly created child.
[0255] 1.33. For each of the current node's children:
[0256] If the child is a descendant in the value tree of the
current value, then recursively enter the rest of the profile's
values (the profile's tail without the current value) to this
child.
[0257] If the child's predefined attribute order (unique
order--discussed above) is greater than the current value order,
and the current node is a newly created node with no children, then
copy the sub tree of the child (including the child itself) under
the newly created node.
[0258] If the child's predefined attribute order is smaller than
the order of the current value, then recursively enter the
profile's tail (including the current value) to this child.
[0259] Set the current node to the next child.
[0260] Continue to the next value (1.3).
[0261] 1.4. After all the profiles' values were entered into the
matching tree, the bid and the price of the profile combination
will be inserted into the Matching Bids list that resides in the
current node or into the Future Inventory Purchase list that also
resides in the current node (in case the bid is marked as a future
inventory purchase). If the bid is already in the list with a lower
price than the new combination's price, remove the old bid from the
list. If the bid is not in the list, insert the bid with its new
price into the list, keeping the list sorted in descending order by
price.
[0262] Add the current node to the Bid's Nodes list. While adding a
bid into the Matching Bids list or into the Future Inventory
Purchase list, make sure that all the descendant nodes of the
current node also hold the bid.
[0263] Constructing the Matching Tree
[0264] For each one of the existing bids, use the "Adding a New
Bid" logic, as described above.
[0265] Removing a Bid
[0266] For each node in the Bid's Nodes list, remove the bid from
the node and recursively remove the bid from all its
descendants.
[0267] All nodes that have no more bids after the bid was removed
from them, and have no children, will be removed from the tree.
[0268] Branches that were created by a bid, and hold other bids as
a result of recursive insertion and sub tree coping, will also be
removed from the tree if no other bids specifically referred to
these branches.
[0269] Updating a Bid
[0270] To update bid B1 with bid B2, first apply "Removing a Bid"
logic (above) and remove B1 from the Matching Tree. Then apply
"Adding a new Bid" logic (above) to add the bid B2.
Searching the Tree and allocating The Visitor's Advertisement
Space
[0271] When a visitor requests an advertisement from the system,
his profile is built. This results in a list of attributes and
their values. The profile is sorted according to the attribute's
order.
[0272] Searching the tree is done in the following way:
[0273] 1. Current node=matching tree root.
[0274] 2. For each of the values in the visitor's profile, sorted
by the attribute's order (referred as current value):
[0275] 2.1. If the current node has a child that matches the
current value:
Set the current node to this child.
[0276] Continue to the next value (step 2).
[0277] 2.2 Else, Climb the value-tree of the current value, find
the first value of the value's ancestors (by order of climbing)
that matches one of the current node's children. If such child was
found:
[0278] Set the current node to this child.
[0279] Continue to the next value (step 2).
[0280] 2.3 If such child wasn't found, continue to the next value
(step 2)
[0281] The search ends in a matching tree node, after all values in
the profile were checked.
[0282] This node holds a list of matching bids and their prices,
sorted in descending order by their prices, and a list of future
inventory purchases.
[0283] If there are any future inventory purchases, select the
first one and allocate the advertiser who bought that profile in
advance, the advertisement space that will be represented to the
visitor with that profile.
[0284] Otherwise, scan the matching bids list by price (in
descending order) and check other to constraints for finding the
best bids (e.g. check that the bid has not expired, or check if the
industry of the advertiser is not rejected by the site, etc.).
Then, allocate the advertisement space that will be represented to
the visitor with the given profile to the highest bidder that
answers to the additional constraints.
[0285] Note that this algorithm enables matching a profile with a
set of given bids in an almost fixed time (the search complexity
does not depend on the number of bids that resides in the tree, but
rather on the length of the user's profile).
[0286] An Example is presented against the background structure
presented in FIG. 6. The tree represents a new bid wherein a root
61 has primary category branches 62 each of which bifurcates into
sub-categories 63. A sample data set (see FIG. 7) is shown 70,
listing a plurality of bids, following the organization presented
in FIG. 6. The first phase is to spread the bid into possible
profile combinations. The only Must attribute is at the content
level. FIG. 8 shows some of the branches that are created or
inhabited by the above bid. However the organization of this tree
is different than that given in FIG. 6, since the matching tree
simultaneously addresses data organization for numerous specific
price offer combinations. This is only a partial set of the bid's
branches, and a small part of the entire matching tree that may
hold a large number of bids (of course, many of the branches may
inhabit several bids).
[0287] Searching the Tree and Allocating the visitor's
advertisement space [0288] assume the incoming visitor has the
following profile: content="Basketball", Gender="Female",
Income="$50-70 k", Age="30-40", Location="California"; [0289] The
above profile is sorted according to the predefined attribute's
order. Content, Gender, Income, Age, Location [0290] The search
starts with the content at the matching tree's root 81. There is no
child for the "Basketball" category. Therefore look for the first
value-tree ancestor of this category, which is "Sport" 82. [0291]
In the "Sport" sub tree, start searching for the child "Female" 83.
This child exists, so continue the search in the child's sub tree.
[0292] Next is "$50-70k". There is no Income attribute as a child
of this sub tree. This value also does not have any value-tree
ancestor that exists as a child in this sub tree, therefore
continue to the next attribute. [0293] Next is "Age 30-40" 84 which
exists as a child. Continue to it's sub tree. [0294] Next is
"California" which doesn't exist as a child. "California" has a
value-tree ancestor that is "USA" 85. Therefore find the child
"USA". [0295] This is the last value of this profile. In the last
node find a list of all matching bids sorted by their price. The
new bid also resides in this list with the price "17" 86. Select
the highest bid under the given constraints, and allow this bidder
to show its advertisement to the visitor.
[0296] Those versed in the art will realize that the above detailed
description of a preferred embodiment relates to an implementation
on computers of a type which are today normally connected to the
Internet. Should a computer of a higher order computational
capacity be used, then the present invention would preferably be
implemented in a higher order Boyce-Codd normal form than that
which has been described. While transforming data representations
from lower to higher normal forms is conceptually straightforward,
actual implementation should use a data base relational package
which has been programmed to optimize the relevant data
relationships.
[0297] Furthermore, as in all relational data constructions, large
user population subscription may weaken implementation response
times by causing underlying NP-complete like characteristics of the
data transactions to effect the entire system. Therefore, even if
the present invention is implemented on higher order computational
equipment, it is advisable to maintain strict algebraic or
combinatorial limits on the processing or on the equivalent data
structure attributes (of the profile or the responses) used in the
"selecting" of a response from the at least one responding
distributors.
[0298] The algorithmic implementation strategy presented above
supplies a matching of a given profile in a `fixed` time (linear
computation approximated time), thus making it an "optimal-type"
algorithm in terms of response time. However, the algorithm
implementation faces a scaling problem in terms of the tree size
and its building time. The tree size (and its building time) may
grow by up to exponential-time ratios with respect to the number of
bids.
[0299] The scaling problem can be reduced and managed using
different constraints and optimizations. One constraint, that can
be used, is to reduce the number of attributes and values, thus
significantly reducing the size of the tree and the time expended
in building it.
[0300] Some optimizations can be used as well. One approach is to
reduce the size of the tree at the expense of the matching
time--between profiles and bids. This can be done, for example, by
splitting the matching process itself from a single search to a
parallel searches executing on multiple branches, thus eliminating
the need for bids to reside in multiple branches.
[0301] Additional optimization can be gained by altering the
structure of the tree. For example, building a tree which holds all
values of the same attribute in the same level, and using a special
value in each level for all the bids that did not use that
attribute. These bids will reside in the sub-tree under the special
value of the unused attribute. The special value "optimization
strategy" reduces the number of searches required to complete a
match--by preventing searches for attributes that were not bid
for.
[0302] Another optimization can be applied by taking advantage of
the nature of the attributes. For example, if there are attributes
that are known to appear in every profile, branches that do not
hold all those attributes will not be created.
[0303] Turning to FIG. 9, in a data-communications topology 90
having a predetermined protocol (e.g. interne), an advertisement
transfer transaction is facilitated between an advertisement
distributor 91, a visitor 92, and a communications node 93 where
the visitor is visiting (in interactive data-communications). The
communications node may further negotiate its processing tasks with
other nodes (e.g. 94) and may use a memory media 95 (e.g. for
enhancing a profile) such as a global profile database. These nodes
(e.g. 91, 92, 93) when transacting the method of the present
invention together comprise a distributed system, wherein the
communications node is a critical device in the transacting.
However the processing tasks (according to another variation of the
device of the present invention) are distributed between 91 and
93.
[0304] FIG. 10 illustrates a schematic drawing of a device 100 for
transacting an advertising transfer, from an advertisement
distributor to a visitor, upon the occurrence of a visitor
visitation at a communications node, comprising a sequentially
linked series of modules: [0305] a first module 101 for
constructing a visitor profile; [0306] a second module 102 for
broadcasting the profile to at least one distributor; [0307] a
third module 103 for collecting responses from the at least one
distributor; [0308] a fourth module 104 for selecting a response
from the at least one responding distributors; [0309] a fifth
module 105 for contracting, between the node and the at least one
distributor of the selected response, a transference of an
advertisement from the distributor to the visitor; and [0310] a
sixth module 106 for effecting a transfer of the advertisement to
the visitor. [0311] According to the preferred embodiment of the
device of the present invention, there is further provided at least
one memory media 110 containing data collected or data constructed
in at least one of the modules. [0312] According to the preferred
embodiment of the device of the present invention, there is further
provided a distributor response module 120 for optimizing a
selection from a plurality of broadcast profiles. [0313]
Furthermore, according to the preferred embodiment of the device of
the present invention, the optimizing is according to a fixed
budget, or according to an advertisement campaign model, or
according to subsequent modifications thereto.
[0314] Those versed in the art will appreciate that there are many
other ways of embodying the method and device of the present
invention without departing from its spirit or scope.
[0315] For example, it will be understood that the system according
to the invention may be a suitably programmed computer. Likewise,
the invention contemplates a computer program being readable by a
computer for executing the method of the invention. The invention
further contemplates a machine-readable memory tangibly embodying a
program of instructions executable by the machine for executing the
method of the invention. In particular, in the case where an
intermediary is employed, this may be a suitably programmed
computer for allowing selection of an advertisement distributor in
accordance with the invention. It is further to be noted that the
actual transfer of the advertisement may be effected either via the
intermediary or directly by the selected distributor or via any
other web server, and is not itself an integrally requisite feature
of the invention.
* * * * *