# US 10,873,646 B1 · Systems and methods for providing content

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

- Number: US 10,873,646 B1
- Document ID: US10873646B1
- Status: Granted
- Kind: B1
- Application number: 15/986,545
- Filed: 2018-05-22
- Granted: 2020-12-22
- Earliest claimed: 2018-03-22
- Assignees: Facebook, Inc.
- Applicants: Facebook, Inc.
- Inventors: Maria Dolores Priego Porcuna; FNU Hendri
- Web page: https://patentgrep.com/patent/US10873646B1

## CPC

- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- H04L 67/5681: Pre-fetching or pre-delivering data based on network characteristics
- G06F 9/485: {Task life-cycle, e.g. stopping, restarting, resuming execution (G06F9/4881 takes precedence)}
- H04L 67/5682: Policies or rules for updating, deleting or replacing the stored data
- G06F 2209/482: Application
- 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)

## Abstract

Systems, methods, and non-transitory computer-readable media can determine that a software application running on a computing device has been backgrounded. A determination is made that one or more prefetch criteria is satisfied. A request to prefetch one or more content items for the software application is generated based on determination that the one or more prefetch criteria is satisfied.

## Claims

### Claim 1

A computer-implemented method comprising:
determining, by a computing system, that a software application has been backgrounded;
determining, by the computing system, that prefetch criteria are satisfied, wherein the prefetch criteria comprise at least a minimum background time threshold specifying a minimum amount of time the software application must be backgrounded before a prefetch request can be initiated, wherein the minimum background time threshold is computed dynamically based on a computation of an average amount of time between active sessions on the software application and excludes outlier periods of inactivity, wherein the outlier periods of inactivity are determined based on a selected number of standard deviations; and
generating, by the computing system, a request to prefetch one or more content items for the software application based on a determination that the prefetch criteria are satisfied.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the request to prefetch one or more content items for the software application comprises a request to prefetch a plurality of content items for a plurality of feeds associated with the software application.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the prefetch criteria further comprise a connection type criterion.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, wherein the connection type criterion requires a connection to a network using an unmetered connection.

### Claim 5 (depends on 3)

The computer-implemented method of claim 3, wherein the connection type criterion requires a connection to a network using a Wi-Fi connection.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, further comprising:
transmitting the request to a content provider;
receiving one or more prefetched content items in response to the request;
storing the one or more prefetched content items; and
loading at least some of the one or more prefetched content items based on a determination that the software application has been foregrounded.

### Claim 7

A system comprising:
at least one processor; and
a memory storing instructions that, when executed by the at least one processor, cause the system to perform a method comprising:
determining that a software application has been backgrounded;
determining that prefetch criteria are satisfied, wherein the prefetch criteria comprise at least a minimum background time threshold specifying a minimum amount of time the software application must be backgrounded before a prefetch request can be initiated, wherein the minimum background time threshold is computed dynamically based on a computation of an average amount of time between active sessions on the software application and excludes outlier periods of inactivity, wherein the outlier periods of inactivity are determined based on a selected number of standard deviations; and
generating a request to prefetch one or more content items for the software application based on a determination that the prefetch criteria are satisfied.

### Claim 8 (depends on 7)

The system of claim 7, wherein the request to prefetch one or more content items for the software application comprises a request to prefetch a plurality of content items for a plurality of feeds associated with the software application.

### Claim 9

A non-transitory computer-readable storage medium including instructions that, when executed by at least one processor of a computing system, cause the computing system to perform a method comprising:
determining that a software application has been backgrounded;
determining that prefetch criteria are satisfied, wherein the prefetch criteria comprise at least a minimum background time threshold specifying a minimum amount of time the software application must be backgrounded before a prefetch request can be initiated, wherein the minimum background time threshold is computed dynamically based on a computation of an average amount of time between active sessions on the software application and excludes outlier periods of inactivity, wherein the outlier periods of inactivity are determined based on a selected number of standard deviations; and
generating a request to prefetch one or more content items for the software application based on a determination that the prefetch criteria are satisfied.

### Claim 10 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein the request to prefetch one or more content items for the software application comprises a request to prefetch a plurality of content items for a plurality of feeds associated with the software application.

### Claim 11 (depends on 7)

The system of claim 7, wherein the prefetch criteria further comprise a connection type criterion.

### Claim 12 (depends on 11)

The system of claim 11, wherein the connection type criterion requires a connection to a network using an unmetered connection.

### Claim 13 (depends on 11)

The system of claim 11, wherein the connection type criterion requires a connection to a network using a Wi-Fi connection.

### Claim 14 (depends on 7)

The system of claim 7, wherein the instructions, when executed by the at least one processor, cause the system to further perform:
transmitting the request to a content provider;
receiving one or more prefetched content items in response to the request;
storing the one or more prefetched content items; and
loading at least some of the one or more prefetched content items based on a determination that the software application has been foregrounded.

### Claim 15 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein the prefetch criteria further comprise a connection type criterion.

### Claim 16 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the connection type criterion requires a connection to a network using an unmetered connection.

### Claim 17 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the connection type criterion requires a connection to a network using a Wi-Fi connection.

### Claim 18 (depends on 9)

The non-transitory computer-readable storage medium of claim 9, wherein the instructions, when executed by the at least one processor, cause the computing system to further perform:
transmitting the request to a content provider;
receiving one or more prefetched content items in response to the request;
storing the one or more prefetched content items; and
loading at least some of the one or more prefetched content items based on a determination that the software application has been foregrounded.
