Language selection

Search

Patent 2696481 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent Application: (11) CA 2696481
(54) English Title: CONTENT SERVER LATENCY DETERMINATION
(54) French Title: DETERMINATION DE LATENCE D'UN SERVEUR DE CONTENU
Status: Deemed Abandoned and Beyond the Period of Reinstatement - Pending Response to Notice of Disregarded Communication
Bibliographic Data
(51) International Patent Classification (IPC):
(72) Inventors :
  • TSUN, STEPHEN (United States of America)
(73) Owners :
  • GOOGLE INC.
(71) Applicants :
  • GOOGLE INC. (United States of America)
(74) Agent: SMART & BIGGAR LP
(74) Associate agent:
(45) Issued:
(86) PCT Filing Date: 2008-08-07
(87) Open to Public Inspection: 2009-02-12
Examination requested: 2013-08-01
Availability of licence: N/A
Dedicated to the Public: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): Yes
(86) PCT Filing Number: PCT/US2008/072526
(87) International Publication Number: WO 2009021138
(85) National Entry: 2010-02-04

(30) Application Priority Data:
Application No. Country/Territory Date
11/836,019 (United States of America) 2007-08-08
11/836,069 (United States of America) 2007-08-08

Abstracts

English Abstract

A performance of a publisher server, a first content server, and a second content server is determined. Latency time information is determined based on the publisher server performance, the first content server performance, and the second content server performance, the latency time information representing a length of time to load content associated with each of the publisher server, the first content server, and the second content server.


French Abstract

La présente invention concerne les performances d'un serveur éditeur, d'un premier serveur de contenu et d'un second serveur de contenu. Les informations de latence sont déterminées en fonction des performances du serveur éditeur, des performances du premier serveur de contenu et des performances du second serveur de contenu, les informations de latence représentant une durée pour charger le contenu associé à chaque serveur éditeur, au premier serveur de contenu et au second serveur de contenu.

Claims

Note: Claims are shown in the official language in which they were submitted.


What is claimed is:
1. A method, comprising:
determining a performance of a publisher server;
determining a performance of a first content server;
determining a performance of a second content server; and
determining latency time information based on the publisher server
performance, the
first content server performance, and the second content server performance,
the latency time
information representing a length of time to load content associated with each
of the
publisher server, the first content server, and the second content server.
2. The method of claim 1, wherein the publisher server performance comprises:
a requesting time to retrieve publisher content from the publisher server; and
a rendering time to render the publisher content.
3. The method of claim 1, wherein determining the performance of the publisher
server
comprises:
requesting a document containing a script, the request including an indicator;
receiving the document in response to the request; and
executing the script to determine the publisher server performance in response
to
receipt of the indicator.
4. The method of claim 3, wherein the document is identified by a Uniform
Resource
Locator (URL) and the indicator is an argument added to the URL.
5. The method of claim, further comprising:
displaying a user interface; and
displaying the publisher server performance in the user interface.
6. The method of claim 5, wherein displaying the publisher server performance
comprises:
displaying running time information in the user interface representing a
length of time
to load content associated with the first content server.
14

7. The method of claim 1, wherein the first content server performance
comprises:
a first advertisement request time to request advertisements from the first
content
server; and
a second advertisement request time to request advertisements from the second
content server.
8. The method of claim 1, wherein determining the performance of the first
content
server comprises:
requesting a document containing a script, the request including an indicator;
receiving the document in response to the request; and
executing the script to determine the first content server performance in
response to
receipt of the indicator.
9. The method of claim 8, wherein the document is identified by a Uniform
Resource
Locator (URL) and the indicator is an argument added to the URL.
10. The method of claim 8, further comprising:
displaying a user interface; and
displaying the first content server performance in the user interface.
11. The method of claim 10, wherein displaying the first content server
performance
comprises:
displaying running time information in the user interface representing a
length of time
to load content associated with the first content server.
12. The method of claim 1, wherein the second content server performance
comprises:
a rendering time to render advertisements from at least one of the first
content server
and the second content server.
13. A method, comprising:
requesting a document identified by a Uniform Resource Locator (URL), the
document containing a reference to a script, the request including a first
argument added to
the URL;

requesting the document identified by the URL, the document containing a
reference
to the script, the request including a second argument added to the URL;
receiving the document containing the script;
executing the script to determine a publisher server latency time and a first
content
server latency time in accordance with the first argument and the second
argument; and
determining a second content server latency time based on the publisher server
latency time and the first content server latency time.
14. The method of claim 13, further comprising:
displaying at least one of the publisher server latency time, the first
content server
latency time, and the second content server latency time in a user interface,
the user interface
including running time information representing a length of time to load
content associated
with at least one of the publisher server, the first content server, and the
second content
server.
15. A system, comprising:
a processor configurable to determine a performance associated with a
publisher
server, a first content server, and a second content server; and
a client device configurable to determine latency time information based on
the
publisher server performance, the first content server performance, and the
second content
server performance, the latency time information representing a length of time
to load content
associated with each of the publisher server, the first content server, and
the second content
server.
16. The system of claim 14, wherein the processor is further configurable to:
request a document identified by a Uniform Resource Locator (URL), the
document
containing a script, the request including a first argument added to the URL;
request a document identified by the URL, the document containing the script,
the
request including a second argument added to the URL;
receive the document containing the script;
execute the script to determine the publisher server latency time and a first
content
server latency time in accordance with the first argument and the second
argument; and
determine the second content server latency time based on the publisher server
latency
time and the first content server latency time.
16

