# US 11,308,522 B2 · Utilizing browsing history while preserving user-privacy

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

- Number: US 11,308,522 B2
- Document ID: US11308522B2
- Status: Granted
- Kind: B2
- Application number: 16/711,774
- Filed: 2019-12-12
- Published: 2020-06-18
- Granted: 2022-04-19
- Earliest claimed: 2018-12-14
- Assignees: Anagog Ltd.
- Applicants: Anagog LTD.
- Inventors: Gil Levy; Yaron Aizenbud
- Web page: https://patentgrep.com/patent/US11308522B2

## CPC

- G06Q 30/0269: {based on user profile or attribute}
- G06F 16/9566: {URL specific, e.g. using aliases, detecting broken or misspelled links}
- G06F 16/972: {Access to data in other repository systems, e.g. legacy data or dynamic Web page generation}
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method, system and product to be implemented at a server, including receiving from a user device a request associated with obtaining a web resource; handling the request, wherein, based on the handling, the web resource is obtained and provided to the user device; and transmitting an indication of the request to a predetermined port of the user device. Another method, system and product to be implemented at a user device, includes transmitting from a software product a plurality of requests of web resources; receiving by a software agent a plurality of indications of the plurality of requests via a predetermined port of the user device; and performing by the software agent an analysis of the plurality of requests of web resources, thereby determining for a user of the user device one or more user parameters associated with a personalized profile of the user.

## Claims

### Claim 1

A method to be performed at a server, the method comprising:
receiving from a user device a request, wherein the request is associated with obtaining a web resource;
handling the request, wherein, based on said handling, the web resource is obtained;
transmitting the web resource to a first port of the user device, whereby responding to the request; and
transmitting an indication of the request to a second port of the user device, wherein the second port is a predetermined port, wherein the first port is different than the second port.

### Claim 2 (depends on 1)

The method of claim 1 comprising determining whether or not the user device is configured to receive the indication, and upon determining that the user device is configured to receive the indication, performing said transmitting the indication.

### Claim 3 (depends on 1)

The method of claim 1 further comprising:
receiving from the user device a signal indicating that the user device is configured to receive the indication; and
in response to the signal, performing said transmitting the indication.

### Claim 4 (depends on 3)

The method of claim 3 comprising avoiding from transmitting the indication in an absence of receiving the signal within a timeframe.

### Claim 5 (depends on 1)

The method of claim 1, wherein the request comprises a Uniform Resource Locator (URL), and the indication comprises at least one of the group consisting of: the URL, an Internet Protocol (IP) address of the URL, a domain name within the URL, and a query portion within the URL.

### Claim 6 (depends on 1)

The method of claim 1, wherein the request comprises a Uniform Resource Locator (URL), the method further comprising analyzing the URL to determine a domain name within the URL, wherein the indication comprising the domain name.

### Claim 7 (depends on 1)

The method of claim 1, wherein the request comprises a Uniform Resource Locator (URL), the method further comprising analyzing the URL to determine a query portion within the URL, wherein the indication comprising the query portion.

### Claim 8 (depends on 1)

The method of claim 1, wherein the request is issued by a browser that is executed on the user device, wherein the user device executing a software agent listening on the predetermined port, wherein the software agent is independent of the browser.

### Claim 9 (depends on 1)

The method of claim 1, wherein the server comprises a gateway server, wherein the request comprises an Internet Protocol (IP) address, wherein said handling comprises forwarding the IP address to a network node to obtain a web page associated with the IP address.

### Claim 10 (depends on 1)

The method of claim 1, wherein the server comprises a Domain Name Server (DNS), wherein the request comprises a domain name, wherein said handling comprises querying a database to obtain an Internet Protocol (IP) address of a web server associated with the domain name, and said transmitting the web resources comprises providing the IP address to the first port of the user device, thereby enabling the user device to communicate with the web server.

### Claim 11

A system at a server, the system comprising a processor and coupled memory, the processor being adapted to perform:
receiving from a user device a request, wherein the request is associated with obtaining a web resource;
handling the request, wherein, based on said handling, the web resource is obtained:
transmitting the web resource to a first port of the user device, whereby responding to the request; and
transmitting an indication of the request to a second port of the user device wherein the second port is a predetermined port, wherein the first port is different than the second port.

### Claim 12 (depends on 11)

The system of claim 11, wherein the processor is adapted to determine whether or not the user device is configured to receive the indication, and upon determining that the user device is configured to receive the indication, performing said transmitting the indication.

### Claim 13 (depends on 11)

The system of claim 11, wherein the request comprises a Uniform Resource Locator (URL), and the indication comprises at least one of the group consisting of: the URL, an Internet Protocol (IP) address of the URL, a domain name within the URL, and a query portion within the URL.

### Claim 14

A method to be performed at a user device, the method comprising:
transmitting to a server, from a software product that is executed by the user device, a plurality of requests of web resources;
receiving from the server, by a software agent that is executed by the user device, a plurality of indications of the plurality of requests of web resources via a predetermined port of the user device, wherein the software product is not configured to provide information to the software agent;
performing, by the software agent, an analysis of the plurality of requests of web resources indicated, thereby determining for a user of the user device one or more user parameters associated with a personalized profile of the user; and
performing an action based on the personalized profile of the user.

### Claim 15 (depends on 14)

The method of claim 14, wherein the action comprises selecting content items to be served to the user based on the personalized profile of the user.

### Claim 16 (depends on 14)

The method of claim 14, wherein the software agent is configured to send a signal to the server, whereby indicating to the server to send the plurality of indications to the user device via the predetermined port.

### Claim 17 (depends on 16)

The method of claim 16, wherein the server is configured to avoid transmitting the plurality of indications in an absence of receiving the signal within a timeframe.

### Claim 18 (depends on 14)

The method of claim 14, wherein the software agent is configured to monitor the predetermined port, wherein the software agent is independent of the software product.

### Claim 19 (depends on 14)

The method of claim 14, wherein the software product comprises a browsing agent or a web-based application, wherein the software agent is independent of the browsing agent or the web-based application.

### Claim 20

A computer program product comprising a non-transitory computer readable storage medium retaining program instructions, which program instructions when read by a processor, cause the processor to perform at a user device:
transmitting to a server, from a software product that is executed by the user device, a plurality of requests of web resources;
receiving from the server, by a software agent that is executed by the user device, a plurality of indications of the plurality of requests of web resources via a predetermined port of the user device, wherein the software product is not configured to provide information to the software agent;
performing, by the software agent, an analysis of the plurality of requests of web resources indicated, thereby determining for a user of the user device one or more user parameters associated with a personalized profile of the user; and
performing an action based on the personalized profile of the user.
