# US 9,882,867 B2 · Providing content to devices in a cluster

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,882,867 B2
- Document ID: US9882867B2
- Status: Granted
- Kind: B2
- Application number: 15/062,485
- Filed: 2016-03-07
- Published: 2016-06-30
- Granted: 2018-01-30
- Earliest claimed: 2013-03-14
- Assignees: Google Inc.
- Applicants: Google Inc.
- Inventors: Timothy O'Connor; Abby W. Johns
- Web page: https://patentgrep.com/patent/US9882867B2

## CPC

- H04L 61/5007: Internet protocol [IP] addresses
- G06F 16/95: Retrieval from the web
- H04L 67/00: Network arrangements or protocols for supporting network services or applications (user-to-user messaging H04L51/00; network arrangements, protocols or services for supporting real-time applications in data packet communications networks H04L65/00)
- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- H04W 4/00: Services specially adapted for wireless communication networks; Facilities therefor
- H04L 2101/668: Internet protocol [IP] address subnets
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## 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

### Claim 1

A computer-implemented method comprising:
detecting internet protocol (IP) addresses for each of multiple different user devices that are connected to a network;
determining that the detected IP addresses are within a range of IP addresses corresponding to a same network access device;
determining, based on the detected IP addresses being within the range of the IP addresses corresponding to the same network access device, that it is appropriate to cluster network activity of the multiple different user devices based on the multiple different user devices accessing the Internet with the same network access device;
aggregating network activity data for each of the multiple different user devices based on the determination that the different user devices are accessing the Internet with the same network access device, including:
issuing a cluster cookie to each of the multiple different user devices; and
collecting network activity data from the cluster cookie issued to each of the multiple user devices;
receiving a request for content from one user device of the multiple different user devices; and
responding to the request, including:
generating and providing a response to the request based, at least in part, on the aggregated network activity for each of the multiple different user devices that was collected from each of the multiple different user devices using the cluster cookie when the request is received from a proper entity, and
responding to the request without generating and providing the response based on the aggregated network activity when the request is not associated with a proper entity.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1 wherein the network activity data includes one or more entries, one entry for each user device included in a cluster associated with the cluster cookie and including a device identifier and an IP address associated with the user device.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2 wherein the received request includes the cluster cookie that identifies the cluster, and wherein generating and providing the response includes selecting responsive content based at least in part on all the one or more entries for the cluster.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1 wherein all of the multiple different user devices in a cluster are associated at least at one time with a same router.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4 wherein the same router is a residential router.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1 further comprising periodically purging IP addresses from the network activity data.

### Claim 7 (depends on 1)

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

### Claim 8

A system that includes:
one or more processors; and
a memory including instructions that when executed cause the one or more processors to:
detect internet protocol (IP) addresses for each of multiple different user devices that are connected to a network;
determine that the detected IP addresses are within a range of IP addresses corresponding to a same network access device;
determine, based on the detected IP addresses being within the range of the IP addresses corresponding to the same network access device, that it is appropriate to cluster network activity of the multiple different user devices based on the multiple different user devices accessing the Internet with the same network access device;
aggregate network activity data for each of the multiple different user devices based on the determination that the different user devices are accessing the Internet with the same network access device, including:
issuing a cluster cookie to each of the multiple different user devices; and
collecting network activity data from the cluster cookie issued to each of the multiple user devices;
receive a request for content from one user device of the multiple different user devices; and
respond to the request, including performing operations including:
generating and providing a response to the request based, at least in part, on the aggregated network activity for each of the multiple different user devices that was collected from each of the multiple different user devices using the cluster cookie when the request is received from a proper entity, and
responding to the request without generating and providing the response based on the aggregated network activity when the request is not associated with a proper entity.

### Claim 9 (depends on 8)

The system of claim 8 wherein the network activity data includes one or more entries, one entry for each user device included in a cluster associated with the cluster cookie and including a device identifier and an IP address associated with the user device.

### Claim 10 (depends on 8)

The system of claim 8 wherein the instructions further cause the one or more processors to periodically purging IP addresses from the network activity data.

### Claim 11 (depends on 8)

The system of claim 8 wherein the IP addresses for all entries in a cluster are associated with a same subnet.

### Claim 12 (depends on 8)

The system of claim 8 wherein all of the multiple different user devices in a cluster are associated at least at one time with a same router.

### Claim 13

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:
detect internet protocol (IP) addresses for each of multiple different user devices that are connected to a network;
determine that the detected IP addresses are within a range of IP addresses corresponding to a same network access device;
determine, based on the detected IP addresses being within the range of the IP addresses corresponding to the same network access device, that it is appropriate to cluster network activity of the multiple different user devices based on the multiple different user devices accessing the Internet with the same network access device;
aggregate network activity data for each of the multiple different user devices based on the determination that the different user devices are accessing the Internet with the same network access device, including:
issuing a cluster cookie to each of the multiple different user devices; and
collecting network activity data from the cluster cookie issued to each of the multiple user devices;
receive a request for content from one user device of the multiple different user devices; and
respond to the request, including performing operations including:
generating and providing a response to the request based, at least in part, on the aggregated network activity for each of the multiple different user devices that was collected from each of the multiple different user devices using the cluster cookie when the request is received from a proper entity, and
responding to the request without generating and providing the response based on the aggregated network activity when the request is not associated with a proper entity.

### Claim 14 (depends on 13)

The computer program product of claim 13 wherein the network activity data includes one or more entries, one entry for each user device included in a cluster associated with the cluster cookie and including a device identifier and an IP address associated with the user device.

### Claim 15 (depends on 13)

The computer program product of claim 13 wherein the instructions further cause the one or more processors to periodically purging IP addresses from the network activity data.

### Claim 16 (depends on 13)

The computer program product of claim 13 wherein the IP addresses for all entries in a cluster are associated with a same subnet.