17. The system of claim 14, wherein the client device is further configurable
to
display at least one of the publisher server performance, the first content
server
performance, and the second content server performance in a user interface,
the user interface
including running time information representing a length of time to load
content associated
with at least one of the publisher server, the first content server, and the
second content
server.
18. A system, comprising:
a processor configurable to request content from one or more remote locations,
the
content including computer executable instructions to determine latency
information
associated with the request; and
an interface operatively coupled to the processor and configurable to display
the
latency information, the latency information including latency times
associated with the one
or more remote locations associated with the display of the content in the
interface.
19. A computer-readable medium having instructions stored thereon, which, when
executed by a processor, causes the processor to perform the operations of:
determining a performance associated with a publisher server;
determining a performance associated with a first content server;
determining a performance associated with a second content server; and
determining latency time information based on the publisher server
performance, the
first content server performance, and the second content server performance,
the latency time
information representing a length of time to load content associated with each
of the
publisher server, the first content server, and the second content server.
20. A system, comprising:
a means for determining a performance associated with a publisher server;
a means for determining a performance associated with a first content server;
a means for determining a performance associated with a second content server;
and
a means for determining latency time information based on the publisher server
performance, the first content server performance, and the second content
server
performance, the latency time information representing a length of time to
load content
17

associated with each of the publisher server, the first content server, and
the second content
server.
21. A method, comprising:
requesting content, wherein the request is a Uniform Resource Locator (URL)
directed to the content, the URL comprising an added argument;
loading the content into a content page in a first user interface;
displaying a second user interface;
displaying one or more content items associated with the content page in the
second
user interface, in accordance with the argument added to the URL; and
displaying one or more attributes associated with the one or more content
items in the
second user interface.
22. The method of claim 21, wherein loading the content into a content page in
a first user
interface comprises:
loading a portion of the content page into the first user interface, the
portion
comprising content from a publisher server.
23. The method of claim 21, wherein displaying a second user interface
comprises:
receiving a document containing a script in response to the request for
content; and
executing the script to display the second user interface in response to
receipt of the
argument.
24. The method of claim 21, wherein the one or more content items comprise one
or more
advertisements.
25. The method of claim 21, wherein displaying the one or more content items
comprises:
saving a copy of the one or more content items received from one or more
content
servers; and
displaying the one or more content items in the second user interface during
the
loading of the content page in a first user interface.
26. The method of claim 21, wherein displaying one or more content items
comprises:
capturing one or more identifications associated with the one or more content
items;
18

opening a second user interface;
requesting the one or more content items from the one or more content servers
utilizing the one or more identifications; and
rendering the one or more content items in the second user interface.
27. The method of claim 21, wherein the attributes comprise:
an associated load time for each content item.
28. The method of claim 21, wherein the attributes comprise:
a total load time associated with the one or more content items.
29. The method of claim 21, further comprising:
displaying the source code associated with the one or more content items in
the
second user interface.
30. The method of claim 29, further comprising:
saving the source code associated with the second user interface.
31. The method of claim 30, further comprising:
loading the saved source code in a user interface; and
rendering the one or more content items in the user interface.
32. A method, comprising:
loading a first portion of a content page in a first user interface, the first
portion
comprising content received from a publisher server;
displaying a second user interface;
loading a second portion of the content page in the second user interface, the
second
portion comprising one or more content items received from one or more content
servers; and
displaying one or more attributes associated with the one or more content
items in the
second user interface.
33. The method of claim 32, wherein the attributes comprise:
an associated load time for each content item.
19

34. The method of claim 32, wherein the attributes comprise:
a total load time associated with the one or more content items.
35. A method, comprising:
loading a first portion of a content page in a first user interface, the first
portion
comprising content received from a publisher server;
displaying a second user interface;
displaying source code associated with a second portion of the content page in
the
second user interface, the second portion comprising one or more content items
received from
one or more content servers; and
saving the source code in a file.
36. The method of claim 35, further comprising:
opening the file in a user interface, wherein the user interface renders the
source code
in the file.
37. A system, comprising:
a publisher server configurable to transmit a first portion of a content page
to a client
device, the first portion comprising publisher content;
one or more content servers configurable to transmit a second portion of the
content
page to the client device, the second portion comprising one or more content
items;
the client device configurable to:
load the first portion of the content page in a first user interface;
load the second portion of the content page in a second user interface; and
display one or more attributes associated with the one or more content items
in
the second user interface.
38. A system, comprising:
a client device configurable to save a copy of one or more content items
associated
with a content page received from one or more content servers; and
a processor configurable to:
generate a user interface;
generate a combined source code for the one or more saved content items; and
insert the combined source code into the user interface.

