U.S. patent application number 11/757334 was filed with the patent office on 2007-09-13 for delivery of internet ads.
Invention is credited to Bruce M. Martin, Michael A. Schoen.
Application Number | 20070214050 11/757334 |
Document ID | / |
Family ID | 37900482 |
Filed Date | 2007-09-13 |
United States Patent
Application |
20070214050 |
Kind Code |
A1 |
Schoen; Michael A. ; et
al. |
September 13, 2007 |
DELIVERY OF INTERNET ADS
Abstract
Delivering advertisements via the Internet may include
extracting an index file, including a bid price, and a table of
contents pointing to a start location of the keyword in the index
file. Keywords in the query string may be matched to advertisements
by searching the table of contents to locate the start location of
that keyword in the index and matching that keyword to index file
entries until a next indexed keyword is encountered. Advertisements
may be matched based on an estimated yield and priced a price lower
than the bid price that retains the ranking. A search result set
including a link to the highest ranked advertisements may be used
to respond to the query string. Each entry in the index file may
include a set of preselected keywords, a text copy of the
advertisement, a negative keyword to prevent a matching and/or
click through rates.
Inventors: |
Schoen; Michael A.;
(Tiburon, CA) ; Martin; Bruce M.; (San Mateo,
CA) |
Correspondence
Address: |
IRELL & MANELLA LLP
1800 AVENUE OF THE STARS
SUITE 900
LOS ANGELES
CA
90067
US
|
Family ID: |
37900482 |
Appl. No.: |
11/757334 |
Filed: |
June 1, 2007 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11535914 |
Sep 27, 2006 |
|
|
|
11757334 |
Jun 1, 2007 |
|
|
|
60721311 |
Sep 27, 2005 |
|
|
|
60723812 |
Oct 5, 2005 |
|
|
|
Current U.S.
Class: |
705/14.54 ;
705/14.73 |
Current CPC
Class: |
G06Q 30/02 20130101;
G06Q 30/0277 20130101; G06Q 30/06 20130101; G06Q 30/0256 20130101;
G06F 16/951 20190101 |
Class at
Publication: |
705/014 |
International
Class: |
G06Q 30/00 20060101
G06Q030/00 |
Claims
1. A method for delivering advertisements via the Internet,
comprising: (a) extracting, from a database of advertisements, an
index file alphabetized by keyword, each entry in the index file
including a bid price for placement of the related advertisement;
(b) extracting a table of contents of the index file, each entry in
the table of contents for a keyword pointing to a start location of
a first entry related to that keyword in the index file; (c)
matching a keyword in a query string to advertisements in the
database by searching the table of contents to locate the start
location of that keyword in the index and matching that keyword to
index file entries until a next indexed keyword is encountered; (d)
ranking advertisements matching the keyword at least in part on an
estimated yield for each such advertisement; (e) pricing the
highest ranked advertisement at a price lower than the bid price
for that advertisement that retains the ranking for that
advertisement for that keyword; and (f) responding to the query
string with a search result which contains a link to the highest
ranked advertisement for the keyword.
2. The method of 1 wherein each entry in the index file includes
selected text related to the advertisement and matching further
comprises: (g) matching at least a portion of a multiple keyword
phrase in the query string to the selected text.
3. The method of claim 1 wherein each entry in the index file
includes selected text related to the advertisement and matching
further comprises: (h) matching a keyword in the query string to
the selected text.
4. The method of claim 1 wherein each entry in the index file
includes selected text associated with the advertisement and a
selected type of matching algorithm, and matching further
comprises: (i) matching a keyword in the query string to the
selected text if a first type of matching algorithm is selected;
and (j) matching at least a portion of a multiword keyword phrase
in the query string to the selected text if a second, broader type
of matching algorithm is selected.
5. The method of claim 1 wherein each entry in the index file may
include one or more negative keywords and matching further
comprises: (k) matching any of the one or more negative keywords if
present in the index file entry with another keyword in the query
string to prevent a match of the keyword in that query string with
that index file entry.
6. The method of claim 1 wherein each entry in the index file
includes click through rate data for each advertisement and ranking
further comprises: (l) determining a product of the bid price and
click through rate data for each matching entry; and (m)
determining the estimated yield as a product of the bid price and
the click through rate data for each such matching entry.
7. The method of claim 1 wherein the search result set includes:
(n) links to a plurality of the other ranked advertisements for the
keyword.
8. The method of claim 1 wherein each entry in the index file
includes a URL linking to the advertisement and including a link to
the highest ranked advertisement further comprises: (o) including
the URL in the index file entry to the highest ranked
advertisement.
9. The method of claim 1 further comprising: (p) filtering the
search result set to remove links to entries based on the URL.
10. The method of claim 1 further comprising: (q) filtering the
search result set to remove links to entries based on a domain
associated with the query string.
11. The method of claim 1 further comprising: (r) filtering the
search result set to remove links to entries having click through
rates below a predetermined minimum before responding.
12. The method of claim 1 further comprising: (s) filtering the
search result set to remove links to entries having bid prices
below a predetermined minimum before responding.
13. The method of claim 1 further comprising: (t) rebuilding the
index and table of content files on a daily basis during time
periods of relatively low usage.
14. The method of claim 13 further comprising: (u) updating the
index and table of content files more frequently than rebuilding
the index and table of content files.
15. The method of claim 14 wherein updating further comprises: (v)
incrementally updating the index and table of content files by
adding data to the index and table of contents and marking entries
in the table of content files for deletion.
16. The method of claim 15 further comprising: (w) storing the
table of contents in RAM memory.
17. The method of claim 1 further comprising: (x) storing the table
of contents in RAM memory.
18. The method of claim 1 further comprising: (y) maintaining a
database of advertisements and click through rates, for each
advertisement in the database, from which the index file and table
of contents may be extracted.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 11/535,914 filed Sep. 27, 2006 which claims
the benefit of U.S. provisional application Ser. No. 60/723,812
filed Oct. 5, 2005 and Ser. No. 60/721,311 filed Sep. 27, 2005.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] This invention is related to ad delivery systems for placing
Internet advertising in response to queries from search engine
sites.
[0004] 2. Description of the Prior Art
[0005] Conventional ad delivery systems have had problems, for
example, with slow response, pricing which discouraged higher bids
and limited matching. What is needed is an improved ad delivery
system which avoids or reduces the problems inherent in known
systems.
SUMMARY OF THE DISCLOSURE
[0006] In a first aspect, a method for delivering advertisements
via the Internet may include extracting, from a database of
advertisements, an index file alphabetized by keyword, each entry
in the index file including a bid price for placement of the
related advertisement, extracting a table of contents of the index
file, each entry in the table of contents for a keyword pointing to
a start location of a first entry related to that keyword in the
index file, matching a keyword in a query string to advertisements
in the database by searching the table of contents to locate the
start location of that keyword in the index and matching that
keyword to index file entries until a next indexed keyword is
encountered, ranking advertisements matching the keyword at least
in part on an estimated yield for each such advertisement, pricing
the highest ranked advertisement at a price lower than the bid
price for that advertisement that retains the ranking for that
advertisement for that keyword and responding to the query string
with a search result set including a link to the highest ranked
advertisement for the keyword.
[0007] Each entry in the index file may include selected text
related to the advertisement. Matching may include matching at
least a portion of a multiple keyword phrase in the query string to
the selected text and/or matching a keyword in the query string to
the selected text. Each entry may also include a selected type of
matching algorithm and matching may include matching a keyword in
the query string to the selected text if a first type of matching
algorithm is selected and/or matching at least a portion of a
multiword keyword phrase in the query string to the selected text
if a second, broader type of matching algorithm is selected. Each
entry in the index file may also include one or more negative
keywords. Matching may include matching any of the one or more
negative keywords if present in the index file entry with another
keyword in the query string to prevent a match of the keyword in
that query string with that index file entry. Each entry in the
index file may also include click through rate data for each
advertisement. Ranking may include determining a product of the bid
price and click through rate data for each matching entry and
determining the estimated yield as a product of the bid price and
the click through rate data for each such matching entry.
[0008] Further, the search result set may include links to a
plurality of other ranked advertisements for the keyword. Each
entry in the index file may include a URL linking to the
advertisement used a link in the result set to that advertisement.
The search result set may be filtered to remove links to entries,
based on the URL and/or based on a domain associated with the query
string and/or to links to entries having bid prices and/or click
through rates below predetermined minimums, before responding.
[0009] Further, the index and table of content files may be rebuilt
on a daily basis during time periods of relatively low usage and/or
may be updated more frequently than the index and table of content
files are rebuilt. The index and table of content files may be
incrementally updated by adding data to the index and table of
contents and marking entries in the TOC for deletion. The table of
contents may be stored in RAM. A database of advertisements and
click through rates, for each advertisement in the database, may be
maintained from which the index file and table of contents may be
extracted.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] FIG. 1 is a block diagram overview of an advertisement
delivery system.
[0011] FIG. 2 is a block diagram of an alternate, more detailed
embodiment of an ad delivery system.
[0012] FIG. 3 is a flow chart of a normalizing engine.
DETAILED DISCLOSURE OF THE PREFERRED EMBODIMENT(S)
[0013] An ad delivery system may include a database of ads and an
ad delivery engine which may include an extraction engine to
extract the ads into an index data file, and a table of contents or
TOC, may match the ads to a query string from a search engine site
using different matching criteria while excluding some otherwise
matching ads, may rank the matched ads based on a potential yield
such as maximum bid or cost per click, adjusted for example by an
actual or observed click-thru rate, may price the ads on a
different basis than ranking, for example, by discounting the
ranking basis to the minimum price which preserves the ranking,
and/or may filter the ads based on predetermined criteria.
[0014] The extraction engine may provide a full rebuild of the
index, and TOC, on a periodic basis such as once per day, while
providing an update, by indexing only data new since the last full
rebuild, on a more frequent basis. The TOC may be saved in a
relatively fast memory, such as RAM memory, while the index because
of its size may be saved in a relatively slower memory such as on
disk. The TOC, which is alphabetized in accordance with keywords,
may contain a pointer to the location of the first byte related to
each set of alphabetized keywords, to reduce the time required to
search through the entries in the index for each group of keyword
entries. The terms "keyword" or "keywords" are used herein to
denote both one or more individual keywords, one or more key
phrases, or groups of words, and combinations of one or more
keywords with one or more key phrases.
[0015] Referring now to FIG. 1, system 10 for high-performance
delivery of Internet advertisements is disclosed which may include
an incrementally updated engine 12 for extracting, indexing,
matching, ranking, pricing, and filtering advertisements. Engine 12
may operate by extracting advertisements from ad database 14 and
building an index and/or a table of contents (or TOC) for the
index. This index can be periodically rebuilt, and may also be
incrementally updated between rebuilds. A TOC for the index may
also be rebuilt each time and includes a pointer to the location in
the index. The index is preferably alphabetized based on keywords
so that all ads related to a specific keyword may be found
beginning at a particular start location in the index. The TOC, if
built, would then also be alphabetized by keyword and provide the
start location in the index for all entries associated with a
particular keyword or key phrase.
[0016] While in operation, query handler 16 receives a query from
an Internet website such as Partner Site 16 and returns a list of
advertisements. The query is keyword matched to advertisements by
one of multiple selected matching algorithms. Matching
advertisements may then be rank ordered by yield, e.g. financial
yield. Prices may then be set for placement of each matching
advertisement. Some advertisements may be filtered out of the
result set. Ultimately, Delivery engine 12 returns a result set or
list for the query, each entry of which may include a) creative
material such as the content of the ad, b) price information, and
c) one or more URL (or uniform resource locators) for each
advertisement.
[0017] The operation of delivery engine 12 can be subdivided into
five elements: (1) indexing, (2) matching, (3) ranking, (4)
pricing, and (5) filtering.
[0018] Delivery engine 12 makes use of a technique called
normalization. A text sample has been normalized if it has been
stemmed, stopped, and sorted. Stemming refers to reducing the word
or phrase to its stem (thus plurals become singular, for example).
"Stop" words (i.e., words that have been identified to be
detrimental to relevance because they are grammatical indicators or
otherwise excessively common or inappropriate) are then removed.
Finally, multiple word and phrase elements are sorted
alphabetically. [0019] (1) Indexing. In order to build its index,
delivery engine 12 may take a complete extract of advertisements
from advertisement database 14, which preferably may be a
relational database. The extract preferably includes entries for
ads in the form of creative material, advertiser web site URL, one
or more keywords, MaxCPC, observed click-through rate, choice of
matching algorithm, and one or more of various advertisement
options. MaxCPC may be the maximum cost-per-click price that the
advertiser is willing to pay for each placement of the ad.
Advertisement database 14 may have been populated through some
source of advertisements, such as ad purchasing system 20, in which
potential advertisers may purchase advertisements, that is,
purchase placement of their advertisements.
[0020] Delivery engine 12 reads advertisement data extracted from
database 14 and saves it in an ad data file or index. It may also
save several fields of each record in the extract to a TOC (table
of contents) file. These fields may include each keyword, the byte
location of the start of its record in the ad data or index file,
pricing fields, and filtering fields. Incremental updates may occur
on a periodic batch basis; inserts, updates and deletes may be
processed by adding new data to the ad data file (e.g. inserts and
updates) and by marking items in the TOC File (e.g. deletes).
[0021] (2) Matching. Delivery engine 12 can match queries from
query handler 16 to advertisements using one or more matching
algorithms such as the SmartMatch or BroadMatch algorithm described
below. A query consists of a query string of one or more words, as
well as flags indicating the source of the query, such as partner
site 18. Partner site 18 may have a distribution arrangement with
the proprietor of delivery engine 12 and may receive search
requests from its clients which it forwards to sources of search
results such as delivery engine 12. The query string may also
include other details of the original request made to partner site
18. Delivery engine 12 constructs a result set of matching
advertisements, and or other query results, which are then provided
to Query Handler 16 for use by partner site 18 in responding to
search requests made to site 18 by its clients. [0022] a. A
so-called SmartMatch algorithm may be applied to keywords that have
been normalized at purchase time, that is, when the advertising
placement was purchased through ad purchasing system 20. At query
time, that is when a query is processed by query handler 16, the
query may be normalized using identical rules to the rules used at
purchase time. Exact matches between query and keywords are
considered positive matches by the SmartMatch algorithm. In other
words, an ad purchaser may be able to select the words in a query
which cause the ad to be selected or matched. [0023] b. A so-called
BroadMatch algorithm matches for all keywords associated with the
ad that are contained within the query. Thus, an advertisement
associated with keyword "red bull" would be a positive match using
the BroadMatch algorithm with a query of "red bull drink".
Advertisers may also specify negative keywords when using the
BroadMatch option. "Negative keywords" are text strings which cause
the match to fail when they are found in the query string, even if
there is otherwise a match. Thus, an advertisement associated with
keyword "red bull" could specify "soda" as a negative keyword so
that the BroadMatch algorithm would not indicate a match with a
query which included the phrase "red bull soda". Matches are found
by extracting known phrases from the normalized query. Each known
phrase may be associated with one or more advertisements in the TOC
File. All associated advertisements may be combined into one result
set. Only the longest phrases may be considered because
advertisements associated with sub phrases may already be combined
into the longest phrases in the TOC File. [0024] (3) Rank ordering.
Delivery engine 12 may rank advertisements associated with keywords
which have been matched to the incoming query from query handler
16. The rank ordering in the result set may be determined by the
actual or projected yield to the proprietor of delivery engine 12.
"Yield" in the system 10 may be defined as the product of the
click-through rate with MaxCPC, that is, yield may be based on the
amount of money to be paid by the advertiser for placement of an
ad. The MaxCPC may be set by the advertiser at purchase time, e.g.
in whatever ad purchasing system 20 which populates the
advertisement database 14. The click-through rate may be determined
by click tracking system 13, which may also perform web
advertisement click-through and redirect operations, and which may
update advertisement database 14 with such information for each
advertisement. [0025] (4) Pricing. Delivery engine 12 may set the
price paid by each purchaser of ad space for space allotted to each
advertisement in the result set. Prices may be limited to not
exceed the MaxCPC. Prices may be discounted to the lowest price
necessary to provide the optimal placement of the advertisement,
e.g. the lowest price at which an ad may be placed without changing
its ranking relative to other ads matching the same keywords. Ad
placement may be subject to reserve prices (minimum or maximum
price for certain keywords and/or distribution partners, such as
partner site 16) and may then be eliminated from the result set if
they do not meet the reserve. Under some circumstances, there may
be additional discounts which are applied to prices before the
result set is returned. [0026] (5) Filtering. Advertisements in the
result set may be filtered out, or otherwise treated specially, on
the basis of a number of criteria, including minimum click-through
rate, minimum price, advertiser's domain, or domain of the
referring site.
[0027] Referring now to FIG. 2, in a preferred embodiment, a
potential ad purchaser such as advertiser 24, may purchase
placements for its advertisements for products or services from ad
purchasing system 26. The advertisements may be retrievable from a
specific URL, such as advertiser's web site 25. Ad purchasing
system 26, and/or reporting system 28, stores data or causes data
to be stored related to the advertisement purchase and estimated or
actual click-through rates determined thereafter, in one or more
related databases such as database of ads and click thru rates 30.
Database 30 is typically a relational database of advertisements
with fields for data in the form of creative material, such as the
advertisement content at a specific URL, a reference to a related
URL e.g. for advertiser's web site 25, one or more keywords or key
phrases (hereinafter "keywords") related to the content of the ad,
the purchaser's bid such as the maximum cost per click (MaxCPC)
that ad purchaser is willing to pay for placement of the associated
advertisement, an estimated or other click-through rate (preferably
an observed click-thru rate after the advertisement has been
purchased and distributed), the purchaser's choice of matching
algorithm, and one or more various other advertisement options.
[0028] In operation, search engine user 32 may be connected to
search engine site 34 (e.g. partner site 18 shown in FIG. 1)
requesting a search, such as a search for "car washes". Search
engine site 34 may contact query handler 36 (as well as other ad
delivery system query inputs) to determine if search results can be
provided. In response, query handler 36 provides a query string to
ad delivery engine 38 which obtains a filtered and ranked list of
matching advertisements based on data in database 30 and returns
that list to search engine site 34. Search engine site 34 may
combine the returned list with other lists of search results and
deliver the combined list as search results to search engine user
32.
[0029] User 32 may select, or click on, one of the entries in the
list provided in response to the search user's search request and
be transparently redirected to another site, such as redirect site
37, which directs user 32 to advertiser's web site 25.
[0030] Reporting system 28, or a similar mechanism for example
associated with redirect site 37, may then detect the selection
made by user 32 when user 32 clicks on the particular advertisement
on the list of search results provided to user 32, or at least on
the portion of that list provided via ad delivery engine 38, and
records that action, e.g. for example as a click for which
advertiser 24 will be charged and/or to determine a click through
rate e.g. the percentage of the time that the specific URL is
selected by a user when listed in the search results. Reporting
system 28, or a similar mechanism, may then causes the click
through rate to be stored in database 30 and associated therein
with the advertisement to which it is related.
[0031] In operation, extraction engine 39 in ad delivery engine 38
may extract information from database 30 to fully and/or
incrementally rebuild index 40 and TOC 42.
[0032] Preferably, extraction engine 39 performs full rebuilds of
index 40 and/or TOC 42 on a regular basis, such as once per day. A
full rebuild of index 40 may require a substantial amount of time
to extract the data related to each advertisement in database 30
and therefore such rebuilds are typically done during time periods
of relatively low usage, for example at midnight each day. Index 40
may be a simple, but potentially large data file but is, of course,
much smaller than ad database 30. Index file 40 may be stored on
disk, or other relatively slow memory compared to memory on which
TOC 42 may be stored, because of its size.
[0033] Index 40 is preferably alphabetized in accordance with its
keywords. For example, if one of the keywords for advertiser 24 is
"car wash", data related to the ad for advertiser 24 would be
stored alphabetically in index 40 based on the keyword phrase "car
wash". If "car wash" is also a keyword phrase for another
advertiser, the data for that other advertiser would preferably be
stored in index 40 adjacent to the data for all other ads having
the same keyword, such as the ad for advertiser 24. The benefit of
this simple, alphabetized storage approach will be more apparent
from the description below of index 40 and/or TOC 42.
[0034] A subset of the data stored in index 40 may also be stored
in TOC 42, preferably including data related to the keywords,
pricing, filtering fields (described below in greater detail) and
observed click-through rates for each advertisement as well as a
pointer to the location of that data in index 40. The pointer is
preferably related to the location of first byte (or start byte) of
data for the first stored advertisement data for the associated
keyword or phrase stored in index 40. That is, the pointer in TOC
42, for the data related to all advertisements for which "car wash"
is a keyword, would point to the start byte location in index 40
for the first listed advertisement for which "car wash" is a
keyword. Thus, some data for all advertisements for which "car
wash" is a keyword in index 40 can easily, and quickly, be found by
TOC 42 by starting at the start byte location for the first listed
advertisement for that keyword in index 40 and processing the data
found thereafter until a new keyword is found. Thus, the ranking of
all ads related to each particular keyword may easily be
accomplished at one time because all such ads are listed together
in index 40 which includes the location of each such ad in full ad
database 30.
[0035] In addition, incremental updates may also be performed on a
periodic basis more often than the full rebuilds of index 40. For
example, if the full rebuilds of index 40 and/or TOC 42 are
performed daily at midnight, incremental rebuilds may be done on an
hourly basis during the day. As a result of an incremental update,
inserts, updates and deletes may be processed by adding new data to
index 40 and TOC 42 for inserts and updates and by marking items in
the TOC File for deletions.
[0036] One of the reasons for combining both full and incremental
rebuilds and updates is that reliance on full rebuilds would limit
the accuracy of index 40 and TOC 42 with regard to the then current
state of database 30 and/or require more time for response to a
query.
[0037] Reliance on a repetitively updated, but not often rebuilt,
index 40 and TOC 42 may also limit the accuracy of index 40 and TOC
42 because an error, once it occurs, would be difficult or
impossible to correct.
[0038] Preferably, TOC 42 may be used to provide faster access to
index 40 and would therefore typically be stored in a faster
memory, such as RAM, to speed up the processing by ad delivery
system 38. In particular, locating the address of the first or
start byte in index 40 for all entries for a particular keyword or
phrase by searching in TOC 42 in RAM may be a very quick and time
efficient process. By also storing some additional specific data in
RAM TOC 42 for each advertisement, such as pricing or filtering
data, the processing time requirements of other aspects of ad
delivery engine 38 including ranking engine 54, pricing engine 56
and filter 58, may also be optimized. The processing time for
matching engine 52, in addition to the preferably optimized time
for locating the starting byte in index 40 for all entries for a
particular keyword or phrase which are stored adjacent to each
other, remains dependent on the speed of the memory in which index
40 is stored, for example, on a hard disk or other memory typically
relatively slower than RAM.
[0039] Referring now also to FIG. 3, in normalizing engine 44, stem
processor 46 reduces each word or phrase to its stem e.g. "car
washes" becomes "car wash". Thereafter, stop processor 48 removes
words that have previously been identified to be detrimental to
relevance such as excessively common words including "the", "an"
etc. as well as inappropriate words and/or grammatical indicators.
Thereafter, multiple word and phrase elements are sorted
alphabetically in sorter 50. The text input to normalizing engine
44 may be advertising content, and/or separately identified
keywords and phrases, in database 30 and the normalized text may be
applied to index 40 and/or TOC 42.
[0040] Similarly, the text applied to normalizing engine 44 may be
a query string from query handler 36 and the normalized text may be
applied to matching processor 52. A query consists of a query
string of one or more words, as well as flags preferably indicating
the distribution partner and other details of the original
request.
[0041] Referring now again to FIG. 2, matching engine 52 may be
used to construct a set of matching advertisements in database 30
in response to a query from query handler 36 in more than one way.
In one embodiment, keywords normalized at the time of purchase by
advertiser 24 may be matched to determine exact matches with
normalized text from the query processed by query handler 36. In a
preferred embodiment, both the advertisement keywords and the query
string are normalized using the identical words to produce positive
matches in processor.
[0042] Alternately, all keywords in the advertisement which are
fully contained within the query may produce positive matches in
matching engine 52 in order to produce a larger set of matching
advertisements. Thus, using the broader matching approach, an
advertisement associated with keyword "red bull" would be a
positive match with a query for "red bull drink". Advertiser 24 may
indicate at the time of purchase which matching engine approach is
to be used and that selection may be stored in database 30 and/or
in index 40 or TOC 42.
[0043] Advertiser 24 may also specify negative keywords for use
when using this broader approach in matching engine 52 in order to
cause matches to fail. Negative keywords may be text strings, for
example, which cause a match to fail when they are found in the
query string, even if there would otherwise a match. For example,
an advertiser using "Red Bull" as a keyword for drink product may
specify a negative keyword of "dart boards" if "Red Bull" happens
to also be a brand of dart boards and the advertiser does not want
his advertisements to be delivered with search results for searches
for "Red Bull Dart Boards".
[0044] Each known phrase may be associated with one or more
advertisements in the TOC File. All associated advertisements may
be combined into one result set. Only the longest phrases may be
considered because advertisements associated with sub phrases may
already be combined into the longest phrases in the TOC File. The
output of matching engine 52 may be considered a result set of
matching advertisements.
[0045] Ranking engine 54 ranks the advertisements in the result set
from matching engine 52 in an order related to the potential
monetary yield to the service from whom the advertisement was
purchased, typically the operator of ad purchasing system 26. The
potential yield may be calculated as a function of the bid by
advertiser 24 and the actual or estimated success of the
advertisement in attracting users, such as user 32, when listed in
the results provided by search engine site 34.
[0046] For the purposes of calculating the potential yield, the bid
may preferably be in the form of the maximum cost per click
(MaxCPC). MaxCPC may be considered to be a bid from advertiser 24
for the highest cost per click advertiser 24 has agreed to pay for
placement of the advertisement for advertiser's web site 25. The
advertisement's success in achieving placement for its adds may
preferably be monitored in the form of an observed (or estimated or
otherwise calculated) click-through rate which may be provided by
reporting system 28 as determined for example from redirect site
37, as described in more detail below, or other systems performing
related functions. Data related to the bid, or MaxCPC, and success,
or click-through rate may conveniently be stored in database 30.
The output of ranking engine 54 may be considered to be a result
set of ranked, matching advertisements.
[0047] Pricing engine 56 operates on this result set to determine a
price, that is, a price to be paid by a purchaser, such as
advertiser 24, of each of the ranked and matched advertisements
(such as the advertisement for advertiser's web site 25) in the
result set from ranking engine 54 when that advertisement is
selected for viewing by user 32. It is important to note that the
price charged for placement of each advertisement may be below or
up to the bid or MaxCPC set by advertiser 24 when the bid was
placed or when later updated.
[0048] Advertisements may also be subject to reserve prices
(minimum or maximum prices for certain keywords and/or for
distribution partners) and may be eliminated from the result set if
they do not meet such reserve prices. Under some circumstances
there may be additional discounts which are applied to prices
before the result set is returned.
[0049] Filter 58 may operate on the result set from pricing engine
56 to filter out advertisements on the basis of a number of
criteria, such as a minimum click-through rate which may be set by
ad purchasing system 26 or by search engine site 34, a minimum
price, the Internet domain of advertiser 24, or the domain of a
referring site which may have referred advertiser 24 to ad
purchasing system 26.
[0050] As an example of the operation of system 10, ad purchaser or
advertiser 24 may be a business, such as Pete's Car Wash, which has
created a web site 25 on which an advertisement for its car wash
business is located. In order to promote its business, Pete's Car
Wash contracts with ad purchasing system 26 to have web site 25
included in result sets provided to search engine users, such as
user 32, from a search engine site such as site 34, when the words
"car wash" are included in the search request e.g. the query
string.
[0051] Search engine sites are web sites presenting one or more
search features to their users. One of the ways these sites
generate revenue is by displaying advertising as part of search
results. Search engine sites, such as site 34, may have a
relationship with one or more partner sites having ad delivery
engines, such as ad delivery engine 38, via query handlers such as
handler 36, to provide a ranked set of matching advertisements in
response to a search engine user's search request forwarded by site
34. In this example, in response to a request from search engine
site 34 for search results related to the keywords "car wash",
query handler 36 may provide a ranked set of advertisements related
to car wash to search engine site 34 in the form of a set of
redireaction operations, for example to redirect site 37.
[0052] Each entry in this ranked set of matching advertisements may
be selected by user 32 by clicking on that entry which may cause
user 32 to be transparently sent to redirect site 37 which again
redirects user 32, for example, to advertiser's web site 25.
Redirect site 37 may also send data to reporting system 28, which
may be part of redirect site 37, ad purchasing system 26 or
otherwise be related to them, indicating which advertisements in
data base 30 are displayed to user 32 and which, such as
advertiser's web site 25, were selected by user 32 clicking so that
an observed click-thru rate may be determined and entered into
database 30 and/or advertiser 24 may be billed for the actual click
through to his site.
[0053] After operation of matching engine 52, ranking engine 54
serves to rank or order the matching advertisements in accordance
with the bid or MaxCPC arrangement between Pete's Car Wash and ad
purchasing system 26. Advertiser 24 is not necessarily, however,
required to pay the maximum cost per click rate originally bid.
[0054] In a preferred embodiment, Pete's Car Wash is ranked in
accordance with the bid MaxCPC (adjusted for the observed
click-through rate) but only required to pay just enough to get
ranked above the nearest competitor's bid. This approach motivates
advertisers, such as Pete's Car Wash, to bid a higher MaxCPC
because that highest rate will only be charged if necessary to
achieve a higher rank or order in the search results presented to
user 32.
[0055] In pricing engine 56, pricing may be based on a discounted
yield rank. Rank, as noted above, is based on potential financial
yield to the operator of ad purchasing system 26. Pricing engine
56, however, may set actual pricing so that advertiser 24 is only
required to pay the cost per click rate necessary to maintain the
ranking of its ad determined by ranking engine 54.
[0056] In one example, Pete's maximum bid or MaxCPC may be $0.40
per click while his estimated or observed click-through rate may be
2%. Similarly, one of Pete's competitors for ranking, George, may
have a maximum bid or MaxCPC of $0.50 per click but a click-through
rate of only 1%. In conventional ad delivery systems, George may
have been ranked higher in order over Pete because George's maximum
bid is greater than Pete's. In a preferred embodiment as described
above, ranking engine 54 may rank Pete's higher than George in the
results list because Pete's potential yield is 0.40*0.02=0.08 while
George's potential yield is only 0.50*0.01=0.05.
[0057] However, pricing engine 56 may operate to discount Pete's
potential yield, even though the potential yield was used in
determining Pete's rank, to determine the price that Pete's is
required to pay for actual click-through selections by users. In
the above example, the potential yield may be discounted to be just
above the potential yield of Pete's competitor for ranking. Pete's
may only be charged, for example by reporting system 28 or some
other convenient system, $0.051 per click, that is, just enough to
get ranked above the first lower ranked competitor, George, whose
potential yield was $0.05 per click.
* * * * *