1). Field of the Invention
This invention relates generally to a method and system according to which a host computer system interacts with a data provider computer system and one or more user computer systems, and more specifically to a method and system of using domain ranking for calculating a call number for representations.
2). Discussion of Related Art
A host computer system is often used to receive a query over a network such as the Internet from a user computer system and then to interact over the Internet with a data provider computer system to retrieve representations for the query and then to return the representations in a results page to the user computer system. These representations may for example be advertisements, news articles or the like.
The host computer system usually transmits a call number to the data provider computer system. The data provider computer system then returns a number of representations corresponding to the call number. The host computer system may for example transmit a call number of five, receive five representations from the data provider computer system, and then transmit all five representations to the user computer system.
Not all queries and representations are alike. Some queries may be more commercial than other queries, but if five representations are transmitted for both queries, it may result in an undesirable user experience because too many advertisements are transmitted for a query that is less commercial. Users also prefer to receive advertisements from certain domains than from other domains.
The invention provides a method of distributing representations in a network environment having a host computer system connected over at least one network to a plurality of user computer systems and to a data provider computer system, including ranking, with a processor, domains of representations in a first historical data set, receiving, with the processor, a query from a user computer system within a website, calculating, with the processor, a call number, the call number depending on the rank of the representations in the first historical data set for the query, recording, with the processor, the call number for the query, transmitting, with the processor, a call from the host computer system over the network to the data provider computer system corresponding to the query, wherein the call includes the call number for the query, receiving, with the processor, a plurality of representations for the query from the data provider computer system over the network at the host computer system and transmitting, with the processor, the representations from the host computer system over the network to the user computer system.
The invention also provides a host computer system including a processor, a computer-readable medium connected to the processor, a network interface device connected to the processor and connected over at least one network to a plurality of user computer systems and to a data provider computer system and a set of instructions on the computer-readable medium, being executable by the processor. The set of instructions includes a first ranking module ranking domains of representations in a first historical data set, a call calculation module calculating a call number, the call number depending on the rank of the representations in the first historical data set for the query and recording the call number for a query and a website receiving a query from a user computer system, transmitting a call from the host computer system over the network to the data provider computer system corresponding to the query, wherein the call includes the call number for the query, receiving a plurality of representations for the query from the data provider computer system over the network at the host computer system, and transmitting the representations from the host computer system over the network to the user computer system.
The invention further provides a computer-readable medium having stored thereon a set of instructions which, when executed by a processor of a computer carries out method of distributing representations in a network environment having a host computer system connected over at least one network to a plurality of user computer systems and to a data provider computer system, including ranking, with a processor, domains of representations in a first historical data set, receiving, with the processor, a query from a user computer system within a website, calculating, with the processor, a call number, the call number depending on the rank of the representations in the first historical data set for the query, recording, with the processor, the call number for the query, transmitting, with the processor, a call from the host computer system over the network to the data provider computer system corresponding to the query, wherein the call includes the call number for the query, receiving, with the processor, a plurality of representations for the query from the data provider computer system over the network at the host computer system and transmitting, with the processor, the representations from the host computer system over the network to the user computer system.
The invention is further described by way of example with reference to the accompanying drawings, wherein:
As shown in
The website 48 transmits a call number to the data provider computer system 28. The website 48 simultaneously transmits the query received from the user computer system 24 to the data provider computer system 28. The data provider computer system 28 then utilizes the query to identify representations matching the query. As will be described herein, the representations are advertisements, although it should be understood that the data provider computer system may also provide other feeds such as news feeds.
Once the representations matching the queries have been identified, the data provider computer system 28 returns the representations to the website 48. The data provider computer system 28 however limits the number of representations transmitted to the website 48 to the call number. For example, if the data provider computer system 28 has identified seven representations, but the call number is five, then the data provider computer system 28 will only transmit five representations to the website 48. In situations where the data provider computer system 28 has identified fewer than five representations, for example three representations, then only the three representations that have been identified are transmitted by the data provider computer system 28 to the website 48.
The website 48 then receives the plurality of representations for the query from the data provider computer system 28 over the network. The website 48 then places the representations within a results page and transmits the results page, with the representations, over the network, to the user computer system 24. When the user computer system 24 receives the results page, the results page is displayed within the viewing pane 40 of
If the user selects one of the representations in the results page, the browser is redirected to a URL of the representation. A script in the results page is automatically executed so that a recording signal is simultaneously transmitted from the user computer system 24 over the network 20 to the website 48 and is recorded within one or more data sets at the host computer system 22. As such, all responses for a given query are recorded within the data set. The data set can then be ranked for the respective query.
All four methods shown in
The call number that is calculated by the representation intelligence system depends on all the factors in
Within representation detective system 50, at step 54, responses from user computer systems 24 and 26 are recorded within a first historical data set at the host computer system 22. At step 56, the domains of the representations in the first historical data set are ranked as described with reference to
Within the representation intelligence system 52, at step 58, the responses of the user computer systems 24 and 26 are recorded within a second historical data set at the host computer system 22. At step 60, the queries in the second historical data set are ranked based on a number of responses received for each representation from a plurality of user computer systems 24 and 26, as described with reference to
What should be noted at this point is that the ranking of the domains in step 56 and the queries in step 60 occurs over a long period of time, typically over at least one month. The host computer system 22 can thus build up a large amount of data and create rankings that are statistically relevant and significant. In the following description, the response of the host computer system 22 can change very quickly, e.g. every 20 minutes or within minutes or seconds. These responses of the host computer system 22 are not due to sudden changes in the rankings as discussed with reference to
At step 62, the website 48 receives a query from a user computer system, e.g. the user computer system 24. At step 64, the website 48 sends the query to the representation intelligence system 52 and the representation detective system 50.
The representation detective system 50, after receiving the query from the website 48 at step 64, then at step 66, executes a block rejection operation wherein the representation detective system 50 calculates a call number that depends on the rank of the domains of the representations in the first historical data set. Other methods of calculating a call number based on the rank of the domains may be used, but block rejections is the preferred method of doing so.
When determining a block to be rejected, a block is selected that includes the last representation and including a series of the representations as provided by the data provider computer system 28 sequentially in reverse order. For now the final representation is the fifth representation R5. First, we assume that the series only includes a single representation, namely the last representation R5. If the threshold performance of the block including only the final representation is, for example 8%, then the final representation R5 is rejected because the domain D5 has performance ranking of 3% which is less than 8%.
Next, the size of the block is increased by 1. The block still includes the last of the representations and includes a series of representations provided by the data provider computer system 28 sequentially in reverse order, but now includes the second to last representation R4. The domain D4 of the representation R4 has been ranked at a 15% performance. A combined ranking of the domains D5 and D4 is then calculated. Such a combined ranking may for example be a total ranking of the domains D5 and D4, in the present example 18%. If we assume that the predetermined threshold for the combined ranking of the domains D5 and D4 is 16%, then the block including the representations D5 and D4 is not rejected because the combined performance of 18% is more than the threshold performance of 16%. It can be seen that the predetermined threshold of 16% for the block including the representations R5 and R4 is larger than the predetermined threshold of 8% of the block that only includes the final representation R5.
Next, the number of representations in the block is again increased by 1, so that the block now includes representations R5, R4 and R3. The representation R3 has a domain D3 with performance ranking of 5%. The total performance of the domains D5, D4 and D3 is thus 23%. Next, we assume that the predetermined threshold of the combined ranking of the domains D5, D4 and D3 is at for example 25%, which is higher than the actual performance of the domains D5, D4 and D3 of 23%. Because the combined performance of the domains D5, D4 and D3 does not meet the predetermined threshold, the entire block is rejected. The entire block is thus rejected regardless of the superior performance of the domain D4. The size of the block is shown as M=3 for Qx. On the other hand if the performance ranking of D3 were 3% (bad) but that of D4 and D5 were 25% and 3% respectively (good and bad), the system may have included one bad domain D3 in order to include the good domain D4 but have excluded D5 any ways because it is bad and below D4.
The call number N′ is calculated to be N−M=5−3=2 for query Qx. The call number is thus calculated by subtracting a number of representations that are included in the block of the representations to be rejected from the total of representations received from the data provider computer system 28 in a previous session. Only the representations R2 and R1 are retained for a future session because of the superior performance of the domains D2 and D1. The call number for the representation detective system 50 is thus calculated to be two. At step 68 in
As mentioned, the final representation was the fifth representation R5. Block rejection can then be employed to reduce the call number to for example four. In a next session the fourth representation will be the final representation, which will then form the basis of another block rejection calculation.
When the representation intelligence system 52 receives the query from the website 48 following step 64, the representation intelligence system 52 at step 72 calculates a call number that depends on the rank of the queries in the second historical data set. The call number calculated by the representation intelligence system 52 is thus based on the ranking of the queries as described with reference to
At step 80, the website 48 selects the smallest call number for the query. The representation intelligence system 52, for example at step 76, returns a call number of four and the representation detective system 50, at step 70, may return a call number of two, in which case the website 48 selects a call number of two. If the representation detective system 50 at step 70 returns a call number of more than four then the website 48 at step 80 selects a call number of four.
At step 82, the website 48 transmits a call from the host computer system 22 over the network 20 to the data provider computer system 28. The call includes the query and includes the call number for the query that has been selected at step 80. The data provider computer system 28 then extracts a number of representations from a data store and transmits the representations to the website 48 in response to the call. The number of representations transmitted by the data provider computer system 28 is no more than the call number that has been transmitted in the call at step 82. At step 84, the website 48 on behalf of the host computer system 22 receives the plurality of representations for the query from the data provider computer system 28 over the network 20. These representations are not permitted to be reordered, per an agreement between operators of the host computer system 22 and the data provider computer system 28.
At step 86, the representations received at step 84 are transmitted to the representation detective system 50. As mentioned with reference to
At step 88, the website 48 transmits the representations in a results page from the host computer system 22 over the network 20 to the user computer system 24. The representations are still in the same order as when they were received from the data provider computer system 28. The user at the user computer system 24 may or may not select one or more of the representations. If a representation is selected, a response is transmitted from the user computer system 24 back to the website 48. At step 90, the website 48 receives the response from the user computer system 24 over the network 20 on behalf and at the host computer system 22 based on the selection of the representation at the respective user computer system 24. At step 92, the website 48 sends the representations and the responses to the representation intelligence system 52 and the representation detective system 50. The representation detective system 50 then again records the response at step 54 and the representation intelligence system 52 records the response at step 58.
Block rejection suppresses representations based on relatively recent feedback from the data provider computer system 28 received at step 84 in
As shown in
As further illustrated in
The access control step 94 in
Referring again to
A feature of the application shell 100 is that it provides an integration functionality 108 and 110 for other applications to be integrated therewith. The integration functionality 108 is accessible through a port, illustrated as Port 8600. Similarly, the integration functionality 110 is accessible through a port, illustrated as Port 7950. In general, the application shell 100 is responsible for executing the methods of receiving the plurality of representations for the query from the data provider computer system over the network at the host computer system and receiving the response from the user computer system over the network at the host computer system based on selection of one of the representations at the respective user computer system.
The representation intelligence system 52 is second representation system that executes the method of receiving the query from the website 48, ranking the representations in the second historical data set 142, calculating the call number, recording the call number for the query and recording the response within the second historical data set 142.
The representation detective system 50 includes a first data set developer 120, the first historical data set 122, a domain ranking module 124, a block rejection and call calculation module 126, the access control module 128 and a live interaction component 130. The first data set developer 120 develops the first historical data set 122 with the assistance of the application shell 100. The domain ranking module 124 ranks the domains within the first historical data set 122 with the assistance the application shell 100. The live interaction component 130 receives a query from the website 48 and returns a call number to the website 48. The block rejection and call calculation module 126 calculates a call number based on the ranking of the domains within the first historical data set 122. The access control module 128 executes the access control step 94 in
The representation intelligence system 52 includes a second data set developer 140, a second historical data base 142, a query ranking module 144, a live interaction component 146 and a call calculation module 148. The second data set developer 140 develops the second historical data set 142 with the assistance of the application shell 100. The query ranking module 144 ranks the queries within the second historical data set 142. The live interaction component 146 receives a query from the website 48 and returns a call number to the website 48 after the call number is calculated by the call calculation module 148.
The exemplary computer system 200 includes a processor 230 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both), a main memory 232 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), and a static memory 234 (e.g., flash memory, static random access memory (SRAM, etc.), which communicate with each other via a bus 236.
The computer system 200 may further include a video display 238 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 200 also includes an alpha-numeric input device 240 (e.g., a keyboard), a cursor control device 242 (e.g., a mouse), a disk drive unit 244, a signal generation device 246 (e.g., a speaker), and a network interface device 248.
The disk drive unit 244 includes a machine-readable medium 250 on which is stored one or more sets of instructions 252 (e.g., software) embodying any one or more of the methodologies or functions described herein. The software may also reside, completely or at least partially, within the main memory 232 and/or within the processor 230 during execution thereof by the computer system 200, the memory 232 and the processor 230 also constituting machine readable media. The software may further be transmitted or received over a network 254 via the network interface device 248.
While the instructions 252 are shown in an exemplary embodiment to be on a single medium, the term “machine-readable medium” should be taken to understand a single medium or multiple media (e.g., a centralized or distributed database or data source and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories and optical and magnetic media.
While certain exemplary embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative and not restrictive of the current invention, and that this invention is not restricted to the specific constructions and arrangements shown and described since modifications may occur to those ordinarily skilled in the art.