39. A system, comprising:
a publisher server configurable to capture one or more content item
identifications
associated with one or more content items; and.
a server processor configurable to:
generate a user interface;
generate a request to a content server requesting the one or more content
items
associated with the one or more content item identifications; and
render the one or more content items in the user interface.
40. A system, comprising:
a means for loading a first portion of a content page in a first user
interface, the first
portion comprising content received from a publisher server;
a means for displaying a second user interface;
a means for loading a second portion of the content page in the second user
interface,
the second portion comprising one or more content items received from one or
more content
servers; and
a means for displaying one or more attributes associated with the one or more
content
items in the second user interface.
21

Description

Note: Descriptions are shown in the official language in which they were submitted.


CA 02696481 2010-02-04
WO 2009/021138 PCT/US2008/072526
CONTENT SERVER LATENCY DETERMINATION
FIELD
This disclosure relates to information retrieval.
BACKGROUND
Content displayed on a web page can be generated by one or more content item
servers in response to content item requests that are generated during the
rendering of the
web page by a client device. The content item requests can be generated
synchronously with
respect to the rendering of the web page. Likewise, the content items received
in response to
the content item requests can be processed synchronously with respect to the
rendering of the
web page. For example, when a web page is rendered, JavaScript may execute and
request
an advertisement from a first content server. In turn, the first content
server may request an
advertisement from a second content server. If the advertisement is retrieved
synchronously,
the rendering of the web page is delayed until a requested advertisement is
received from a
content server. Once the advertisement is received and rendered, e.g.,
displayed on the web
page, the rendering of the remainder of the web page resumes.
A drawback of synchronous content item retrieval is that if a content item
server is
slow, then the rendering of the remainder of the web page will be delayed. To
mitigate the
potential effects of synchronous content item processing, web page publishers
attempt to
identify the source of the delay, i.e., the content item server that may be
slow or temporarily
inoperable, and to calculate the total latency times. However, it is often a
complex task to
compile the multiple HTTP requests and responses from the rendering of a web
page in order
to calculate the latency times associated with the different servers. For
example, the multiple
HTTP requests and responses can look unfamiliar, as they do not appear on the
web page
itself, but are returned by the first content server. Furthermore, if it is
determined that a
particular server, e.g., the second content server, is the source of the
delay, it is difficult to
demonstrate the delay to the operator of the second content server.
SUMMARY
According to some implementations, a performance of a publisher server, a
first
content server, and a second content server is determined. Latency time
information is
determined based on the publisher server performance, the first content server
performance,
1

CA 02696481 2010-02-04
WO 2009/021138 PCT/US2008/072526
and the second content server performance. The latency time information can
represent a
length of time to load content associated with each of the publisher server,
the first content
server, and the second content server.
According to some implementations, a Uniform Resource Locator (URL) of a
document containing a reference to a script with a first behavior can be
specified, wherein a
first argument is added to the URL. The URL of the document containing a
reference to the
script with a second behavior can be specified, wherein a second argument is
added to the
URL. The document containing the script is received in response to the
requests. The script
with the first behavior is executed to determine a publisher server latency
time, and the script
with the second behavior is executed to determine a first content server
latency time. A
second content server latency time is determined based on the publisher server
latency time
and the first content server latency time.
According to some implementations, a system includes a processor configurable
to
determine a performance associated with a publisher server, a first content
server, and a
second content server. A client device is configurable to determine latency
time information
based on the publisher server performance, the first content server
performance, and the
second content server performance, the latency time information representing a
length of time
to load content associated with each of the publisher server, the first
content server, and the
second content server. According to some implementations, a system includes a
processor
configurable to request content from one or more remote locations, wherein the
content
includes computer executable instructions to determine latency information
associated with
the request. An interface that is operatively coupled to the processor is
configurable to
display the latency information, the latency information including latency
times associated
with the one or more remote locations associated with the display of the
content in the
interface.
According to some implementations, content is requested, wherein the request
is a
Uniform Resource Locator (URL) directed to the content, and the URL includes
an added
argument. The requested content can be loaded into a content page in a first
user interface.
A second user interface can then be displayed. One or more content items
associated with the
content page can then be displayed in the second user interface in accordance
with the
argument added to the URL. In addition, one or more attributes associated with
the one or
more content items can be displayed in the second user interface.
According to some implementations, a first portion of a content page can be
loaded in
a first user interface, where the first portion includes content received from
a publisher server.
2

