IP Library Granted Patent US 10,855,806
Granted Patent B2
US 10,855,806 · App. 15/960,378 · Granted Dec 1, 2020

Proxy injection of browser-executable functions

Inventors: Brock Meadors (Bakersfield, CA); Kevin Sanders (Manchaca, TX)
Assignee: Lightspeed Solutions, LLC
H04L67/327H04L67/28H04L67/22
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 10,855,806
App. No.
15/960,378
Granted
Dec 1, 2020
Kind
B2
Abstract

A proxy, such as a proxy server or proxy server application executed on a user device may inject code into web content for execution by a web browser. The injected code may perform functions such as tracking and reporting interaction with the web content and browser-level filtering of the web content. The web browser may execute the injected code to track and report user interaction with the web content and to filter web content delivered to the web browser.

Claims (45)

1. A method, comprising:

receiving, by a proxy, requested web content, wherein the proxy comprises a proxy application executed on the user device through which web content requested by the web browser of the user device is routed;

injecting, by the proxy, one or more browser-executable functions into the web content, wherein the one or more browser-executable functions comprise code for use by the web browser in tracking content access by a user of the user device, wherein the code for use by the web browser in tracking content access by the user of the user device comprises code for determining a content request type of a content request for additional web content by the web browser and code for reporting the content request type to the proxy, wherein the content request type comprises at least one of a first content request type comprising requests generated automatically by the web content received by the browser and a second content request type comprising top-level requests generated based on user input;

transmitting, by the proxy, the web content, comprising the injected browser-executable functions, to a web browser of a user device;

receiving, by the proxy, data regarding the user's interaction with the web content collected by the injected one or more browser-executable functions, wherein the data regarding the user's interactions with the web content comprise the content request type of the content request;

filtering, by the proxy, the additional web content for the user device based, at least in part, on the data regarding the user's interaction with the web content; and

reporting, by the proxy, the filtering of the additional web content when the request for the additional web content was of the second content request type.

2. The method of claim 1 , further comprising:

determining a source of the requested web content; and

selecting one or more browser-executable functions based, at least in part, on the determined source of the requested web content,

wherein the step of injecting comprises injecting, by the proxy, the selected one or more browser-executable functions into the web content.

3. The method of claim 1 , wherein the one or more browser-executable functions comprise code for use by the web browser in performing browser-level filtering of the web content.

4. The method of claim 1 , wherein the injected one or more browser-executable functions further comprise code for use by the web browser in reporting tracked content access to the proxy.

5. The method of claim 1 , wherein the code for use by the web browser in tracking content access by a user of the user device comprises code for determining an amount of time spent viewing the requested web content by the user.

6. A computer program product, comprising:

a non-transitory computer readable medium comprising code to perform steps comprising:

receiving requested web content, wherein the proxy comprises a proxy application executed on the user device through which web content requested by the web browser of the user device is routed;

injecting one or more browser-executable functions into the web content, wherein the one or more browser-executable functions comprise code for use by the web browser in tracking content access by a user of the user device, wherein the code for use by the web browser in tracking content access by the user of the user device comprises code for determining a content request type of a content request for additional web content by the web browser and code for reporting the content request type to the proxy, wherein the content request type comprises at least one of a first content request type comprising requests generated automatically by the web content received by the browser and a second content request type comprising top-level requests generated based on user input;

transmitting the web content, comprising the injected one or more browser-executable functions, to a web browser of a user device;

receiving, by the proxy, data regarding the user's interaction with the web content collected by the injected one or more browser-executable functions, wherein the data regarding the user's interactions with the web content comprise the content request type of the content request;

filtering, by the proxy, the additional web content for the user device based, at least in part, on the data regarding the user's interaction with the web content; and

reporting, by the proxy, the filtering of the additional web content when the request for the additional web content was of the second content request type.

7. The computer program product of claim 6 , wherein the one or more browser-executable functions comprise code for use by the browser in performing browser-level filtering of the web content.

