IP Library Granted Patent US 11,444,976
Granted Patent B2
US 11,444,976 · App. 17/387,421 · Granted Sep 13, 2022

Systems and methods for automatically blocking the use of tracking tools

Inventors: Jonathan Blake Brannon (Smyrna, GA); Patrick Whitney (Atlanta, GA); Sharath Chandra Chavva (Atlanta, GA); Jeffrey Baucom (Sandy Springs, GA)
Assignee: OneTrust, LLC
H04L63/1475H04L63/1416
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 11,444,976
App. No.
17/387,421
Granted
Sep 13, 2022
Kind
B2
Abstract

Embodiments of the present invention provide methods, apparatus, systems, computing devices, computing entities, and/or the like for permitting or blocking tracking tools used through webpages. In particular embodiments, the method involves: scanning a webpage to identify a tracking tool configured for processing personal data; determining a data destination location that is associated with the tracking tool; and generating program code configured to: determine a location associated with a user who is associated with a rendering of the webpage; determine a prohibited data destination location based on the location associated with the user; determine that the data destination location associated with the tracking tool is not the prohibited data destination location; and responsive to the data destination location associated with the tracking tool not being the prohibited data destination location, permit the tracking tool to execute.

Claims (79)

1. A method comprising:

scanning, by computing hardware, a webpage to identify a tracking tool that is associated with the webpage and configured for processing personal data;

determining, by the computing hardware, a data destination location that is associated with the tracking tool, wherein the determining step is based on at least one of (a) a location for a computing device that invokes the tracking tool, (b) a location of a computing device that receives the personal data, or (c) a location of a computing device or a storage device that stores the personal data; and

generating, by the computing hardware, program code, wherein the program code is configured to:

determine a location associated with a user who is associated with a rendering of the webpage;

determine a prohibited data destination location based on a data structure mapping the location associated with the user to the prohibited data destination location;

determine that the data destination location associated with the tracking tool is not the prohibited data destination location; and

responsive to determining that the data destination location associated with the tracking tool is not the prohibited data destination location, permit the tracking tool to execute.

2. The method of claim 1 , wherein the program code is further configured to:

determine a second location associated with a second user who is associated with a second rendering of the webpage;

determine a second prohibited data destination location based on the data structure mapping the second location associated with the second user to the second prohibited data destination location;

determine that the data destination location associated with the tracking tool is the second prohibited data destination location; and

responsive to determining that the data destination location associated with the tracking tool is the second prohibited data destination location, perform at least one of disabling the tracking tool from executing, or disabling functionality of the tracking tool configured for processing the personal data from executing.

3. The method of claim 1 further comprising generating, by the computing hardware, a computer-readable file comprising an identifier for the tracking tool and an identifier for the data destination location associated with the tracking tool, wherein the program code comprises the computer-readable file and is configured to identify the data destination location associated with the tracking tool from the computer-readable file.

4. The method of claim 1 , wherein the program code is configured to determine the location associated with the user who is associated with the rendering of the webpage based on at least one of (a) a geographical location of the user, (b) a network address associated with the user, (c) browser information on the user, (d) a language associated with the user, or (e) consent data associated with the user.

5. The method of claim 1 , wherein the program code comprises a script configured to run on the webpage and execute during a rendering of the webpage.

6. The method of claim 1 , wherein scanning the webpage to identify the tracking tool associated with the webpage involves:

analyzing a loading of the webpage to identify a source script used to invoke the tracking tool;

analyzing the source script to identify data associated with the tracking tool; and

comparing the data associated with the tracking tool to data on a plurality of known tracking tools to identify the tracking tool.

7. The method of claim 6 , wherein determining the data destination location associated with the tracking tool comprises identifying the location of the computing device that invokes the tracking tool, the location of the computing device that receives the personal data based on the data associated with the tracking tool, or the location of the computing device or the storage device that stores the personal data based on the data associated with the tracking tool and data on the plurality of known tracking tools.

8. A system comprising:

a server comprising

a non-transitory computer-readable medium storing instructions; and

a processing device communicatively coupled to the non-transitory computer-readable medium,

wherein, the processing device is configured to execute the instructions and thereby perform operations comprising:

receiving a Hypertext Transfer Protocol (HTTP) request to render a webpage; and

responsive to receiving the HTTP request, sending a HTTP response comprising a script to a computing device associated with a user; and

the computing device, wherein the computing device is configured to execute, within a browser and during a rendering of the webpage, the script to perform additional operations comprising:

identifying a source script attempting to execute;

identifying the source script is configured to invoke a tracking tool configured for processing personal data based on information on the tracking tool found in a file embedded in the script; and

responsive to identifying the source script is configured to invoke the tracking tool:

determining a location associated with the user;

determining a prohibited data destination location based on a data structure mapping the location associated with the user to the prohibited data destination location;

determining a data destination location associated with the tracking tool based on the information on the tracking tool found in the file embedded in the script;

determining that the data destination location associated with the tracking tool is not the prohibited data destination location; and

responsive to determining that the data destination location associated with the tracking tool is not the prohibited data destination location, permitting the source script to execute to invoke the tracking tool for the webpage that is rendered on the browser.

9. The system of claim 8 , wherein the operations performed by the server further comprise:

receiving a second Hypertext Transfer Protocol (HTTP) request to render the webpage; and

responsive to receiving the second HTTP request, sending a second HTTP response comprising the script to a second browser executing on a second computing device associated with a second user, wherein the script is executable during a second rendering of the webpage to:

determine a second location associated with the second user;

determine a second prohibited data destination location based on the data structure mapping the second location associated with the second user to the second prohibited data destination location;

determine the data destination location associated with the tracking tool based on the information on the tracking tool found in the file embedded in the script;

determine that the data destination location associated with the tracking tool is the second prohibited data destination location; and

responsive to determining that the data destination location associated with the tracking tool is the second prohibited data destination location, prevent the source script from executing to prohibit the tracking tool from executing for the webpage.

10. The system of claim 8 , wherein the operations performed by the server further comprise:

receiving a second Hypertext Transfer Protocol (HTTP) request to render the webpage; and

responsive to receiving the second HTTP request, sending a second HTTP response comprising the script to a second browser executing on a second computing device associated with a second user, wherein the script is executable during a second rendering of the webpage to:

determine a second location associated with the second user;

determine a second prohibited data destination location based on the data structure mapping the second location associated with the second user to the second prohibited data destination location;

determine the data destination location associated with the tracking tool based on the information on the tracking tool found in the file embedded in the script;

determine that the data destination location associated with the tracking tool is the second prohibited data destination location; and

responsive to determining that the data destination location associated with the tracking tool is the second prohibited data destination location:

disable functionality of the tracking tool configured to process the personal data for the second user; and

after disabling the functionality, permit the source script to execute to invoke the tracking tool for the webpage.

11. The system of claim 8 , wherein the script is configured to determine the location associated with the user based on at least one of (a) a geographical location of the user, (b) a network address associated with the user, (c) browser information on the user, (d) a language associated with the user, or (e) consent data associated with the user.

12. The system of claim 8 , wherein the data destination location associated with the tracking tool is based on at least one of (a) a location for a computing device that invokes the tracking tool, (b) a location of a computing device that receives the personal data, or (c) a location of a computing device or a storage device that stores the personal data.

13. A non-transitory computer-readable medium having program code that is stored thereon, the program code executable by one or more processing devices for performing operations comprising:

scanning a webpage to identify a tracking tool configured for processing personal data associated with the webpage;

determining a data destination location associated with the tracking tool based on at least one of (a) a location for a computing device that invokes the tracking tool, (b) a location of a computing device that receives the personal data, or (c) a location of a computing device or a storage device that stores the personal data; and

generating program code, wherein the program code is configured to:

determine a location associated with a user who is associated with a rendering of the webpage;

determine a prohibited data destination location based on a data structure mapping the location associated with the user to the prohibited data destination location;

determine that the data destination location associated with the tracking tool is not the prohibited data destination location; and

responsive to determining that the data destination location associated with the tracking tool is not the prohibited data destination location, permit the tracking tool to execute.

14. The non-transitory computer-readable medium of claim 13 , wherein the program code is configured to:

determine a second location associated with a second user who is associated with a second rendering of the webpage;

determine a second prohibited data destination location based on the data structure mapping the second location associated with the second user to the second prohibited data destination location;

determine that the data destination location associated with the tracking tool is the second prohibited data destination location; and

responsive to the data destination location associated with the tracking tool is the second prohibited data destination location, perform at least one of disabling the tracking tool from executing or disabling functionality of the tracking tool configured for processing the personal data from executing.

15. The non-transitory computer-readable medium of claim 13 , wherein the operations further comprise generating a computer-readable file comprising an identifier for the data destination location associated with the tracking tool, and the program code comprises the computer-readable file and is configured to identify the data destination location associated with the tracking tool from the computer-readable file.

16. The non-transitory computer-readable medium of claim 13 , wherein the program code is configured to determine the location associated with the user who is associated with the rendering of the webpage based on at least one of (a) a geographical location of the user, (b) a network address associated with the user, (c) browser information on the user, (d) a language associated with the user, or (e) consent data associated with the user.

17. The non-transitory computer-readable medium of claim 13 , wherein the program code comprises a script configured to execute during a rendering of the webpage.

18. The non-transitory computer-readable medium of claim 13 , wherein scanning the webpage to identify the tracking tool associated with the webpage involves:

analyzing a loading of the webpage to identify a source script used to invoke the tracking tool;

analyzing the source script to identify data associated with the tracking tool; and

comparing the data associated with the tracking tool to data on a plurality of known tracking tools to identify the tracking tool.

19. The non-transitory computer-readable medium of claim 18 , wherein determining the data destination location associated with the tracking tool involves identifying the location of the computing device that invokes the tracking tool, the location of the computing device that receives the personal data based on the data associated with the tracking tool, or the location of the computing device or the storage device that stores the personal data based on the data associated with the tracking tool and data on the plurality of known tracking tools.

20. The non-transitory computer-readable medium of claim 18 , wherein permitting the tracking tool to execute comprises permitting the source script to execute to invoke the tracking tool.

Assignments (3)
SUPPLEMENT TO INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 3, 2026
From: ONETRUST LLC
To: KEYBANK NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 075801/0754 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2022
From: BRANNON, JONATHAN BLAKE; WHITNEY, PATRICK; CHAVVA, SHARATH CHANDRA; BAUCOM, JEFFREY
To: ONETRUST, LLC
Reel/Frame 060661/0539 →
SECURITY INTEREST Recorded Jul 5, 2022
From: ONETRUST LLC
To: KEYBANK NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
Reel/Frame 060573/0001 →
Continuity (2)
Provisional Application 63057382 · Jul 28, 2020
Related Publication 20220038497A1 · Feb 3, 2022
Cited By (2)
US 12,608,497 US 12,657,296