CA 02696481 2010-02-04
WO 2009/021138 PCT/US2008/072526
A second user interface can then be displayed. A second portion of the content
page can be
loaded in the second user interface, where the second portion includes one or
more content
items received from one or more content servers. In addition, one or more
attributes
associated with the one or more content items can be displayed in the second
user interface.
According to some implementations, a system includes a publisher server
configurable to transmit a first portion of a content page to a client device,
wherein the first
portion includes publisher content. Additionally, one or more content servers
can be
configurable to transmit a second portion of the content page to the client
device, where the
second portion includes one or more content items. The client device can be
configurable to
load the first portion of the content page in a first user interface, load the
second portion of
the content page in a second user interface, and display one or more
attributes associated with
the one or more content items in the second user interface.
According to some implementations, a system includes a client device
configurable to
save a copy of one or more content items associated with a content page
received from one or
more content servers. Additionally, a processor is configurable to generate a
user interface;
generate a combined source code for the one or more saved content items; and
insert the
combined source code into the user interface.
According to some implementations, a system includes a publisher server
configurable to capture one or more content item identifications associated
with one or more
content items. A server processor is configurable to generate a user
interface; generate a
request to a first content server requesting the one or more content items
associated with the
one or more content item identifications; and render the one or more content
items into the
user interface.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a block diagram of an example system for requesting content from a
content
server.
Fig. 2 is an example process for determining latency contributions.
Fig. 3 is another example process for determining latency contributions.
Fig. 4 illustrates an example interface displaying the output of NoFetch mode.
Fig. 5 illustrates an example interface displaying the output of NoRender
mode.
Fig. 6 is an example process for determining a source of latency issues.
Fig. 7 is an example process for determining the latency time associated with
one or
more content servers.
3

CA 02696481 2010-02-04
WO 2009/021138 PCT/US2008/072526
Fig. 8 is another example process for determining the latency time associated
with one
or more content servers.
Fig. 9 is another example process for determining the latency time associated
with one
or more content servers.
Fig. 10 is an illustration of an example user interface.
DETAILED DESCRIPTION
Fig. 1 is a block diagram of an example system 10 for requesting content from
one or
more content servers. In one implementation, the content may include
advertisements, and
the content servers can be content servers. Different types of content can
also be requested.
In one implementation, a client system 100 is configured to view content
(e.g., visit
web pages) accessible through a network, e.g., the Internet. The client system
100 can, for
example, be a web browser, or a computing device executing network navigation
software,
etc. A web address (e.g., Uniform Resource Locator (URL)) visited by the
client system 100
can be resolved to identify a publisher 102, e.g. a server, hosting a
corresponding web page.
In this example, a client system 100 can send a web page content request 104
to the publisher
102 for the web page content 106. The publisher 102, in response to the
request, provides the
web page content 106 to the client system 100 as, e.g., an HTML document
containing
JavaScript. The web page content 106 can include one or more content
presentations. In an
implementation, the content presentations can include advertisement slots for
advertisements
to be served by a content server. Other content presentations can also be
used.
The web page content 106 provided by the publisher 102 includes a reference to
a set
of instructions 108. In an implementation, the instructions 108 include
storing instructions
108a, timing instructions 108b and request instructions 108c that are used to
render and
present the requested content, e.g., advertisements. In an implementation, the
instructions
108 are provided by a first content server 134, e.g., a content server, and
are stored at the
client system 100, such as in a cache associated with a web browser.
The web page content 106 can define content slots 112 - 120 that are
configured to
display content from the one or more content servers. In an implementation,
the content slots
112 - 120 are advertisement slots that are defined within HTML tags. The
instructions 108
generate content requests 122 - 130 that are issued to request content to fill
the content slots
112 to 120. In an implementation, the requests 122 to 130 are stored in a data
store 132, such
as a buffer 132, and then sent to the content server 134 in one or more
requests 136.
4

CA 02696481 2010-02-04
WO 2009/021138 PCT/US2008/072526
In an implementation, the first content server 134 processes the received
individual or
combined requests 136 and returns identified content 138 to the client system
100. In another
implementation, the first content server 134 processes the received individual
or combined
requests 136 from the client system 100 and sends a combined response 137 to
the client
system 100. For example, the response can be in HTML or JavaScript. The
combined
response 137 to the client system 100 from the first content server 134 can
instruct the client
system 100 to send one or more requests 140 to a second content server 142
requesting
content items. The second content server 142 can then, for example, return
identified content
144 to the client system 100. The identified content 138 and/or 144 can then
be displayed as
part of the publisher's web page in the corresponding content slots, e.g.,
content slots 112,
114 and 116.
An example of the first content server 134 can include a GoogleTM content
server.
Requests can be made to the GoogleTM content server to fill content slots on
the web page
with advertisements. In turn, the GoogleTM content server can identify and
provide
advertisements, or the GoogleTM content server can requests advertisements
from the second
content server 142, i.e., a third party content server. While reference is
made to only two
content servers 134 and 142, more than two content servers can provide content
to a single
web page.
When the client system 100 requests content from the publisher 102, the first
content
server 134, and/or the second content server 142, latency delays can occur.
For example, the
latency delays can be related to a variety of issues, such as a slow network
speed, the
publisher server 102 is slow, the first content server 134 is slow, and/or the
second content
server 142 is slow. A user of the client system 100 can only see a total
latency time it takes
for the web page to load. Therefore, determining the latency delay
contributions attributed to
the publisher server 102, first content server 134, and second content server
142 can be
difficult to demonstrate.
As described in the example above, a total latency time (L) to display a web
page can
be attributed to the speed of the network, the publisher server 102 speed
(L1), which includes
network latency time, the first content server 134 speed (L2), and the second
content server
142 speed (L3). Therefore, by way of example, the calculation for the total
latency time can
be determined by L = L1 + L2 + U.
With reference to Fig. 2, in accordance with some implementations, an example
process 200 to determine latency contributions begins with determining a
performance of a
publisher server (step 202). To determine the performance of the publisher
server 102, a

