Field of the Invention
[0001] This invention relates to handling search queries. In particular, it relates to providing
advertisements with search results in response to a search query.
Background to the Invention
[0002] Worldwideweb search services, such as those provided by Google, Inc. through google.com,
have been used for a number of years and have been becoming increasingly sophisticated.
[0003] It is common when providing search results to a user to provide also one or more
advertisements. Advertisements are paid for by advertisers, who are normally charged
by the provider of the search services on the basis of a number of impressions (the
number of times that an advertisement is presented to users) or on the basis of click-through
(the number of occasions on which users click on a link in an advertisement, thereby
directing traffic to the advertiser's website). A webpage provided in response to
a search query thus typically has two components. The first is a number of search
results, which are discreet listings that have been selected by a search engine used
by the search services provider to identify webpages that are anticipated to be of
interest to the user that submitted the search query. The second component of the
webpage is one or more advertisements, which are selected by an advertisement server
operated by the search services provider and which have been selected as likely being
of interest to the user, based on the search query.
[0004] It would be desirable to take into account the search results provided by the search
server when selecting advertisements for inclusion in the webpage. However, it has
not heretofore been technically feasible to use the results provided by the search
server in selecting advertisements without increasing the time between receiving a
search query and providing the webpage of search results to an unacceptably long time.
The present invention seeks to provide a solution to this problem.
Summary of the Invention
[0005] A first aspect of the invention provides: a system for providing advertisements with
search results in response to a search query, the system comprising a front end and
at least first and second advertisement servers, wherein:
the front end is configured:
to receive a search query; and
to send a search request to a search server and to send a first advertisement request
to an advertisement server, wherein the search request includes the search query or
information based on the search query, and wherein the first advertisement request
includes the search query or information based on the search query and an indication
that an interim advertisement response is to be provided;
the first advertisement server is configured:
in response to receiving the first advertisement request, to search for advertisements
related to the search query to produce plural advertisement results;
to select a plurality of the plural advertisements;
to prepare an interim advertisement response including some or all content of the
selected plural advertisements; and
to send the interim advertisement response to the front end;
the front end is configured:
to receive search results from the search server;
to receive the interim advertisement response from the first advertisement server;
and
to send at least some of the search results and at least some of the interim advertisement
response to the advertisement server in a second advertisement request, wherein the
second advertisement request includes an indication that a full advertisement response
is to be provided;
the second advertisement server is configured:
to receive the second advertisement request;
to calculate a score for plural ones of the advertisements included in the interim
advertisement response to produce plural advertisement results each with an associated
score, the score for some of the plural ones of the advertisements being based on
the search results included in the second advertisement request;
to rank the plural advertisement results according to their scores;
to select one or more of the highest ranked plural advertisement results; and
to send a full advertisement response to the front end, the full advertisement response
including the selected one or more highest ranked plural advertisement results; and
the front end is configured:
to provide the search results with the selected one or more highest ranked plural
advertisement results.
[0006] The second advertisement server may be configured to respond to receiving the second
advertisement request by performing an additional search for advertisements using
information forming part of the second advertisement request.
[0007] The second advertisement request may include a predicted click-through rate parameter
value for each of the plural ones of the advertisements and the second advertisement
server may be configured to modify the predicted click-through rate parameter value
of at least one of the plural advertisement results depending on the search results
included in the second advertisement request prior to calculating the scores for the
advertisements. Here, the second advertisement server may be configured to modify
the score of at least one of the plural advertisement results by modifying the predicted
click-through rate of at least one of the plural advertisement results depending on
user interface elements that are indicated in the search results included in the second
advertisement request.
[0008] The second advertisement request may include a bid parameter value for each of the
plural ones of the advertisements and the second advertisement server may be configured
to modify the bid parameter value of at least one of the plural advertisement results
depending on the search results included in the second advertisement request prior
to calculating the scores for the advertisements.
[0009] The second advertisement request may include a relevance score parameter value for
each of the plural ones of the advertisements and the second advertisement server
may be configured to modify the relevance score parameter value of at least one of
the plural advertisement results depending on the search results included in the second
advertisement request prior to calculating the scores for the advertisements. Here,
the second advertisement server may be configured to modify the relevance score parameter
value of at least one of the plural advertisement results based on content of the
top one of multiple search results included in the second advertisement request. Alternatively
or additionally, the second advertisement server may be configured to modify the relevance
score parameter value of at least one of the plural advertisement results based on
a location of the top one of multiple search results included in the second advertisement
request.
[0010] The number of advertisements included in the interim advertisement response may be
at least equal to 250, at least equal to 500, or at least equal to 740 or at least
equal to 1000.
[0011] The number of advertisements included in the interim advertisement response may be
at least 100 times greater that the number of advertisements included in the full
advertisement response.
[0012] The front end may be configured to process the search results received from the search
server and, for the at least some of the search results, to include some but not all
of the information comprising the search results in the second advertisement request.
[0013] The front end may be configured to include in the second advertisement request one
or more of:
content type information;
map information indicating a map area;
information identifying the presence or absence of a knowledge card; and information
specific to the user.
[0014] The second advertising server may be configured to modify visual appearance characteristics
of one or more advertisements based on the search results included in the second advertisement
request.
[0015] A second aspect of the invention provides a method of providing advertisements with
search results in response to a search query, the method comprising:
a front end:
receiving a search query; and
sending a search request to a search server and sending a first advertisement request
to an advertisement server, wherein the search request includes the search query or
information based on the search query, and wherein the first advertisement request
includes the search query or information based on the search query and an indication
that an interim advertisement response is to be provided;
a first advertisement server:
in response to receiving the first advertisement request, searching for advertisements
related to the search query to produce plural advertisement results;
selecting a plurality of the plural advertisements;
preparing an interim advertisement response including some or all content of the selected
plural advertisements; and
sending the interim advertisement response to the front end;
the front end:
receiving search results from the search server;
receiving the interim advertisement response from the first advertisement server;
and
sending at least some of the search results and at least some of the interim advertisement
response to the advertisement server in a second advertisement request, wherein the
second advertisement request includes an indication that a full advertisement response
is to be provided;
a second advertisement server:
receiving the second advertisement request;
calculating a score for plural ones of the advertisements included in the interim
advertisement response to produce plural advertisement results each with an associated
score, the score for some of the plural ones of the advertisements being based on
the search results included in the second advertisement request;
ranking the plural advertisement results according to their scores;
selecting one or more of the highest ranked plural advertisement results; and
sending a full advertisement response to the front end, the full advertisement response
including the selected one or more highest ranked plural advertisement results; and
the front end:
providing the search results with the selected one or more highest ranked plural advertisement
results.
[0016] The invention also provides a computer program comprising machine readable instructions
that when executed control a system comprising a front end and first and second advertisement
servers to perform this method.
Brief Description of the Drawings
[0017] Embodiments of the invention will now be described, by way of example only, with
reference to the accompanying drawings, in which:
Figure 1 is a schematic diagram illustrating a system operating according to aspects
of the invention;
Figure 2 is a flow chart illustrating high level operation of the system of Figure
1 according to aspects of the invention;
Figure 3 is a flow chart illustrating operation of a front end of the system of Figure
1 according to aspects of the invention;
Figure 4 is a flow chart illustrating operation of a first advertisement server of
the system of Figure 1 according to aspects of the invention;
Figure 5 is a flow chart illustrating operation of a second advertisement server of
the system of Figure 1 according to aspects of the invention; and
Figure 6 is a schematic diagram illustrating components within some components of
the Figure 1 system.
Detailed Description of Embodiments
[0018] Referring firstly to Figure 1, a system 100 operating according to aspects of the
invention will now be described.
[0019] The system 100 includes three main components. These are a front end 101, a search
server system 102 and an advertisement (ads) server system 103. The server system
102 is in bidirectional communication with the front end 101. The ads server system
103 is in bidirectional communication with the front end 101. In this example, there
is no direct communication between the search server system 102 and the ads server
system 103.
[0020] The search server system 102 comprises multiple servers. These are illustrated schematically
in Figure 1 as first to fourth servers 102a ... 102d. However, it will be appreciated
that this is merely schematic and that the search server system may comprise between
one and many hundreds of physical servers.
[0021] Similarly, the ads server system 103 is shown in Figure 1 as comprising multiple
(in this case, four) ads servers 103a ... 103d. However, the ads server system 103
may comprise any number of physical servers between two and many hundreds of physical
servers. The ads servers 103a ... 103d may be co-located, or they may be located within
different buildings or different sites. Different ones of the servers may even be
in different regions or countries.
[0022] Although not shown, the front end 101 may be replicated such that there are multiple
front ends. Only one front end 101 is shown to simplify the following explanation.
[0023] A load balancer 104 is connected between the front end 101 and the ads server system
103. Operation of the load balancer 104 is described in some detail below.
[0024] The ads server system 103 is bidirectionally connected to three subsystems. A first
system is a retrieve subsystem 105. A second subsystem is a PCTR, or predicted click-through
rate, subsystem 106. A third subsystem is a relevance score subsystem 107. Each of
the servers 103a - 103d of the ads server system 103 may include dedicated retrieve,
PCTR and relevance score subsystems 105, 106, 107. Alternatively, multiple ones of
the ads servers 103a to 103d may share common retrieve, PCTR and relevance score subsystems
105-107.
[0025] The front end 101 is a system comprising a server or multiple servers. The front
end 101 is the system that is accessed when a user accesses a home webpage of a search
service provider, for instance google.com. At least some of the servers of the front
end 101 are web servers.
[0026] High level operation of the system of Figure 1 will now be described with reference
to Figure 2.
[0027] The operation of Figure 2 starts at step S1. At step S2, the front end 101 receives
a search query from a user. Typically, step S2 involves receiving an http request
from a browser application being used by the user, the http request including a search
query that is presented into a search form provided by the browser application as
a result of HTML code provided by the front end 101. Various alternative ways in which
the front end 101 may be provided with a search query from a user will be apparent
to the skilled person.
[0028] At step S3, the system runs search and a first ads (advertising) processing in parallel.
This involves the search query being sent from the front end 101 to both the search
server system 102 (as a search request) and the ads server system 103 (as a first
advertisement request). The search request may be sent to the search server system
102 substantially simultaneously with the sending of the first advertisement request
to the ads server system 103, or one may slightly follow the other. The first advertisement
request sent to the ads server system 103 includes an instruction to provide an interim
advertisement response. The first advertisement request is sent to a one of the ads
servers 103a ... 103d that is selected by the load balancer 104.
[0029] At step S4, the front end 101 receives a response from the search server system 102
(as a search response) and receives a response from the ads server system 103 (as
an interim advertisement response). The search response typically is received from
the search server system 102 at a slightly different time to the receiving of the
interim advertisement response from the ads server system 103.
[0030] At step S5, some of the search results provided by the search server system 102 and
the interim advertisement response are provided by the front end 101 to the ads server
system 103 as a second advertisement request. In particular, the second advertisement
request is provided by the front end 101 to the load balancer 104, which allocates
the request to an ads server 103a ... 103d. The load balancer 104 selected the particular
ads server based on load balancing requirements and without regard to the ads server
103a ... 103d that processed the first ads request. Generally speaking, the ads server
103a ... 103d that processes the first advertisement request can be termed the first
ads server and the ads server 103a ... 103d that processes the second advertisement
request can be termed the second ads server.
[0031] The aspects of the search results provided by the search server system to the front
end 101 that are selected by the front end 101 for sending to the ads server system
103 in the second advertisement request may be made in any suitable way, and some
examples are described later in this specification. The second advertising request
sent as part of step S5 includes an indication that a full advertisement response
is to be provided.
[0032] At step S6, the second ads server of the ads server system 103 processes the second
advertisement request, using the original search query and the contents of the second
advertisement request (which includes the interim advertisement response provided
by the first ads server). This processing involves calculating scores for at least
some of the advertisements included in the interim advertisement response, ranking
them according to their score, and selecting a small number of highest ranked advertisements
for the full advertisement response. The ads server system 103 then provides the resulting
full advertisement response to the front end 101. A webpage including the search results
provided by the search service system 102 and the advertisements provided by the ads
server system 103 is prepared by the front end and is provided to the user, who views
the webpage using their browser application. This webpage can be called the search
response.
[0033] The operation ends at step S8.
[0034] Very briefly, the process described with reference to Figure 2 allows the advertisements
provided in the search response webpage to the user to include advertisements that
take into account the results of the processing of the search query by the search
server system 102. Moreover, this is achieved relatively quickly. The relatively quick
speed of provision is a result of the ads server 103 being able to partially process
the search query in parallel with the search query being processed by the search server
system 102. This is possible due to the contents of the advertisement requests, in
particular the inclusion in the first advertisement request of an indication that
an interim advertisement response is to be provided and an inclusion in the second
advertisement request of the interim advertisement response and an indication that
a full advertisement response is to be provided. The relatively quick speed is achieved
in part also because of the configuration of the front end 101 and the ads server
system 103 to provide part-processing of the search query by the ads server 103 and
to complete the processing using the results of the search performed by the search
server system 102.
[0035] The processing of the first and second advertisement requests by different advertisement
servers 103a, 103b provides more flexibility for load balancing of the advertisement
servers 103a ... 103d than would be possible if a single advertisement server processed
both of the advertisement requests.
[0036] Further details and additional advantages will be apparent from the following description,
which is to be read in accordance with the accompanying figures.
[0037] Detailed embodiments will now be described with reference to Figures 3, 4, 5 and
6. Figure 3 relates to steps performed by the front end 101, Figure 4 relates to steps
performed by a first ads server 103a of the ads server system 103 and Figure 5 relates
to steps performed by a second ads server 103b of the ads server system 103.
[0038] Referring firstly to Figure 3, the operation begins at step S1. At step S2, the search
query is received from the user. This step was described above with reference to Figure
2.
[0039] At step S3, the front end 101 sends a first search request to the search server system
102 in a message. The sending of the first search request is indicated at S1 in Figure
1. The first search request may take any suitable form. For instance, it may include
all of the text of the search query that was provided by the user and was received
at step S2. Typically, the first search request does include all of the text of the
search query received at step S2. The first search request may additionally include
some context information. For instance, the context information may take the form
of information relating to the user's current location, if this information is available.
The context information may include information about content that is being displayed
by a webpage in which the search query was entered by a user. For instance, if the
search query was entered into a search text entry field provided in conjunction with
content such as one or more maps or images or a third party website, the context information
may include information identifying the related content.
[0040] At step S4, a first advertisement request is sent by the front end 101 to the ads
server system 103 in a message. The sending of the first advertisement request is
indicated at A2 in Figure 1. The first advertisement request can take the same form
as the first search request that was sent at step S3. Alternatively, the first advertisement
request may take a different form. For instance, the first advertisement request may
include a subset of the information that was included in the first search request
that was sent to the search server.
[0041] The first advertisement request prepared by the front end 101 and sent at step S4
includes an indication that an interim advertisement response, not a full advertisement
response, is to be provided by the ads server system 103. This may be provided in
any suitable way. For instance, it may take the form of a flag, or more generally
a predetermined value in a predetermined field. The indication may take the form of
text, or it may simply be data. Although not illustrated in Figure 3, the load balancer
104 responds to receiving the first advertisement request A1 from the front end 101
by choosing one of the ads servers 103a to 103d. The load balancer 104 chooses an
ads server 103a ... 103d such as to achieve good balancing of the load placed on the
various ads servers 103a ... 103d. In this example, the load balancer 104 chooses
the first ads server 103a.
[0042] After sending the first search request to the search server 102 at step S3, the search
server system 102 processes the first search request. This may be entirely conventional,
and does not need to be explained here. The result of processing of the first search
request by the search server system 102 is search results, that are sent in a search
response message to the front end 101. This is indicated at S2 in Figure 1. The search
response message including the search results are received from the search server
system at the front end 101 at step S5 of Figure 3.
[0043] The search results received at the front end 101 from the search server system 102
at step S5 include information falling into two categories, and possibly also information
falling into a third category.
[0044] Information falling into the first category is information that is presented in the
search response webpage to the user. This information includes a URL, a text snippet
and one or more site links. The URL is text that indicates the location/node on the
worldwideweb to which the first site link points. The site link is a hyperlink to
the URL that is indicated. The displayed text of the hyperlink typically is different
to the URL, and for instance typically is descriptive. The text snippet is plain text
that is derived from the webpage to which the particular search result relates. The
text snippet typically includes between 10 and 20 words and about 100 or so characters,
although this is merely an example. The text snippet is text derived from the webpage
to which the particular search result relates and which has been determined by the
search server system 102 as being particularly relevant to the search query.
[0045] The second category of information is information that is not displayed to a user
in the search page. In almost all cases, this includes location information relating
to the search result. The location information may for instance be an address, that
is a street address or a PO box address, or latitude and longitude coordinates or
such like. The information that is not displayed may additionally include entity information
that is on the webpage to which the search result relates, for instance it may include
categories that are relevant to the search result.
[0046] The optional other category of information is other elements such as a knowledge
card, a map, a video, and other search queries.
[0047] The information described above is provided for each of plural search results. The
number of search results that are included in the search results may be determined
by the front end 101, for instance based on a preference setting of the user or based
on some other information, or it may be determined by the search server system 102.
A typical number of search results presented on a search response webpage is 10. The
number of search results included in the search response typically is sufficient for
a number of pages of search response webpage. For instance, 100 search results may
be included in the search response.
[0048] The search response may also include a full page replacement, where the search server
system 102 has determined that the search query may have included a spelling mistake.
A full page replacement includes search results for a spell-corrected version of the
search query, and indicates both the spell-corrected search query and the uncorrected
search query. Search results for the uncorrected search query typically are not provided
in a search response including a full page replacement.
[0049] Step S5 also involves the front end receiving the interim advertisement response
A2 from the first ads server 103a, via the load balancer 104. The contents of the
interim advertisement response A2 are described in more detail below. The interim
advertisement response A2 typically is received at a slightly different time to the
search results.
[0050] At step S6, the front end 101 selects data from the search results received at step
S5. The selection of data at step S6 involves selecting some of the data forming part
of the search results received from the search server, and not selecting other data.
This step may be performed in any suitable way.
[0051] For instance, if a knowledge card is present in search results, the knowledge card
is not selected at step S6. Text snippets are selected at step S6, although in some
embodiments they are not selected. Site links are not selected at step S6. Furthermore,
full location information is not selected at step S6. URLs from the search results
are selected.
[0052] The receiving at step S5 by the front end 101 of the interim advertisement response
A2 from the first ads server 103a may happen during or after performance of step S6.
[0053] At step S7, a second advertisement request is prepared using the data that was selected
at step S6 and including the whole or part of the interim advertisement response.
The second advertisement request may include information relating to the plural search
results.
[0054] For instance, if a knowledge card is present in the search response, the knowledge
card is not selected at step S6. However, the front end 101 provides the second advertisement
request with a flag indicating that a knowledge card is present in the search response.
The flag may be of a Boolean representation. Furthermore, full location information
is not selected at step S6. However, a flag indicating whether or not location information
is present may be provided. A flag is provided for each search result, allowing determination
of which search results have location information associated therewith. Also, information
identifying the type of content present at the webpage linked to by the URL of a search
result is included in the second advertisement request. The type of content may be
indicated as for instance a video, a webpage, a news story or an image. The type of
content is provided separately for each search result.
[0055] Where the search response indicates that a map is to be provided in the search response
webpage, the second advertisement request can include information identifying the
map area, for instance by defining the rectangular border of the map. The second advertisement
request can additionally include information identifying when search results are located
within the map area.
[0056] The second advertisement request includes data selected from each of the search results
that were provided by the search server system 102 to the front end 101 at step S5.
For instance, where ten search results were provided, the second advertisement request
includes information relating to each of the ten separate search results, which may
be quite different from one another, as well as the user-specific data. If a different
(greater than 1) number of search results are provided, the request includes information
relating to each of the search results. Additionally, the search query to which the
search results relate, this being the search query that was received by the front
end 101 at step S2, is included in the second advertisement request.
[0057] The second advertisement request also includes an indication that a full advertisement
response is to be provided by the ads server system 103. This can be achieved in any
suitable way. For instance, it may involve including a flag having an opposite value
to the flag used in the first advertisement request that was sent at step S4.
[0058] Following preparation of the second advertisement request, it is sent to the ads
server system 103 at step S7 by the front end 101. This is illustrated at A3 in Figure
1. Although not illustrated in Figure 3, the load balancer 104 responds to receiving
the second advertisement request A3 from the front end 101 by choosing one of the
ads servers 103a to 103d. As with the first advertisement request, the load balancer
104 chooses an ads server 103a ... 103d such as to achieve good balancing of the load
placed on the various ads servers 103a ... 103d. In this example, the load balancer
104 chooses the second ads server 103b to process the second advertisement request.
[0059] Following step S7, the front end 101 waits for a full advertisement response from
the ads server system 103. The full advertisement response is indicated at A4 in Figure
1. When the full advertisement response is received at step S8, the front end 101
continues with the operation of Figure 3. In particular, at step S9 the front end
101 combines information from the search response received from the search server
system 102 at step S5 with information from the full advertisement response received
from the second ads server 103b of the ads server system 103 at step S8 into a search
response webpage. The search response webpage is then provided at step S10 to the
user, and is viewed by the user through their browser application.
The operation ends at step S11.
[0060] Operation of the first ads server 103a of the ads server system 103 will now be described
with reference to Figure 4. Operation begins at step S1. At step S2, the ads server
system 103 receives the first advertisement request. This is the first advertisement
request that was sent by the front end 101 at step S4 of Figure 3.
[0061] At step S3, the ads server system 103 searches for advertisements using the information
included in the first advertisement request. This step may be performed in a conventional
way. The result of step S3 is a number of advertisements that may be of interest to
the user. For instance, the result of step S3 may be some dozens of advertisements,
some hundreds of advertisements, a thousand advertisements or a few thousand advertisements.
[0062] At steps S4 and S5, the advertisements are scored then ranked. A score is attributed
to each of the advertisements at step S4, then at step S5 the advertisements are ranked
according to their score. These steps may be performed conventionally.
[0063] For instance, attributing a score to an advertisement at step S4 may involve applying
a function of three parameters, which can be represented as follows:

[0064] Here, the numerical value of the bid parameter is a value provided by an advertiser
in advance, through their advertising account with the search service provider. The
provision of a bid value for an advertisement is provided by the retrieve subsystem
105. The operation involves the ads server system 103 sending a request R1 for a bid
for an advertisement to the retrieve subsystem 105. The retrieve subsystem 105 then
calculates a bid value and sends it at R2 to the ads server system 103. The calculation
of the bid value by the retrieve subsystem 105 may be performed in any suitable way,
for instance conventionally.
[0065] PCTR is predicted click-through rate, and has a numerical value. A PCTR for a given
advertisement is calculated by the PCTR subsystem 106. The PCTR may be calculated
in any suitable way. The procedure is that the ads server system 103 sends P1 a request
for a PCTR for an advertisement to the PCTR subsystem 106. The PCTR subsystem 106
then calculates a PCTR value for the advertisement, which can be performed in any
suitable way. The PCTR value for the advertisement then is returned to the ads server
system 103 by P2 in Figure 1.
[0066] The numerical value of the relevance parameter is provided by the relevance score
subsystem 107. This may be performed in any suitable way, for instance in a conventional
manner. The procedure is that the ads server system 103 sends a relevance score RS1
request to the relevance score subsystem 107. The relevance score subsystem then calculates
a relevance score for the advertisement and sends it at RS2 to the ads server system
103.
[0067] After a score has been calculated for each of the advertisements, using the function
of the three parameters, the advertisements are ranked at step S5. Step S5 may involve
physically organising the data relating to the advertisements such that higher ranked
advertisements are physically located in memory together. Alternatively, the ranking
of advertisements at step S5 may merely involve deleting or marking for deletion advertisements
which have a score that is so low that the advertisement does not qualify to be included
in the ranked advertisements.
[0068] At step S6, the first ads server 103a selects a number of the highest ranked ads
for inclusion in the interim advertisement response.
[0069] The number of ads that are selected for inclusion in the interim advertisement response
may be fixed or it may be dynamic. The number of ads that are selected for inclusion
in the interim advertisement response may for instance be fixed at 250, 500, 750 or
1000. It may alternatively be dynamic and based on the scores allocated to advertisements.
For instance, the number of ads that are selected for inclusion in the interim advertisement
response may be equal to the number of ads that have a score greater than a predetermined
proportion of the advertisement with the highest score. The predetermined proportion
may for instance be 0.8, giving rise to all ads that have a score at least equal to
80% of the highest score. The ads that are selected for inclusion in the interim advertisement
response may alternatively be all the ads with the same or higher score as a particular
ad, for instance the 250
th, 500
th, 750
th or 1000
th highest ranked ad. This can result in a variable number of ads being selected, although
the number may not vary significantly on different occasions.
[0070] At step S5, the content of the advertisements that is to be included in the interim
advertisement response is selected.
[0071] In one option, the whole of the content of the advertisements, as stored in the ads
server 103a, is selected for inclusion in the interim advertisement response. Alternatively,
only some of the content of the advertisements, as stored in the ads server 103a,
is selected for inclusion in the interim advertisement response. By omitting content
of the advertisements from the interim advertisement response, utilisation of bandwidth
and memory can be reduced. However, the removal of relevant content from the advertisements
would reduce the ability of the system 100 to select the best advertisement(s) for
display to the user with the search results. For this reason, it can be important
to select carefully the content that is included in the interim advertisement result
so as not to omit content that is likely to be useful.
[0072] An example of content from the advertisements selected for inclusion in the interim
advertisement response will now be described.
[0073] Firstly, full creative text is selected. This includes Lines 1, 2, and 3 of the advertisement
that is displayed, if the advertisement is selected for display to the user.
[0074] Secondly, the parameter MaxCPC (maximum cost-per-click) is selected. This parameter
indicates the maximum cost that the advertiser is willing to spend to display the
advertisement. This parameter may also be referred to as the bid.
[0075] Thirdly, the parameter PCTR is selected. This is Google's prediction of how likely
is the user to click on a given advertisement, and is discussed above.
[0076] Fourthly, an advertisement quality parameter is selected. This parameter is a measure
of how relevant the advertisement is for the search query.
[0077] Fifthly, the landing page is selected. This is the page that the user is taken to
if the advertisement is presented to the user and the user selects it by clicking
on it.
[0078] Sixthly, related advertisements are selected. This includes all of the above information
for advertisements that are related to the advertisement that has been selected because
of its sufficiently high ranking.
[0079] Of these, the data that is most expensive in terms of bandwidth and memory utilisation
is the landing page, the related ads, and the creative text.
[0080] The quantity of data that constitutes the interim advertising response can be reduced
by precomputing information that is needed. For instance, instead of including the
entire landing page, all unique words in the landing page and optionally their count
(the number of times that the words appear) may be selected for inclusion in the interim
advertising response. Alternatively or additionally, the number of lines of Creative
text may vary. Where only some of the lines of Creative text can be included in the
first advertisement response, the quality of the lines of Creative text is assessed
and the lines with the highest quality are chosen to be included in the first advertisement
response. These alternatives provide improved performance, but makes it more difficult
to change the relevant algorithms later.
[0081] The quantity of data that forms the first advertisement response is a function of
the content of the advertisements that are selected for inclusion in the response
and the number of advertisements that are included in the response. These variables
are typically fixed or vary only slightly in a particular implementation. However,
more content per advertisement and greater numbers of advertisements gives improved
advertising performance, at the expense of higher bandwidth, memory and processing
utilisation.
[0082] At step S8, the interim advertisement response is prepared, including the selected
content for the selected number of advertisements, and sent to the front end 101 via
the load balancer 104.
The operation ends at step S9.
[0083] Operation of the second ads server 103b will now be described with reference to Figure
5.
[0084] The operation starts at step S1. At step S2, the second advertisement request is
received from the front end 101, via the load balancer 104. As discussed above, the
second advertisement request includes the interim advertisement response, an indication
that a full advertisement response is to be provided, the search query and selected
aspects of the search results that were provided by the search server system to the
front end 101.
[0085] At step S3, the advertisements from the interim advertisement response are extracted
from the second advertisement request. As discussed above, this includes a selected
portion of the content of the advertisements.
[0086] After extracting the advertisements, the operation continues to step S4. Step S4
is an optional step of performing further searching for advertisements. Step S4 is
not a repeat of step S3 of Figure 4; instead it is a significantly more focussed and
shorter duration search. The further searching performed in step S4 may for instance
be based on a small number of the highest search results included in the second advertisement
request. For instance, the further searching performed at step S4 may be based on
the top (first) one of the search results included in the second advertisement request.
[0087] For instance, a search query of "highest mountain in the world" may produce from
the search server system 102 a number of search results including a top (first) result
relating to an online encyclopaedia entry for Mount Everest. The search query the
search result of "Mount Everest" are received in the second advertisement request
at step S2. In this case, step S4 may involve performing further searching in respect
of "Mount Everest", resulting in one or more advertisements for organised tours or
vacations to Mount Everest.
[0088] Advertisements found during the further search in step S4 are added to the list of
advertisements extracted from the second advertisement request.
[0089] At step S5, the scores of advertisements, and thus potentially their ranking, is
changed by the ads server system 103. As shown in Figure 5, there are three aspects
to this step. The first is modifying the PCTR at step S5.1. The second is modifying
the relevance score at step S5.2. The third is modifying the bid at step S5.3. Changing
the score/ranking of ads at step S5 may involve just one of the options of steps S5.1
to S5.3. Alternatively, it may involve two of the options of steps S5.1 to S5.3. For
instance, it may involve modifying the PCTR and modifying the relevance score. Alternatively,
step S5 may involve all three of the options of step S5.1 to S5.3.
[0090] Step S5 is performed separately for each advertisement.
[0091] The ads server system 103 may modify the value of PCTR for an advertisement at step
S5.1 in one of a number of different ways. For instance, the PCTR of an advertisement
is changed depending on the user interface elements that are indicated in the second
advertisement request. For a given advertisement, the PCTR may be modified by the
ads server system 103 depending on whether a map is indicated as being a user interface
element that is present in the search results. As indicated above, the second advertisement
request does not include any maps, but can include an indication of whether a map
is to be provided. The PCTR may be modified upwards or downwards, that is it may be
increased or decreased, depending on whether a map is to be provided with the search
results. The particular algorithm for modifying the PCTR depending on whether or not
a map is to be provided can take any suitable form.
[0092] Similarly, the PCTR for an advertisement can be changed depending on whether the
search response includes a knowledge card. As indicated above, the presence or absence
of a knowledge card in the search response is indicated in the second advertisement
request.
[0093] Additionally, the PCTR for an advertisement may be modified by the ads server system
103 depending on the number of images that are present in the search results, as indicated
in the second advertisement request.
[0094] In the case of modifying the PCTR depending on whether there is a knowledge card
in the search results and how many images are present in the search results may result
in the PCTR being increased or decreased, depending on the choice of algorithm.
[0095] Modifying the relevance score of an advertisement at step S5.2 can take any suitable
form. For instance, for a search query relating to "car insurance", the top search
result may be an insurance provider such as "Example Car Insurance". In this case,
step S5.2 may modify the relevance score of advertisements that relate to "Example
Car Insurance", in particular by giving them a higher relevance score. Step S5.2 may
or may not involve reducing the relevant score of advertisements that do not lead
to "Example Car Insurance".
[0096] Modifying the relevance at step S5.2 may involve increasing the relevance score for
advertisements that relate to a physical location that is relatively proximate to
a location of the top search result. For instance, a top search result relating to
a particular theatre in London may result in step S5.2 increasing the relevance score
for advertisements relating to restaurants that are located geographically close to
the physical location of the theatre.
[0097] If the second advertisement request includes snippets for the search results, modifying
the relevant score at step S5.2 may involve increasing the relevance score for advertisements
that include a relatively large amount of text in common with the snippets of the
top one or more search results.
[0098] Modifying the bid for an advertisement at step S5.3 can be performed in one of a
number of ways. For instance, advertisers may specify with the search services provider
that their bids for their advertisements are modified depending on search results
that are to be provided to the user in the search response webpage. For instance,
an advertiser may specify that their bid for an advertisement is to be increased from
value x to value y if the search results resulting from a search query include a particular
advertiser, which may for instance be the bidding advertiser or may be a third party
advertiser, for instance a competitor of the bidding advertiser. For instance, an
advertisement for a flower delivery service may be specified by the advertiser to
have a bid x associated therewith and for the bid to be modified to a value y if the
search results for a search query include flower delivery services of a particular
competitor to the bidding advertiser.
[0099] It will be appreciated that modifying the PCTR at step S5.1, modifying relevance
at step S5.2, and modifying bid at step S5.3 is performed for at least some of the
advertisements in the list. As such, the score for at least some of the advertisements
is changed by performance at step S5. Consequently, the ranking of the advertisements
will be changed as a result of performance at step S5 in most, if not all, instances.
[0100] It will be appreciated also that modifying the PCTR at step S5.1, modifying relevance
at step S5.2, and modifying bid at step S5.3 is performed using information related
to only some of the search results included in the search response. For instance,
modifying the PCTR at step S5.1, modifying relevance at step S5.2, and modifying bid
at step S5.3 is performed using information related to only three or five of the search
results included in the search response.
[0101] As is conventional, one or more highest rank advertisements are provided in the search
response webpage to the user by the front end 101. As such, modifying the score of
advertisements in step S5 can result in different advertisements being provided to
the user. Advantageously, these advertisements have been selected taking into account
not only the search query but also the search results, as provided by the search server
system 102, that are to be provided alongside the advertisements in the webpage to
the user. Thus, more information is taken into account in the provision of advertisements
than is possible on prior art systems. Moreover, this is achieved with a relatively
small additional delay since the searching for advertisements and much of the processing
of the advertisements by the ads server system 103 is performed whilst the search
server system 102 is searching for the relevant search results. There is some additional
delay in the provision of the search response webpage to the user but the additional
delay is relatively small, resulting only from step S5 and optionally steps S4 and
S6, and is considered to be an acceptable additional delay considering the benefits.
[0102] Following step S5, there is an optional step of changing the visual appearance of
advertisements at step S6. The changing of the visual appearance of the advertisements
takes into account the content of the search results received as part of the second
advertisement request received at step S2. For instance, if search results have site
links, step S6 may involve displaying more site links for a given advertisement. Alternatively
or additionally, if a number of top search results prominently feature location information,
step S6 may involve changing the visual appearance of the advertisements that are
to be provided in the search response webpage such that locations within the advertisements
are shown more prominently. Step S6 may alternatively involve making a determination
to show extensions of advertisements whereas otherwise they would not have been shown.
These extensions can include map extensions or video extensions etc. Map extensions
of advertisements can be determined to be shown at step S6 where for instance the
top search results include a relatively high amount of location information. A decision
to show video extensions may be made at step S6 where the top search results include
a relatively high amount of video content. Alternatively, step S6 may involve determining
to show extensions such as map extensions and video extensions more prominently than
otherwise they would have been shown in the search results provided to the user.
[0103] Step S5 provides scores for the advertisements in the list, which comprises the advertisements
received in the second advertisement request (which were provides by the first ads
server 13a in response to the first advertisement request) and any advertisements
added by the optional further searching step S4.
[0104] Next, the second ads server 103b ranks the advertisements according to their new
scores. The ranking is as described above with reference to step S5 of Figure 4. However,
the scores calculated by the second ads server 103b in performing the ranking will
be different to the scores obtained by the first ad server 103a for many of the advertisements
because the scoring of the advertisements here takes into account also the selected
parts of the search response. As such, the highest ranked advertisements will be different
in many cases.
[0105] The second ads server 103b selects a small number of highest ranked advertisements
for the full advertisement response. The number of advertisements is selected by the
ads server system 103 depending on a number of factors, and this may be performed
in a conventional manner. The number of highest ranked advertisements for the full
advertisement response is a lot lower that that number of highest ranked advertisements
selected for the interim advertisement response. The number of highest ranked advertisements
for the full advertisement response typically is at least 100 times lower that that
number of highest ranked advertisements selected for the interim advertisement response.
This ratio allows an appropriately high number of advertisements to be considered
when processing the second advertisement request whilst providing a manageable number
of advertisements in the full advertisement response for use by the front end 101.
[0106] It will be understood that the changing of the visual appearance at step S6 may instead
be performed after selecting the highest ranking ads at step S8. In this way, step
S6 need be performed only for ads that have been selected for inclusion in the full
advertisement response.
[0107] At step S9, the ads server system 103 prepares and sends an advertisement response
to the front end 101. This is shown at A4 in Figure 1. The content of the advertisement
included in the advertisement response sent at step S9 may be conventional. The content
of the advertisements may include text, URLs and site links. The content of the advertisements
may also include other content such as video, map content etc. The advertisement response
may also include information that allows the front end 101 to determine how to show
the corresponding advertisements. In particular, the advertisement response may include
information identifying what site links are to be displayed, what locations are to
be displayed and in what format, and whether extensions are to be displayed and if
so how they are to be displayed. The advertisement response may be the same as in
conventional systems. However, there is a difference in that the selection of advertisements
included in the advertisement response takes account of the search results provided
by the search server system 102, in particular by changing the score and thus ranking
of advertisements through implementation of step S5 of Figure 5.
[0108] The operation ends at step S10.
[0109] Figure 6 illustrates schematically some internal components of the front end 101
and the ads server 103a. The other ads servers 103b to 103d are substantially the
same as the first ads server 103a.
[0110] The front end 101 includes at least one processor 101P, at least one volatile memory
101V and at least one non-volatile memory 101N. Each is connected to a bus 101B.
[0111] Within the non-volatile memory 101N are stored an operating system OS and one or
more software applications App. The non-volatile memory may be read only memory (ROM),
such as for instance a hard disk drive, or flash memory, optical storage, tape storage
etc. Other non-volatile memories may be included, and are illustrated schematically
in the figure.
[0112] The volatile memory 101V may be for instance random access memory (RAM), flash memory
etc. Multiple volatile memories may be included, and are illustrated in Figure 6.
[0113] The processor 101P may for instance be a general purpose processor. It may be a single
core device or a multiple core device. The processor 101P may be a central processing
unit (CPU) or a general processing unit (GPU). Alternatively, it may be a more specialist
unit, for instance a RISC processor or programmable hardware with embedded firmware.
Multiple processors 101P may be included in the front end 101, and are illustrated
as such in Figure 6. The processor 101P may be termed processing means.
[0114] Generally speaking, the processor 101P executes one or more applications App using
the operating system OS, both of which are stored permanently or semi-permanently
in the non-volatile memory 101N, using the volatile memory 101V temporarily to store
software forming a whole or part of the operating system OS and the applications App
and also temporarily to store data generated during execution of the software.
[0115] The first ads server 103a is similarly constructed. In particular, the first ads
server 103a includes at least one processor 101P, at least one volatile memory 101V
and at least one non-volatile memory 101N. Each is connected to a bus 101B.
[0116] Within the non-volatile memory 103N are stored an operating system OS and one or
more software applications App. The non-volatile memory may be read only memory (ROM),
such as for instance a hard disk drive, or flash memory, optical storage, tape storage
etc. Other non-volatile memories may be included, and are illustrated schematically
in the figure.
[0117] The volatile memory 103V may be for instance random access memory (RAM), flash memory
etc. Multiple volatile memories may be included, and are illustrated in Figure 6.
[0118] The processor 103P may for instance be a general purpose processor. It may be a single
core device or a multiple core device. The processor 103P may be a central processing
unit (CPU) or a general processing unit (GPU). Alternatively, it may be a more specialist
unit, for instance a RISC processor or programmable hardware with embedded firmware.
Multiple processors 103P may be included in the first ads server 103a, and are illustrated
as such in Figure 6. The processor 103P may be termed processing means.
[0119] Generally speaking, the processor 103P executes one or more applications App using
the operating system OS, both of which are stored permanently or semi-permanently
in the non-volatile memory 103N, using the volatile memory 103V temporarily to store
software forming a whole or part of the operating system OS and the applications App
and also temporarily to store data generated during execution of the software.
[0120] It will be appreciated that the above-described embodiments are not limiting on the
scope of the invention, which is defined by the appended claims and their alternatives.
Various alternative implementations will be envisaged by the skilled person, and all
such alternatives are intended to be within the scope of the claims.
[0121] For instance, although in the above it is the second advertisement request that includes
an indication that a full response is required, the invention is not limited to this.
In other implementations, it is a third or subsequent request that includes the indication
that a full response is required. The second advertisement request may include further
information that can be used in the search and/or ranking of candidate advertisements,
in which case the modifying of the score of advertisements may be a two-stage process.
In the above, the first advertisement server 103a processes the first advertisement
request and provides the interim advertisement response, and the second advertisement
server 103b processes the second advertisement request and provides the full advertisement
response. The choice of advertisement server 103a, 103b to perform the different tasks
is performed by the load balancer 104. Advantageously, various advertisement servers
103a ... 103d are configured to be able both to process first advertisement requests
and provide interim advertisement responses, and to process second advertisement requests
and provide full advertisement responses. Alternatively, some advertisement servers
103a ... 103d are configured to be able to process first advertisement requests and
provide interim advertisement responses and are not configured to process second advertisement
requests and provide full advertisement responses. Here, other advertisement servers
103a ... 103d are configured not to be able to process first advertisement requests
and provide interim advertisement responses, but are configured to process second
advertisement requests and provide full advertisement responses.
[0122] In the above, the entirety of the list of advertisements received at the front end
101 in the first advertisement response is included in the second advertisement request.
Additionally, the content of the advertisements received at the front end 101 in the
first advertisement response is included in the second advertisement request. In alternative
implementations, the front end 101 may perform some filtering of the advertisements.
For instance, the front end 101 may select only some of the advertisements included
in the first advertisement response for inclusion in the second advertisement request.
Selection may be based on some criteria, for instance a current loading of the front
end 101, e.g. advertisements may be filtered out of the front end 101 is under high
load conditions. Alternatively or additionally, the front end 101 may select only
some of the content of advertisements included in the first advertisement response
for inclusion in the second advertisement request. Selection may be based on the same
or a different criteria, for instance a current loading of the front end 101, e.g.
advertisements may be filtered out of the front end 101 is under high load conditions.
[0123] In the above, a score is calculated by the second advertisement server 103b for each
of the advertisements included in the second advertisement request. In alternative
implementations, the front end 101 may calculate a score for only some of the advertisements
included in the second advertisement request. In particular, the front end 101 may
perform an initial, shallow analysis and on the basis of the analysis identify advertisements
filter out some advertisements prior to calculating a score for the remaining advertisements.
For instance, the initial analysis may involve filtering out all advertisements that
do not have a location parameter if the top three search results are all heavily location-oriented
results.
[0124] Embodiments of the present invention may be implemented in software, hardware, application
logic or a combination of software, hardware and application logic. The software,
application logic and/or hardware may reside on memory, or any computer media. In
an example embodiment, the application logic, software or an instruction set is maintained
on any one of various conventional computer-readable media. In the context of this
document, a "computer-readable medium" may be any media or means that can contain,
store, communicate, propagate or transport the instructions for use by or in connection
with an instruction execution system, apparatus, or device, such as a computer.
[0125] A computer-readable medium may comprise a computer-readable storage medium that may
be any tangible media or means that can contain or store the instructions for use
by or in connection with an instruction execution system, apparatus, or device, such
as a computer as defined previously.
[0126] According to various embodiments of the previous aspect of the present invention,
the computer program according to any of the above aspects, may be implemented in
a computer program product comprising a tangible computer-readable medium bearing
computer program code embodied therein which can be used with the processor for the
implementation of the functions described above.
[0127] Reference to "computer-readable storage medium", "computer program product", "tangibly
embodied computer program" etc, or a "processor" or "processing circuit" etc. should
be understood to encompass not only computers having differing architectures such
as single/multi processor architectures and sequencers/parallel architectures, but
also specialised circuits such as field programmable gate arrays FPGA, application
specify circuits, and other devices. References to computer program, instructions,
code etc. should be understood to express software for a programmable processor firmware
such as the programmable content of a hardware device as instructions for a processor
or configured or configuration settings for a fixed function device, gate array, programmable
logic device, etc.
[0128] If desired, the different functions discussed herein may be performed in a different
order and/or concurrently with each other. Furthermore, if desired, one or more of
the above-described functions may be optional or may be combined.
[0129] Although various aspects of the invention are set out in the independent claims,
other aspects of the invention comprise other combinations of features from the described
embodiments and/or the dependent claims with the features of the independent claims,
and not solely the combinations explicitly set out in the claims.
1. A system for providing advertisements with search results in response to a search
query, the system comprising a front end and at least first and second advertisement
servers, wherein:
the front end is configured:
to receive a search query; and
to send a search request to a search server and to send a first advertisement request
to an advertisement server, wherein the search request includes the search query or
information based on the search query, and wherein the first advertisement request
includes the search query or information based on the search query and an indication
that an interim advertisement response is to be provided;
the first advertisement server is configured:
in response to receiving the first advertisement request, to search for advertisements
related to the search query to produce plural advertisement results;
to select a plurality of the plural advertisements;
to prepare an interim advertisement response including some or all content of the
selected plural advertisements; and
to send the interim advertisement response to the front end;
the front end is configured:
to receive search results from the search server;
to receive the interim advertisement response from the first advertisement server;
and
to send at least some of the search results and at least some of the interim advertisement
response to the advertisement server in a second advertisement request, wherein the
second advertisement request includes an indication that a full advertisement response
is to be provided;
the second advertisement server is configured:
to receive the second advertisement request;
to calculate a score for plural ones of the advertisements included in the interim
advertisement response to produce plural advertisement results each with an associated
score, the score for some of the plural ones of the advertisements being based on
the search results included in the second advertisement request;
to rank the plural advertisement results according to their scores;
to select one or more of the highest ranked plural advertisement results; and
to send a full advertisement response to the front end, the full advertisement response
including the selected one or more highest ranked plural advertisement results; and
the front end is configured:
to provide the search results with the selected one or more highest ranked plural
advertisement results.
2. A system as claimed in claim 1, wherein the second advertisement server is configured
to respond to receiving the second advertisement request by performing an additional
search for advertisements using information forming part of the second advertisement
request.
3. A system as claimed in claim 1 or claim 2, wherein the second advertisement request
includes a predicted click-through rate parameter value for each of the plural ones
of the advertisements and wherein the second advertisement server is configured to
modify the predicted click-through rate parameter value of at least one of the plural
advertisement results depending on the search results included in the second advertisement
request prior to calculating the scores for the advertisements.
4. A system as claimed in claim 3, wherein the second advertisement server is configured
to modify the score of at least one of the plural advertisement results by modifying
the predicted click-through rate of at least one of the plural advertisement results
depending on user interface elements that are indicated in the search results included
in the second advertisement request.
5. A system as claimed in any preceding claim, wherein the second advertisement request
includes a bid parameter value for each of the plural ones of the advertisements and
wherein the second advertisement server is configured to modify the bid parameter
value of at least one of the plural advertisement results depending on the search
results included in the second advertisement request prior to calculating the scores
for the advertisements.
6. A system as claimed in any preceding claim, wherein the second advertisement request
includes a relevance score parameter value for each of the plural ones of the advertisements
and wherein the second advertisement server is configured to modify the relevance
score parameter value of at least one of the plural advertisement results depending
on the search results included in the second advertisement request prior to calculating
the scores for the advertisements.
7. A system as claimed in claim 6, wherein the second advertisement server is configured
to modify the relevance score parameter value of at least one of the plural advertisement
results based on content of the top one of multiple search results included in the
second advertisement request.
8. A system as claimed in claim 6 or claim 7, wherein the second advertisement server
is configured to modify the relevance score parameter value of at least one of the
plural advertisement results based on a location of the top one of multiple search
results included in the second advertisement request.
9. A system as claimed in any preceding claim, wherein the number of advertisements included
in the interim advertisement response is at least equal to 250, at least equal to
500, or at least equal to 740 or at least equal to 1000.
10. A system as claimed in any preceding claim, wherein the number of advertisements included
in the interim advertisement response is at least 100 times greater that the number
of advertisements included in the full advertisement response.
11. A system as claimed in any preceding claim, wherein the front end is configured to
process the search results received from the search server and, for the at least some
of the search results, to include some but not all of the information comprising the
search results in the second advertisement request.
12. A system as claimed in any preceding claim, wherein the front end is configured to
include in the second advertisement request one or more of:
content type information;
map information indicating a map area;
information identifying the presence or absence of a knowledge card; and
information specific to the user.
13. A system as claimed in any preceding claim, wherein the second advertising server
is configured to modify visual appearance characteristics of one or more advertisements
based on the search results included in the second advertisement request.
14. A method of providing advertisements with search results in response to a search query,
the method comprising:
a front end:
receiving a search query; and
sending a search request to a search server and sending a first advertisement request
to an advertisement server, wherein the search request includes the search query or
information based on the search query, and wherein the first advertisement request
includes the search query or information based on the search query and an indication
that an interim advertisement response is to be provided;
a first advertisement server:
in response to receiving the first advertisement request, searching for advertisements
related to the search query to produce plural advertisement results;
selecting a plurality of the plural advertisements;
preparing an interim advertisement response including some or all content of the selected
plural advertisements; and
sending the interim advertisement response to the front end;
the front end:
receiving search results from the search server;
receiving the interim advertisement response from the first advertisement server;
and
sending at least some of the search results and at least some of the interim advertisement
response to the advertisement server in a second advertisement request, wherein the
second advertisement request includes an indication that a full advertisement response
is to be provided;
a second advertisement server:
receiving the second advertisement request;
calculating a score for plural ones of the advertisements included in the interim
advertisement response to produce plural advertisement results each with an associated
score, the score for some of the plural ones of the advertisements being based on
the search results included in the second advertisement request;
ranking the plural advertisement results according to their scores;
selecting one or more of the highest ranked plural advertisement results; and
sending a full advertisement response to the front end, the full advertisement response
including the selected one or more highest ranked plural advertisement results; and
the front end:
providing the search results with the selected one or more highest ranked plural advertisement
results.
15. A computer program comprising machine readable instructions that when executed control
a system comprising a front end and first and second advertisement servers to perform
a method as claimed in claim 14.
Amended claims in accordance with Rule 137(2) EPC.
1. A system for providing advertisements with search results in response to a search
query, the system comprising a front end (101) and at least first and second advertisement
servers (103a, 103b), wherein:
the front end is configured:
to receive (Fig.3 S2) a search query; and
to send (Fig.3 S3) a search request to a search server (102) and to send a first advertisement
request to an advertisement server, wherein the search request includes the search
query or information based on the search query, and wherein the first advertisement
request includes the search query or information based on the search query and an
indication that an interim advertisement response is to be provided;
the first advertisement server is configured:
in response to receiving the first advertisement request, to search (Fig.4 S3) for
advertisements related to the search query to produce plural advertisement results;
to select (Fig.4 S6) a plurality of the plural advertisements;
to prepare (Fig.4 S7, S8) an interim advertisement response including some or all
content of the selected plural advertisements; and
to send (Fig.4 S8) the interim advertisement response to the front end;
the front end is configured:
to receive (Fig.3 S5) search results from the search server;
to receive (Fig.3 S5) the interim advertisement response from the first advertisement
server; and
to send (Fig.3 S7) at least some of the search results and at least some of the interim
advertisement response to the advertisement server in a second advertisement request,
wherein the second advertisement request includes an indication that a full advertisement
response is to be provided;
the second advertisement server is configured:
to receive (Fig.5 S2) the second advertisement request;
to calculate (Fig.5 S5) a score for plural ones of the advertisements included in
the interim advertisement response to produce plural advertisement results each with
an associated score, the score for some of the plural ones of the advertisements being
based on the search results included in the second advertisement request;
to rank (Fig.5 S7) the plural advertisement results according to their scores;
to select (Fig.5 S8) one or more of the highest ranked plural advertisement results;
and
to send (Fig.5 S9) a full advertisement response to the front end, the full advertisement
response including the selected one or more highest ranked plural advertisement results;
and
the front end is configured:
to provide (Fig.3 S10) the search results with the selected one or more highest ranked
plural advertisement results.
2. A system as claimed in claim 1, wherein the second advertisement server is configured
to respond to receiving the second advertisement request by performing an additional
search for advertisements using information forming part of the second advertisement
request.
3. A system as claimed in claim 1 or claim 2, wherein the second advertisement request
includes a predicted click-through rate parameter value for each of the plural ones
of the advertisements and wherein the second advertisement server is configured to
modify the predicted click-through rate parameter value of at least one of the plural
advertisement results depending on the search results included in the second advertisement
request prior to calculating the scores for the advertisements.
4. A system as claimed in claim 3, wherein the second advertisement server is configured
to modify the score of at least one of the plural advertisement results by modifying
the predicted click-through rate of at least one of the plural advertisement results
depending on user interface elements that are indicated in the search results included
in the second advertisement request.
5. A system as claimed in any preceding claim, wherein the second advertisement request
includes a bid parameter value for each of the plural ones of the advertisements and
wherein the second advertisement server is configured to modify the bid parameter
value of at least one of the plural advertisement results depending on the search
results included in the second advertisement request prior to calculating the scores
for the advertisements.
6. A system as claimed in any preceding claim, wherein the second advertisement request
includes a relevance score parameter value for each of the plural ones of the advertisements
and wherein the second advertisement server is configured to modify the relevance
score parameter value of at least one of the plural advertisement results depending
on the search results included in the second advertisement request prior to calculating
the scores for the advertisements.
7. A system as claimed in claim 6, wherein the second advertisement server is configured
to modify the relevance score parameter value of at least one of the plural advertisement
results based on content of the top one of multiple search results included in the
second advertisement request.
8. A system as claimed in claim 6 or claim 7, wherein the second advertisement server
is configured to modify the relevance score parameter value of at least one of the
plural advertisement results based on a location of the top one of multiple search
results included in the second advertisement request.
9. A system as claimed in any preceding claim, wherein the number of advertisements included
in the interim advertisement response is at least equal to 250, at least equal to
500, or at least equal to 750 or at least equal to 1000.
10. A system as claimed in any preceding claim, wherein the number of advertisements included
in the interim advertisement response is at least 100 times greater that the number
of advertisements included in the full advertisement response.
11. A system as claimed in any preceding claim, wherein the front end is configured to
process the search results received from the search server and, for the at least some
of the search results, to include some but not all of the information comprising the
search results in the second advertisement request.
12. A system as claimed in any preceding claim, wherein the front end is configured to
include in the second advertisement request one or more of:
content type information;
map information indicating a map area;
information identifying the presence or absence of a knowledge card; and
information specific to the user.
13. A system as claimed in any preceding claim, wherein the second advertising server
is configured to modify visual appearance characteristics of one or more advertisements
based on the search results included in the second advertisement request.
14. A method of providing advertisements with search results in response to a search query,
the method comprising:
a front end (101):
receiving (Fig.3 S2) a search query; and
sending (Fig.3 S3) a search request to a search server (102) and sending a first advertisement
request to an advertisement server, wherein the search request includes the search
query or information based on the search query, and wherein the first advertisement
request includes the search query or information based on the search query and an
indication that an interim advertisement response is to be provided;
a first advertisement server (103a):
in response to receiving the first advertisement request, searching (Fig.4 S3) for
advertisements related to the search query to produce plural advertisement results;
selecting (Fig.4 S6) a plurality of the plural advertisements;
preparing (Fig.4 S7, S8) an interim advertisement response including some or all content
of the selected plural advertisements; and
sending (Fig.4 S8) the interim advertisement response to the front end;
the front end:
receiving (Fig.3 S5) search results from the search server;
receiving (Fig.3 S5) the interim advertisement response from the first advertisement
server; and
sending (Fig.3 S7) at least some of the search results and at least some of the interim
advertisement response to the advertisement server in a second advertisement request,
wherein the second advertisement request includes an indication that a full advertisement
response is to be provided;
a second advertisement server (103b):
receiving (Fig.5 S2) the second advertisement request;
calculating (Fig.5 S5) a score for plural ones of the advertisements included in the
interim advertisement response to produce plural advertisement results each with an
associated score, the score for some of the plural ones of the advertisements being
based on the search results included in the second advertisement request;
ranking (Fig.5 S7) the plural advertisement results according to their scores;
selecting (Fig.5 S8) one or more of the highest ranked plural advertisement results;
and
sending (Fig.5 S9) a full advertisement response to the front end, the full advertisement
response including the selected one or more highest ranked plural advertisement results;
and
the front end:
providing (Fig.3 S10) the search results with the selected one or more highest ranked
plural advertisement results.
15. A computer program comprising machine readable instructions that when executed control
a system comprising a front end and first and second advertisement servers to perform
a method as claimed in claim 14.