Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for providing asynchronous and synchronous links to resources. According to one example implementation, a method includes receiving a request for a resource, identifying resources to be referenced by the requested resource, and identifying one or more of the referenced resources that are associated with client-side click tracking, and one or more of the referenced resources that are associated with server-side click tracking. The method also includes providing the requested resource. The provided resource includes one or more client-side click tracking links to the referenced resources that are associated with client-side click tracking, and one or more server-side click tracking links to the referenced resources that are associated with server-side click tracking.
Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A method performed by one or more computers, the method comprising: receiving, by the one or more computers, a request from a client device to provide a resource over a network; identifying, by the one or more computers, multiple resources to be referenced with links in the requested resource; selecting, for each of the multiple resources and by the one or more computers, a tracking type for the resource based on a Uniform Resource Locator (URL) of the resource or content of the resource, the tracking type being selected from among a set of tracking types that includes at least asynchronous client-side tracking and synchronous server-side tracking; generating, by the one or more computers, the requested resource to include links to the multiple resources based on the tracking types selected for the multiple resources, the links including (i) a first link that causes a client device to indicate user interaction with the first link asynchronously with the interaction and (ii) a second link that causes a server system to track user interaction with the second link synchronously with the interaction with the second link; and providing, by the one or more computers, the generated resource to the client device in response to the request.
A computer system serves resources to client devices over a network. When a client requests a resource, the system identifies other linked resources within that resource. For each linked resource, the system chooses a tracking method (either asynchronous client-side or synchronous server-side) based on its URL or content. The system generates the requested resource with links to the other resources, using different tracking methods: some links trigger asynchronous client-side tracking of user clicks, while others trigger synchronous server-side tracking of clicks. Finally, the system sends the generated resource back to the client.
2. The method of claim 1 , wherein selecting tracking types for the multiple resources comprises: determining, for a particular resource of the multiple resources, that a URL of the particular resource is included in a predetermined list of URLs designated as appropriate for asynchronous client-side tracking; and based on determining that the URL of the particular resource is included in the predetermined list, selecting asynchronous client-side tracking for the particular resource.
For the method described previously, when deciding how to track a linked resource, the system checks if its URL is on a predefined list of URLs suitable for asynchronous client-side tracking. If the URL is on the list, the system selects asynchronous client-side tracking for that particular resource. In other words, specific URLs are pre-approved for client-side click tracking.
3. The method of claim 1 , wherein selecting tracking types for the multiple resources comprises: determining, for a particular resource of the multiple resources, that a URL of the particular resource is not included in a predetermined list of URLs designated as appropriate for asynchronous client-side tracking; and based on determining that the URL of the particular resource is not included in the predetermined list, selecting synchronous server-side tracking for the particular resource.
For the method described previously, when deciding how to track a linked resource, the system checks if its URL is on a predefined list of URLs suitable for asynchronous client-side tracking. If the URL is *not* on the list, the system selects synchronous server-side tracking for that particular resource. This acts as a default: if a URL is not explicitly approved for client-side tracking, server-side tracking is used.
4. The method of claim 1 , wherein selecting tracking types for the multiple resources comprises: determining that a particular resource of the multiple resources includes code to cause data indicating user interactions to be stored at the client device; and selecting client-side tracking for the particular resource based on determining that the particular resource includes code to cause data indicating user interactions to be stored at the client device.
For the method described previously, when deciding how to track a linked resource, the system checks if the resource contains code that stores user interaction data on the client device (e.g., using cookies or local storage). If such code exists, the system selects client-side tracking for that resource. This prioritizes client-side tracking for resources that already handle user data locally.
5. The method of claim 1 , wherein receiving the request comprises receiving a search query from the client device; wherein identifying the multiple resources comprises identifying the multiple resources to be identified as search results; and wherein generating the requested resource comprises generating the requested resource such that the first link corresponds to a first search result in the generated resource, and the second link corresponds to a second search result in the generated resource.
In the method described previously, the client request can be a search query. The linked resources are the search results. The system generates the search results page with links to these results. Some result links use asynchronous client-side tracking, while others use synchronous server-side tracking. Therefore, the tracking method varies for different search results on the same page.
6. The method of claim 1 , wherein selecting tracking types for the multiple resources comprises selecting the tracking types for the multiple resources based on a respective Internet domain of the multiple resources.
In the method described previously, the system determines the tracking type (asynchronous client-side or synchronous server-side) for each linked resource based on the Internet domain of that resource (e.g., example.com). This allows for configuring tracking policies based on which domain the linked resource belongs to.
7. The method of claim 1 , wherein selecting the tracking types for the multiple resources comprises: identifying a server associated with a particular resource of the multiple resources; and selecting a tracking type for the particular resource based on the identified server.
In the method described previously, the system identifies the server hosting a particular linked resource and selects the tracking type for that resource based on the identified server. This means that tracking policies can be set based on which server hosts a particular resource.
8. The method of claim 1 , wherein selecting the tracking types for the multiple resources comprises: accessing stored data that designates tracking types for resources, resource types, servers, or Internet domains, the stored data being generated prior to receiving the request from the client device; and selecting tracking types for the multiple resources based on the designations in the stored data.
In the method described previously, the system uses pre-configured tracking preferences. It accesses stored data (created before the client request) that specifies tracking types for resources, resource types, servers, or Internet domains. The system then selects tracking types for the multiple resources based on these stored designations. This allows for a centralized configuration of tracking rules.
9. A system comprising: one or more computers; and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: receiving, by the one or more computers, a request from a client device to provide a resource over a network; identifying, by the one or more computers, multiple resources to be referenced with links in the requested resource; selecting, for each of the multiple resources and by the one or more computers, a tracking type for the resource based on a Uniform Resource Locator (URL) of the resource or content of the resource, the tracking type being selected from among a set of tracking types that includes at least asynchronous client-side tracking and synchronous server-side tracking; generating, by the one or more computers, the requested resource to include links to the multiple resources based on the tracking types selected for the multiple resources, the links including (i) a first link that causes a client device to indicate user interaction with the first link asynchronously with the interaction and (ii) a second link that causes a server system to track user interaction with the second link synchronously with the interaction with the second link; and providing, by the one or more computers, the generated resource to the client device in response to the request.
A computer system serves resources to client devices over a network. The system identifies linked resources within a requested resource and chooses a tracking method (asynchronous client-side or synchronous server-side) for each based on its URL or content. The system generates the requested resource with links that use different tracking methods: some links trigger asynchronous client-side tracking, while others trigger synchronous server-side tracking. Finally, the system sends the generated resource back to the client. This is implemented via software instructions executed by the computer.
10. The system of claim 9 , wherein selecting tracking types for the multiple resources comprises: determining, for a particular resource of the multiple resources, that a URL of the particular resource is included in a predetermined list of URLs designated as appropriate for asynchronous client-side tracking; and based on determining that the URL of the particular resource is included in the predetermined list, selecting asynchronous client-side tracking for the particular resource.
For the system described previously, when deciding how to track a linked resource, the system checks if its URL is on a predefined list of URLs suitable for asynchronous client-side tracking. If the URL is on the list, the system selects asynchronous client-side tracking for that particular resource. In other words, specific URLs are pre-approved for client-side click tracking.
11. The system of claim 9 , wherein selecting tracking types for the multiple resources comprises: determining, for a particular resource of the multiple resources, that a URL of the particular resource is not included in a predetermined list of URLs designated as appropriate for asynchronous client-side tracking; and based on determining that the URL of the particular resource is not included in the predetermined list, selecting synchronous server-side tracking for the particular resource.
For the system described previously, when deciding how to track a linked resource, the system checks if its URL is on a predefined list of URLs suitable for asynchronous client-side tracking. If the URL is *not* on the list, the system selects synchronous server-side tracking for that particular resource. This acts as a default: if a URL is not explicitly approved for client-side tracking, server-side tracking is used.
12. The system of claim 9 , wherein selecting tracking types for the multiple resources comprises: determining that a particular resource of the multiple resources includes code to cause data indicating user interactions to be stored at the client device; and selecting client-side tracking for the particular resource based on determining that the particular resource includes code to cause data indicating user interactions to be stored at the client device.
For the system described previously, when deciding how to track a linked resource, the system checks if the resource contains code that stores user interaction data on the client device (e.g., using cookies or local storage). If such code exists, the system selects client-side tracking for that resource. This prioritizes client-side tracking for resources that already handle user data locally.
13. The system of claim 9 , wherein receiving the request comprises receiving a search query from the client device; wherein identifying the multiple resources comprises identifying the multiple resources to be identified as search results; and wherein generating the requested resource comprises generating the requested resource such that the first link corresponds to a first search result in the generated resource, and the second link corresponds to a second search result in the generated resource.
In the system described previously, the client request can be a search query. The linked resources are the search results. The system generates the search results page with links to these results. Some result links use asynchronous client-side tracking, while others use synchronous server-side tracking. Therefore, the tracking method varies for different search results on the same page.
14. The system of claim 9 , wherein selecting tracking types for the multiple resources comprises selecting the tracking types for the multiple resources based on a respective Internet domain of the multiple resources.
In the system described previously, the system determines the tracking type (asynchronous client-side or synchronous server-side) for each linked resource based on the Internet domain of that resource (e.g., example.com). This allows for configuring tracking policies based on which domain the linked resource belongs to.
15. The system of claim 9 , wherein selecting the tracking types for the multiple resources comprises: identifying a server associated with a particular resource of the multiple resources; and selecting a tracking type for the particular resource based on the identified server.
In the system described previously, the system identifies the server hosting a particular linked resource and selects the tracking type for that resource based on the identified server. This means that tracking policies can be set based on which server hosts a particular resource.
16. A non-transitory computer-readable medium storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising: receiving, by the one or more computers, a request from a client device to provide a resource over a network; identifying, by the one or more computers, multiple resources to be referenced with links in the requested resource; selecting, for each of the multiple resources and by the one or more computers, a tracking type for the resource based on a Uniform Resource Locator (URL of the resource or content of the resource, the tracking type being selected from among a set of tracking types that includes at least asynchronous client-side tracking and synchronous server-side tracking; generating, by the one or more computers, the requested resource to include links to the multiple resources based on the tracking types selected for the multiple resources, the links including (i) a first link that causes a client device to indicate user interaction with the first link asynchronously with the interaction and (ii) a second link that causes a server system to track user interaction with the second link synchronously with the interaction with the second link; and providing, by the one or more computers, the generated resource to the client device in response to the request.
A computer-readable storage medium holds software instructions that, when executed by a computer, cause the computer to serve resources to client devices over a network. The system identifies linked resources within a requested resource and chooses a tracking method (asynchronous client-side or synchronous server-side) for each based on its URL or content. The system generates the requested resource with links that use different tracking methods: some links trigger asynchronous client-side tracking, while others trigger synchronous server-side tracking. Finally, the system sends the generated resource back to the client.
17. The non-transitory computer-readable medium of claim 16 , wherein selecting tracking types for the multiple resources comprises: determining, for a particular resource of the multiple resources, that a URL of the particular resource is included in a predetermined list of URLs designated as appropriate for asynchronous client-side tracking; and based on determining that the URL of the particular resource is included in the predetermined list, selecting asynchronous client-side tracking for the particular resource.
For the software described previously, when deciding how to track a linked resource, the system checks if its URL is on a predefined list of URLs suitable for asynchronous client-side tracking. If the URL is on the list, the system selects asynchronous client-side tracking for that particular resource. In other words, specific URLs are pre-approved for client-side click tracking.
18. The non-transitory computer-readable medium of claim 16 , wherein selecting tracking types for the multiple resources comprises: determining, for a particular resource of the multiple resources, that a URL of the particular resource is not included in a predetermined list of URLs designated as appropriate for asynchronous client-side tracking; and based on determining that the URL of the particular resource is not included in the predetermined list, selecting synchronous server-side tracking for the particular resource.
For the software described previously, when deciding how to track a linked resource, the system checks if its URL is on a predefined list of URLs suitable for asynchronous client-side tracking. If the URL is *not* on the list, the system selects synchronous server-side tracking for that particular resource. This acts as a default: if a URL is not explicitly approved for client-side tracking, server-side tracking is used.
19. The non-transitory computer-readable medium of claim 16 , wherein selecting tracking types for the multiple resources comprises: determining that a particular resource of the multiple resources includes code to cause data indicating user interactions to be stored at the client device; and selecting client-side tracking for the particular resource based on determining that the particular resource includes code to cause data indicating user interactions to be stored at the client device.
For the software described previously, when deciding how to track a linked resource, the system checks if the resource contains code that stores user interaction data on the client device (e.g., using cookies or local storage). If such code exists, the system selects client-side tracking for that resource. This prioritizes client-side tracking for resources that already handle user data locally.
20. The non-transitory computer-readable medium of claim 16 , wherein receiving the request comprises receiving a search query from the client device; wherein identifying the multiple resources comprises identifying the multiple resources to be identified as search results; and wherein generating the requested resource comprises generating the requested resource such that the first link corresponds to a first search result in the generated resource, and the second link corresponds to a second search result in the generated resource.
For the software described previously, the client request can be a search query. The linked resources are the search results. The system generates the search results page with links to these results. Some result links use asynchronous client-side tracking, while others use synchronous server-side tracking. Therefore, the tracking method varies for different search results on the same page.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
August 15, 2016
July 18, 2017
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.