CA 02696481 2010-02-04
WO 2009/021138 PCT/US2008/072526
request for content from a publisher server 102 can be made by including an
argument (or
other indicator) with the request. For example, the argument "google_nofetch"
can be added
to the URL of a web page content location as follows:
http://www.webpage.com?googlenofetch to implement a NoFetch mode.
A document associated with the requested URL can be received from a content
location. The document can include web page content, media, text, a
downloadable file, etc.
The performance, i.e., a latency time, associated with the publisher server
102 can be
determined. In some implementations, the content serving (e.g., JavaScript)
tags within the
web page content 106 implement diagnostic logic. For example, a script file
within the web
page content 106 can test for various conditions, such as the latency time
associated with the
publisher server 102, and write information to a user interface.
In a NoFetch mode, a script file within the web page content 106 can prevent
the
retrieval of content items from the first content server 134, i.e., requests
made to the first
content server 134 for advertisements. For example, any requests transmitted
to the first
content server 134 can be replaced with a NO-OP instruction, such that they do
nothing
(other than generating a debug trace). Therefore, running in NoFetch mode can
establish a
baseline performance for the publisher server 102 for a web page, i.e., a
NoFetch latency time
(L1) a user would experience if the publisher did not add any advertisements
to the web page.
Next, a performance associated with the first content server 134 is determined
(step
204). To determine the performance of the first content server 134, an
argument (or other
indicator) can be included with the URL of a web page location. For example,
the argument
"googlenorender" can be added to the URL of a web page content location as
follows:
http://www.webpage.com?google_norender to implement a NoRender mode.
In some implementations, the content serving (e.g., JavaScript) tags within
the web
page content 106 implement diagnostic logic. For example, a script file within
the web page
content 106 can test for various conditions, such as the performance, i.e.,
the latency time,
associated with the first content server 134, and write information to a user
interface.
In a NoRender mode, a script file within the web page content 106 can return
content
items from the first content server 134, i.e., requests can be sent to first
content server 134 to
retrieve advertisements. However, after the first content server 134 retrieves
the
advertisements, the script file can prevent the advertisements from being
rendered on the web
page. For example, instead of rendering the actual advertisement on the web
page in content
slots 112, 114 and 116, the code associated with the advertisement in the
content slots 112,
114 and 116 is displayed. Therefore, running the NoRender mode can establish a
6

CA 02696481 2010-02-04
WO 2009/021138 PCT/US2008/072526
performance, i.e., a latency time, for a first content server 134 to retrieve
the advertisements,
but not render them. The latency time associated with the first content server
134 can be
calculated by subtracting the NoFetch latency time from the NoRender latency
time, i.e., L2
= NoRender latency time - NoFetch latency time (L1).
In step 206, a performance of the second content server 142 can be determined.
To
determine the performance of the second content server 142, a request for
content from the
first content server 134 can be made by requesting the URL of a web page
content location,
without an argument, as follows: http://www.webpage.com. The total page load
time
associated with requesting and rendering the URL is equivalent to the total
latency time (L).
Thus, the latency time associated with the second content server 134 can be
calculated by
subtracting the NoRender latency time from the total latency time, i.e., L3 =
total latency
time (L) - NoRender (L2).
After the performance of the publisher server, first content server, and
second content
server are determined, a determination of latency time information can be
determined based
on the publisher server performance, the first content server performance, and
the second
content server performance (step 208). The latency time information can
represent a length
of time to load content associated with each of the publisher server, the
first content server,
and the second content server. For example, a user interface can be spawned
and information
regarding the latency times attributed to the different components is written
to the user
interface. In some implementations, the user interface is created by
JavaScript code that
provides a separate browser window.
Fig. 3 is another example process 300 for determining latency contributions.
The
example process 300 for determining the latency contributions begins with
submitting a
Uniform Resource Locator (URL) to request a document containing a reference to
a script,
the request including a first argument added to the URL (step 302). For
example, the first
argument "googlenofetch" can be added to the URL of a web page content
location as
follows: http://www.web page.com?googlenofetch to implement a NoFetch mode.
Next, the process 300 can submit the URL to request the document containing a
reference to the script, the request including a second argument added to the
URL (step 304).
For example, an argument "googlenorender" can be added to the URL of a web
page
content location as follows: http://www.web page.com?googlenorender to
implement a
NoRender mode.
In response to the requests in steps 302 and 304, the document containing the
script
can be received (step 306). After receiving the document, the script can be
executed to
7

