# US 12,599,842 B2 · Anonymizing user location data in a location-based application

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

- Number: US 12,599,842 B2
- Document ID: US12599842B2
- Status: Granted
- Kind: B2
- Application number: 18/115,461
- Filed: 2023-02-28
- Published: 2023-08-31
- Granted: 2026-04-14
- Earliest claimed: 2022-02-28
- Assignees: Niantic, Inc.
- Applicants: Niantic, Inc.
- Inventors: Robert Keller; Edward Wu; Jason Chi Shun Sze; Dennis Kuo-Juan Chan; Eric Koo; Katherine Elizabeth LaHorgue
- Web page: https://patentgrep.com/patent/US12599842B2

## CPC

- A63F 13/79: involving player-related data, e.g. identities, accounts, preferences or play histories
- A63F 13/216: using geographical information, e.g. location of the game device or player using GPS
- A63F 13/75: Enforcing rules, e.g. detecting foul play or generating lists of cheating players
- G06F 16/219: {Managing data history or versioning (querying versioned data G06F16/2474; querying temporal data G06F16/2477)}
- G06F 21/6254: {by anonymising data, e.g. decorrelating personal data from the owner's identification}
- H04W 12/02: Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
- G06F 2221/2111: Location-sensitive, e.g. geographical location, GPS
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- 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

A location-based application, such as a parallel reality game, may receive, from a client device of a user of the application, location data representing the user's position in the real-world. In one embodiment, a game platform associated with the application writes location data derived from the received location data to each of a plurality of retention tables, each storing the location data at a different level of granularity and for a different retention period. Upon expiration of a retention period for a first retention table, the game platform anonymizes the location data and transfers the anonymized data to a second retention table storing the data at a lower level of granularity. The game platform repeats this process until expiration of the retention period for the table having the lowest level of granularity before deleting the location data from storage.

## Claims

### Claim 1

A computer-implemented method for anonymizing user location data, the method comprising:
receiving location data from a client device associated with a user of a location-based application;
hashing a player identification (ID) associated with the user;
writing location information, derived from the location data, and the hashed player ID to a first retention table, the first retention table being a short-term retention table storing the location data for a first geographic area of a first size and for a first retention period, the first retention table storing location data indicating a longitude and latitude of the client device;
responsive to determining that the first retention period has expired, anonymizing the location data and transferring the anonymized location data to a second retention table, the second retention table being a medium-term retention table storing location data for a second geographic area that is larger than the first geographic area and that incorporates the first geographic area, the second retention table storing location data indicating a city block on which the client device is located, wherein the second retention table has a second retention period;
deleting the location data from the first retention table;
responsive to determining that the second retention period has expired, anonymizing the location data and transferring the anonymized location data to a third retention table, the third retention table being a long-term retention table storing location data for a third geographic area that is larger than the second geographic area and that incorporates the second geographic area, the third retention table storing location data indicating a city in which the client device is located, wherein the third retention table has a third retention period;
deleting the location data from the second retention table; and
responsive to determining that the retention period for the third retention table has expired, causing the location data to be deleted from storage.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein each retention table stores location data at a cell level associated with a S2 library framework, the first retention table storing location data for a first S2 cell at a first S2 level and the second retention table storing location data for a second S2 cell at a second S2 level, the second S2 cell consisting of the first S2 cell and a plurality of other S2 cells at the first level.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein a retention period for a retention table is inversely proportional to a level of granularity of the table.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the location-based application is a parallel reality game.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, further comprising:
writing the hashed player ID to a one-way lookup table that maps hashed player IDs of users of the location-based application to raw player IDs;
receiving a request from a first service to identify one or more hashed player IDs, the request including an identification of a second service;
querying the one-way lookup table to identify a raw player ID associated with each of the one or more hashed player IDs; and
sending the identified raw player IDs to the second service.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, wherein the first service generates a list of the one or more hashed player IDs for identification using location data from one or more of the retention tables.

### Claim 7 (depends on 5)

The computer-implemented method of claim 5, wherein the second service implements a change to the location-based application for the users associated with the raw player IDs.

### Claim 8

A non-transitory computer-readable storage medium comprising instructions executable by a processor, the instructions executable to perform operations comprising:
receiving location data from a client device associated with a user of a location-based application;
hashing a player identification (ID) associated with the user;
writing location information, derived from the location data, and the hashed player ID to a first retention table, the first retention table being a short-term retention table storing the location data for a first geographic area of a first size and for a first retention period, the first retention table storing location data indicating a longitude and latitude of the client device;
responsive to determining that the first retention period has expired, anonymizing the location data and transferring the anonymized location data to a second retention table, the second retention table being a medium-term retention table storing location data for a second geographic area that is larger than the first geographic area and that incorporates the first geographic area, the second retention table storing location data indicating a city block on which the client device is located, wherein the second retention table has a second retention period;
deleting the location data from the first retention table;
responsive to determining that the second retention period has expired, anonymizing the location data and transferring the anonymized location data to a third retention table, the third retention table being a long-term retention table storing location data for a third geographic area that is larger than the second geographic area and that incorporates the second geographic area, the third retention table storing location data indicating a city in which the client device is located, wherein the third retention table has a third retention period;
deleting the location data from the second retention table; and
responsive to determining that the retention period for the third retention table has expired, causing the location data to be deleted from storage.

### Claim 9 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein each retention table stores location data at a cell level associated with a S2 library framework, the first retention table storing location data for a first S2 cell at a first S2 level and the second retention table storing location data for a second S2 cell at a second S2 level, the second S2 cell consisting of the first S2 cell and a plurality of other S2 cells at the first level.

### Claim 10 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the location-based application is a parallel reality game.

### Claim 11 (depends on 8)

The non-transitory computer-readable storage medium of claim 8, wherein the operations further comprise:
writing the hashed player ID to a one-way lookup table that maps hashed player IDs of users of the location-based application to raw player IDs;
receiving a request from a first service to identify one or more hashed player IDs, the request including an identification of a second service;
querying the one-way lookup table to identify a raw player ID associated with each of the one or more hashed player IDs; and
sending the identified raw player IDs to a second service.

### Claim 12 (depends on 11)

The non-transitory computer-readable storage medium of claim 11, wherein the first service generates a list of the one or more hashed player IDs for identification using location data from one or more of the retention tables.

### Claim 13 (depends on 12)

The non-transitory computer-readable storage medium of claim 12, wherein the second service implements a change to the location-based application for the users associated with the raw player IDs.
