IP Library Granted Patent US 9,313,169
Granted Patent B2
US 9,313,169 · App. 13/804,021 · Granted Apr 12, 2016

Providing content to devices in a cluster

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,313,169
App. No.
13/804,021
Granted
Apr 12, 2016
Kind
B2
Abstract

Methods, systems, and apparatus, include computer programs encoded on a computer-readable storage medium, and include a method for providing content. The method includes receiving a request for content from a requesting device that includes an associated IP address and determining that the received request is appropriate for clustering based on the IP address. The method further includes determining whether the received request is already associated with a cluster including, and when not, returning a cluster cookie to the requesting device and storing cluster information including the IP address associated with the requesting device; otherwise creating a cluster including returning a cluster cookie to the requesting device and storing in a data set associated with the cluster information including the IP address associated with the requesting device. The method further includes providing a response to the received request based on the data set for an associated cluster.

Claims (31)

1. A method comprising:

receiving a request for content from a requesting device, the request for content including an internet protocol (IP) address associated with the requesting device;

determining that the received request is appropriate for clustering based at least in part on the IP address, including determining that the IP address is in a range associated with individual end users as opposed to being associated with a group of multiple end users;

determining whether the received request is already associated with a cluster for a pre-defined range of IP addresses, the cluster being associated with a cluster ID, the determining including determining whether the request includes a cookie that identifies the cluster ID;

when the request includes the cookie that identifies the cluster ID, evaluating the received request to determine whether an IP address for the requesting device in a data set associated with the cluster is required to be updated, and updating the IP address based on the evaluating

when the request does not include the cookie that identifies the cluster ID, creating a new cluster, returning a new cookie that identifies a new cluster ID for the new cluster to the requesting device for storage on the requesting device, and storing, in a new data set associated with the new cluster, the new cluster including the IP address associated with the requesting device; and

providing a response to the received request based at least in part on the data set for an associated cluster.

2. The method of claim 1 wherein the IP addresses for all entries in a cluster are associated with a same subnet.

3. The method of claim 2 wherein all of the requesting devices in a cluster are associated at least at one time with a same router.

4. The method of claim 1 wherein determining a request is appropriate for clustering includes determining whether the IP address associated with the requesting device is associated with a proper entity, and when not, responding to the request without evaluating the clusters.

5. The method of claim 1 wherein the data set includes one or more entries, one for each device included in a cluster, and wherein one or more entries includes a cookie that identifies the cluster, a device identifier, and an IP address associated with the requesting device.

6. The method of claim 1 wherein the data set is periodically purged of IP addresses.

7. The method of claim 1 wherein the router is a residential router.

8. The method of claim 1 wherein providing a response further includes selecting content for delivery responsive to the request based on information associated with one or more cookies that are linked by the data set as being in a same cluster.

9. The method of claim 1 wherein the received request includes a cookie associated with a first cluster and, and wherein providing a response further includes selecting responsive content based at least in part on all the cookies that are associated with the first cluster.

10. A system that includes:

one or more processors; and

a memory including instructions that when executed cause the one or more processors to:

receiving a request for content from a requesting device, the request for content including an internet protocol (IP) address associated with the requesting device;

determining that the received request is appropriate for clustering based at least in part on the IP address, including determining that the IP address is in a range associated with individual end users as opposed to being associated with a group of multiple end users;

determining whether the received request is already associated with a cluster for a pre-defined range of IP addresses, the cluster being associated with a cluster ID, the determining including determining whether the request includes a cookie that identifies the cluster ID;

when the request includes the cookie that identifies the cluster ID, evaluating the received request to determine whether an IP address for the requesting device in a data set associated with the cluster is required to be updated, and updating the IP address based on the evaluating

when the request does not include the cookie that identifies the cluster ID, creating a new cluster, returning a new cookie that identifies a new cluster ID for the new cluster to the requesting device for storage on the requesting device, and storing, in a new data set associated with the new cluster, the new cluster including the IP address associated with the requesting device; and

providing a response to the received request based at least in part on the data set for an associated cluster.

11. A computer program product tangibly embodied in a computer-readable storage device and comprising instructions that, when executed by one or more processors, cause the one or more processors to:

receiving a request for content from a requesting device, the request for content including an internet protocol (IP) address associated with the requesting device;

determining that the received request is appropriate for clustering based at least in part on the IP address, including determining that the IP address is in a range associated with individual end users as opposed to being associated with a group of multiple end users;

determining whether the received request is already associated with a cluster for a pre-defined range of IP addresses, the cluster being associated with a cluster ID, the determining including determining whether the request includes a cookie that identifies the cluster ID;

when the request includes the cookie that identifies the cluster ID, evaluating the received request to determine whether an IP address for the requesting device in a data set associated with the cluster is required to be updated, and updating the IP address based on the evaluating

when the request does not include the cookie that identifies the cluster ID, creating a new cluster, returning a new cookie that identifies a new cluster ID for the new cluster to the requesting device for storage on the requesting device, and storing, in a new data set associated with the new cluster, the new cluster including the IP address associated with the requesting device; and

providing a response to the received request based at least in part on the data set for an associated cluster.

Assignments (1)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044566/0657 →