CA 02696481 2010-02-04
WO 2009/021138 PCT/US2008/072526
determine the publisher server latency time and the first content server
latency time in
accordance with the first argument and the second argument (step 308). For
example, the
script can execute the NoFetch mode in accordance with the first argument, and
the script can
execute the NoRender mode in accordance with the second argument. Based on the
publisher
server latency time and the first content server latency time, a second
content server latency
time can be determined (step 310).
Fig. 4 illustrates an example interface 400 displaying the output of the
script with the
first behavior executing the NoFetch mode. Column 402 of Fig. 4 indicates the
latency time
associated with the executed instructions of the NoFetch mode. For example,
the latency
time is presented as a running time that increases as the script executes.
Column 404 of Fig.
4 provides a message type for the instructions that are being processed by the
script executing
the NoFetch mode. Column 406 of Fig. 4 provides a summary message indicating
the
instructions that are being processed by the script executing the NoFetch
mode. In NoFetch
mode, the executing script file within the web page content 106 can prevent
the retrieval of
advertisements from the one or more content servers. As indicated at 408 of
Fig. 4, the script
suppresses the fetching of the ads; therefore, the latency time information in
NoFetch mode
can be associated with the publisher server.
After executing the script with the first behavior, the script with the second
behavior
can be executed to determine the first content server latency time (step 310).
The script with
the second behavior can execute the NoRender mode. Fig. 5 illustrates an
example interface
500 displaying the output of NoRender mode. Column 502 of Fig. 5 indicates the
latency
time associated with the script executing the NoRender mode. For example, the
latency time
is presented as a running time that increases as the script executes. Column
504 of Fig. 5
provides a message type for the instructions that are being processed by the
script executing
the NoRender mode. Column 506 of Fig. 5 provides a summary message indicating
the
instructions that are being processed by the script executing the NoRender
mode. Running
the NoRender mode can establish a performance for a first content server 134
to retrieve the
advertisements, but not render them, as displayed at 508 of Fig. 5. The
latency time
associated with the first content server 134 can be calculated by subtracting
the NoFetch
latency time from the NoRender latency time, i.e., L2 = NoRender latency time -
NoFetch
latency time (L 1).
After running the document in NoFetch and NoRender mode, the second content
server latency time can be determined based on the publisher server latency
time and the first
content server latency time. To determine the performance of the second
content server 134,
8

CA 02696481 2010-02-04
WO 2009/021138 PCT/US2008/072526
a request for content from the first content server 134 can be made by
submitting the URL of
a web page content location to the publisher server 102, without an argument,
as follows:
http://www.web page.com. The total page load time associated with requesting
and
rendering the URL is substantially equivalent to the total latency time (L).
Thus, the latency
time associated with the second content server 134 can be calculated by
subtracting the
NoRender latency time from the total latency time, i.e., L3 = total latency
time (L) -
NoRender latency time (L2).
Fig. 6 is an example process 600 for determining the source of a latency
effect. Based
on the determination of the latency times associated with a publisher server,
a first content
server, and a second content server, the source of the slow load times
associated with a
content page can be determined. If L1 is determined to be slow in decision
step 602, then the
source of the latency is most likely attributed to the publisher server 102
(step 604).
However, if L1 is determined to be fast in decision step 602, the process 600
moves to
decision step 606. In decision step 606, if L2 is determined to be slow, then
the source of the
latency is most likely attributed to the first content server 134 (step 608).
If L2 is determined
to be fast in decision step 606, the process 600 moves to decision step 610.
In decision step
610, if L3 is determined to be fast, latency with the content page load time
can be deemed as
low (L1, L2, and L3 are all determined to be fast) (step 612). However, if L3
is determined
to be slow in decision step 610, then the source of the latency is most likely
attributed to the
second content server 142 (step 614).
Based on the example processes described above, it can be determined that the
source
of the latency is most likely attributed to the second content server 142.
Based on this
determination, an example process 700 for determining the latency time
associated with one
or more content servers, such as the second content server 142, is illustrated
in Fig. 7. First,
content can be requested, wherein the request is a Uniform Resource Locator
(URL) directed
to the content, the URL comprising an added argument (step 702). The content
received in
response to the request can be loaded into a content page in a first user
interface (step 704).
In one implementation, the content loaded into the content page can includes a
first portion of
content, where the first portion of content only includes content from a
publisher server 702.
Next, a second user interface can be displayed (step 706). To display the
second user
interface, a document containing a script can be requested, where the request
includes an
indicator. For example, the request can be a Uniform Resource Locator (URL)
directed to
receive a document and the indicator is an argument added to the URL. The
document can
then, for example, be received in response to the request. The script can then
be executed to
9