8. The computer program product of claim 6 , wherein the injected one or more browser-executable functions further comprise code for use by the web browser in reporting tracked content access to the proxy.

9. The computer program product of claim 6 , wherein the code for use by the web browser in tracking content access by the user of the user device comprises code for determining a content request type of a content request by the web browser and code for reporting the content request type to the proxy.

10. The computer program product of claim 6 , wherein the code for use by the web browser in tracking content access by the user of the user device comprises code for determining an amount of time spent viewing the requested web content by the user.

11. An apparatus, comprising:

a memory; and

a processor coupled to the memory, wherein the processor is configured by code in the memory to execute a proxy server to perform steps comprising:

receiving requested web content, wherein the proxy comprises a proxy application executed on the user device through which web content requested by the web browser of the user device is routed;

injecting one or more browser-executable functions into the web content, wherein the one or more browser-executable functions comprise code for use by the web browser in tracking content access by a user of the user device, wherein the code for use by the web browser in tracking content access by the user of the user device comprises code for determining a content request type of a content request for additional web content by the web browser and code for reporting the content request type to the proxy, wherein the content request type comprises at least one of a first content request type comprising requests generated automatically by the web content received by the browser and a second content request type comprising top-level requests generated based on user input;

transmitting the web content, comprising the injected one or more browser-executable functions, to a web browser of a user device;

receiving, by the proxy, data regarding the user's interaction with the web content collected by the injected one or more browser-executable functions, wherein the data regarding the user's interactions with the web content comprise the content request type of the content request;

filtering, by the proxy, the additional web content for the user device based, at least in part, on the data regarding the user's interaction with the web content; and

reporting, by the proxy, the filtering of the additional web content when the request for the additional web content was of the second content request type.

12. The apparatus of claim 11 , wherein the one or more browser-executable functions comprise code for use by the browser in performing browser-level filtering of the web content.

13. The apparatus of claim 11 , wherein the injected one or more browser-executable functions further comprise code for use by the web browser in reporting tracked content access to the proxy.

14. The apparatus of claim 11 , wherein the code for use by the web browser in tracking content access by the user of the user device comprises code for determining a content request type of a content request by the web browser and code for reporting the content request type to the proxy.

15. The apparatus of claim 11 , wherein the code for use by the web browser in tracking content access by the user of the user device comprises code for determining an amount of time spent viewing the requested web content by the user.

16. The method of claim 1 , wherein the one or more browser-executable functions comprise code for use by the web browser in distinguishing top-level web requests from secondary web requests.

17. The method of claim 1 , wherein the filtering, by the proxy, of additional web content comprises filtering streaming video or audio content.

18. The method of claim 1 , further comprising reporting, by the proxy server, the filtering of the additional web content when the content request is a top-level request generated based on user input.

19. The method of claim 18 , further comprising:

not reporting, by the proxy server, the filtering of additional web content when the content request is a request generated automatically by the web content received by the browser; and

blocking, by the proxy server, all requests for a specified window of time, when the proxy server determines a reported number of attempts to access blocked content in a defined period of time exceeds a threshold number.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Mar 2, 2022
From: PNC BANK, NATIONAL ASSOCIATION
To: LIGHTSPEED SOLUTIONS, LLC
Reel/Frame 059143/0068 →
SECURITY INTEREST Recorded Mar 1, 2022
From: LIGHTSPEED SOLUTIONS, LLC; CATCHON, INC.
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 059133/0401 →
ENTITY CONVERSION Recorded May 15, 2019
From: LIGHTSPEED SYSTEMS, INC.
To: LIGHTSPEED SOLUTIONS, LLC
Reel/Frame 049181/0626 →
SECURITY INTEREST Recorded May 6, 2019
From: LIGHTSPEED SOLUTIONS, LLC
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 049089/0756 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2018
From: MEADORS, BROCK; SANDERS, KEVIN
To: LIGHTSPEED SYSTEMS, INC.
Reel/Frame 047757/0328 →
Continuity (1)
Related Publication 20190327338A1 · Oct 24, 2019
Cited By (1)
US 12,388,911