CA 02696481 2010-02-04
WO 2009/021138 PCT/US2008/072526
display the second user interface in response to receipt of the indicator. For
example, the
second user interface can be a browser window that is separate from a browser
window
displaying the content page.
In another implementation, the first and second user interfaces can be
displayed in the
same interface. The first and second user interfaces can be rendered by a
common browser
on a common client device. For example, the first and second user interfaces
can be rendered
in a single user interface, such as a browser window, executing on the client
device.
Subsequently, one or more content items e.g., advertisements, associated with
the
content page can be displayed in the second user interface in accordance with
the argument
added to the URL (step 708). In addition, one or more attributes for each
content item in the
second user interface can be displayed (step 710). For example, the displayed
attributes can
include a load time associated with each content item and a total load time.
In one implementation, displaying the one or more content items can be
accomplished
by utilizing a client-side implementation. For example, a copy of the one or
more content
items to be inserted into a content item slot can be received from one or more
content servers
and saved. An onload callback can then be registered for the content page.
During the
onload callback, the second user interface is displayed, and a scan is made
through the
content item slots. After making a scan through the content item slots, all of
the code, e.g.,
HTML code, associated with the content items can be combined. The combined
HTML code
can then be inserted into the second user interface and all of the content
items can be
generated.
In another implementation, displaying the one or more content items in the
second
user interface can be accomplished by utilizing a server-side implementation.
For example,
one or more content item identifications associated with one or more content
items can be
captured with JavaScript. A second user interface can then be opened, and a
request can be
made to one or more content servers for the one or more content items by
utilizing the one or
more advertisement identifications. The one or more content items received
from the one or
more content servers can then, for example, be rendered in the second user
interface. In an
implementation, a load time associated with each content item can be displayed
in the second
user interface. In an implementation, a total load time can be displayed in
the second user
interface.
In some implementations, the source code associated with the second user
interface
can be saved. For example, the user can view and save the source code of the
page in the
second user interface. Saving the source code can be useful in demonstrating
the latency of

CA 02696481 2010-02-04
WO 2009/021138 PCT/US2008/072526
one or more content items to an operator of a content server responsible for
the latency.
Specifically, the source code can be used to pinpoint which content item(s),
i.e.,
advertisement(s), produce the most delay in load time. The source code can,
for example, be
emailed directly to the operator of the content server. The source code can
then, for example,
be loaded in a user interface, such as a browser, to demonstrate the latency
with a particular
content item(s).
Another example process 800 for determining the latency time associated with
one or
more content servers, such as the second content server 142, is illustrated in
Fig. 8. After
determining the source of latency associated with a content page, a first
portion of a content
page can be loaded in a first user interface, where the first portion includes
content received
from a publisher server (step 802). For example, the first portion of content
may not include
one or more content items from one or more content servers.
Next, a second user interface can be displayed (step 804). Subsequently,
source code,
i.e., HTML code, associated with a second portion of the content page can be
displayed in the
second user interface, where the second portion includes one or more content
items received
from one or more content servers (step 806). To display the source code, e.g.,
HTML code,
associated with the one or more content items in the second user interface, a
document
containing a script can be requested, where the request includes an indicator.
For example,
the request can be a Uniform Resource Locator (URL) directed to receive a
document and the
indicator is an argument added to the URL. The document can then, for example,
be received
in response to the request. The script can then be executed to display the
second user
interface including the source code associated with the one or more content
items in response
to receipt of the indicator.
For example, the argument "google_capturenorender" can be added to the URL of
a
web page content location as follows:
http://www.webpage.com?google_capture_norender.
In response, a second user interface can be displayed that contains the source
code associated
with the one or more content items. The source code can then, for example, be
copied (step
808), pasted into an editor (step 810), and then saved to a file (step 812),
such as a local
HTML file. Thereafter a user interface, such as a browser or other user
interface, can be
utilized to open the file, e.g., the local HTML file, which contains the
source code associated
with the one or more content items (step 814). When opened, the file can
render the one or
more content items associated with the content page in the user interface
(step 816). In
addition, one or more attributes associated with the one or more content items
can be
displayed in the user interface (step 818). For example, the attributes can
include a load time
11

CA 02696481 2010-02-04
WO 2009/021138 PCT/US2008/072526
associated with each content item and a total load time associated with the
one or more
content items.
Fig. 9 is another example process 900 for determining the latency time
associated
with one or more content servers, such as the second content server 142. The
process 900
begins by loading a first portion of a content page in a first user interface,
where the first
portion includes content received from a publisher server (step 902). For
example, the
portion of the content page loaded into the first user interface may not
include content from
one or more content servers. Next, a second user interface is displayed (step
904). For
example, the second user interface can be a window, such as a pop-up window,
that is
displayed in addition to the first user interface.
A second portion of the content page can then, for example, be displayed in
the
second user interface, where the second portion includes one or more content
items received
from one or more content servers (step 906). In addition, one or more
attributes associated
with the one or more content items can be displayed in the second user
interface (step 908).
For example, the attributes can include a load time associated with each
content item and a
total load time associated with the one or more content items.
Fig. 10 is an illustration of an example second user interface 1000 as
described in the
processes above. As described, one or more attributes associated with the one
or more
content items can be displayed in the second user interface 1000. In one
implementation,
location and size information 1002 associated with each content item can be
displayed in the
second user interface 1000. In another implementation, the content item 1004
can be
displayed in the second user interface 1000. In another implementation, a load
time 1006
associated with each advertisement can be displayed in the second user
interface 1000. For
example, an individual load time 1006 can be associated with the advertisement
1004
displayed with the location and size information 1002. In another
implementation, a total
load time 1006 can be displayed in the second user interface 1000.
The apparatus, methods, flow diagrams, and structure block diagrams described
in
this patent document may be implemented in computer processing systems
including
program code comprising program instructions that are executable by the
computer
processing system. Other implementations may also be used. Additionally, the
flow
diagrams and structure block diagrams described in this patent document, which
describe
particular methods and/or corresponding acts in support of steps and
corresponding functions
in support of disclosed structural means, may also be utilized to implement
corresponding
software structures and algorithms, and equivalents thereof.
12

CA 02696481 2010-02-04
WO 2009/021138 PCT/US2008/072526
This written description sets forth the best mode of the invention and
provides
examples to describe the invention and to enable a person of ordinary skill in
the art to make
and use the invention. This written description does not limit the invention
to the precise
terms set forth. Thus, while the invention has been described in detail with
reference to the
examples set forth above, those of ordinary skill in the art may effect
alterations,
modifications and variations to the examples without departing from the scope
of the
invention.
13

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

2024-08-01:As part of the Next Generation Patents (NGP) transition, the Canadian Patents Database (CPD) now contains a more detailed Event History, which replicates the Event Log of our new back-office solution.

Please note that "Inactive:" events refers to events no longer in use in our new back-office solution.

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Event History , Maintenance Fee  and Payment History  should be consulted.

Event History

Description Date
Inactive: IPC expired 2023-01-01
Inactive: IPC expired 2022-01-01
Inactive: IPC expired 2022-01-01
Application Not Reinstated by Deadline 2016-08-05
Inactive: Dead - No reply to s.30(2) Rules requisition 2016-08-05
Deemed Abandoned - Failure to Respond to Maintenance Fee Notice 2015-08-07
Inactive: Abandoned - No reply to s.30(2) Rules requisition 2015-08-05
Inactive: S.30(2) Rules - Examiner requisition 2015-02-05
Inactive: Report - No QC 2015-01-26
Inactive: IPC assigned 2014-04-15
Letter Sent 2013-08-14
Amendment Received - Voluntary Amendment 2013-08-01
Request for Examination Requirements Determined Compliant 2013-08-01
All Requirements for Examination Determined Compliant 2013-08-01
Request for Examination Received 2013-08-01
Revocation of Agent Request 2012-10-16
Inactive: Correspondence - PCT 2012-10-16
Appointment of Agent Request 2012-10-16
Inactive: Cover page published 2012-09-04
Inactive: IPC expired 2012-01-01
Inactive: IPC removed 2011-12-31
Inactive: IPC assigned 2011-03-07
Inactive: First IPC assigned 2011-03-07
Inactive: IPC assigned 2011-03-07
Inactive: IPC removed 2011-02-28
Inactive: IPC assigned 2011-02-28
Letter Sent 2010-08-31
Inactive: Office letter 2010-08-06
Letter Sent 2010-08-06
Letter Sent 2010-08-06
Inactive: Single transfer 2010-06-25
Amendment Received - Voluntary Amendment 2010-06-25
Inactive: IPC assigned 2010-04-16
Inactive: Notice - National entry - No RFE 2010-04-16
Application Received - PCT 2010-04-16
National Entry Requirements Determined Compliant 2010-02-04
Application Published (Open to Public Inspection) 2009-02-12

Abandonment History

Abandonment Date Reason Reinstatement Date
2015-08-07

Maintenance Fee

The last payment was received on 2014-07-18

Note : If the full payment has not been received on or before the date indicated, a further fee may be required which may be one of the following

  • the reinstatement fee;
  • the late payment fee; or
  • additional fee to reverse deemed expiry.

Please refer to the CIPO Patent Fees web page to see all current fee amounts.

Fee History

Fee Type Anniversary Year Due Date Paid Date
Basic national fee - standard 2010-02-04
Registration of a document 2010-06-25
MF (application, 2nd anniv.) - standard 02 2010-08-09 2010-07-21
MF (application, 3rd anniv.) - standard 03 2011-08-08 2011-08-03
MF (application, 4th anniv.) - standard 04 2012-08-07 2012-08-07
MF (application, 5th anniv.) - standard 05 2013-08-07 2013-07-19
Request for examination - standard 2013-08-01
MF (application, 6th anniv.) - standard 06 2014-08-07 2014-07-18
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
GOOGLE INC.
Past Owners on Record
STEPHEN TSUN
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Description 2010-06-25 16 850
Drawings 2010-02-04 10 590
Description 2010-02-04 13 762
Claims 2010-02-04 8 309
Representative drawing 2010-02-04 1 15
Abstract 2010-02-04 2 60
Cover Page 2012-08-31 2 39
Claims 2010-06-25 10 302
Claims 2013-08-01 13 461
Description 2013-08-01 18 989
Reminder of maintenance fee due 2010-04-19 1 115
Notice of National Entry 2010-04-16 1 197
Courtesy - Certificate of registration (related document(s)) 2010-08-06 1 102
Courtesy - Certificate of registration (related document(s)) 2010-08-06 1 104
Courtesy - Certificate of registration (related document(s)) 2010-08-31 1 104
Reminder - Request for Examination 2013-04-09 1 119
Acknowledgement of Request for Examination 2013-08-14 1 176
Courtesy - Abandonment Letter (Maintenance Fee) 2015-10-02 1 171
Courtesy - Abandonment Letter (R30(2)) 2015-09-30 1 163
PCT 2010-02-04 3 127
Fees 2012-08-07 1 66
Correspondence 2012-10-16 8 415